AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LLM知识增强:RAG&微调?微软给出部分答案
发布日期:2024-03-30 09:44:16 浏览次数: 2613 来源:AI闲谈


一、引言

LLM(Large Lanuage Model) 具有非常强大的能力,然而并非是完美的,当我们想进一步精进 LLM 的能力时也有很多手段,比如 Prompt Engineering、微调、RAG 等,OpenAI 曾在 Devday 中介绍如何在这些技术手段中选择及权衡的宝贵见解,是个很不错的参考(A Survey of Techniques for Maximizing LLM Performance)。

这里我们介绍另一个工作,微软团队基于农业场景对微调和 RAG 的相关实验、对比,也是个不错的参考。

对应的论文为:[2401.08406] RAG vs Fine-tuning: Pipelines, Tradeoffs, and a Case Study on Agriculture

RAG 相关综述可以参考之前的文章:检索增强生成(RAG)综述

二、摘要 & 结论(速读版本)

2.1 摘要

当开发人员在构建 LLM 应用时,有两种常见的合并专有或特定领域数据的方案:检索增强生成(RAG)和微调(Fine-Tuning)。RAG 使用外部数据增强提示,而微调则将额外的知识合并到模型本身中,然而这两种方法的优缺点尚不清楚。

本文中,作者有以下贡献:

  • 提出了一种微调和 RAG 的流程,并针对多种流行的 LLM(LLaMA-2 13B、GPT-3.5 和 GPT-4)介绍了两者的权衡。作者构建的管道有多个阶段组成,包括:从 PDF 中提取信息、生成问题和答案、微调以及利用 GPT-4 评估结果。

  • 也提出了评估 RAG 和微调等不同阶段性能的指标

  • 基于农业数据集进行深入研究,结果显示提出的数据集生成管道在捕获特定地理知识方面的有效性,以及 RAG 和微调的定量和定性优势。

2.2 结论

本文研究旨在建立评估 LLM 在解决农业复杂问题方面的能力的基线,通过评估使用 RAG 或/和微调时的表现,该研究为了解农业领域 LLM 的优势和局限性提供了宝贵见解,如下图 Table 23 所示:

  • RAG 可以有效提高 LLM 的准确性,在数据域上下文相关的情况下非常有效。

  • 创建 Embedding 的初始化成本很低,这使得 RAG 变的非常有吸引力,然而其会增加输入提示的大小,而且往往输出 Token 更长且难以控制。

  •  微调能提供精确、简洁的输出,并且容易实现。它提供了学习特定领域新技能的机会,然而根据数据微调需要大量工作,初始化成本比较高。不过其输入 Prompt 更小,处理也更加高效。

此外,作者还演示了如何利用结构化文档以及利用 GPT-4 和 RAG 为特定领域生成相关问题和答案。作者的实验表明,单独生成问题和答案可以提高 Token 的使用效率,从而为问答对的每个组成部分使用不同的模型或方法提供了可能性,还提供了一系列的评估指标。

最后,在实验中,不管是 RAG,还是微调,GPT-4 始终优于其他模型,但其微调和推理成本也不可忽视,需要综合考虑。

总之,RAG 和微调都是有效的技术,但它们的适用性将取决于具体应用、数据集性质和大小等,以及可用的模型,通常也需要综合考虑。

三、方案

3.1 概述

如下图 Figure 1 所示,整个 Pipeline 包括如下几个主要部分:

  • 数据收集

  • 数据提取

  • 问题和答案生成

  • RAG

  • 微调

  • GPT-4 评估

3.2 数据收集

整个 Pipeline 最开始的部分为数据集构建,收集各种领域内的高质量数据,就可以进一步生成问题和答案,为完善模型以产生更精确和相关的响应奠定基础。在这个步骤中,寻求收集感兴趣主题的高质量、权威信息的数据源。例如在农业方面,包括农业和环境政府机构、科学知识库和农艺考试数据库。

确定权威来源后,下一步就是信息的获取,可以使用网络抓取工具,比如 Scrapy 和 BeautifulSoup 来解析网站,发现所有可用的文档并下载相应文档

作者使用了美国、巴西和印度的数据来评估微调和 RAG:

  • 美国:收集了美国 44 个州超过 23k 的 PDF,包含 50M Tokens;此外,选择华盛顿州的 573 个文件,2M Token 用于评估。

  • 巴西:使用 “500 Questions 500 Answers - Embrapa/SCT” 数据集。

  • 印度

    • Farmer advisory (KVK Q&A portal):包含 2015-2022 年间总共 100,000 个问题,每个记录都包含:生长季节、作物类型、问题类型、问题、答案、的确和时间戳等。作者使用 Azure 翻译服务将其翻译为英语。

    • Vikaspedia:Vikaspedia 门户网站提供了有关农业各个方面和主题的信息,也是一个有用的知识来源。

3.3 PDF 信息提取

从收集的文档中提取信息和文本结构对后续步骤的质量至关重要。然而,这是一项很有挑战性的任务,因为 PDF 的目的是在不同的系统中准确显示文档,而不是为了方便地提取信息。PDF 文档的底层结构不会映射到文档的逻辑结构。此外,来自不同数据源的文档的布局和格式各不一样,缺乏标准,此外也会包含表格、图像、侧边栏和页脚等。

考虑到以上因素,这一阶段的主要目标就是从一系列格式化 PDF 文档中有效地提取数据,可以利用强大的文本提取工具和采用先进自然语言处理技术的机器学习算法来实现。重点在于:恢复每个文件的内容,同时恢复其结构。除此之外,识别什么是章节,什么是小节,解析表格和图表中显示的信息,识别文档中的交叉引用,以及将图像与其标题和描述联系起来等,也很有帮助。通过检索文档的组织结构,可以对信息进行分组,对表格中存在的数值数据进行推理,并为问答生成阶段提供更一致的文本片段。

有很多类似的从 PDF 中提取信息的工具,但往往缺乏以结构化方式检索内容的能力,比如 pdf2text 可以从 PDF 中提取信息,但表示章节等信息的标记会丢失,阻碍对文档结构信息推理的能力。表格和图表的标题也会在转换中丢失

考虑到以上因素,作者采用 GROBID(GeneRation Of Bibliographic Data),这是一个专门用于从 PDF 格式的科学文献中提取和处理数据的机器学习库。使用 GROBID,在大量的科学文章语料库上进行训练,能够识别各种文献元素并提取相关的书目数据。如下图 Listing 2 所示为从 PDF 提取的信息的示例:


3.4 问题生成

这一步骤的目标是生成基于上下文的高质量问题,能准确反应提取文本的内容,其重点是能处理自然语言固有的复杂性和可变性。为此,作者采用 Guidance 框架(https://github.com/guidance-ai/guidance/tree/main),其主要优势在于能对输入和输出的结构组成提供精准控制,从而增强语言模型生成响应的整体效率。这种程度的控制使输出不仅更加精确,而且表现出增强的连贯性和上下文相关性。该框架能够将生成、提示和逻辑控制合并到一个单一的统一流程中,这与语言模型文本处理的固有机制非常相似。此外,Guidance 可以通过特定于上下文的提示来指导语言模型,有助于提高生成文本的语义相关性。

如下图 Listing 3 所示,作者制定了提示,以提取文档每一部分中提到的位置和农艺主题的列表,并要求 LLM 模型根据从 JSON 文件中提取到的数据回答这些问题:


如下图 Listing 4 是一个促使 LLM 生成一组问题的示例,其首先包括一个 system 提示,指导 LLM 根据文档内容制定与农业主题相关的问题;而 User 提示包含了少量示例,以及用于生成的内容和上下文,通过这种设置,LLM 会在文档的每个部分生成一组 5 到 15 个问题。

3.5 答案生成

作者采用检索增强生成(RAG)来创建高质量的答案。RAG 在处理大型和复杂的数据集时特别有用,可以有效地恢复与查询相关的信息并使用它来增强生成过程。RAG 的具体过程就不再赘述,相关综述可参考之前的文章,这里简述一下作者的方案:

  • Embedding 生成和索引构建:将 PDF 提取的信息划分为 Chunk,然后使用 sentence transformers 对每个 Chunk 提取 embedding,之后使用 FAISS 构建索引。

  • 检索:给定一个输入问题,使用 sentence transformers 提取对应的 embedding,然后使用 embedding 在 FAISS 中检索相关文档。

  • 答案生成:将检索的 Chunk 和问题一起输入 GPT-4,使其生成 Q&A 对。

3.6 微调

为了优化模型的性能,作者在 8 个 H100 GPU 上采用 Pytorch 的 FSDP 进行微调(较小模型)。采用自动混合精度训练,共训练了 4 个 Epoch。同时,作者也使用了不同的基础模型,以评估模型的影响。对于 GPT-4 模型,作者在 7 个节点上进行训练,每个节点 8 个 A100 GPU,总共运行时间为 1.5 天。 

四、指标

本节的主要目的是创建一套全面的指标,旨在指导问答生成过程的质量评估,特别是微调和 RAG 方法。

4.1 问题评估

研究人员通常采用自动评估和人工评估结合的方法。自动评估,如 ROUGE 和 BLEU 的评分可以提供对所生成问题质量的一些见解,而人工评估可以帮助评估更主观的方面,如相关性、新颖性和流畅性。相关评估指标主要评估问题的如下特性:

  • 相关性(Relevance):使用 GPT-4 对问题打分,1-5 分,5 分表示农民会问的问题,1 分表示不会问的问题。

  • 全局相关性(Global Relevance):同样使用 GPT-4 打分 1-5,为了在不考虑任何上下文的情况下从农民的角度衡量生成的问题的信息量。

  • 覆盖(Coverage):为了衡量是否可以直接从提供的上下文中提取答案,得分越高,表明可以更可靠地从上下文中提取答案。

  • 重叠(Overlap):为了评估生成的问题与源文本/部分之间的语义相似性,使用 KL 散度作为衡量标准。

  • 多样性(Diversity):主要是衡量生成的各种问题的多样性,可以将 Word Mover’s Distance(WMD)作为衡量指标。最后会得到一个距离矩阵,对非对角线的元素求均值,均值越小,表示问题之间的相似性越大,多样性越差。

  • 详细程度(Details):通过评估每个问题和答案中的 Token 数目来评估生成的问题和答案的详细程度。

  • 流畅度(Fluency):使用 GPT-4 的流畅度指标来评估问题的流利度和连贯性。

4.2 答案评估

LLM 本身就是与人类表现保持高度一致,因此最近也有很多工作使用 LLM 来评估。本文中,作者使用 AzureML 模型来评估有或没有上下文的问题的答案,包括以下指标:

  • 连贯性(Coherence):在给定上下文的情况下,比较 Ground Truth 和预测之间的连贯性。

  • 相关性(Relevance):衡量答案在多大程度上根据上下文解决了问题。

  • 有根据(Groundedness):衡量答案是否遵从上下文信息中的逻辑。

  • 完整度(Completion):答案中 Token 数目。

4.3 模型评估

评估微调后的 LLM 也是个有挑战的任务,因为人工评估成本很高,而且非专家可能很难确定技术答案的正确性。同样的,作者使用 GPT-4 作为评估器,为了衡量生成响应的方差,每次都会提示 GPT-4 五次。涉及的评估指标有:

  • 指导评估(Evaluation with Guideline):针对每个 Ground Truth 对,GPT-4 都会被提示生成一个评估指南,列出正确答案应包含的内容,然后提示 GPT-4 根据每个答案是否符合评估指南中的标准来对答案进行打分。

  • 简洁(Succinctness):作者创建了一个评分表,描述简洁和冗长的答案可能包含的内容,然后根据评分表、标准答案和生成答案进行评估。

  • 正确性(Correctness):作者同样创建了一个评分表,包含描述完整、部分完整或不正确答案应该包含的内容,然后根据这些内容进行评估。

五、实验

实验部分的主要目的是对各种模型及其在本文的农业场景下的 RAG 或微调的性能进行全面评估和分析,可以帮助识别和理解不同模型和技术的优缺点,从而为未来的发展奠定基础。

5.1 问题和答案质量

在下面的实验中,作者使用三个 LLM,即 GPT-3、GPT-3.5 和 GPT-4 来评估生成的问答对的质量。

5.1.1 上下文研究

如下图 Table 12 所示,这些问答对是基于不同方式生成的:

  • 无上下文(No context):Prompt 中不包含任何特定信息。

  • 上下文(Context):Prompt 中包含文档的来源:位置和州。

  • 外部上下文(External context):Prompt 中包含之前获取到的上下文。

评估结果如下图 Table 14 所示:

  • 无上下文(No context):GPT-4 获得了最高的覆盖率和提示大小,表明可以覆盖更多文本部分,但会生成更多冗长问题。然而,所有模型具有相似的多样性、重叠度和流畅性。

  • 上下文(Context):GPT-4 保持最高的覆盖率,但是在多样性和重叠度方面三个模型表现都类似。

  • 外部上下文(External context):同样 GPT-4 具有最高的覆盖率和提示大小,所有模型具有相似的多样性和重叠度,GPT-4 在相关性和流畅度方面略有优势。

5.1.2 模型用于指标计算

作者同样基于 GPT-3.5 和 GPT-4 评估了问题质量的相关指标,GPT-4 在覆盖率和多样性上更好,但是在重叠率、相关性上稍差,流畅度上两个模型相当:

然而,GPT-3.5 和 GPT-4 两个模型的速度差异很大,使用 Azure OpenAI 时,gpt-35-turbo 和 gpt-35-turbo-16k 每分钟生成 240k 到 300k Token,而 GPT-4 和 GPT-4-32k 只能生成 20k 到 80k,因此大部分情况作者也选择使用 GPT-3.5 计算,而模型评估指标使用 GPT-4 计算。

5.1.3 联合和独立生成

作者同样探索了单独生成问题和答案而不是一起生成的好处。主要优点是单独生成时可以使用更少的 Token,在上下文长度有限时非常有用。单独生成时具有比较好的覆盖率和多样性,但联合生成的方式在重叠的和相关性方面更好:

5.2 检索消融实验

如下图所示,作者进一步探索了影响检索质量的因素:

  • 如左图 Table 16 所示,随着 k 的增加,召回也相应的增加,当 k=3 是,可以在不显著增加输入提示大小的情况下获得 80% 以上的召回。

  • 如右图 Table 17 所示,随着索引中文档数的增加,相应的 top-3 的召回也会降低,不过从 573 个文档增加到 3888 个文档,依然可以保持 75% 的召回。

5.3 微调

作者在多个模型上评估了微调的性能,两个基础模型 LLaMA-13B-Chat 和 Vicuna-13B-v1.5-16k,可以获得计算效率和性能的平衡;此外作者还使用 GPT-4 进行了评估,可以获得相应的上限。

5.3.1 指导评估

如下图所示,在基线场景中,GPT-4+RAG 方式获得最好的效果,得分 80%,Vicuna 和 LLaMA-2-Chat 13 B 分别为 79% 和 75%。经过微调后,GPT-4 的性能有所提升,达到了 81%,而 LLaMA-2 13B 只有 68%,进一步加上 RAG 后,GPT-4 达到了 86%,获得最优效果:

5.3.2 简洁度

作者还进一步评估了回答的简洁性。如下图 Table 19 所示,可以看出,RAG 会使回答更加简洁,在没有微调时,GPT-4 + RAG 获得最简洁的结果,并且微调也没有更进一步简洁:

5.3.3 正确性

如下图 Table 20 所示,这些模型并不能始终如一地提供问题的完整答案。Vicuna 通过引入 RAG,完全正确答案从 28% 提升到 56%,GPT-4 也从 36% 提升到了 60%。GPT-4 经微调也可以从 36% 提升到 45%,再加上 RAG 可以进一步提升到 61%。

5.4 知识发现

作者研究的主要目的是探索微调帮助 GPT-4 学习新知识的潜力,这对于应用研究至关重要。为了测试这一点,作者在美国 50 个州选择了至少三个州相似的问题。作者根据 Embedding 计算余弦相似度,并确定 1000 个此类问题的列表。然后将这些问题从训练集删除,使用微调和 RAG + 微调方式来评估 GPT-4 是否可以根据不同州的相似性来学习新知识。

结果如下图 Table 22 所示,GPT-4 只能学习 47% 的新知识,然而在微调的帮助下,可以显著提高到 72%,使用 RAG 后进一步提升到 74%。

值得注意的是,这项研究有很多潜在的应用场景,比如,假设需要评估特定害虫或者疾病对玉米的影响,某些情况下可能无法获取特定区域的信息,但是可以获得类似地区的信息,这依然会很有帮助。

六、参考链接

  1. https://www.youtube.com/watch?v=ahnGLM-RC1Y

  2. https://arxiv.org/abs/2401.08406

  3. https://github.com/guidance-ai/guidance/tree/main


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询