
一线低代码研究所
Lv.1主要整理低代码应用相关的学习笔记与工程经验,内容覆盖代码实现与工程实践、开源工具使用。相信长期积累胜过短期追热点,希望把复杂问题讲清楚、把实践步骤写完整。
发表的评论
50万就掉这么狠,感觉更像特征维度或量化压太狠了,试试IVF_SQ8换HNSW再粗排精排。
试试固定256字+50重叠,配合bge-reranker重排,比换embedding模型管用得多。
角色扮演会激活模型的“表演欲”,优先满足人设而非任务本身,专业场景还是去掉为好。 我也遇到过,越专业的任务越得把人设换成“严格遵循指令的助手”,效果立竿见影。
这情况我也踩过坑,LoRA loss降得漂亮不代表生成分布真的对齐了,代码补全对token级别的一致性要求特别高。你r=8可能容量不够去学语法结构,试试把rank提到16或者32,另外alpha跟着调大点。还有个细节,训练数据里如果混了太多非代码的markdown或注释,模型容易被带偏,建议纯代码样本再筛一遍。
这题我熟,之前也是这么干的,后来发现确实是schema全塞进去了,模型每次都要扫一遍所有工具定义才能选,七八个还好,我试过十几个直接慢到怀疑人生。建议别合并成一个大server,维护起来太痛苦了,可以搞个网关或者用MCP的命名空间做路由,把低频工具挪到另一个server,主对话只挂高频几个,能明显感觉到决策快一截。另外自己写的FastMCP服务记得把description写精准点,不然模型很容易在
大概率是MCP默认超时设太短了,vLLM首token延迟在长上下文工具调用时会飙高,先调大到60秒试试。
我前几天也踩过这个坑,后来发现多半不是协议的问题,而是MCP server端那个stdio传输的进程生命周期没管好。Cursor连着的是子进程,如果你代码里用了asyncio但没正确维护事件循环,或者SDK版本和Cursor内置的MCP客户端不兼容,跑几下就会把管道给关掉。建议你先在终端里直接跑server看有没有异常输出,排查是不是代码里某个方法抛了未捕获的异常,因为transport clos
维度不是越高越好,关键看数据分布和业务场景,bge-small配768其实挺合理,256掉点正常。 数据涨到几万篇建议直接换bge-large或M3E,比调维度省心多了。
说实话prompt能做的很有限,我试过把检索到的chunk前面加“仅依据以下原文回答,禁止推理”效果也就那样。后来发现关键是把chunk本身切得够细,最好按语义段落切,别让一个chunk里混着多个主题,这样模型缝合的概率会小很多。另外你可以在返回答案时要求模型先输出引用片段编号再给结论,比如“根据[3]”,这样至少能逼它对着原文走一遍,翻车了你也能定位是哪个chunk出的问题。
你这需求用QLoRA基本就是标准答案了,4bit量化加NF4格式能把7B压到6G左右,batch size开8都稳。重点是把peft库的target_modules选成q_proj和v_proj,再加个8bit的AdamW优化器,显存能再省一截。另外loss不稳大概率是学习率太高,建议调到1e-4以下,配合warmup steps跑个几百步看看曲线。DeepSpeed ZeRO其实单卡没必要折腾,
这帖子说到点子上了,平台化确实能省掉不少手写状态机的痛苦。不过我对那个“绩效”模块有点疑虑,Agent行为量化做太细容易变成调参游戏,反而忽略了业务本身的可变性。我自己试过类似框架,最后发现最难的还是让不同角色的Agent共享一套记忆上下文,岗位定义再清楚,数据不同步照样死锁。你们有没有遇到这种跨角色状态同步的坑?
召回率骗人,top10里混着噪声文档,qwen2.5-7b根本分不清该信谁,先试试按位置重排再谈prompt。 cross-encoder真得加,光靠bge-m3的相似度排序,生成阶段再调也白搭,我踩过这坑。
我之前做类似任务也踩过这个坑,LoRA微调很容易把工具调用学成“条件反射”,模型根本没理解什么时候该停手。建议你检查一下数据里是不是只给了“必须调用”的正样本,完全没加“不需要调用工具”的负样本,模型自然就学不会拒绝。另外可以试试在系统提示里硬性规定“未知工具一律返回错误”,或者把工具列表动态拼到输入里,让模型看到当前可用的才选。最直接的办法是加一层规则校验,模型输出工具名先跟白名单比对,不在就强
说实话我跟你遇到一模一样的情况,后来发现问题可能不在tsconfig,而是Cursor的索引没吃到你项目里实际用的React版本。你可以试试在项目根目录加一个CLAUDE.md,里面直接写死“本项目使用React 18函数组件和Hooks,禁止class组件和componentDidMount”,然后把常用的hooks写法示例贴进去,这样AI每次生成前都会先读这个文件,比prompt里临时强调管用
显存这坑我太懂了,公式算的只是权重部分,KV cache和激活值才是隐藏杀手。你试试把max_seq_len设成实际业务最长长度,别按模型默认的2048算,光这块就能差出2-3G。vLLM对连续请求的批处理确实省显存,但如果你QPS不高,TGI的延迟会更稳一些,建议拿同样的prompt压测下看首token时延。 还有个野路子,用flash-attention能省不少KV cache,配合page
说实话不是心理作用,MCP server每个都挂着常驻进程,尤其是playwright这种带浏览器引擎的,内存和CPU占用是真的肉眼可见。我自己的经验是,别把所有server全扔全局配置里,Claude Code支持项目级的.mcp.json,按任务拆开,比如写前端才挂playwright,查数据库才挂sqlite,这样启动干净很多。至于context窗口,那些server返回的工具定义确实会占t
几百条训练数据对7B模型来说确实太少了,LoRA微调容易过拟合,建议先试试直接用GPT-4或者更大的模型做few-shot rerank。
遇到同样情况,试试把max-model-len降到2048或者调低gpu-memory-utilization到0.85,给KV cache留点余量。 试试加个--enforce-eager参数,能省不少显存碎片,A10上这个经常是元凶。
这坑我太熟了,之前用vllm跑也这样,后来发现多半是数据里工具描述的格式和推理时system prompt没对齐,模型根本没学会“该在什么时候调工具”。你可以试试把工具定义写得更啰嗦点,每个参数都带示例值,然后微调数据里多塞几轮“先调用再总结”的完整对话,光靠调采样参数真救不回来。另外后处理那边最好加个正则校验,参数格式不对就强制重试一次,别直接让模型自由发挥。
我之前也遇到过,后来把超时时间调大,再把localhost改成127.0.0.1就好了,你可以试试。 --- 看看是不是代理在捣乱,我这边关了VPN立马就通了,这俩冲突很常见。