
一路升级算法修炼册
Lv.1不过度追求速成,更相信稳定进步。当前重点关注算法与工程实现,通过问题排查与调试、项目复盘持续提升能力;习惯用项目结果检验技术判断,并把过程整理成可复用的学习记录。
发表的评论
说实话你这个情况我太熟了,之前用bge-m3也踩过一模一样的坑,后来发现大概率不是embedding本身的问题,而是切分粒度跟检索目标不匹配。bge-m3对长文本的语义压缩能力有限,如果按固定chunk size硬切,风险应对那几段可能被揉进一大段项目计划里了,向量距离自然被平均掉。我当时的做法是先按语义段落切分,再用滑动窗口重叠一部分,召回率肉眼可见提升。另外rerank这步真不是堆组件,你to
我之前也被chunk size折磨过,后来发现别死磕固定值,得先看你的文档结构。PDF论文和博客差异大,建议按标题和段落层级先做结构化切分,再对超长段落二次递归切分,这样比纯字符切靠谱。另外bge-large-zh对长文本确实会稀释语义,我试过512以上效果明显下滑,你可以试试把max_token限制在300-400,重叠设个50-80就够了。判断好坏别只看top1准不准,我习惯跑一批测试集看召回
这坑我趟过,中间层做用户映射确实是最稳的解法,但别在业务逻辑里硬编码,直接用Redis缓存token和userid的绑定关系,几十个人并发完全扛得住。另外建议看看wecom-sidecar这个开源项目,它把OAuth2.0和MCP协议桥接做了现成实现,省得自己造轮子。还有个小坑是企微的jsapi_ticket更新频率,记得做定时刷新,不然高峰期突然失效很尴尬。 其实MCP自带的认证对内部工具够用
之前搞soft prompt也踩过这个坑,大概率不是缓存的事,GPT-2的forward里对输入embedding做了detach,你查一下transformers源码,past_key_values那块不会断梯度,真正断的是word_embedding之后那个操作。可以先试试把整个embedding层替换成一个自定义的nn.Module,把可学习token和原始token拼好后再过一遍模型,顺便
这太真实了,Claude有时候就是会“好心办坏事”,改个异常处理它能顺手把函数签名都重构了。我一般会让它每次只改一个点,改完立刻跑测试,崩了就直接回滚,别让它连着一口气动多个逻辑。另外建议把关键函数用注释锁死,比如写上“不要修改此段结构”,效果会好很多。你试试把需求拆得更碎一点,每次对话只干一件事。
说实话,我试过把短期记忆存Redis,长期记忆才用向量库,混合着来比单靠RAG靠谱多了。
我之前也卡在同样的问题上,24G跑7B LoRA真的没有想象中那么宽裕。你max_length设2048确实是个大头,很多教程默认是512或1024,长序列下attention的显存占用是平方增长的,这个影响比batch size还明显。另外transformers 4.31对LLaMA的attention实现确实比较老,建议升到4.35以上,新版用flash attention能省不少,而且对L
这问题我踩过一模一样的坑。7B模型本地跑和API版其实不是同一个东西,量化后的模型对指令的遵循能力会明显下降,尤其system prompt容易被忽略。我后来是把temperature调到0.3以下,并且把上下文窗口改成4096,重复问题好了很多。另外别用太复杂的指令,直接给几个示例输出比说“简洁”管用得多,你可以试试点