【论文阅读】ChipNeMo中的领域适配检索模型

前面先总体学习了《ChipNeMo: Domain-Adapted LLMs for Chip Design》。然后发现文章中还有细节需要继续学习,前一篇看了领域适配分词,今天接着看领域数据微调的预训练检索模型。

领域适配检索模型

众所周知,LLM 可以生成不准确的文本,即所谓的幻觉,尽管这种现象尚不完全清楚,但我们仍然必须减轻幻觉,因为在工程助理聊天机器人等环境中准确性至关重要。文章建议利用检索增强生成(RAG)方法。RAG 试图从数据库中检索相关段落,并将其与问题一起包含在提示中,这可以让 LLM 提供更准确的答案。文章发现,对 RAG 使用领域适配语言模型可以显著提高特定领域的问题的答案质量。此外,文章还观察到,使用适量的领域特定训练数据微调现成的无监督预训练检索模型,检索命中率有了显著提高,可以显著提高检索准确性。

具体来说,使用特定领域的数据微调的 ChipNeMo 检索模型,与预先训练的最先进的检索器相比,检索器命中率提高了 30%,从而提高了 RAG 响应的整体质量。

下图显示了领域适配 RAG 实现图。对比通用的问答系统,检索模型和语言模型都经过领域适配后,可以显著提升性能。
在这里插入图片描述
具体方法,使用 Tevatron 框架自动生成 3000 个特定领域的样本,通过微调e5_small_unsupervised模型创建领域适配检索模型。

即使微调检索模型带来了显著的收益,但事实仍然是,检索仍然难以处理不直接映射到文档语料库中的段落或需要更多段落中不存在的上下文的查询。不幸的是,这些查询也更能代表工程师在实际情况下提出的查询。将检索与领域适配语言模型相结合是解决此问题的一种方法。

检索模型的样本生成和微调

手动生成训练样本非常耗费精力,因此文章选择实施一个自动生成样本的过程。由于使用对比学习来微调检索模型,因此每个样本都需要一组正面段落和负面段落,尤其是硬负段落(hard negatives),以最大限度地提高准确性。
“hard negatives” 是指在使用对比学习(contrastive learning)进行检索模型微调时,那些与查询(query)相关性不高,但仍然被模型错误地认为是相关(即被错误的标记为正样本)的文档。这些文档对于训练模型来说比较难以正确分类,因此被称为 “hard negatives”。 “hard” 这个词是为了强调这些负样本的难度和对模型训练的挑战性。
在这里插入图片描述
上图展示了用于检索模型训练的样本生成过程,具体步骤包括:

  1. 随机选择文档段落:从文档语料库中随机选择一个段落。

  2. 生成有效查询:使用语言模型(如Vicuna)根据选定的段落生成一个有效的查询。

  3. 检索潜在的负样本:使用现有的检索模型(如Sentence Transformer)根据生成的查询从文档语料库中检索出 top-N 个段落,这些段落是潜在的硬负样本。

  4. 筛选正样本:由于检索到的段落中可能包含与查询真正相关的正样本,使用相同的语言模型来过滤出这些正样本。

  5. 补充负样本:如果过滤后的负样本数量不足,通过从语料库中随机选择其他段落来补充负样本。

这个过程的目的是通过自动生成的方式来创建用于训练检索模型的样本集,其中包括正样本和负样本。在对比学习中,模型需要学习如何将查询与正确的正样本关联起来,同时将错误的负样本区分开来。通过这种方式,检索模型能够更好地理解文档内容和查询之间的相关性,从而提高检索的准确性。

在检索任务中,“hard negatives” 的重要性在于它们提供了模型需要克服的挑战,帮助模型学习更精确的匹配和区分能力。这对于提高检索系统在面对复杂查询和大型文档库时的性能至关重要。

上述方法中的语言模型和检索模型也可以使用LLaMA2 和 BM25等商业上可行的模型。

RAG和工程助理聊天机器人

文章创建了一个基准来评估设计聊天助手的性能,该助手使用 RAG 方法。该基准测试包括三类 88 个问题:架构/设计/验证规范(Specs)、测试平台回归文档(Testbench)和构建基础架构文档(Build)。对于每个问题,都会指定黄金答案以及设计文档中包含答案相关知识的段落。这些问题由设计人员根据一组设计文档手动创建,作为检索的数据存储。它包括大约 1.8K 个文档,这些文档被分割成 67K 个段落,每个段落约 512 个字符。
针对每个类别,将领域适配检索模型与 Sentence Transformer和e5_small_unsupervised 进行比较。每个模型从数据存储中获取其前 8 个段落。

如下图所示,领域适配模型的性能比原始 e5_small_unsupervised 模型好 2 倍,比Sentence Transformer好 30%。
在这里插入图片描述
“规范”类别中的查询直接派生自文档中的段落,因此它们的答案通常很好地包含在简洁的段落中,并清楚地解决了查询。另一方面,Testbench 和 Build 类别的查询不是直接从段落中派生的,因此它们的答案在获取的段落中通常不那么明显,并且需要更多的上下文。这在很大程度上导致了类别之间检索质量的差异。
在这里插入图片描述
图7:对不同模型的人工评估。“仅模型”表示不带 RAG 的结果。RAG(命中)/(未命中)仅包括检索到的段落命中/未命中理想上下文的问题,RAG(平均)包括所有问题

文章对多种 ChipNeMo 模型和 LLaMA2 模型进行了评估,包括带或不带 RAG的情况。然后由人类评估人员在 7分制Likert量表上对结果进行评分,如图 7 所示。重点包括:

■ChipNeMo-70B-Steer 在所有类别中都优于 GPT-4,包括 RAG 未命中和命中。

■ChipNeMo-70B-Steer 在仅模型评估和 RAG 评估中的表现分别优于类似尺寸的 LLaMA2-70b-Chat 3.31和1.81分。

文章的结果表明,RAG显著提高了模型的评估得分。RAG 将 ChipNeMo-70B-Steer、GPT-4 和 LLaMA2-70b-Chat 分别提高了 0.56、1.68 和 2.05。即使 RAG 未命中,分数通常也高于不使用检索。包含相关的域内上下文仍然提高了性能,因为检索不是严格意义上的二元结果。此外,虽然 ChipNeMo-70B-SFT 通过传统的监督微调大幅优于 GPT4,但应用 SteerLM 方法导致聊天机器人评分进一步提高。

文章还研究了RAG对生成EDA脚本的影响。检索到的数据包括与问题相关的特定 API 以及 API 的描述。这有助于提高“简单”和“中等”难度基准测试的准确性,这些基准测试在很大程度上取决于 API 知识。在“高等”基准测试中,与非RAG模型相比,精度有所下降。这展示了将现有检索技术与非自然语言任务(如代码生成)耦合的困难。虽然各种各样的检索技术已被证明适用于自然语言任务,但专注于检索增强代码生成的进展相对较少。这增强了领域适配语言模型的重要性,特别是在数据集中,没有足够的高质量示例和解释来方便地应用检索。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值