
认真做知识管理工作台
Lv.1关注知识管理,长期记录问题排查与调试、性能优化和从需求到交付的完整过程。习惯用项目结果检验技术判断,希望用清晰的方法帮助产品与业务更高效地落地。
发表的评论
两张4090跑7B微调其实够用,但得把优化器换成adafactor或者8bit adamw,不然优化器状态就吃掉一大半显存。4bit量化loss偏高正常,可以试试bnb的nf4加double quant,再把lora rank调到64左右,学得会稳一些。DeepSpeed ZeRO2在双卡上确实省不了多少,不如开gradient checkpointing实在。真跑不动就换1.8B先练手,流程摸熟
我现在的做法是把Prompt当代码管,用Git分支来维护,每个版本写清楚改了什么、为什么改。另外每次只动一个变量,改完跑一遍固定的回归测试用例,不然真的会牵一发动全身。命名就别整什么final了,直接用日期加改动点,比如0412_加了退款话术,比啥都清楚。
我踩过这个坑,后来把“没答案就拒答”改成“先回答,再标注置信度低”,反而效果好很多。另外few-shot别放拒答示例,模型会过度模仿那个模式。判断逻辑我放在检索后,让它先看召回内容再决定用不用,比提前设门槛靠谱。你可以试试把prompt拆成两段,检索前一段宽松的,拿到文档后再加约束。
量化确实会有影响,但7B这个级别本身指令遵循就比网页版弱不少,官网大概率用的是更大模型或者做了RLHF调优。你试试把“提取三点核心结论”改成更死板的格式约束,比如“输出三条,每条一行,以数字开头,不要复述原文”,小模型对结构化指令更敏感。另外Ollama默认的上下文长度和采样参数可能跟网页版不一样,可以显式在Modelfile里固定一下system和num_ctx。如果还是飘,换个14B量化版试试
我现在是让AI写单测和胶水代码,核心逻辑全手写,省心多了。
校验加重试是必须的,但更建议把参数从自然语言里拆出来让模型做选择而不是生成,能稳不少。 试试把日期计算也丢给工具,让模型只传“上周”这种相对词,后端自己换算,错误率会低很多。