随着自然语言处理 (NLP) 的快速发展,大型语言模型 (LLM) 已成为非常强大的工具,能够处理越来越多的任务。然而,一个持续的挑战是将这些通用模型应用于高度专业化的领域,例如医学文献或软件文档。
这就是检索增强微调 (RAFT) 的用武之地,这是一种可以改变特定领域 NLP 的新技术。RAFT 结合了检索增强生成 (RAG)(一种将 LLM 与外部数据源相结合的方法)和微调的优势,使模型不仅可以学习特定领域的知识,还可以学习如何准确检索和理解外部上下文以执行任务。
在本文中,我们将探索 RAFT 的内部工作原理,了解其优势,并了解这项尖端技术如何彻底改变我们处理特定领域的 NLP 任务的方式。首先,请查看一些有关 RAG 的资源,例如我们对 RAG 的介绍和RAG 的实际应用。
什么是检索增强微调 (RAFT)
检索增强微调 (RAFT) 是一种突破性的语言模 新加坡赌博数据 型方法,它结合了 RAG 和微调的优点。该技术通过增强模型理解和利用领域特定知识的能力,同时确保对不准确检索的鲁棒性,使语言模型适合特定领域。
RAFT 专为解决将 LLM 应用于专业领域的挑战而设计。在这些情况下,常识推理变得不那么重要,主要重点转向最大限度地提高针对一组预定义的特定领域文档的准确性。
理解 RAG 与微调
什么是 RAG?
检索增强生成 (RAG) 是一种通过集成从外部知识库获取相关信息的检索模块来增强语言模型的技术。
该检索模块根据输入查询获取相关文档。然后,语言模型使用此附加上下文来生成最终输出。
RAG 采用“检索和阅读”范式运行,已被证明在各种 NLP 任务中非常有效,包括语言建模和开放域问答。
然而,这些语言模型尚未经过训练以检索准确的特定领域文档,而是仅具有来自预训练的一般领域知识。
正如原始论文所述,现有的上下文检索方法相当于参加一场开卷考试,而不知道哪些文档与回答问题最相关。
要了解有关 RAG 的更多信息,请查看如何将 RAG 与 GPT 和 Milvus 一起使用来执行问答。
什么是微调?
微调是一种广泛采用的方法,用于将预训练的 LLM 调整为下游任务。此过程涉及在特定于任务的数据上进一步训练模型,使其能够学习模式并与所需的输出格式保持一致。
微调已在各种 NLP 应用中被证明是成功的,例如摘要、问答和对话生成。然而,传统的微调方法可能难以利用外部领域特定知识或在推理过程中处理不完美的检索。
用与之前类似的比喻来说,微调就像在考试期间记住文件并回答问题而不参考它们。这种方法的问题在于微调成本高昂,并且微调后的知识可能会过时。此外,这些微调方法的响应速度不如基于 RAG 的方法。
要了解有关微调的更多信息,请参阅这里有关微调 LLM 的入门指南。
为什么不两者兼而有之?将 RAG 和微调与 RAFT 结合起来
RAFT 背后的直觉
RAFT 认识到现有方法的局限性,旨在结合 RAG 和微调的优势。通过在微调过程中纳入特定领域的文档,RAFT 使模型能够学习特定于目标领域的模式,同时增强其理解和有效利用外部环境的能力。
从高层次上讲,在 RAFT 中,训练数据包括问题、文档(相关和不相关的)以及从相关文档生成的相应思路链式答案。模型经过训练,可以根据这些提供的文档(包括不包含相关信息的干扰文档)回答问题。这种方法教会模型识别相关信息并确定其优先级,同时忽略不相关的内容。
RAFT 的关键组件
让我们更深入地了解检索增强微调的工作原理。RAFT 提出了一种新方法来准备微调数据以训练域内 RAG 应答模型。在 RAFT 中,训练数据集中的每个数据点都包含:
一个问题(Q)
一组文档(Dk),分为两种类型:
“Oracle”文档 — 包含问题答案的文档。每个问题可以有多个 oracle 文档。
“干扰性”文档——不包含与回答问题相关的信息的文档。
思路链式答案(A*):从 Oracle 文档中生成的答案,包含详细的推理过程。
在 RAFT 微调训练数据集中,每个问题都与一组文档配对,其中一些包含答案,一些不包含答案,以及思路链式答案。这种结构对于训练模型在得出答案时区分有用和不相关的信息特别有用。
为了进一步增强模型的学习能力,RAFT 训练数据集包含多种问题类型:
包含 Oracle 和 Distractor 文档的问题:一定比例的 𝑃 问题将同时包含 oracle 和 Distractor 文档。这有助于模型学习识别和优先处理相关信息。
什么是 RAFT?结合 RAG 和微调,让 LLM 适应专业领域
-
- Posts: 485
- Joined: Mon Dec 23, 2024 4:58 am