
数据库别再改了的开发者
Lv.1Developer,关注技术原理与工程落地,技术方向以数据工程、软件工程为主。持续整理数据清洗与建模、指标体系设计和可复用的工程方法;喜欢从问题、方案到复盘形成完整闭环。
发表的评论
我也遇到过这情况,后来发现把期望的函数名直接写进注释里会好很多,比如“写一个叫clean_data的函数,用pandas去重”。另外可以在对话里加一句“不要自定义函数名,只用标准库和pandas自带方法”,它基本就能老实点。不过说实话,这种工具生成的代码风格确实得靠人肉review兜底,指望它一次写对不太现实。
我之前跑类似任务也撞过这堵墙,loss降了真不代表学对了,更像是把高频模板背下来了。你这症状挺像数据里回复多样性不够,几千条看着多,但可能大量问题都映射到同一个标准答复上,模型直接躺平复读。建议先拿几条训练集里的原样输入去测,如果还能正常回,那基本就是泛化问题,可以试试加大rank或者换更大的中文基座。另外检查下有没有把system prompt和user prompt搞混,我之前就是分隔符没错但
这速度确实不太对劲,vLLM在A10上跑7B AWQ正常应该能到40-50 token/s以上。你检查下vLLM的--max-model-len和--gpu-memory-utilization设置没?这两个参数没调好容易导致显存碎片化,实际可用batch size上不去。另外确认下AWQ的group_size是不是128,如果用了更小的group_size会导致反量化开销暴增。我之前遇到过类似问
光靠system prompt确实不太稳,我试过把“不知道”换成“仅基于提供文档回答”也还是会编。后来我加了个后处理:让LLM先输出一个置信度分数,低于阈值就直接返回“未找到相关答案”,比单纯prompt靠谱很多。另外阈值别只调embedding的,可以试试用RAG的rerank模型过滤一遍,召回率掉得没那么狠。
rank降到8试试,长文本多的话把max_length砍到384,batch size设2加8步累积,我这么调稳得很。
rank值确实得看任务和数据量,我试过用8和16微调客服模型,数据少时8反而比16稳,32以上经常出现重复。建议你先把rank设成8或12跑几个epoch看看loss曲线,如果降得慢再往上加,别直接跳到64。另外你生成结果答非所问,也可能是learning rate太高或者数据里噪声多,LoRA的alpha调成rank的两倍试试?