
持续研究战略工具箱
Lv.1关注产品设计与数字化实践,长期记录需求分析与方案设计、业务流程拆解和从需求到交付的完整过程。注重把个人踩坑沉淀成可复用的方法,希望用清晰的方法帮助产品与业务更高效地落地。
发表的评论
刚入门,这个对我帮助很大。
刚入门,这个对我帮助很大。
写得挺好,建议补充一些性能数据。
这个思路不错,收藏了。
多步Agent跑偏太常见了,关键得每步做完先让它自检再往下走,光堆prompt没用。
KV cache才是大头,gptq权重只占4G左右,剩下全被缓存吃了,把gpu_memory_utilization调低试试。
多库场景下让LLM自己选库确实容易翻车,我们后来改成先让模型拆子问题、每个子问题带上部门标签再并行检索,效果稳不少。元数据过滤挺关键的,给每个chunk打上部门字段,检索时按意图动态拼filter,比纯靠prompt靠谱。你说的“报销和年假冲突”这种跨域问题,本质是多跳,不如直接并行查所有相关库再让rerank合并,别指望一次路由就选对。
训练循环里塞阻塞调用肯定掉速,建议指标先攒本地队列异步推,崩了也别让MCP拖垮训练进程。
你这个情况挺典型的,固定512字符切块对产品手册和FAQ确实不太友好,因为这类文档的语义边界往往在段落或者问答对之间,硬切很容易把“退货流程”和“报价条款”混进同一个块里。我建议先别急着上重排,把切块改成按段落或者按FAQ的问答对来分,让每个块自带完整语义,召回质量可能直接上一个台阶。bge-large-zh本身没问题,但它对块内噪声很敏感,你块里混了无关内容,向量自然就偏了。top_k调大确实治
这个评测结果挺有意思的,我们组之前也测过类似的抽象符号识别,确实发现推理模式有时候会“用力过猛”。智谱普通模式赢在没把简单问题复杂化,反而更稳。不过Kimi才38分有点意外,是不是它的视觉编码器在非标准图标上训练数据偏少?你们部署时有没有试过用few-shot微调来补这块短板?
我之前也是本地Python脚本用stdio,后来想让同事远程调才换的SSE,说实话迁移没那么痛苦,主要改的是传输层配置,业务逻辑基本没动。但stdio调试确实省心,直接看进程输出就行,SSE还得处理连接断开重连那些破事。鉴权方面SSE更灵活,能加header和token,stdio基本靠本地权限控制。如果你短期只是自己用,stdio完全够,等真要上服务器再换也不迟,别提前焦虑。
提示词太满确实会挤占上下文注意力,我一般只留核心约束,格式和兜底交给后处理。
纯向量召回在中文长文本上确实容易翻车,bge-large-zh对512字chunk的语义压缩损失挺大的,尤其你切得偏长,关键信息容易被稀释掉。我之前也踩过类似的坑,后来改成256字左右加小重叠,再配上BM25做混合召回,Recall@5直接涨了十几个点。ChromaDB那套相似度排序对短query本来就不太友好,你可以先别急着换库,试试RRF融合两路结果,大概率比单走向量强不少。
我也有过这阶段,后来强制自己定了个规矩:核心模块先手写伪代码和状态流转图,AI只用来补边界条件。CRUD交给它没问题,但并发和状态机这种地方,说不清逻辑就是定时炸弹。你review虚是因为你确实没真正掌握,跟AI没关系,是你跳过了思考那步。建议现在这个重构项目就手动画一遍状态图再让AI写,慢一周但值。
我最近也在折腾这个,刚开始确实容易把MCP想得太重。简单说它就是一层协议,负责把模型能调用的工具、资源、prompt这些标准化暴露出去,推理本身它不管。你PyTorch训好的模型要接进去,通常是自己写个MCP server,在里面加载权重、跑forward,然后把这个server注册成工具或者resource给客户端。GPU显存、batch这些还是你自己的事,跟MCP没关系,vLLM或者Torch
ReAct本质上是让模型自己决定下一步,没法硬性约束顺序,所以工具乱序挺正常的。想稳定的话可以试试用LCEL把流程写成链式,先调天气工具再把结果传给邮件工具,这样顺序就固定了。或者用Plan-and-Execute那种模式,先让模型生成完整计划再执行。不过说实话如果业务顺序是固定的,直接写死流程比让Agent自由发挥靠谱多了。
学到了,感谢分享!
学到了,感谢分享!
loss先降后升这个曲线其实挺典型的,不一定是MCP本身的问题。我第一反应是2k条数据对1.5B模型来说有点少,很容易在后期过拟合,训练集loss可能还在降但验证集已经开始反弹了,你看到的2.5是训练loss还是eval loss?如果是eval那基本就是过拟合没跑了。另外tool_call字段确实值得查一下,MCP的格式里那些特殊token如果tokenizer不认,会被拆成好几个subword
我现在的做法是向量库里只存“可独立成句的事实”,比如“用户不吃香菜”“偏好Python而不是Java”,每条都带时间戳和来源会话ID。原始聊天记录扔冷存储,摘要作为payload字段挂在向量旁边,检索时先拿向量召回再用摘要过滤。这样召回准很多,也不会因为摘要太干丢细节。实体关系我也试过,但维护成本高得离谱,除非你的场景特别依赖推理链,不然先跑通“原子事实”这层就够用了。