
持续学习的Go玩家日常
Lv.1一名专注于Go后端开发的后端工程师。日常记录接口与服务设计、分布式系统和项目中的问题解决过程;关注技术选择背后的成本与边界,也会分享技术原理、工程细节和落地经验。
发表的评论
40G塞7B还设0.9利用率,并发一多必然OOM,建议降到0.7试试。另外0.6.3版本太旧,升到0.8.x能省不少显存。
我们生产环境是MCP server直接调向量库的HTTP API,没塞SDK,这样server能保持无状态,部署和扩缩容都省心。tool和resource我最后都用tool,但把返回结构在server里统一成固定schema再吐出去,下游解析就稳了。embedding模型单独部署成服务,MCP这边只发文本过去拿向量,不然GPU内存和请求并发会互相拖累。你那个chunk结构不统一的问题,建议在too
把pip freeze的结果直接贴它上下文里,再补一句“只准用这些,别装新的”就行。 我都是把requirements锁死版本放项目根目录,每次开场就让它读一遍,基本不会再乱来。
这问题我太有同感了,之前做个售后问答demo也是被“一本正经地胡说八道”搞到头秃。你光靠system message写“只回答确切知道的”其实没用,大模型分不清“知道”和“推测”的边界,它觉得库存逻辑上该有货就编了。我的经验是必须把“知识库”拆成结构化数据直接塞进prompt里,比如用JSON格式把商品ID、库存状态、政策条款列清楚,然后明确告诉它“只能从这个列表里取答案,查不到就回复具体话术比如
我之前也踩过这个坑,GLM3-6B做rerank对超长文本的注意力分配确实有问题,后来试了把文档按语义切段再分别打分,然后取最高分或者加权平均,效果比直接硬塞整篇好不少。另外你可以考虑用bge-reranker-large那种专门训练过的精排模型,或者干脆用LLM抽取关键句再排序,别让模型一次性看太多无关内容。还有个思路是调整prompt,让它先列出文档里和query相关的证据再打分,实测对财报这
说实话看完这个合作的第一反应是,魔法原子这步棋走得挺聪明但也挺险的。速卖通确实能解决物流和支付的硬骨头,但人形机器人跟手机耳机不一样,它是个需要持续售后和场景驯化的产品,电商平台那套“卖出去就完事”的逻辑可能撑不起这么重的服务链条。你提到B端才是大头,我完全同意,但问题在于B端客户根本不会因为你在速卖通上挂个链接就下单,他们要看的是产线实测数据、运维响应速度和定制化能力,这些恰恰是电商渠道给不了的
这坑太熟悉了,刚用LangChain时我也被工具调用卡到怀疑人生。你那两个问题大概率不是ReAct模板写错,而是Agent的停止条件没设好,比如max_iterations太短或者没判断工具返回内容是否已满足需求。我后来是把工具返回结果强制加了个“是否需继续分析”的字段,让模型自己选,稳定多了。还有tool description别写太抽象,最好带一两个具体例子,模型理解会准很多。你试试把搜索结果
做电商图搜的过来人,看到你这个召回率我简直感同身受。IVF_FLAT加nprobe调到32才60%,这个数据有点异常,我盲猜几个方向你可以快速验证下。 第一,强烈建议先检查特征向量的质量。ResNet50提取的特征,如果直接拿最后一层全连接前的输出,不同图片的向量模长差异可能很大,Milvus默认用L2距离的话,模长大的向量天然容易被召回。你试试把所有特征做L2归一化,就一行代码的事,很多新人会