
全栈学习簿
Lv.1主要整理全栈开发相关的学习笔记与工程经验,内容覆盖架构设计、问题排查与调试。关注技术选择背后的成本与边界,希望把复杂问题讲清楚、把实践步骤写完整。
发表的评论
有没有更详细的教程推荐?
这个思路不错,收藏了。
这个思路不错,收藏了。
这个思路不错,收藏了。
写得挺好,建议补充一些性能数据。
双路3090跑7B GPTQ还只有2-3 token/s,这个速度确实不正常,我第一反应是张量并行可能没真正生效。你可以在vLLM启动日志里确认一下tensor_parallel_size是不是真的按2卡切分了,有时候CUDA_VISIBLE_DEVICES没配对,模型其实全压在一张卡上,另一张卡在旁边干看着。另外GPTQ 4bit在vLLM里对kernel的兼容性一直有点玄学,可以换成AWQ试试
小模型确实吃格式,建议先摸清它的模板再套few-shot,别硬搬GPT那套。
我也有过类似经历,Cursor在项目小的时候确实很顺手,但代码一多它就开始“自作主张”了。我后来发现关键在于它缺乏对项目整体结构的理解,每次生成都是基于当前上下文猜的,所以才会出现改你函数名、乱插import这种事。我的做法是给项目根目录放一个architecture.md,把模块职责和依赖关系写清楚,然后在对话里明确告诉它“只改这个文件,不要动其他文件”。另外确实要勤commit,我现在基本每完
同款问题我之前也踩过,而且折腾时间比你长。先说结论:大概率不是embedding模型的锅,你换模型的方向基本可以停了。我后来定位到是分块策略和检索后处理的问题,尤其是分块重叠和chunk size,本地测试数据量小感觉不出来,一上真实语料就露馅。另外FAISS在服务器上有个很隐蔽的坑,就是IndexIDMap和原始文本的映射如果没做持久化,重启后索引文件加载了但id对不上,就会空召回,你检查下是不
实践下来固定字符+按结构二次切分最稳,特殊内容单独走解析器,别迷信语义切分。
1.8的loss卡住但acc有50%,先查下标签有没有错乱,我之前用错数据增强也这样。 --- 试试把学习率降到1e-4以下,预训练模型微调初期loss不降很常见,再跑几十轮看看。
这状态我太熟了,不过我是Java后端,最近也是被AI带飞,代码能跑但让我讲思路就卡壳。我觉得关键不是每行都读懂,而是至少把那些装饰器和上下文管理器的调用链搞明白,不然出了诡异bug你连从哪下手查都不知道。建议你挑几个最复杂的模块,让Cursor边解释边重构,自己跟着手写一遍,其他部分先放过自己。交接这问题真不是吓你,我上次让AI写的定时任务,同事接手时差点把生产库清了,现在我都要求它必须给我写注释
我之前也踩过这个坑,后来发现是node版本太老导致MCP的stdio握手一直失败,换了LTS版本就秒连了。你可以先试试在终端手动跑一下那个启动命令,看有没有报错输出,比干等超时强。另外Claude Code对config里args的解析挺严格的,路径带空格或者引号没转义也会卡住。工具链确实迭代太快,官方文档有时候都没跟上,多翻翻GitHub issues比看README管用。
试试在prompt里加“不要做额外假设,只按字面执行”,再给个预期输出格式,能省不少事。 想要更稳就直接把处理逻辑写成伪代码让AI照着翻译,别让它自己发挥。
我们最近也在搞这个,tool call的稳定性真的头疼。试了一圈下来,感觉最有效的是把每个工具的参数schema做严格校验,模型输出先过一层JSON parser,格式不对就自动重试,比直接丢给下游强多了。另外,超时和重试机制必须得加上,不然模型偶尔抽风一次整个流程就卡死了。你们有没有试过给工具调用加个“确认”步骤,让模型先输出意图再填参数?我们刚打算这么搞,想看看效果。
索引影响不大,问题大概率出在固定分块上,合同条款语义密度高,试试按章节或语义切分。
同感,gradient checkpointing有时候开了跟没开一样,问题大概率出在checkpoint的粒度上。你试试把recompute重活放到forward的每个transformer block上,而不是只包最外层,A100上显存能压到40G左右。速度慢一倍是正常的,毕竟用计算换显存,但要是batch size还上不去,那说明瓶颈其实在activation峰值上,建议配合torch.ut
说实话我觉得问题大概率出在数据上,几十条例子对微调工具调用来说太少了,Llama这类模型对格式的敏感度本来就高,你给的样本里如果order_id和orderId混着出现,它学到的就是个模糊的映射关系。我自己试过类似情况,后来把训练数据扩到两百条左右,每条都严格统一JSON schema,甚至故意加了一些错误格式作为负样本,效果立刻稳了很多。另外你提到3个epoch,我感觉可能有点过拟合了,LoRA
2万条alpaca数据训3轮,lr5e-4对8B来说太高了,降到1e-4试试,rank提到16。 中文乱码八成是模板没对齐,检查下prompt格式和tokenizer的pad设置。
说实话光靠prompt约束真不够,我试过给模型加“必须逐字引用”这种狠话,该幻觉还是幻觉。后来把检索到的chunk先做个简单后处理,比如按相似度排序后只保留前两段,并且把每段原文用引号加来源页码标出来,模型老实多了。你可以试试在system消息里规定“回答只能由引号内内容拼接组成,禁止改写”,比在user消息里强调有用。另外OpenAI对“引用原文”的理解挺迷的,建议把参考段落直接切成小段,每段前