论文笔记:RAG VS FINE-TUNING: PIPELINES, TRADEOFFS, AND A CASESTUDY ON AGRICULTURE

发布于:2024-03-28 ⋅ 阅读:(16) ⋅ 点赞:(0)

微软24年1月的paper

1 into

1.1 背景

  • AI在如农业等特定领域的应用仍然有限,这是由于缺乏专门的训练数据
    • 虽然AI已被用来从农业的卫星图像和传感器数据中派生见解,但技术在农民中的采用仍然缓慢
  • 尽管GPT-4和Bing是寻找信息的强大工具,但它们可能不会为有关其作物和家畜的非常具体问题的农民提供最佳解决方案
    • 这些问题通常需要了解当地条件、特定品种和最新数据,这些数据可能通过一般搜索引擎不容易获得
  • 下表比较了针对三个不同美国州的相同查询,GPT-4和一个农学专家的回答【看黄色部分】
    • 专家会提供基于特定州的特定气候和农业传统的情境化回答
    • LLMs提供的是一个通用答案,虽然正确,但不像专家答案那样对每个州都那么精确

1.2 论文思路

  • 提出了一个全面的大语言模型流程,以生成高质量的、特定于行业【如农业】的问题和答案
    • 旨在生成地理特定的答案
    • 起点是一个农业数据集,该数据集被输入到三个主要组件:问答生成、检索增强生成(RAG)和微调过程
      • 问答生成根据农业数据集中可用的信息创建问题和答案对
      • RAG使用它作为知识来源
      • 精炼生成的数据,并用其微调数个模型

2 方法

2.1 数据集收集

  • 在农业领域,这包括农业和环境政府机构、科学知识仓库以及农学考试数据库
  • 合适的时机,利用爬虫收集所需数据

2.2 PDF 信息提取

  • 从收集的文档中提取信息和文本结构对后续步骤的质量至关重要
    • 这是一个具有挑战性的任务,因为PDF的主要目的是在不同的系统中准确显示文档,而不是为了便于信息提取
    • PDF文件的底层结构【章节、子章节和相关内容】并不映射到文档的逻辑结构
    • 由于文档来自各种来源,我们观察到它们的布局和格式复杂,缺乏标准化,经常呈现出表格、图片、侧边栏和页脚的混合

  • 此步骤的主要目标是解决处理来自一系列格式化PDF文档所固有的复杂性
    • 焦点不仅在于恢复每个文件的内容,还包括其结构
      • 哪些是章节和子章节
      • 表格和图表中呈现的信息
      • 文档内的交叉引用
      • 将图片与它们的标题和描述链接起来
  • 在线上可用的多种工具能从PDF中提取信息(PDF2Text;PyPDF)
    • 缺乏以结构化方式检索内容的能力
    • 例如,pdf2text是一个开源的Python库,提供了遍历PDF页面并恢复文本信息的方法
      • 但表示章节或子章节开始的标记在检索的数据中丢失了,这阻碍了我们推理文档结构的能力
      • 表格和图形的标题也在转换中丢失了,这些有时包含了理解文档的关键信息
  • 采用了GROBID(GeneRation Of BIbliographic Data),一个专门为从PDF格式的科学文献中提取和处理数据而定制的机器学习库
    • 目标是将非结构化的PDF数据转换为TEI(Text Encoding Initiative)格式的结构化数据,有效管理大量文件
    • 不仅保留内容,还保留原始PDF的结构
      • 文档元数据(标题、作者、摘要)、章节、表格、图形引用、参考文献和内容本身

2.3 问题生成

  • 目标是生成与上下文相关的、高质量的问题,这些问题能准确反映提取文本的内容
    • ——>采用了Guidance框架
      • 首先,通过从文本中明确添加支持标签来增强可用文档的内容和结构
        • 制定了提示,以从文档的每个部分提取位置和农业主题列表(例如,如果该部分提到了作物、牲畜或疾病)
        • 让LLM模型基于从JSON文件中提取的数据回答它们
      • 接着,结合支持上下文和章节内容,提示LLM基于它们生成一组问题

2.4 回答生成(RAG)

  • RAG遵循三个步骤
    • 嵌入生成和索引构建
      • 我们使用句子Transformer从数据集中的PDF文档提取的文本块计算嵌入
      • 我们使用Facebook AI相似性搜索(FAISS),一个用于高效索引和向量相似性搜索的库,来创建嵌入的数据库
    • 检索
      • 给定一个输入问题,我们计算其嵌入并从FAISS数据库检索相关的文本块。
      • 这是通过FAISS检索工具similarity_search_with_score完成的
    • 答案生成
      • 以问题和检索到的文本块为输入,使用一个LLM模型来合成答案。
      • 将从FAISS数据库检索到的信息作为上下文提供给GPT-4,并通过自定义提示实现了特定于领域的答案生成。
      • 答案与相关问题一起正确格式化为一个JSON文件,以创建问答对。

2.5 finetune

  • 之前已经从Llama2-13b-chat和RAG生成了一个包含问题及相应答案的数据集。
  • 这一步训练了几个不同大小的基础完成模型【Open-Llama-3b、Llama2-7b和Llama2-13b】
    • 使用了8个H100 GPU和PyTorch的完全分片数据并行(FSDP)进行微调
    • 训练过程包括每个GPU喂入4个样本的微批次,并在4个微批次上累积梯度,导致每个训练步骤的有效批量大小为128个样本
    • 训练进行了4个周期,采用自动混合精度和BFloat16
    • Adam优化器
    • 基础学习率为2e-5,以及余弦学习率调度器与线性热身
  • 同时对GPT-4进行了微调
    • 考虑到GPT-4更大且更昂贵,我们的目标是评估相比于其基础训练,该模型是否会从额外知识中受益
    • ——>使用LoRA进行微调
      • 优化进行了4个周期,批量大小为256个样本,基础学习率为1e-4,并随着训练的进行而衰减。
      • 微调在七个节点上进行,每个节点有八个A100 GPU,总运行时间为1.5天。

3 主要实验结果

3.1 RAG的影响

3.2 RAG和finetune的比较

本文含有隐藏内容,请 开通VIP 后查看