腾讯:将LLM排序能力迁移至BERT

📖标题:Best Practices for Distilling Large Language Models into BERT for Web Search Ranking

🌐来源:arXiv, 2411.04539

🌟摘要

🔸最近的研究强调了大型语言模型(LLM)作为零样本相关性排序者的巨大潜力。这些方法主要利用快速学习,通过生成潜在文档的排名列表来评估查询和文档之间的相关性。尽管LLM有前景,但与LLM相关的巨额成本对其在商业搜索系统中的直接实施构成了重大挑战。

🔸为了克服这一障碍并充分利用LLM在文本排名方面的能力,我们探索了将LLM的排名专业知识转移到类似于BERT的更紧凑模型的技术,使用排名损失来部署资源密集度较低的模型。具体来说,我们通过持续预训练来增强LLM的训练,以查询为输入,以点击的标题和摘要为输出。然后,我们使用排名损失对LLM进行监督微调,将最后一个标记指定为整个句子的代表。鉴于自回归语言模型的固有特性,只有最后一个标记可以封装所有前面的标记。此外,我们引入了混合的逐点和边际MSE损失,将排名知识从LLM转移到更小的模型,如BERT。这种方法为具有严格资源约束的环境创建了一个可行的解决方案。

🔸离线和在线评估都证实了我们方法的有效性,截至2024年2月,我们的模型已成功集成到商业网络搜索引擎中。

🛎️文章简介

🔸研究问题:如何将大语言模型(LLM)的能力有效地转移到BERT模型中,以提升网页搜索排名的性能?

🔸主要贡献:论文提出了一个名为DisRanker的蒸馏排名框架,结合了LLM和BERT的优势,通过领域特定的继续预训练和混合损失函数来提升搜索排名的效果。

📝重点思路

🔺相关工作

🔸LLM文本排名:越来越多地用于搜索引擎中的相关性排名任务,主要分为即时方法和监督微调技术,但继续预训练来和排名损失来的优化研究较少。

🔸文本排序的知识蒸馏:集中于最小化教师和学生的软目标分布之间的差异,总体目标是压缩模型大小并减少总推理成本,其中包括内存需求和计算开销。

🔺论文方案

🔸领域继续预训练:使用搜索数据进行继续预训练,使模型更好地理解查询和文档之间的关系。具体来说,使用查询作为输入,生成标题和摘要作为输出,从而增强模型对相关性的建模能力。

🔸监督微调:在LLM上使用排名损失进行监督微调,使用标记表示查询和文档对,通过密集层将最后一层的表示映射到一个标量值,以优化排名性能。

🔸知识蒸馏:采用混合的点对点均方误差(Point-MSE)和边际均方误差(Margin-MSE)损失函数,将LLM的预测分数和排序能力转移到BERT模型中,以提高BERT在排名任务中的表现。

🔎分析总结

🔸离线和在线评估的有效性:DisRanker在离线和在线评估中都表现出色,显著提升了搜索排名的效果。

🔸混合损失函数的有效性:使用混合的Point-MSE和Margin-MSE损失函数比单独使用其中一种损失函数在PNR和NDCG指标上都有更好的表现。

🔸在线A/B测试结果:DisRanker在实际搜索系统中的部署效果显著,页面点击率(PageCTR)、平均点击后停留时间(post-click dwell time)和用户点击率(UserCTR)都有显著提升。

🔸模型运行效率的提升:通过实验比较了LLM教师模型和BERT学生模型的吞吐量和成本节省,结果显示BERT学生模型在运行效率上有显著优势。

🔸分数分布分析:通过分析LLM教师模型和BERT学生模型的输出分数分布,发现混合损失函数有助于防止学生模型过拟合,同时保持排序的相对顺序。

💡个人观点

论文的核心是通过领域特定的继续预训练和混合损失函数强化排序能力,并通过蒸馏转移到小模型中。

🧩附录

相关推荐
AI大模型学徒21 分钟前
NLP基础(九)_N-gram模型
人工智能·自然语言处理·nlp·n-gram
8***B25 分钟前
Java自然语言处理
java·开发语言·自然语言处理
极客BIM工作室30 分钟前
理清 BERT 中 [CLS] 向量的核心逻辑:训练双向更新与推理作用不矛盾
人工智能·机器学习·bert
IT·小灰灰37 分钟前
基于Python的机器学习/数据分析环境搭建完全指南
开发语言·人工智能·python·算法·机器学习·数据分析
Keep_Trying_Go1 小时前
LightningCLI教程 + 视频讲解
人工智能·pytorch·语言模型·大模型·多模态·lightning
1***s6321 小时前
Java语音识别开发
人工智能·语音识别
模型启动机1 小时前
DeepSeek OCR vs Qwen-3 VL vs Mistral OCR:谁更胜一筹?
人工智能·ai·大模型·ocr·deepseek
Chef_Chen1 小时前
数据科学每日总结--Day26--数据挖掘
人工智能·数据挖掘