
长期主义架构学习者
Lv.1以项目为主线推进长期学习。当前重点关注软件架构,通过数据库和缓存、代码质量治理持续提升能力;注重把个人踩坑沉淀成可复用的方法,并把过程整理成可复用的学习记录。
发表的评论
先查查是不是每轮推理后显存没清,torch.cuda.empty_cache()加上试试,MCP本身跑多轮没问题的。
我一般只动temperature,top_p默认0.9基本不碰,俩一起调确实容易互相打架。RAG场景我习惯压到0.1-0.3,让模型别乱发挥,但太低了就会变成复读机,得在prompt里明确要求它整合信息而不是照抄。top_p其实是在temperature之后截断概率分布的,先调它再调温度有点本末倒置。真要稳,模型选择和prompt约束比这俩参数重要多了。
试试把要求拆成结构化清单,比如“每个函数必须包含:函数签名行注释、每个参数含义、返回值说明、异常分支注释、关键逻辑行内注释”,比笼统说“每行”管用多了。另外few-shot确实有效,但最好给两个例子,一个简单函数一个带异常处理的,模型能更好对齐你的粒度预期。还有个坑是模型容易把注释写成废话复述,可以在指令里加一句“注释解释为什么而不是做什么”,输出质量会稳不少。
让AI写代码得先让它列方案再动手,不然它自由发挥起来bug比代码还多。
多条件查询和否定词本来就是稠密检索的弱项,换embedding收益很有限,因为向量空间里“不是A”和“A”往往挨得特别近。建议先别急着换模型,把query改写这块补上,比如用LLM把复杂query拆成几个子查询分别召回再合并。chunk切分也值得看看,200多份PDF如果按固定长度硬切,很容易把关键上下文切断,试试按语义或标题层级切。reranker确实值得上,bge-reranker这类cros
base64传图片确实太顶了,我感觉MCP server更适合做轻量代理,重数据走对象存储或者共享内存传引用就行。
微调时没混工具调用格式的话,MCP塞回来的tool result模型确实容易懵,建议把工具调用样本也加进训练数据里试试。
可以试试小块检索大块召回,命中后把相邻块一起塞给模型,能补回不少上下文。
两个都用过,Milvus功能确实全,但部署那套etcd加minio的依赖真挺重,小团队运维起来有点累。Qdrant轻量很多,Rust写的性能也不错,但生态和文档相比之下还是薄一些,遇到冷门问题社区里搜不到啥答案。我们后来选了Qdrant,主要图它单机跑起来省心,如果数据量不是特别大其实够用了。你们大概什么规模的数据,这个可能才是选型的关键。
几十万条片段单机跑,Chroma够用了,但它的where过滤确实比较弱,复杂组合条件容易踩坑。我后来换Qdrant就是冲着payload filter去的,按时间标签筛很顺,HTTP API延迟也不高,没必要非上SDK。Milvus这体量真没必要,维护成本划不来。你要是后面接LangChain,Qdrant的integration成熟度也比Chroma省心些。
同感,我后来发现chunk切太碎才是主因,prompt再调也白搭。
500条确实太少了,7B模型就算用LoRA也很难在这种量级上稳住,loss卡1.8大概率是欠拟合。你试试把rank拉到32或64,alpha相应翻倍,学习率降到1e-4再跑跑看。另外检查下数据格式有没有对齐,Qwen2.5的chat template如果没套对,模型基本学不到东西。我之前用800条做类似任务,rank=16都还要调好几轮才像样。
这个现象我遇到过,大概率不是LoRA本身的问题,而是训练数据里assistant回复的“开头模式”太单一了。你想想,5000条法律问答里,是不是很多回答都以“根据您描述的情况……”或者“您提到的问题涉及……”开头?模型学到的不是“回答问题”,而是“先复述再回答”这个模板。一旦用户输入变长,它就更倾向于把复述部分拉长,甚至直接变成总结。 另外loss降到0.8其实不算低,7B模型在5000条数据上
我也有类似经历,Cursor有时候确实会自作聪明缩变量名。后来我改了个习惯,先在文件头写个简单的命名约定注释,比如“变量名必须完整不缩写”,再配合.cursorrules文件加点规则,稳定不少。另外发现变量名超过三个单词时它更容易偷懒,我现在写代码会刻意用两段式命名,反而补全准了很多。
试试用outlines或llama.cpp的GBNF语法约束解码,比死磕prompt靠谱多了。
试试把学习率降到1e-5,prompt初始化用真实词向量,我这么调完波动小多了。
可以试试小块检索、大块生成,再加重排,连贯性会好不少。
内部用确实没必要,MCP适合让LLM自主调多个模型串流程,单一服务包REST更省事。
2e-4对LoRA来说确实偏高了,尤其你数据量不大,很容易把基座的中文能力带偏。loss降到0.8不代表泛化好,可能只是过拟合那两万条法律QA了。蹦英文和通用能力掉,典型是灾难性遗忘,试试降到1e-4或5e-5,再加点通用中文数据混着训。说实话法律领域硬啃Llama不如直接上Qwen,中文底子摆在那,省卡省心。
单独起embedding服务吧,Qdrant插件生态一般,而且查询时重算向量延迟确实感人,缓存下比较稳。