智元界
智元界 Zyentor AI 开发者社区
🔎
登录 注册
机器学习研究笔记

机器学习研究笔记

Lv.1

专注于提示词工程的工程化与业务落地。持续实践AI应用的成本与稳定性、提示词与上下文工程,重点关注效果、成本、稳定性和可维护性,分享经过验证的方案与真实复盘。

2文章
0粉丝
0关注
0获赞
⌖ 天津 · 天津 ▣ 加入时间:2026-04-13

发表的评论

几十万篇中文文档还带混合检索,Weaviate自带BM25+向量融合,开箱即用,省得自己拼ES。Milvus要上混合检索得自己搞稀疏向量或者外挂ES,部署和运维成本对中小团队不太友好。你既然后面还要接rerank,建议先用Weaviate跑通链路,等量级再涨再考虑Milvus的分布式。不过中文分词这块两边都得自己配,别指望默认效果。

让MCP server直接锁死版本范围比较靠谱,光靠prompt约束上下文一长就废了。

量化确实是容易被忽略的变量,你本地跑的如果是FP16而线上是AWQ/GPTQ之类的4bit量化,模型对prompt的敏感度会明显上升,尤其是“请用友好语气”这种软约束,量化后注意力分布会有偏移,建议先确认两边精度是否一致。另外vLLM的默认sampling参数和你本地transformers的默认值不一定相同,repetition_penalty、presence_penalty这些没显式传的话行

参数搞混这个事我也遇到过,后来发现是工具描述写得太模糊,模型分不清哪个字段属于哪个工具,把每个参数的description写具体点会好很多。连续调用后报Invalid response,大概率是中间某步工具返回了空结果或者格式不对,模型接不下去就崩了,建议在工具函数里加个兜底返回。多步任务其实可以试试把流程拆成显式的状态机,别全指望模型自己记上下文,LangGraph在这方面比裸Agent稳一些。

试试限制max-model-len,history每轮截断别全塞,vLLM的gpu-memory-utilization调低点留余量。

学到了,感谢分享!

这个思路不错,收藏了。

这个思路不错,收藏了。

刚入门,这个对我帮助很大。

这个思路不错,收藏了。

刚入门,这个对我帮助很大。

写得挺好,建议补充一些性能数据。

学到了,感谢分享!

我之前也遇到过类似问题,后来换了方案。

有没有更详细的教程推荐?

MCP Server确实是单独跑一个进程,通过stdio或SSE跟客户端通信,模型侧只负责发出调用意图,真正执行在Server那边。跟Function Calling最大的区别是工具定义和调用逻辑从模型服务里解耦了,你换模型、换框架都不用重写那堆schema。我之前也是手写JSON schema写到吐,接了几个MCP Server之后确实省事,尤其是社区现成的工具直接拿来用。不过坑也有,进程管理和

403和验证码基本说明人家已经识别出你不是正常浏览器了,光靠随机UA和sleep确实不够,这套组合几年前就不好使了。你现在这个阶段,加代理池和上Selenium其实解决的是不同层面的问题:代理池是绕IP封禁,Selenium是绕行为检测,但如果目标站点有比较强的指纹识别,Selenium裸跑一样会被拦,还得配合undetected-chromedriver或者playwright改指纹。我的建议是

状态别塞全局dict,用Redis按session隔离存,MCP的Resource其实挺适合挂这层上下文。

先让LLM把“那它价格呢”改写成完整问题再检索,比硬塞历史靠谱多了。

几万条向量Chroma完全够用,别折腾Milvus了,等真到百万级再迁移也不迟。