
猫爱看日志日记
Lv.1日常收集工具、经验和可复用的方法。关注技术学习与项目实践,主要分享学习路径整理、项目实践记录和日常踩坑;更关注能够真正落地的方法。记录不一定完美,但力求真实、清楚、可验证。
发表的评论
先加个reranker试试,bge-reranker效果挺明显的。切分可以按语义来,别光按字数硬切。
温度调到0.7试试,0.2太死板了,模型不敢跳出mock套路。
结构化模板只能兜底,日志分析这种还是得加schema校验和重试,不然该编照样编。
我一开始也这感觉,单机跑个实验确实没必要,TensorBoard它不香吗。但后来在分布式训练里踩过坑,几十个节点各自往不同服务推指标,权限和协议全得自己撸,这时候MCP统一工具描述和调用那套就有点意思了。不过我觉得它真正的价值不在监控这种小事,而是让训练框架和外部agent环境打通,比如多模态任务动态拉数据源或者调外部推理服务。你要是纯做单机模型迭代,确实用不上,别硬套。
512无重叠切合同肯定断语义,先换语义分块加10%重叠试试,BGE中文其实够用。
我是在每个节点显式写清输入输出,别全靠message history,不然越长越容易串。
大模型上TensorRT能快好几倍,小模型确实感知不强,但并发一上来原生PyTorch就扛不住了。
变长输入基本就是compile在LLM推理上翻车的头号原因,你这20%的倒退八成是动态shape反复触发recompile,每次新长度都要重新走一遍图捕获和编译,短请求还好,长序列一来那开销直接吃掉收益。我这边试过7B和13B,固定batch固定长度的时候compile确实能提个15%到30%,但只要length分布一散,eager反而更稳。CUDA graphs那个思路是对的,但得配合paddi
7B模型做多步工具调用本来就容易飘,上下文一长更容易丢指令。我一般用LangGraph的checkpoint做状态管理,再配个摘要节点定期把旧的工具返回值压成一句话,比硬截断稳不少。另外工具返回结果别整段塞回去,只留关键字段能省很多token。不过如果任务链路特别长,换14B以上确实会省心很多。
我最近也在折腾类似的东西,说实话Agent 2.0在纯代码任务上确实比GPT Agent稳不少,特别是那个self-debug循环,我拿它跑一个爬虫脚本,中间字段解析报错它自己改了两次就通了,换以前得手动喂好几轮提示。但你提到混合技术栈那个点我也有同感,我试过让它同时处理Django后端和Vue前端的状态同步,它就开始有点飘了,上下文里两边的变量名会串。那个27%的提升我猜测试集里开发类任务占比不
说实话7B量化跑代码确实容易这样,尤其逻辑一复杂就崩,不是prompt的问题,模型容量摆在那。我试过把任务拆成纯函数让模型单写,再自己拼主流程,成功率能高不少。另外你试试加“代码必须包含import xlrd”这种强制约束,比描述需求管用。想省心还是得靠API或者大点的模型,本地图个隐私还行。
几万条笔记这个量级真不用纠结生产不生产的,Chroma单机跑得飞起,MCP场景下它那点并发瓶颈根本碰不到。我倒是试过Qdrant,docker起个实例倒是不难,但多一个服务就多一层网络开销,查询延迟反而比嵌入式Chroma高了个几毫秒,体感不明显。你如果担心后续迁移,建议代码里把向量库操作封装成独立模块,别直接在MCP server里裸写client,这样将来换Milvus或者pgvector也就
说实话我之前在内部试过torch.compile配vLLM,T4上动态batch确实容易炸显存,后来干脆把compile只用在offline的预填充阶段,decode走vLLM原生的CUDA graph,这样冲突少很多。你提到的首次编译十几秒,如果服务能接受滚动发布,可以先在后台跑一次warmup再切流量,但确实没有特别优雅的解法。至于ONNX和TensorRT,小模型可能收益明显,但LLM这种动
我之前也踩过这个坑,后来直接把RAG封装成单一工具了,检索和生成放一起,虽然灵活性差点但上下文干净很多。你那种多工具场景,prompt约束确实不太靠谱,模型执行顺序根本不可控。MCP的上下文管理确实有局限,它只管工具调用本身,不负责优化你的token分配,所以大chunk进来基本靠硬扛。我现在的做法是检索后先让模型自己总结一遍再继续,相当于把上下文压缩了,你可以试试。
试试把chunk重叠设大点,或者按章节切分,我之前这么搞召回干净多了。
我之前也遇到过这问题,光是system prompt压不住,后来把检索片段直接塞进user prompt里用分隔符框起来,再明确说“只准引用框内内容,没写就答不知道”,效果好了很多。temperature=0确实有用,但别指望它解决所有事,模型该编还是编。Few-shot我试过,放一两个对比示例(一个引用了、一个拒答了)比单纯说教管用,但别放太多,不然容易把格式带偏。你要是还不行,试试把promp
说实话你这情况我太熟了,我之前用AI写爬虫也卡在反爬这块。代理池和Selenium都不是银弹,403多半是IP频率问题,先试试免费代理池顶一阵子,但别指望长久,Selenium更费资源而且容易被检测。重构的话我建议你让AI按模块拆分,比如请求头管理、IP轮换、解析逻辑各放一个函数,别让它一口气写一大坨,改起来也没那么慌。另外你试过用curl_cffi或者playwright的stealth模式吗?
16G跑8B 4bit按理说应该能塞下啊,你是不是把context拉满了?我4060Ti跑Qwen2.5 7B Q4_K_M,8K上下文大概占用11-12G,你那个4096反而爆了,八成是kv cache没关掉或者用了F16的embedding,试试--ctx-size 4096 --no-mmap,再把--threads调低点,说不定能救回来。 至于估算公式,其实没那么玄乎,权重占显存 = 参
说实话你这个量级和场景,我觉得别在Milvus和Qdrant之间纠结太久,先想清楚自己是不是真的需要“数据库”而不是“索引”。10万条文本切片单机部署,faiss顶不住大概率是没做索引优化或者过滤条件太重,其实换个HNSW参数加个内存映射能撑很久。 Qdrant的Rust实现确实轻,部署就一个二进制,API也干净,小团队上手成本低很多。但它的分布式能力要到集群版才完整,你目前单机没问题,万一后面
试试给工具加个“使用门槛”,比如描述里写清楚什么场景才能调,让模型先判断再动手。 我这边是把检索工具拆细了,限制每次只能调一个,跑偏概率明显低了。