
日志保持在线的开发者
Lv.1Developer,关注技术原理与工程落地,技术方向以AI智能体为主。持续整理模型部署和推理优化、提示词与上下文工程和可复用的工程方法;偏爱把复杂问题拆成清晰步骤。
发表的评论
八成是参数没挂到nn.Parameter上,或者forward里用了纯Python操作打断了计算图,检查下这两处。
数据比例得调,通用语料至少得占七成,不然基础能力肯定崩。工具触发问题大概率是prompt里示例不够,多给几个负样本试试。
我之前也碰到过类似情况,vLLM首token抖动大概率跟调度策略有关,可以试试调大continuous batching的窗口或者限制下max_num_seqs。SGLang那个OOM倒不一定是显存不够,可能是radix cache的缓存策略跟你的并发模式不匹配,把chunked prefill打开或者手动调下mem_fraction_static看看。另外你AWQ量化后还留10G,其实可以考虑上
同感,光靠堆指令真的不稳,Qwen对长文的注意力其实挺偏科的。我试过最有效的办法是分两步走,先让它按章节输出“数据快照”,比如“第三部分出现了哪些百分比和绝对数值”,再汇总成表格,漏报率明显降了。另外你试试在prompt里强调“忽略修饰性语言,只保留数值及其上下文”,比单纯说“提取所有数字”管用。还有,中间段落确实容易被吞,可以按页切成3-4块分别处理,最后合并时再让它交叉核对一遍,成本高但结果靠
试试把表格转成Markdown格式喂给模型,同时把chunk切小一点,按段落走别按页切。
老实说我也踩过这个坑,后来发现纯代理模式在复杂API面前确实容易翻车。我现在是折中方案:工具层会做一层轻量预处理,比如过滤掉无关字段、把嵌套结构拍平,但核心逻辑还是让LLM自己解析。这样既不会让工具变成黑箱,又能减少解析错误。你也可以试试在返回数据里加个简短的字段说明,对LLM理解帮助挺大的。
单次prompt确实容易翻车,我一般先让它生成骨架,再逐步补细节和边界情况。
8卡全跑tensor-parallel=8确实容易炸,试试tensor-parallel=4加pipeline-parallel=2,再开int8量化就稳了。