CoddLLM:赋能大型语言模型进行数据分析

大型语言模型(LLMs)有望通过简化数据发现和SQL查询合成等任务的自然语言交互来革新数据分析。这项工作是朝着开发专为数据分析应用设计的基础模型迈出的关键第一步。为了推进这一愿景,我们提出了一种新的用于LLM后训练的数据配方,以增强其对数据管理的理解并使其能够处理复杂的现实世界分析任务。具体而言,我们的创新方法包括一种可扩展的合成数据生成方法,能够创建涵盖数据表示和操作的广泛主题。此外,我们引入了两个无缝连接表格和文本的新任务。我们展示了这些任务可以增强模型对模式创建和自然语言与表格数据之间细微转换的理解。利用这种数据配方,我们后训练了一个名为CoddLLM的新基础模型,基于Mistral-NeMo-12B。为了评估LLM在数据分析领域的语言理解和推理能力,我们贡献了AnalyticsMMLU基准测试,其中包含数千个多选题,涵盖了数据库、数据分析和机器学习领域。我们的重点是数据发现,已经贡献了三个全面的基准测试,涵盖了数据库和数据湖场景。CoddLLM不仅表现出色,而且设定了新标准,在八个数据集上实现了最高的平均准确率。它在AnalyticsMMLU上超过了GPT-3.5-Turbo,并且在表选择任务中比GPT-4o高出12.1%,在Text-to-SQL任务中相对于基线模型平均提高了24.9%。

大型语言模型承诺将为数据分析带来新一轮创新浪潮 [4, 13, 40, 77]。借助LLMs,用户将无需花费时间在杂乱的数据湖中查找相关数据、集成各种来源或准备进一步使用的数据。一旦识别并准备好数据,用户应该能够通过自然语言提问来解决问题,而无需导航复杂的数据库模式或特定领域的查询语言。实现这些目标的一种方法是通过提示工程改进LLM在数据相关任务上的表现 [23, 40]。然而,这种方法需要仔细选择针对特定任务的最佳指令和少量示例,尚未证明足够有效,往往产生错误答案 [78]。在相关研究中,如Table-GPT [33]、TableLlama [72]、TableLLM [61] 和 TableGPT2 [49] 等模型已通过特定指令进行了微调,以处理各种表格理解和数据整理任务。尽管取得了进展,但这些工作并未充分解决需要深入理解业务概念及其映射到数据库模式和数据集的任务。现有研究主要集中在基于单个或一对表格的任务,未探索跨多个表格的关系,这需要强大的数据建模和集成能力。

为了实现上述愿景,我们认为LLMs还必须能够处理像数据湖中经常看到的混乱数据集合。为此,LLMs需要掌握广泛的数据管理概念。这包括理解基本的表格表示法、如何将业务概念表示为复杂数据库模式或数据湖中的互连数据集集合、如何通过视图或其他计算形式从其他表格创建表格以及数据整理和集成的原则 [11]。一个关键挑战是像GPT-4 [1] 和 Llama [53] 这样的模型主要是在从网络数据中提取的一般知识上进行训练的,这限制了它们接触可用于学习基本数据管理概念的特定训练数据的机会。因此,当前的LLMs在涉及大型数据湖中多个互连数据集的相关数据搜索或需要从不同来源整合数据以评估假设的任务中表现不佳。

这项工作朝着开发在更广泛的数据分析任务上表现良好的基础模型迈出了第一步。我们介绍了一种新的数据配方,旨在通过精心策划的训练语料库增强任何LLM对“混乱”的数据管理现实的理解。更具体地说,我们使用精心策划的训练语料库对CoddLLM进行了后训练,这是一个基于Mistral-NeMo-Instruct的120亿参数基础模型。首先,我们在大量自动生成的指令-响应对上微调CoddLLM,以增强领域特定知识。接下来,我们通过贡献两个新的表格-文本对齐任务来提高其数据理解和问题解决能力,然后在专注于数据发现和真实世界SQL代码生成的小规模任务特定示例上进行指令微调。我们的CoddLLM显著优于基线模型,并在各种任务中表现出竞争力,包括三个新策划的AnalyticsMMLU数据集、三个表发现数据集和两个公共Text-to-SQL任务。

*在AWS完成的工作。

本文的主要贡献如下:

  • 这项工作首次策划了一个专为数据分析设计的大规模指令训练语料库(见表1)。该训练语料库包含超过10亿个标记和200万个输入输出示例。
  • 我们提出了一种可扩展的合成数据生成方法,从网络语料库中提取并合成指令数据。该方法将响应基于参考文档,以增强多样性并避免幻觉。
  • 我们贡献了两个评估任务及其相关数据集。第一个名为AnalyticsMMLU,用于测量数据分析问题中的大规模多任务语言理解。第二个是WikiPage-TS,是一个包含复杂多表格问题的人工标注表选择基准,涉及文本和表格数据。
  • 我们使用策划的训练语料库后训练了一个新的120亿参数基础模型CoddLLM。在AnalyticsMMLU评估中,它超过了GPT-3.5-Turbo、Mixtral-8x7B和Mistral-Small。对于表选择任务,它比GPT-4o高出12.1%。在Text-to-SQL任务中,它相对于基线模型平均提高了24.9%。
    2 CoddLLM概述
    在本节中,我们将概述如何策划数据以训练和评估CoddLLM用于分析任务的方法。
    可扩展的数据策划方法。开发专家级的LLM用于数据分析具有挑战性,因为缺乏高质量、多样化的监督数据集。人工标注的指令数据集规模有限且获取成本高,而纯粹的合成数据通常包含事实错误且缺乏多样性。为了解决这些问题,我们采用了一种提取-合成策略,利用富含分析相关知识和用例的大规模网络语料库。该方法涉及识别自然发生的指令数据,例如来自Stack Overflow的问题-答案对,并通过基于内容的指令-响应对增强文档。经过内容蒸馏后,我们移除了纯文本文档,形成最终的数据集。值得注意的是,通过在生成过程中将响应基于参考文档,我们可以减少幻觉并增加数据集的多样性。实证研究表明,使用指令感知数据进行后训练比使用纯文本更能提高模型性能,因为它使模型更好地与特定领域的查询和响应对齐 [9, 10]。
    新训练任务。为了提高模型对自然语言和表格数据之间关系的理解,我们设计了两个表格和文本对齐任务。第一个任务是Text-to-Schema,即根据文本场景描述生成表模式,这使得模型能够理解不同的信息片段如何关联并表达为各种业务实体。第二个任务是Row-to-Text,旨在为表中的每一行生成文本描述。掌握此任务对于增强模型将结构化信息转换为人类可读格式及反之的能力至关重要,这对于生成报告、摘要和数据动机等任务尤为关键。


大规模训练语料库。策划的数据包含大约200万个示例和10亿个训练标记。我们将这个训练语料库组织成不同的“章节”,就像一本结构良好的教科书。第1章涵盖了数据管理和分析方面的知识,包括数据建模概念、分析工具的使用说明、机器学习技术等。我们通过从FineWeb-Edu数据集 [44] 中筛选相关内容并应用提取-合成方法自动生成指令对来准备这一章。第2章侧重于前面提到的基础模式级和行级表格和文本对齐任务。第3章针对具体的分析任务,特别是那些需要从多个来源识别和整合数据的任务。我们选择了表选择和Text-to-SQL。表选择的目标是从一个或多个数据集中找出必要的信息来回答用户指定的问题。Text-to-SQL是一个成熟的任务,涉及将自然语言指令转换为可执行的SQL查询。
新评估任务和数据集。为了评估基础模型的性能,我们引入了AnalyticsMMLU,这是一个包含三个数据集的新基准,旨在评估模型在分析领域的语言理解和推理能力。该基准由数千个多选题组成,涵盖了数据库管理、数据分析和机器学习领域。我们从现有教科书中收集问题,并使用Claude-3.5-Sonnet合成额外的问题-答案对。所有答案都经过人工审查和修订。此外,我们为表选择(TS)任务准备了三个新数据集。该任务的关键挑战在于模型需要确定答案中所需的表数量。三个数据集覆盖了不同的设置:BIRD-TS– 来自BIRD [32],候选表来自单个数据库,具有结构良好的模式;Open-WikiTable-TS– 来自Open-WikiTable [27],候选表在语义上相似;WikiPage-TS– 一个新注释的基准,从包含多个表格和相同主题文本描述的单个维基页面中抽取输入。对于WikiPage-TS,我们旨在提出需要多跳推理的问题,即模型必须从多个表格中整合信息或执行顺序逻辑步骤以得出正确答案。
2.1 评估结果总结
我们在三个方面评估了CoddLLM的表现:知识测试、数据选择和SQL代码生成。总体而言,CoddLLM在多项指标上显著优于基线Mistral-NeMo模型,并与其他领先模型竞争激烈。

  • CoddLLM实现了最高的整体得分0.697,成为表现最佳的模型。
  • 在AnalyticsMMLU评估中:CoddLLM超越了大多数其他模型,包括GPT-3.5 Turbo和Mixtral-8x7B,虽然相对GPT-4o略低5.8%。
  • 对于表选择任务,CoddLLM比GPT-4o高出12.1%,成为该任务最强大的模型。
  • 在Text-to-SQL评估中,CoddLLM实现了平均执行准确率0.576,超过所有其他模型,并相对于基线模型平均提高了24.9%。
    3 基础知识
    自回归语言建模。语言提供了一种灵活的方式,以标记序列的形式表示任务、数据、输入和输出。自回归语言建模是LLM如GPT [6, 46] 的基础。该方法预测给定标记序列的概率,每个预测依赖于序列中的前序元素。
    形式上,给定一个语言标记序列 = (1, 2, · · · , ),自回归语言建模将序列的联合分布分解为一系列条件概率的乘积:() = Î =1 ( |1, …, −1),其中 (1 |0) = (1) 是边际概率。通过因子分解分布和参数化模型(例如Transformers [54]),可以通过最小化负对数似然损失来优化参数化分布:
    基于查询的数据分析任务。本文聚焦于基于查询的数据分析任务,表示为 {, , , }。给定任务描述、待分析的数据和自然语言查询,目标是预测答案,即 (|, , )。例如,我们可以将表选择任务的输入文本格式化为:“查找表格,表模式,谁是唯一的运动员…”。然后,期望模型返回可以回答问题的表名,例如 “Final_1, Athletics_1”。
    监督指令微调是一种用于通过标注数据集增强LLM在特定任务上表现的重要微调过程。监督指令微调的重点是使模型适应遵循明确的指令并生成任务特定的输出。此过程涉及在输入-输出对上训练模型,其中输入通常是自然语言指令或提示,输出是预期的响应或补全。监督指令微调的损失函数仅计算“输出”标记以优化执行特定任务和理解指令的能力。
    4 训练语料库创建
    我们策划了一个庞大且多样的分析特定训练语料库,有三个具体目标:(1) 确保涵盖各种数据分析知识概念;(2) 提高模型对数据库模式和表内容的理解;(3) 纳入任务特定的输入-输出示例以增强模型解决实际分析问题的能力。
    训练语料库的构建类似于教科书,每个数据组件作为独立章节呈现。第1章包含从网络爬取的数据中过滤出的大量知识,这些知识元素被格式化为输入-输出对以提高模型的学习效率。第2章在此基础上扩展,引入两个新任务:1) Text-to-Schema,涉及根据提供的场景描述设计模式;2) Row-to-Text,为给定表中的每一行生成文本描述。这些任务增强了模型在自然语言文本和表格数据模态之间的理解和转换能力。第3章包括Table Selection和Text-to-SQL,作为代表性的下游分析任务。
    4.1 第1章 - 分析特定知识
    训练领域特定的LLM需要大量的相关知识语料库。然而,现有的数据分析优质数据集仍然稀缺。最近的研究探讨了使用种子数据提示LLM以扩展领域特定数据集的方法 [3, 63, 77]。虽然这种方法显示出潜力,但缺乏适当参考的合成数据往往存在显著偏差,缺乏多样性,并容易产生幻觉 [66]。为了解决这些挑战,我们使用三步管道策划大规模分析相关的指令-响应对(见图 1):
  1. 过滤:从大规模网络资源中识别并提取与数据分析相关的文档,如财务分析、销售预测和代码相关数据;
  2. 指令创建:通过提取和合成将纯文本文档转换为问题-答案对;
  3. 评估:评估提取的QA对以消除低分样本并提高数据集质量。

4.1.1 步骤1:过滤分析特定文档。我们使用FineWeb-Edu数据集 [36] 作为数据源,该数据集包含1.3万亿个标记的教育质量网页。由于数据集内容涵盖多个领域,手动识别与数据分析相关的文档面临重大挑战。为了解决这个问题,我们开发了一种基于模型的过滤方法来提取相关文档。此过程包括三个阶段:a) 使用LLM作为文档评分器,通过利用LLM评估文档相关性以获得标签;b) 训练内容分类器,基于评分样本开发监督模型;c) 部署训练好的过滤器,通过应用分类器提取与数据分析相关的文档。我们现在详细说明这些阶段。

LLM作为文档评分器。训练文档分类器需要正样本(与数据分析高度相关的高质量文档)和负样本(低质量或相关性较低的文档)。受LLM-as-a-judge在自动文本评估中的有效性启发 [16],我们从FineWeb-Edu数据集中随机抽取约0.1%的样本,并使用Claude-3.5-Sonnet对每个文档的相关性进行评分,评分范围为1到5。

以下示例展示了Claude-3.5-Sonnet如何根据文本质量和与数据分析的相关性评估文档。文档简要解释了SQL语句的结构和语法。评分者给出评分为5,表明与SQL和数据分析高度相关。

训练文档分类器。获得标注数据后,我们训练了一个基于Transformer的文本分类模型。考虑到大多数文档相当长——有些超过2,000个标记,我们在LongFormer [5] 上构建了分类器,支持最大上下文长度为4,096个标记。变换器根据标注分数(1到5)将文档分类为五个类别。训练后,分类器在测试集上达到了78%的准确率和87%的召回率,显示了其在从原始语料库中过滤分析相关内容的有效性。

在 FineWeb-Edu 上部署训练好的过滤器。然后,我们将训练好的分类器应用于FineWeb-Edu数据集,选择评分为4或更高的文档。此过滤过程将数据集缩减为其原始大小的4.9%,包含超过580万份文档和19亿个标记。以下段落展示了来自FineWeb-Edu的一个示例文档,提供了关于“外键”这一数据库中关键概念的清晰准确介绍。由于其与数据分析的相关性,它被评为“评分=5”并包含在第1章中。

4.1.2 步骤2:指令提取/合成。最近的研究表明,指令数据在LLM后训练中非常有效,表明LLM在基于指令-响应格式的数据上训练时表现更好,而不是在具有相同语义含义的纯文本上训练 [9]。受从原始文档中提取数学内容的提取和精炼策略的启发 [66],我们提出了提取和合成策略。对于每个过滤后的文档,我们要么使用预定义规则提取原生问题-答案对,要么通过将它们基于文档并确保明确引用内容生成合成的问题-答案对。目的是通过内容蒸馏构建合成的指令版本,然后删除纯文本文档以形成最终数据集。

提取。我们首先使用正则表达式识别潜在的问题-答案对指示符——“[Qq]uestion:” 和 “[Aa]nswer:”——对收集的580万份分析相关文档进行分类。其中,约2,800份文档同时包含问题和答案关键词。我们利用Claude-3.5-Sonnet从这些文档中提取问题-答案对,总共获得了46,000个QA对,因为单个文档可能包含多个QA对。在两名人工标注员对300个样本进行试点研究后,我们观察到97%的提取对被认为是有效的,因此可以用于我们的训练语料库。

合成。对于无法提取显式问题-答案对的剩余文档,我们提示Claude-3.5-Sonnet生成不同难度级别的合成问题-答案对,确保生成相关且高质量的QA对。具体来说,我们要求生成的QA对满足以下标准:1) 不同难度:包括从基本常识到高级数据相关主题的问题;2) 依赖于上下文:确保简单问题依赖于通用知识,而复杂问题则需要提供的上下文才能回答;3) 多样化格式:使用超出”How”和”What”之外的不同问题类型,并鼓励尽可能详细的长问题和答案。通过此QA生成流程,我们获得了约880万个QA对。以下是合成的问题-答案对和原始文档内容的示例,其中原始文档是一篇关于Excel中预测操作产生的两种输出的段落。

4.1.3 步骤3:评估。在获得所有QA对后,我们使用广泛使用的LLM-as-a-Judge,Prometheus-eval [25],对每个QA对进行两轮筛选,进一步提高第1章数据的质量。在第一轮筛选中,我们关注问题和答案的完整性,确保问题文本中包含所有到达答案所需的信息。在第二轮筛选中,我们进一步评估答案的准确性,确保只有正确的问题-答案对保留在训练数据集中。最终,我们策划了一个包含880万个指令-响应对的数据集,总共有0.9亿个训练标记。

4.2 第2章 - 表格和文本对齐

在本书的这一章中,我们设计了两个任务,旨在增强LLM理解和处理表格和文本数据的能力。这些任务旨在促进模型在文本和结构化数据模态之间的转换。

4.2.1 Text-to-Schema。该任务的目标是根据输入的数据库或信息系统(例如信用卡交易系统)的描述生成表模式。在该任务上进行训练可以使模型理解不同信息在结构化表示中的相互关系。这里的假设是,通过学习设计模式,模型还将发展出解释输入模式的能力 [37]。

获取场景描述和模式对的主要挑战在于它们在一个数据库或文档中共同出现的频率较低。为了解决这个问题,我们通过将结构良好的模式翻译成多个场景描述来生成合成对。数据生成步骤从SchemaPile [12] 中的221,171个模式中过滤出4,399个高质量模式开始。我们使用Claude-3.5-Sonnet评估数据质量。分类后,为每个模式生成三种不同的场景描述。这些生成的描述通过Prometheus-eval [25] 根据标准“场景描述是否简洁且相关?”进行评估。只有得分高于四的描述才保留。结果,我们生成了4,800个示例(参见表 1)。

4.2.2 Row-to-Text。给定表格和上下文数据,目标是为表中的某一行生成详细的文本描述。通过对大量Row-to-Text示例进行模型训练,可以提高其将结构化表格数据转换为有意义、流畅且准确的文本的能力。以下是一个来自体育领域的输入输出示例。输入包括任务指令和表中的一行,以及页面标题、部分标题和说明。输出是详细的文本描述。

数据生成过程的关键思想是将现实世界的表格作为输入,利用LLM生成行描述,然后应用过滤过程以保留高分示例。我们使用来自开放维基表格数据集 [27] 的数万个WikiTables。Claude-3.5-Sonnet用于为这些表格中的每一行生成描述。为了确保这些描述的质量和准确性,我们使用蕴涵分类器过滤表格,只保留所有行描述被分类为蕴涵或中立的表格。这种过滤过程保证每个生成的描述与原始表格条目一致。总体而言,我们生成了46,300个Row-to-Text对和1090万个标记(参见表 1 以获取更多数据统计信息)。

4.3 第3章 - 数据分析任务

第3章介绍了精心策划的训练示例,旨在增强模型在下游分析任务中的性能,重点关注实际应用。我们优先考虑两个关键任务:表选择和Text-to-SQL转换。这些基础任务的选择是为了为我们的模型提供对数据集的全面理解,从而增强其执行更复杂分析任务的能力。

4.3.1 表选择。从大型数据集中选择相关数据是组织至今仍面临的长期挑战 [21]。在这个任务中,我们关注基于问题的搜索,目标是从一个或多个数据集中识别包含必要信息以回答用户指定问题的数据。数据可以是结构化的或非结构化的,通常需要从多个来源进行整合。在这种情况下,识别数据集之间的关系可以显著提高任务完成的准确性和效率。

为了创建训练示例,我们使用了BIRD和Open-WikiTable的训练集,并将其转换为适用于表选择任务的数据集。第5.2节提供了任务示例的详细信息。

利用BIRD进行表选择。BIRD数据集 [32] 最初设计用于Text-to-SQL任务,其中每个示例包括一个问题、来自数据库的多个表和相应的黄金标准SQL查询。我们从其训练集中选择了8,954个问题,并将同一数据库中的所有表作为潜在候选。我们仅使用模式来突出表间关系,而不使用任何表内容。我们从其关联的黄金标准SQL查询中识别出真实的表。

利用Open-WikiTable进行表选择。Open-WikiTable [27] 数据集最初设计用于开放域表格问答。每个问题配有一个对应的参考黄金标准表。对于每个问题,我们使用BM25 [47],一种基于术语的稀疏编码排序算法,从24,680个WikiTables池中检索十个表作为候选表集。这些检索到的表根据与查询的相关性进行排名,每个表在某种程度上与问题具有基于术语的相似性。然而,检索到的表之间可能不直接相关。我们保留了训练集中的8,484个问题,并确保检索到的十个表中包含黄金标准表。我们为WikiTables提供了元数据,包括页面标题、部分标题和说明(如果可用)。为了确保处理大型表格的可扩展性,我们仅向LLM展示每个表格的三个采样行。结果,我们生成了46.3万个Row-to-Text对和1090万个标记(参见表 1 获取更多数据统计信息)。

4.4 模型架构

CoddLLM基于Mistral-NeMo-Instruct构建,后者是一个具有120亿参数的仅解码器Transformer,具体规格如下:

  • 128k词汇量
  • 旋转位置嵌入(RoPE)[50]
  • 40层Transformer [54]
  • 5,120个令牌维度和14,436个隐藏维度
  • 128个头维度
  • 32个注意力头和8个分组查询注意力 [2]
  • SwiGAU激活 [48]
    4.5 CoddLLM训练
    我们使用Nvidia NeMo框架训练CoddLLM,利用其在数据和模型并行技术方面的高效分布式训练能力。
    我们首先使用第1章(见第4.1)节中的输入-输出对开始监督指令微调过程。通过关注数据分析的基本知识,模型可以建立对数据分析领域关键概念、术语和推理模式的深刻理解。这种基础知识对于模型在应对更复杂、特定任务的情景之前至关重要。我们对第1章的数据进行了一个周期的训练。正如Hernandez等人指出[18],重复的标记可能会对性能产生负面影响。
    接下来,我们继续使用第2章和第3章的数据进行监督微调,以提高模型的泛化能力,使其能够更有效地将基础知识应用于各种下游任务。为了确保数据集之间的一致性,我们将这些章节的格式标准化,使其与统一的数据结构对齐。这种标准化确保微调后的模型可以统一处理数据,无论原始章节格式如何,从而简化训练过程并提高其效率。
    训练配置。我们使用AdamW [35] 优化器,其中 1 = 0.9,2 = 0.98,= 10^-8 ,权重衰减为0.01。我们将最大学习率设为 max = 1e-6,最小学习率为 min = 0,并使用余弦学习率调度器,以便模型可以根据标注数据进行精细调整。
    如何选择CoddLLM检查点?我们对第1章的数据进行了一个周期的训练,然后对第2章和第3章的数据进行了两个周期的训练,同时混合了10%均匀选择的第1章数据。最终端点被选为CoddLLM,用于后续所有实验的评估。
    5 评估任务和实验
    我们在各种分析任务中评估CoddLLM的推理能力,主要关注领域知识测试、表选择和Text-to-SQL任务。
    LLM基线。我们将CoddLLM与五个开源LLM进行比较,这些LLM均来自Hugging Face:Mistral-7B-Instruct-v0.3Codestral-22B-v0.1Mistral-Small-Instruct-2409Mixtral-8x7B-Instruct-v0.1,以及基线模型Mistral-Nemo-Instruct-2407。我们使用已经通过广泛通用任务微调过的指令调整版本作为所有基线模型。同时,我们包括三个闭源的OpenAI模型:GPT-3.5-Turbo,GPT-4o-mini和GPT-4o,建立了强大的基线。此外,我们在适当时包括一些特定任务的基线。除非特别说明,我们报告CoddLLM和所有基线在零样本设置下的结果,推理期间不提供演示示例。
    评估数据集。表 2 概述了按三大任务分类的评估基准:AnalyticsMMLU、表选择和Text-to-SQL。列出了用于评估的数据集、每个数据集中的示例数量、所用度量、数据来源以及是否包含在训练语料库中(即内部分布或外部分布)。我们将在下一节中详细介绍数据生成过程。
    表2:所有评估基准的概述。“Exec. Acc.”表示执行准确率。“MCQ”表示多项选择题。我们新引入了三个 AnalyticsMMLU 数据集和一个人工标注的 WikiPage-TS 数据集。我们的训练语料库不包含这四个数据集的任何子集,因此我们将其视为“未见过”的数据集。


推理采样超参数。我们尝试了不同的采样超参数:温度为0.0、0.7和1.0,top_p值为0.99和0.95。较低的温度产生更可预测的响应,而较高的温度鼓励创造性。top_p值用于定义生成过程中考虑的令牌范围,较高的值会扩展此范围。经过调整后,我们为所有后续实验固定了超参数。对于AnalyticsMMLU、表选择和Text-to-SQL任务,我们分别设置温度为0.0、0.7、1.0,top_p值为0.99、0.95、1.0。
推理和模型服务。我们使用vLLM模型服务框架[28]进行推理。首先,我们将保存的Nemo格式模型检查点转换为Huggingface格式,使用转换工具包。然后,我们使用vLLM部署Huggingface格式的模型。
结果概述。表 3 展示了在八个数据集上的准确率结果,以及每个任务的平均准确率分数。值得注意的是,CoddLLM以120亿参数的优势,在所有三个类别的AnalyticsMMLU中始终优于其他开源LLM,包括Mistral-7B、Codestral-22B、Mistral-Small-22B 和 Mixtral-8x7B。此外,它超过了GPT-3.5-Turbo,但在绝对准确率上分别比GPT-4o-mini和GPT-4o低1.5%和4.7%。与基线Mistral-NeMo模型相比,CoddLLM在MCQ-DA上相对提升了12.2%,在MCD-DB上提升了8.5%,在MCQ-ML上提升了2.2%。这表明在第 4.1. 节中策划的各种分析相关QA任务上对LLM进行微调的有效性。
我们进一步进行了案例研究,以了解为什么CoddLLM能超越基线模型。较小的模型如Mistral-NeMo 表3:AnalyticsMMLU、表选择和Text-to-SQL任务上的准确率得分(%)。“未见过”的数据集是指在CoddLLM后训练期间未观察到的训练集。“FE”(格式错误)表示输出答案格式不符合提示指令。带有“(FE)”标签的结果包括额外的答案模板以提高提取召回率。“LCE”(长上下文错误)表示模型无法理解较长的输入上下文。“CLE”(上下文长度超出)表示输入超出了模型的最大上下文长度。


通常需要更多专门知识来回答特定的知识密集型问题。例如,Mistral-NeMo对以下示例给出了不正确的答案和解释。然而,在使用第1章的数据进行训练后,CoddLLM获得了更多关于E-R图的知识,从而能够提供正确答案。


5.2 表选择
表选择旨在从候选表池中识别出最相关的表格子集,以回答特定的自然语言问题。理解数据集如何互补或矛盾有助于用户更好地确定哪些数据集提供了最相关的信息。例如,相关数据集可能共享共同属性或源自相似领域,组合时可以提供更丰富的见解。相反,识别数据集之间的差异或冗余可以帮助避免分析中的错误和误解。
数据集。我们创建了三个评估基准,以评估不同场景下的表选择(TS)。前两个数据集来自BIRD [32] 和Open-WikiTable [27]。第三个数据集是我们新标注的基准,包含文本


具体来说,BIRD-TS提供了一个受控环境,用于评估模型在有组织的关系数据上的性能。Open-WikiTable-TS测试模型识别和利用类似表格之间细微差别的能力。WikiPage-TS测试模型整合同一主题内多个来源信息的能力。表 4 描述了这些数据集的统计信息。我们标记BIRD-TS和Open-WikiTable-TS为已见数据集,因为训练语料库包含了BIRD和Open-WikiTable训练集中的示例,如第 4.3.1. 节所述。WikiPage-TS是一个主要用于评估的新数据集。
BIRD-TS:具有精心设计模式的候选表。我们采用类似于第 4.3.1 节中描述的方法处理BIRD的开发数据,从中选择了总共1,534个问题。对于每个问题,我们使用同数据库中的所有表作为候选表,仅依赖于精心设计的模式,而不使用表内容。真实表由相应的黄金标准SQL查询得出。需要注意的是,该数据集中的一些问题需要
多个表才能生成正确答案,强调了对关系数据库设计及表间依赖性的深入理解。
Open-WikiTable-TS:具有元数据和样本行的类似候选表。对于Open-WikiTable,我们应用了类似于第 4.3.1, 节中描述的方法,这次使用的是测试集。我们从测试集中获得了5,134个问题,确保通过BM25检索到十个候选表,包括黄金标准表。我们还将WikiTable的元数据(如页面标题、部分标题和说明)作为模型输入,如果可用的话。为了增强处理大表的可扩展性,我们限制每张表只向LLM展示三个采样行。需要注意的是,该数据集中的每个问题只需要一个黄金标准表。因此,我们比较了两种基于检索的方法:BM25 [47] 和基于编码器的方法,BGE-M3 [8]。这两种方法学习表格和问题的嵌入,并使用余弦相似度计算相关性得分。具有最高相似度得分的表被选为最终表。
人工标注 WikiPage-TS:相同主题的文本和表格。现有的Text-to-SQL和多表问答数据集 [41] 在生成编程语言或文本答案时考虑了表连接。然而,这些数据集假设键-外键约束(即连接关系)已经提供。在数据湖中,这一假设并不总是成立。此外,在这些环境中更常见的是遇到文本和表格数据。为了反映这种现实情况,我们引入了一个新的手工标注数据集,该数据集包含一个包含多个表格和描述的维基百科页面数据,涵盖了同一主题。
维基百科页面上的数据包含各种复杂的场景,要求模型具备一般知识和强大的数据解读能力。例如,在图 2, 中的问题是:在1956年夏季奥运会上,有多少名女子100米运动员达到了或打破了奥运会纪录?要回答这个问题,我们首先从Record_1表中识别出现有的奥运会纪录,即11.5秒。第二步是在比赛的不同阶段(预赛、半决赛和决赛)按时间顺序分析运动员的成绩,以确定他们是否达到了或打破了记录。在这个例子中,模型需要认识到Heat_2_1、Heat_3_1和Heat_4_1是按时间顺序发生的。在Heat_2_1中,Marlene跑了11.5秒,与奥运会纪录持平。在Heat_3_1中,Betty跑了11.4秒,打破了奥运会纪录。到Heat_4_1时,尽管Heather也跑了11.5秒,但奥运会纪录已被降低到11.4秒,因此Heather没有达到新的纪录。正确答案是2名运动员。如果模型无法掌握匹配或打破记录的定义、热身赛的时间顺序或比赛中任何时候都可能打破记录的事实,它将难以提供正确答案。数据集创建和注释步骤如下:

  1. 第一步。我们下载了大约100个与体育领域相关的维基百科页面,并将其从HTML转换为纯文本。表格数据使用pandas.read_html().to_markdown()转换为markdown格式。我们根据部分名称加上唯一标识符命名每个表格。我们展平了嵌套表格

图2:来自 WikiPage-TS 的问题和维基页面数据样本。在这个例子中,我们需要理解 Heat_2_1Heat_3_1 和 Heat_4_1 是按时间顺序发生的。在 Heat_2_1 中,Marlene跑了11.5秒,与奥运会纪录持平。在 Heat_3_1 中,Betty跑了11.4秒,打破了奥运会纪录。到 Heat_4_1 时,尽管Heather也跑了11.5秒,但奥运会纪录已被降至11.4秒,所以Heather并未打破新纪录。答案是2名运动员。对于表选择任务,我们将所有引用的表格视为真实表格。

并省略图像数据、链接或样式元素如粗体文本、边框或颜色。

  1. 第二步。对于每个维基百科页面,我们使用Claude-3.5-Sonnet生成问题并识别回答这些问题所需的真实表格。我们提示模型创建需要多表推理的问题,确保必要信息跨越多个表格。此外,我们指示Claude-3.5-Sonnet为每个问题提供详细的逐步答案。虽然我们不显式使用这些答案,但它们作为参考,使人工标注员能够在下一步更准确地评估参考表格的正确性。
  • (3) 第三步。三位人工标注员审查并编辑示例,以确保问题的有效性和真实表格(即标签)的准确性。如果我们发现任何问题无效,我们将返回第二步重新生成问题、参考表格和答案三元组。

最终,我们为WikiPage-TS数据集标注了104个示例。平均而言,每个问题有21.6个候选表,单个维基百科页面的总标记数约为12K,远超过其他两个数据集(表 4)。

评估指标和基线。与传统数据集搜索设置不同,后者规定了要检索的表的数量,我们允许模型决定必要的表数量。我们使用准确率评分来评估性能,该评分衡量预测表集与真实表集之间的精确匹配。准确率只能是0或1。当预测集包含与真实集完全相同的表时,准确率为1。对于BIRD-TS和WikiPage-TS,真实表的数量不同,使得应用传统的嵌入式方法难以获得正确的表集。相比之下,对于Open-WikiTable-TS,每个问题只需一张表,因此我们可以使用检索到的最高分表作为预测。因此,我们包括了基于词典的检索方法,BM25 [47],和基于编码器的方法,BGE-M3 [8] 作为基线。

任务提示。我们在输入提示中包括数据信息、任务指令和问题。对于数据信息,我们使用BIRD-TS的表模式、Open-WikiTable-TS的表元数据和三个样本行,以及WikiPage-TS的整个维基百科页面。这些表示有助于为每个数据集定制提示中的数据上下文。这里,我们展示了一个来自WikiPage-TS的输入-输出示例,该示例基于“奥运会100米短跑” 维基百科页面。要获得问题的预期结果,我们首先需要从age_1表中识别出男性冠军中最年长者的姓名——即Linford Christie。然后,我们从Men_1表中定位Linford Christie赢得金牌的年份。

主要结果和分析。CoddLLM在所有数据集上表现出色。对于”已见”的BIRD-TS和Open-WikiTable-TS数据集,其中一部分示例用于训练CoddLLM,其性能分别提高了89.8%和213.7%,相较于基础Mistral-NeMo模型。此外,它在BIRD-TS上超越了顶级模型9.1%,在Open-WikiTable-TS上超越了29.3%。

我们观察到在未见过的WikiPage-TS数据集上的性能跃升,该数据集在训练阶段没有任何示例。该数据集的一个关键特征是其长输入上下文,平均每题包含12.5K个标记,有些示例甚至超过了GPT-3.5-Turbo的最大上下文长度16,385个标记。因此,GPT-3.5-Turbo在推理时遇到了上下文长度错误(CLE)。基础Mistral-Nemo模型在WikiPage-TS数据集上失败,因为它的长输入上下文和复杂问题(包括文本和表格)使其无法遵循指令并正确输出所需的XML标签”“。为了解决这个问题,我们应用了额外的答案提取技术,将整个模型输出视为表名列,并将每一行解释为单独的表名。这种方法将准确率从0提升到了0.288。然而,这个结果仍然远远落后于CoddLLM,后者实现了0.558的准确率,相对于基础模型相对提升了93.7%。标记为”LCE”的结果表示长上下文错误,意味着输出无意义。即使应用了上述答案精炼技术,结果仍接近0。

与表 5, 中基于嵌入的方法相比,BM25计算稀疏表示,BGE-M3生成密集向量,值得注意的是这些基线仅适用于Open-WikiTable-TS,因为这是唯一具有单个参考表的数据集。对于此数据集,我们使用排名最高的预测表作为最终答案。因此,我们包括了一种基于词汇的检索方法,BM25 [47],和一种基于编码器的方法,BGE-M3 [8] 作为基线。

任务提示。我们在输入提示中包含数据信息、任务指令和问题。对于数据信息,我们在BIRD-TS中使用表模式,在Open-WikiTable-TS中使用表元数据和三个样本行,在WikiPage-TS中使用整个维基百科页面。这些表示有助于为每个数据集在提示中定制数据上下文。这里,我们展示了一个来自WikiPage-TS的输入-输出示例,该示例基于 “奥运会100米短跑” 维基百科页面。要获得问题的预期结果,我们首先需要从age_1表中识别出最年长男性冠军的名字——即Linford Christie。然后,我们从Men_1表中定位Linford Christie赢得金牌的年份。

主要结果和分析。CoddLLM在所有数据集上表现出色。对于“已见”的BIRD-TS和Open-WikiTable-TS数据集,其中一部分示例用于训练CoddLLM,性能分别提高了89.8%和213.7%。此外,它在BIRD-TS上超越了顶级模型9.1%,在Open-WikiTable-TS上超越了29.3%。

我们观察到在未见过的WikiPage-TS数据集上的显著性能提升,该数据集在训练阶段没有任何示例。该数据集的一个关键特征是其长输入上下文,平均每题包含12.5K个标记,有些示例甚至超过了GPT-3.5-Turbo的最大上下文长度16,385个标记。因此,GPT-3.5-Turbo在推理时遇到了上下文长度错误(CLE)。基础Mistral-Nemo模型在WikiPage-TS数据集上失败,因为它的长输入上下文和涉及文本和表格的复杂问题使其无法遵循指令并正确输出所需的XML标签”“。为了解决这个问题,我们应用了额外的答案提取技术,将整个模型输出视为表名列,并将每一行解释为单独的表名。这种方法将准确率从0提升到了0.288。然而,这个结果仍然远远落后于CoddLLM,后者实现了0.558的准确率,相对于基础模型相对提升了93.7%。标记为”LCE”的结果表示长上下文错误,意味着输出无意义。即使应用了上述答案精炼技术,结果仍接近0。

与表 5, 中基于嵌入的方法相比,BM25计算稀疏表示,BGE-M3生成密集向量,值得注意的是这些基线仅适用于Open-WikiTable-TS,因为这是唯一具有单个参考表的数据集。对于此数据集,我们使用排名最高的预测表作为最终答案。然而,对于其他两个数据集,由于真实标签包含多个表,基于嵌入的方法无法有效处理此类情况。我们观察到CoddLLM将准确率从0.711和0.778提升至0.919,展示了更强的数据选择能力。

5.3 Text-to-SQL

数据集。我们在两个公共基准的开发集上评估模型性能,分别是BIRD [32] 和Spider [64],分别包含1,534和1,034个示例。

评估指标。我们使用执行准确率 [32] 作为主要评估指标。该指标评估预测SQL查询的执行结果是否与黄金标准SQL查询完全匹配。为了计算执行准确率,我们采用了来自BIRD代码库的评估脚本。

任务提示。在此任务中,模型扮演SQL专家角色,接收数据库模式和问题,并输出适当的SQL查询以检索回答问题所需的信息。为了公平比较模型的核心SQL生成能力,我们采用了一个标准的零样本Text-to-SQL提示,而不是通过演示、链式推理或多步推理优化以获得最大准确率。我们的零样本提示由三个主要部分组成:(1) 任务指令:初步提示介绍Text-to-SQL任务;(2) 数据:表模式,包括表名、列名、数据类型,以及适用时的领域特定知识(仅限BIRD数据集);(3) 问题:需要生成SQL语句的问题。请注意,我们在提示中不包含任何单元格样本值。下面提供了一个提示示例:

表6:不同模型变体在所有数据集上的准确率(%)。我们测试了两个版本的第1章数据:一个是原始纯文本,另一个是从其派生的指令-响应对。“Chapter1-Instructed+2+3”表示模型首先在第1章数据的指令版本上进行训练,然后在第2章和第3章数据上继续训练。

我们选择这种简单的提示,以公平比较Text-to-SQL能力,而不引入诸如多步推理之类的复杂性。正如Wretblad等人 [58] 和Kapoor等人 [22] 所指出的,这些复杂性可能会引入不必要的开销,增加推理成本,并有可能过拟合特定数据集模式。尽管如此,正如其他任务所示,CoddLLM能够有效地遵循指令,并在需要时与补充的提示工程技术结合使用。

主要结果和分析。CoddLLM在Text-to-SQL任务中表现出色,在Spider上的零样本设置中相对于GPT-4o提高了8.9%,在BIRD上使用相同提示提高了7.8%。值得注意的是,GPT-4o、GPT-3.5-Turbo、GPT-4o-mini和Mixtral-8x7B难以遵循在标签内生成SQL的格式指令。为了解决这个问题,我们应用了额外的sql代码块模板,以便在初始XML标签格式失败时提取更多答案。这使得GPT-4o在Spider上的执行准确率达到0.717,在BIRD上达到0.344。此外,CoddLLM在Spider上超越了基础Mistral-Nemo模型,提高了19.8%,在BIRD上提高了37.4%。

请注意,表 3 中的准确率分数不能直接与公共排行榜上的分数比较。我们的目标是公平评估模型生成SQL查询的核心能力,而不是优化不同数据集上的高分。我们留待未来工作探讨使用CoddLLM生成更准确的SQL查询。这包括提供上下文学习的演示 [15, 45],生成多个SQL候选并优化最佳方案 [15],鼓励链式推理 [45],以及应用模式修剪预处理方法 [51],这些都是排行榜提交中使用的方法。

值得注意的是,BIRD比Spider更具挑战性,涉及更复杂的模式,需要检索和连接多个表的查询,以及结合外部知识。我们的错误分析显示,CoddLLM通过改进使用外键关系检测和生成表连接,以及结合给定外部知识片段与表模式的能力,超越了基础模型。例如,以下BIRD数据集中的问题需要正确连接“schools”表与“frpm”(缩写名)表,使用适当的外键关系。基础模型未能完成此任务并忽略了来自给定领域知识的提示。相比之下,CoddLLM生成了正确的SQL查询:

5.4 消融研究

在本节中,我们进行消融研究以评估不同训练数据格式和章节选择的影响。表 6. 显示了不同模型变体的准确率分数。注意,CoddLLM首先在第1章数据的指令-响应对上进行训练,然后在第2章和第3章数据集上进行训练。

5.4.1 平文本文档与合成指令-响应对训练效果对比。为了检查不同数据格式的影响,我们对平文本数据应用了领域适应性持续预训练 [24],并在指令数据版本上应用了监督指令微调。这两个模型都是基于指令模型(Mistral-Nemo-Instruct)构建的,并使用交叉熵损失进行训练,以预测下一个标记。然而,在持续预训练过程中,损失是在所有标记上计算的,以学习通用的语言特征和结构。对于监督指令微调,损失仅在输出(响应)标记上计算,专注于特定任务目标。

通过比较仅在第1章数据上训练但数据格式不同的Chapter1-PlainText和Chapter1-Instructed的准确率分数,我们注意到持续预训练在指令基础模型上应用时常会降低性能。在三个AnalyticsMMLU数据集中,Chapter1-Instructed分别得分为0.681、0.732和0.714,而Chapter1-PlainText得分较低,分别为0.652、0.686和0.635。此外,在某些表选择和Text-to-SQL数据集中,Chapter1-PlainText模型完全失败,这表明在没有明确任务指导的情况下训练领域文本会削弱模型的指令跟随能力。相比之下,Chapter1-Instructed在大多数数据集中匹配或超过了基础模型,表明指令感知数据更有效地使模型与领域特定查询和答案对齐。从Chapter1-PlainText+2+3到CoddLLM(Chapter1- Instructed+2+3)的WikiPage-TS提高了超过27个百分点(从0.279到0.558),并在AnalyticsMMLU和Text-to-SQL任务上提高了几个百分点。5.4.2 第1章特定领域知识语料库的影响。通过比较基础模型和Chapter1-Instructed的准确率分数,我们观察到引入第1章数据在特定领域任务上带来了显著的提升,同时在AnalyticsMMLU上保持了相当的性能。它在表选择和Text-to-SQL任务上的准确率有所提高,即使没有特定任务的示例,这也证明了指令感知领域适应的有效性。较Chapter2+3和CoddLLM,我们得出结论,纳入来自多样化任务(第1章)的大规模指令-响应对增强了模型在广泛任务中的整体性能,如在AnalyticsMMLU上的改进所示。此外,这些指令示例并未降低模型在表选择和Text-to-SQL任务上的性能,表明其能够在不牺牲领域特定能力的情况下有效泛化。

5.4.3 第2章表格与文本对齐数据的影响。从表 6, 通过比较仅包含第1章和第3章数据的Chapter1-Instructed+3以及包含所有三个章节数据的CoddLLM,可以发现第2章的表格与文本对齐数据对于涉及结构化信息的任务至关重要。当模型补充了这种对齐数据时,以表格为中心的发现和Text-to-SQL任务的最高性能提升尤为明显。例如,加入第2章后,WikiPage-TS的准确率从0.462显著提高到0.558,显示了解释表格和文本的专门对齐数据对于模型处理更复杂的数据发现和检索任务的重要性。

6 相关工作

6.1 LLMs用于数据分析

LLMs正在革新数据管理 [56] 和分析 [77],并使各种任务(如数据发现 [23]、元数据丰富 [14, 70]、SQL查询合成 [67] 和实体匹配 [43, 74, 75] 等方面的新功能成为可能。几项研究采用了“提示工程”技术,精心优化任务指令和少量示例以解决特定任务 [23, 40, 43]。这种方法通过检索增强生成(RAG) [76] 策略进一步得到增强,该策略通过引入领域特定知识减少了幻觉,并利用向量数据库通过语义搜索功能提高了效率 [42]。基于LLM的代理不仅限于简单的自动化,还能够规划、编写代码、在外部沙箱中执行并解释结果以解决复杂的数据科学 [29, 73] 和分析挑战 [7, 20]。除了不更新模型权重而提示LLM外,特定任务微调技术也被广泛应用以

提升特定任务上的性能 [26, 74]。针对表格理解 [33, 49] 和数据整理 [69, 75] 的领域特定微调模型已被开发出来,以增强LLM在各种任务中的性能。我们提出的CoddLLM属于这一类别,但通过利用更广泛的训练任务和示例脱颖而出。它专注于理解复杂的数据关系,并专长于需要从多个来源整合数据的自然语言查询任务。

6.2 领域特定基础模型

不同于从头开始训练 [60],持续训练是构建跨不同领域的领域特定模型的常用方法,包括数学 [65]、科学 [52]、代码 [16]、金融 [60] 和医学 [59]。两种主要方法是持续领域适应预训练 [38, 62] 和指令微调 [71]。持续预训练涉及在大规模领域特定文本语料库上训练LLM。虽然这种方法丰富了模型的领域特定知识,但也可能削弱其有效遵循指令的能力 [24]。指令微调将损失应用于精心准备的答案,需要大量的输入-输出指令对。MAmmoTH2 [66] 从大规模网络语料库中提取指令-响应对以增强模型的推理能力。SciInstruct [68] 采用自省式指令注解方法为未标注的科学问题生成逐步推理。Magicoder [57] 利用开源代码片段为编码任务生成多样化的指令数据。CoddLLM也对我们的精心策划的大规模分析特定训练语料库进行了指令微调。与现有的创建指令数据的方法不同,我们利用参考文档合成了大规模高质量的指令-响应对。

7 结论及未来工作

这项工作迈出了开发专家级分析模型的第一步。我们采取的方法是策划一本“教科书”,其中包含数据,以促进监督指令微调,涵盖过去未考虑的一系列任务(如Text-to-Schema、Row-to-Text、表选择),特别是在面向表格数据或分析的基础模型上下文中。我们认为策划数据集和建立基准测试是推进下一代LLM用于数据分析的关键步骤。尽管这是一项繁琐的工作,但它至关重要。我们认为未来的研究可以集中在以下几个方面:

RAG系统和工具使用。将检索增强生成(RAG) [30] 与CoddLLM集成,以向模型注入更细粒度的上下文或额外知识是一个有前景的方向。此外,训练模型使用高级分析工具 [19, 20, 73] 对处理更复杂的任务至关重要。

改进的训练和评估基准。人工标注的WikiPage-TS基准仍处于早期阶段。虽然它已经可用于评估当前版本的CoddLLM,但该基准尚未纳入维基页面中的图像或图标数据。其次,我们可以用分步监督 [34] 标注基准以回答问题。此类标注有助于提高模型的推理能力。我们正在解决这些问题,并计划发布新的基准版本。

参考 Paper:https://arxiv.org/pdf/2502.00329

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paper易论

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值