Sergio De Simone和明知山在文章里聊了个事儿,讲的是Dropbox是怎么用大语言模型去帮Dash系统标注的。Dash这个东西,其实就是大家常说的检索增强生成系统,核心就是要从海量的文档里把相关内容找出来喂给大模型。像那种企业级的搜索库,里头可能有几百万甚至几十亿份文档呢,Dash只能把检索到的一小撮子文档传给大模型看。所以说,排序质量好不好、用来训练排序用的相关性标注数据准不准,那可是直接决定了最终答案靠不靠谱的大事。 既然标注数据这么重要,那怎么高效搞出来呢?Dash这边用的是监督学习的路子,也就是根据文档能不能满足查询需求来给查询和文档对打分。但这事儿也难办啊,因为要弄出一大票高质量的数据成本太高、太慢、还不太一致。为了把这个痛点解决掉,Dropbox想出了一个挺聪明的法子:利用大语言模型来大规模生成相关性判断。这种方法不仅便宜、一致,还能轻松对付超大的文档集。 不过话说回来,大模型也不是万能的呀。所以在用它的判断结果去训练之前,还得先测测它到底行不行。这时候就需要一套既有自动化又有人工监督的流程了。这个过程挺有意思,叫作“人工校准的大语言模型标注”。简单来说就是先让人手动标一点高质量的数据集用来校准模型评估器;然后再让大模型去生成几十万甚至上百万条标注,把人力工作量一下子放大100倍。 但有个关键的地方得说清楚:大模型不能直接取代排序系统啊!如果真的在查询的时候直接用它去排顺序,那速度肯定慢得不行,而且还受上下文长度的限制。所以这时候就得做评估了。评估的方法就是把模型给的分数跟人给的判断放在一起比一比,测试的对象是那些训练集里没出现过的查询和文档对子集。 这中间还有个让人头疼的问题得关注——最难修正的错误。说白了就是模型判断的跟用户行为不一样的情况。比如用户明明点了那个模型评分低的文档或者跳过了评分高的那个文档。这种情况能提供很强的学习信号呢。 再说说那个上下文的问题。比如在Dropbox内部,“diet sprite”指的是一款内部性能工具,而不是饮料。为了解决这类术语的理解问题,研究人员就让大语言模型先做个额外检索、获取上下文信息并且理解内部术语。这么一来标注的准确性就大大提高了。 最后呢,Meyerzon也就是Dmitriy Meyerzon这位Dropbox的首席工程师提到,根据在Dash上的实践经验看,这种方法真能让大语言模型在大规模场景下持续放大人工判断的作用,成为优化RAG系统的有效手段。