首页 > 教程攻略 > ai资讯 >LLM知识增强:RAG&微调?微软给出部分答案

LLM知识增强:RAG&微调?微软给出部分答案

来源:互联网 时间:2026-07-11 13:52:54

在构建LLM应用的过程中,如何让模型真正掌握特定领域知识,一直是开发者们反复权衡的问题。常见的两条路径是检索增强生成(RAG)和微调(Fine-Tuning)。前者靠外部数据实时补充上下文,后者则把知识直接“写进”模型参数。OpenAI在Devday上分享过一套技术选型框架,算是很不错的参考。而微软团队在农业场景下做的RAG与微调的对比实验,则提供了另一份扎实的实证参考。

对应的论文是《RAG vs Fine-tuning: Pipelines, Tradeoffs, and a Case Study on Agriculture》(arXiv:2401.08406)。如果对RAG的综述感兴趣,也可以翻翻之前整理的那篇。

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

2.1 摘要

开发者在构建LLM应用时,常常需要在两种专有/领域数据融合方案之间做出选择:RAG(用外部数据增强提示)和微调(把额外知识合并到模型本身)。目前,这两种方法的优劣边界尚不清晰。

本文的贡献包括三方面:

  • 提出了微调和RAG的完整流程,并针对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所示,包含以下几个主要部分:

  • 数据收集
  • 数据提取
  • 问题和答案生成
  • RAG
  • 微调
  • GPT-4评估

3.2 数据收集

管线第一步是构建数据集。收集领域内的高质量数据后,就能进一步生成问题和答案,为后续优化模型、产生更精准和相关的响应奠定基础。在这一步中,关键是寻找感兴趣主题的高质量、权威信息源。例如在农业方面,包括农业和环境政府机构、科学知识库和农艺考试数据库。

确定权威来源后,下一步是信息获取。可以使用网络抓取工具(如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)虽然能提取信息,但往往缺乏以结构化方式检索内容的能力——章节标记丢失,表格和图表标题也会在转换中丢失。

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


3.4 问题生成

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

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


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

3.5 答案生成

作者采用检索增强生成(RAG)来创建高质量答案。RAG在处理大型和复杂数据集时特别有用,能够有效恢复与查询相关的信息并用其增强生成过程。具体过程不再赘述,这里简述作者方案:

  • Embedding生成和索引构建

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

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

    :将检索的Chunk和问题一起输入GPT-4,生成问答对。

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作为评估器,每次提示五次以衡量生成响应的方差。评估指标包括:

  • 指导评估(Evaluation with Guideline)

    :针对每个Ground Truth对,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所示:

  • 无上下文

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

    :GPT-4保持最高覆盖率,多样性和重叠度方面三个模型表现类似。
  • 外部上下文

    :同样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 13B分别为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

相关下载