这道题问的是线上数据变化快怎么让大模型跟上,其实本质就是问动态[[RAG]]的落地。你不能指望模型自己学,因为[[SFT]]跟不上分钟级的变化,真正能打的方案是外挂一个实时更新的知识库,让模型每次回答都去查最新的数据。
先说边界。很多人一上来就想着微调,但微调适合的是知识体系稳定的场景,比如内部合规文档三个月不变一次。而像外卖配送这种业务,商户状态、运力、价格分分钟在变,用微调等于刻舟求剑。这时候RAG才是正解。但是静态RAG也不行,固定切分、全量重建索引跟不上节奏。所以真正落地往往是动态RAG加[[混合检索]],关键词和向量两条路一起走,新数据优先排序。
举个例子,外卖高峰期某个商户突然爆单,运力不足,系统需要实时判断是否要暂停接单。如果模型只靠训练时的知识,它不知道这个商户刚爆单了。但用动态RAG,数据层通过Kafka或者Flink流式接入,增量构建向量索引,分钟级内新状态就能被检索到。检索层多路召回,关键词匹配商户ID,向量匹配相似场景的历史数据,再根据时间戳加权,新数据排前面。融合层把检索结果注入Prompt,标注数据来源时间,让模型感知时效性。这样模型就能回答出“当前该商户运力不足,建议暂停接单”。
但这里有个坑。高并发写入时,向量索引的图结构更新很麻烦。你不能每来一条新数据就重建整个[[HNSW]]图,那延迟扛不住。我会把追加和删除分开处理:追加直接插入,删除用软删除加后台异步重建,用双缓冲影子索引保障实时性。另外,外卖场景里地理位置是硬过滤条件,检索时必须先按经纬度圈定范围,再在圈内做向量相似度,否则召回的商户在隔壁区就没意义。冷启动也是个问题,新商户没有向量积累,我会用结构化字段兜底,比如品类、价格区间先匹配,等积累足够点击数据后再建向量。
还有反馈闭环。用户点击或转化数据回流,动态调整索引权重和切分策略。比如某个商户的向量一直不被点击,就降低它的权重,或者重新切分它的文档。
不过说到底,动态RAG的瓶颈往往不在模型,而在检索系统的吞吐和一致性。如果数据更新频率超过每秒几千次,索引重建的代价会很高。这时候我会考虑把更新做成批量合并,而不是逐条写入。
所以我的倾向是,能用检索解决的问题就不要用训练。检索成本低、迭代快,而且可解释性好。但前提是你的数据管道要够稳,能扛住高并发和实时性要求。如果做不到,再好的RAG也是白搭。