
北岸读书集
Lv.1在代码与生活之间寻找秩序,关注技术学习与数字生活,记录知识体系搭建、项目实践记录和真实实践中的思考;希望内容既讲清为什么,也说明怎么做。愿与认真做事的人一起长期成长。
发表的评论
MCP模板不是强制约束,工具调用时得在参数里显式引用才会生效,光塞server里没用。
结构化抽取这块确实开源模型容易飘,我试过把few-shot示例里的输出格式用JSON Schema卡死,再配合grammar-constrained decoding(llama.cpp支持),格式乱掉的情况少很多。采样参数上温度调到0.1以下、top_p压到0.8左右对稳定性有帮助,但代价是多样性没了。另外CoT未必越细越好,开源模型有时候指令一长反而抓不住重点,试试把prompt拆成更短的分步
我最近也踩了这个坑,后来发现很大一部分原因是 prompt 里没把“什么时候该调工具”说清楚,模型就倾向于自己编。你可以试试在系统提示里明确写“涉及文件或数据库操作必须先调用对应 tool”,命中率会高不少。另外 Claude 对 MCP 的支持确实还在迭代,不同版本行为差异挺明显的,建议先固定一个版本对比测一下。还有个偏方是减少同时注册的 tool 数量,工具太多模型反而容易挑花眼。
有没有更详细的教程推荐?
有没有更详细的教程推荐?
我之前也遇到过类似问题,后来换了方案。
7B模型开compile确实容易炸,我这边dynamic shape直接关掉才勉强跑通,但加速基本没感觉。
试试vLLM加GPTQ-Int8,比4bit稳不少,显存也够用。
我一般用tenacity包一层,配个指数退避,超时和网络错误自动重试,省心不少。
5k条垂直数据全量跑3个epoch,灾难性遗忘基本是必然的,跟rank关系不大。LoRA再轻量也是在改权重,领域数据太单一模型就只顾着学新东西了。建议掺10%-20%的通用指令数据进去,或者把epoch降到1-2,学习率也稍微调低点。我上次做法律领域微调也是这毛病,混了通用数据后通用能力就稳多了。
MCP现在确实不支持tool流式返回,我之前也卡在这。要不试试把长查询拆成几个小tool分批调?
500的固定切块容易把配置步骤拦腰截断,试试按标题切,再拿几个已知答案的问题测hit rate。
门票炒到多少其实跟干活的人关系不大,展台上那些流畅的demo我基本都持保留态度。你说的光照变化导致SLAM丢帧太真实了,我们做移动抓取时也发现,实验室里调好的参数换个仓库灯光就全废,最后不得不加主动光源和冗余传感器,成本直接翻倍。力控延迟50ms碎货这个我深有体会,夹爪闭环里通信和滤波随便省一步就等着捡碎片。通用性和专用性我觉得现阶段别硬追通用,先把一个场景的鲁棒性做到99%再谈泛化,否则就是到处
十几万条768维够用了,降维丢信息得不偿失,增量更新直接上Milvus省心。
同感,我后来用promptfoo跑批量测试才稍微靠谱点,不然真靠玄学。
2k序列长度在8B模型上确实挺吃显存的,LoRA虽然省了优化器状态,但激活值还是按全模型算。我3090上跑类似配置时把max_length砍到1024,再开Flash Attention 2,显存直接从22G掉到14G左右。ZeRO-3单卡收益不大,反而通信开销拖速度,不如先试试gradient accumulation配合更小的micro-batch。torch.compile在2.1上对LLM
我之前也踩过这坑,后来发现光靠prompt约束根本压不住模型乱编。我的做法是加一层轻量校验,把工具返回的JSON字段解析出来,生成后再拿关键数值去比对,比如温度、天气状态这些,不一致就直接用模板回填而不是让模型自由发挥。另外可以试试把工具结果放在tool角色消息里而不是硬塞system,Qwen对tool message的遵循度会好一些。
几十万数据单机跑的话Qdrant确实够用了,我去年一个项目就是768维五十万条,写入和过滤都挺顺的,payload过滤比Milvus写表达式舒服些。Milvus功能更全但单机跑那套依赖真挺劝退的,etcd加minio一套下来运维成本不低。不过你要是后面可能扩到千万级或者要多租户,那还是Milvus生态更稳一点。
这个问题其实挺典型的,我自己的经验是GPT在增量修改时特别容易“顺手”重构它觉得不够优雅的地方,哪怕你根本没让它动那块。它不像人类程序员会克制在最小改动范围内,而是每次都在重新理解整个代码意图,所以历史上下文一长,它就容易把之前的约束给稀释掉。我的做法是每次只贴需要改的那个函数,然后把其他不相关函数的完整代码用注释或者伪代码一笔带过,明确告诉它“以下代码块禁止修改”,这样它乱动的概率会低很多。另外
你这配置有个坑,awq是4bit量化,不是int8,vLLM加载awq权重时不会额外压缩,显存该占还是占。另外A100 40G跑7B的int8或awq,权重本身才7G左右,峰值冲到38G大概率是KV cache按默认max_model_len全预分配了,试试加上`--max-model-len 4096`和`--gpu-memory-utilization 0.85`限制一下。我之前也遇到过类似情