TinySQL:一个用于机制可解释性研究的渐进式Text-to-SQL数据集

机制可解释性研究面临着在玩具任务中分析简单电路与在大型模型中发现特征之间的差距。为了弥合这一差距,我们提出将文本转换为SQL生成作为理想的研究任务,因为它结合了玩具任务的形式结构和现实世界的复杂性。我们引入了TinySQL,这是一个从基础到高级SQL操作的合成数据集,并训练了参数范围从33M到1B的模型,以建立一个全面的可解释性测试平台。我们应用了多种互补的可解释性技术,包括边缘归属修补和稀疏自动编码器,以识别支持SQL生成的最小电路和组件。我们的分析揭示了当前可解释性方法的潜力和局限性,展示了即使在相似查询之间,电路也可能有所不同。最后,我们展示了如何通过机制可解释性识别模型中的缺陷启发式方法并改进合成数据集设计。我们的工作提供了一个全面的框架来评估和推进可解释性技术,同时明确了其可靠应用的明确界限。

在机制可解释性(MI)中的电路发现方法主要集中在小型模型解决简单任务上,例如算术 (Quirke 和 Barez 2024; Nanda 等人 2023a) 和间接对象识别 (Wang 等人. 2023) 。尽管这些研究揭示了关键机制,但对玩具任务的依赖限制了跨可解释性方法的验证和比较。最近的工作已转向使用稀疏自动编码器(SAEs)进行特征发现 (Huben 等人 2023; Templeton 等人 2024) ,但在没有中间任务支持两种方法的情况下,将这些见解链接到电路级理解仍然困难。

Text-to-SQL生成提供了一个理想的中间地带,因为SQL的形式结构使其比通用语言生成更具可行性,同时仍需要自然语言理解。这使得可以在足够复杂的任务内系统地比较可解释性方法,以反映现实世界的挑战。

现有的Text-to-SQL数据集如Spider (Yu 等人. 2019) 和 WikiSQL (Zhong, Xiong, 和 Socher 2017) 对于严格的可解释性分析来说过于复杂和嘈杂。为了解决这个问题,我们引入了TinySQL,这是一个策划的数据集,可以进行受控分析,了解变压器如何学习和生成SQL查询。TinySQL 通过渐进的Text-to-SQL任务增加复杂性,隔离生成过程的关键方面,同时保持结构一致性。除了数据集外,我们还训练并发布了参数为33M、0.5B和1B的模型,为可解释性研究提供了一个全面的测试平台。

我们的分析结合了多种互补的可解释性技术来研究SQL生成。使用边缘归属修补(EAP),我们识别出支持SQL查询生成的最小电路。同时,我们的SAE分析揭示了相同的基线模型在不同任务上微调时表现出的一致模式。最后,我们的激活修补实验揭示了即使在相似查询之间识别一致机制的挑战,提供了关于当前方法局限性的见解。

本文的贡献如下:

  1. 我们引入了TinySQL,一个连接玩具任务和实际应用的结构化Text-to-SQL数据集。通过控制任务复杂度的多个维度,以及发布在TinySQL的不同子集上训练的不同大小的模型,我们为机制可解释性研究提供了一个强大的测试平台。
  2. 通过系统地应用多种可解释性方法(EAP、SAE、激活修补),我们展示了当前电路识别技术的优势和局限性。我们的分析揭示了即使在相似查询之间,电路也可能有所不同,提供了关于当前可解释性方法可靠性的关键见解。
  3. 我们展示了如何通过机制可解释性识别并去除合成数据集中的意外捷径。通过将模型行为追溯到特定的数据集特性,我们展示了一种通过可解释性发现改进合成数据集设计的实际方法。

我们的工作推进了对结构化查询处理神经网络的理解,并勾勒出了未来MI研究的路线图。通过识别局限性和突破点,我们定义了可靠应用的明确界限,并强调了需要新方法的领域。

2 背景

2.1 机制可解释性方法

早期的机制可解释性(MI)研究集中于通过精心控制的任务在小型语言模型中发现特定计算电路。这些研究确定了间接对象识别的机制 (Wang 等人 2023) 、docstring生成 (Stefaan Hex 2023) 和数字递增 (Nanda 等人 2023b) ,但由于依赖高度专业化的任务而受到限制。然而,这些调查仍然局限于提供很少自然扩展路径的高度具体任务。虽然像ACDC (Conmy 等人. 2023) 和 EAP (Syed, Rager, 和 Conmy 2023) 这样的自动化方法有助于自动化电路发现,但解释这些电路仍需要大量的手动分析。

最近使用SAEs (Huben 等人 2023; Templeton 等人 2024) 的工作已经实现了大规模模型行为分析, Marks 等人 (2024) 使用SAE特征发现了诸如主谓一致等任务的可解释电路。然而,一个关键挑战仍然存在:一旦我们理解了模型在一个上下文中的行为,下一步有意义的步骤就不清楚了,阻碍了系统的研究和模型机制理解的清晰进展。

Text-to-SQL生成为推进MI研究提供了一个独特的中间地带。该任务结合了电路分析所需的正式结构和自然语言理解的语义复杂性,使其成为连接跨规模可解释性方法的理想测试平台。

2.2 Text-to-SQL生成

Text-to-SQL是一个模型从自然语言请求生成SQL查询的任务。给定数据库模式和一个查询如“显示我所有员工工资”,模型必须生成正确的SQL查询“ SELECT salary FROM employees ”。

Text-to-SQL是MI研究中的一个进步,同时保留了严格的分析结构。每个查询都映射到单个答案,允许明确评估,不像通用代码生成。该任务还表现出系统模式,例如“有多少”映射到 COUNT ,“最高”映射到 ORDER BY DESC 。

2.3 Text-to-SQL数据集

Spider (Yu 等人. 2019) 通过多表和模式的跨域泛化建立了Text-to-SQL研究的基础。其变体探索了不同的复杂性方面: Spider-Syn (Gan 等人 2021) 通过用同义词替换模式术语测试语义理解,而 Spider-Real (Deng 等人 2020) 通过省略显式的列名更贴近自然用户查询。这些数据集共同使研究模型在合成和真实场景中的鲁棒性成为可能。

该领域从更简单的起点开始发展,例如 WikiSQL (Zhong, Xiong, 和 Socher 2017) ,它专注于来自维基百科的单表查询以实现大规模评估。最近的努力如 Gretel synthetic SQL (Meyer 等人. 2024) 和 SQL-create-context (b-mc2 2023) 已经平衡了合成数据生成与真实的查询模式,反映了社区对结合受控生成与实际应用的日益重视。

然而,这些现有数据集优先通过多样、复杂的查询训练高性能模型,而不是支持受控实验。即使是像 gretelai/synthetic_text_to_sql 这样的合成资源也缺乏机制可解释性研究所需的复杂性系统进展。这一差距促使我们开发TinySQL,它从机器学习长期使用合成数据控制任务复杂性并实现明确评估中汲取灵感。通过提供查询复杂性的仔细控制进展,同时保持一致的结构,TinySQL 桥接了以性能为重点的数据集和可解释性研究所需的受控环境之间的鸿沟。

3 TinySQL 数据集

为了实现严格的 MI 研究,我们需要能够从适合电路分析的玩具任务逐步过渡到捕捉核心Text-to- SQL 挑战的现实任务的数据集。每个级别必须提供足够的示例,用于模型训练和详细实验。TinySQL 通过两个独立轴实现这一点:SQL 命令复杂性和语言变化。

这种设计使比较分析成为可能——在不同复杂度级别上训练模型以研究基本任务处理,或检查语言变化如何影响 SQL 生成。

3.1 数据集结构

TinySQL 在两个维度上构建任务:SQL 复杂性和查询语言变化,隔离特定模型行为,同时保持一致的任务模式。

3.1.0.1 SQL 命令级别。

任务按三个级别的递增 SQL 复杂性组织:

  • CS1(基本查询) 集中于基本的 SELECT-FROM 操作。示例:“显示来自员工的工资” → SELECT salary FROM employees
  • CS2(有序查询) 引入 ORDER BY 子句。示例:“按从高到低显示员工工资” → SELECT salary FROM employees ORDER BY salary DESC
  • CS3(聚合查询) 添加聚合函数和分组。示例:“每个部门有多少员工?” → SELECT COUNT(id) FROM employees GROUP BY department
    3.1.0.2 查询语言变体
    . 对于每个命令级别,我们提供三种逐渐增加语言复杂性的变体:
  • 基础(CSx) 变体使用刚性模板,其中字段和表名称与模式完全匹配,提供了一个受控基准来研究SQL生成机制。
  • 同义词(CSx_Syn) 变体引入了查询项和模式字段之间的语义映射(例如,“earnings” 映射到 “salary”),测试模型处理语义等价的能力。这是受到基于同义词的数据集如 Spider-Syn (Gan 等人 2021) 和 ADVETA (Pi 等人. 2022) 的启发。
  • 自然(CSx_Nat) 变体允许灵活的自然语言表达,同时针对相同的SQL操作。这最接近实际使用,目前仅限于CS1查询,因为确保数据集质量存在困难。
    完整数据集包含七种任务变体( CS1/2/3 , CS1/2/3-Syn 和 CS1-Nat ),每种包含通过系统数据创建管道生成的100,000个示例,确保与我们的设计原则一致。
    3.2 数据集生成方法论:CSx, CSx_Syn
    我们开发了一个自动化的管道,生成具有递增复杂性的SQL查询,同时保持一致的模式和结构,以便系统地进行进度跟踪和受控实验。
    每个数据集变体包含100,000个示例,分为训练(76.5%)、验证(13.5%)和测试(10%)集。尽管模式在各拆分中保持一致,但我们确保没有特定示例的直接重叠。
    每个示例由三个组成部分构成:自然语言指令、表结构上下文和目标SQL查询,生成方式如下:
    步骤1:模式生成。 每个示例都有一个随机选择名称的单一表,名称来自200个常见选项(例如,employees、products)。列从更大的300个数据库字段池中抽取(例如,user_id、timestamp),并与适当的SQL类型(例如, INTEGER , VARCHAR )配对。表包含2-12列,某些字段限制在相关表中(例如,工资仅在与就业相关的表中)以保证语义连贯性。
    步骤2:目标查询生成。 根据命令集级别,我们生成复杂度递增的SQL查询。CS1 创建基本的 SELECT-FROM 语句,选择随机模式列。CS2 添加 ORDER BY 子句(90%概率),随机选择升序或降序。CS3 引入聚合函数( COUNT , SUM , AVG , MIN , MAX ),应用于数值列,有85%的概率,确保与数据类型兼容(例如, SUM 和 AVG 适用于数值字段)。
    步骤3:指令生成。 我们使用一组50个模板模式将SQL查询翻译成自然语言。这些模式从直接命令(“显示我X从Y”)到问题(“Y中的X是什么?”)和复杂构造(“从Y中获取X按Z排序”)不等。对于基础变体(CS1-3),我们使用确切的表和列名。对于同义词变体(CSx_Syn),我们将80%的表名和50%的列名替换为同义词。模板保持一致的结构,同时改变表面形式。聚合函数有自己的20个专用短语模式(例如,“X的平均值” → “ AVG(X) ”)。
    步骤4:质量检查。 我们实施了一个自动评分系统,沿多个维度评估生成的SQL。它考虑结构正确性(适当的子句放置)、语义有效性(字段名称匹配)和实现准确性(正确的聚合和排序)。系统根据组件正确性分配部分分数,允许对模型输出进行细粒度评估。
    3.3 数据集生成方法论:CSx_Nat
    我们还探索了一种使用Gretel AI的Data Designer 1 的合成数据集生成方法。通过定义两个 分类种子列 ( table_name 和 instruction_phrase )和几个 生成列 (例如, column_names , selected_columns ),我们提示Gretel的语言模型生成各种表名、列集和自然指令。然后我们将它们组装成结构化的SQL查询,应用后处理规则以确保语法正确性。这种方法通过引入额外的模式和指令多样性进一步多样化我们的Text-to-SQL数据集。更多细节见附录 3.3 .
    3.4 训练的模型
    我们微调了三个基础模型来进行Text-to-SQL任务。我们称它们为BM1, BM2, 和 BM3:
  • BM1: TinyStories-33M (Eldan 和 Li 2023) , 一个参数为33M的两层模型。
  • BM2: Qwen2.5-0.5B-Instruct (Team 2024) , 参数约为5亿的模型。
  • BM3: Llama-3.2-1B-Instruct (Grattafiori 2024) , 一个参数为10亿的Llama变体。
    每个模型都在三个SQL复杂度级别( CS1 , CS2 , CS3 )上进行了微调,结合基础或同义词版本,产生了六个变体。我们使用简写如 BM1_CS1 和 BM1_CS1_Syn 表示 BM1 在 CS1 基础和同义词版本上的微调,其他变体类似扩展。这产生了18个微调检查点(三个基础模型 × 六个数据集)。详见附录 10 的训练详情,和附录 12.1.1 中的模型输入格式示例。
    3.4.0.1 性能概览。
    所有三个基础模型在所有六个数据集变体上都能可靠收敛。例如,微调后的 BM1 在CS3_Syn(最具挑战性的变体)上达到了超过85%的精确匹配准确率,而 BM2 和 BM3 在大多数任务上超过了98%。详见附录 10 和表格 [tab:TrainedModels] 。这些结果表明,即使是较小的Transformer架构也能在TinySQL上学习稳健的Text-to-SQL生成,为MI分析提供了坚实的基础。
    4 实验
    我们的实验包括理解一个在不同任务集上训练的模型在某一特定任务上的表现。


4.1 机制可解释性技术


4.2 基本SQL生成
4.2.0.1 输入损坏。
为了理解 BM1_CS1 如何在CS1任务中生成字段和表名,我们通过用替代名称替换名称来损坏指令或模式上下文(例如,在指令中使用“table_a”,而在 CREATE TABLE 语句中使用“table_b”,同样适用于字段名称)。如果损坏不影响性能,则意味着模型并不显著依赖于该部分上下文。
我们发现,模型始终使用来自模式上下文的表名,同时从指令中获取字段名,忽略其他来源中的冲突名称。这种策略适用于在CS1上训练的模型,因为在两个位置中字段名称均相同出现。因此,我们创建了同义词变体( CSx_Syn ),要求模型开发更复杂的机制来映射等效术语,而不是依赖精确匹配。鉴于这些结果,我们现在将重点放在同义词变体上训练的模型,以研究更现实的Text-to-SQL行为。
4.2.0.2 激活修补。


令人惊讶的是,即使在类别内的相似提示之间,我们也观察到重要的注意力头存在高度变异性。一些例子在附录 11 中给出。这尤其值得注意,因为我们已经尝试通过研究特定的提示类别来减少任务中的方差。这种变异性促使我们使用互补技术如边归属修补和稀疏自动编码器进行更稳健的分析。
4.3 通过EAP和消融找到最小Text-to-SQL电路


对于每个功能,我们在所有语义字段和表名变化的组合上运行四次EAP。虽然我们每批获得10条边,但我们只保留跨批次一致出现的边——要求CS1和CS2达到100%的一致性,而由于其复杂性增加,CS3则要求80%的一致性。完整的结果显示在附录中的图 14 、 15 和 16 中。在运行完所有特征的EAP后,我们为每个特征获得一组边。然后我们取这些边关联的所有特征的注意力头集合,并在接下来的消融研究中保留它们。


4.3.0.1 注意力头消融。
为了验证这些发现,我们在多个模型组件上进行了系统的消融实验。我们首先消融了模型的所有注意力头,除了与EAP识别的边相关联的那些。然后我们仅使用被识别为重要的注意力头集评估恢复准确率。我们测试了均值消融和零值消融技术,尽管均值消融对我们分析证明不那么有信息量。图 1 、 2 和 [fig:ablation_results] 展示了当选择性地去除组件时模型性能的变化情况。
消融结果见表 [tab:eap_minimal_circuits] 。 EAP在较小的BM1模型上的表现优于较大的BM2和BM3模型。在BM1中,它识别出对任务至关重要的精确注意力头,允许细粒度选择。然而,在较大的模型中,发现的头太少,因为顶级边通常位于MLP组件之间,导致恢复准确率低(5–10%)。为了解决这个问题,每当至少有一个头被EAP标记为重要时,我们就保留整个层。这一调整显著提高了准确性,但代价是包括额外的头。


对于模型BM2_CS1_Syn与CS1数据,考虑仅那些层中的注意力头时,准确率随着未消融层的增多而提高。
4.3.0.2 MLP和层消融。
我们将分析扩展到不同层的多层感知机(MLPs)系统消融,测量它们对模型性能的影响。此外,我们还对全层输出(包括注意力头和MLPs)进行了零值和均值消融。
我们发现,移除第一层会持续降低所有配置下的性能,正如图 18 所示,准确率大幅下降。移除整个层(包括注意力和MLPs)比消融单独的组件造成更大的性能下降,正如与MLP特定消融相比时所见(图 17 )。
4.4 SAE特征分析以确定影响特征
为了理解模型如何编码模式信息,我们使用SAEs来识别可解释的潜在特征。


对于模型BM1_CS3_Syn与CS3数据,准确率随着更多未消融的注意力头增加而提高。
4.4.0.1 实验设置。


接下来,我们识别最大激活SAE特征的关键输入元素并将其映射到注意力头输出。例如,我们检查生成SQL中表字段标记的SAE特征,平均200个示例。对于每层的前五个激活SAE特征,我们将它们解码回原始注意力头输出,平均这些输出,然后选择具有最大幅度激活的前四个头。
4.4.0.2 结果。
表 [tab:sae_important_heads_fields] 展示了BM1处理表字段的这些影响注意力头。在所有三个命令数据集中,BM1_CS*_Syn在处理表字段标记时始终使用类似的注意力头。这种一致性表明,注意机制在不同的训练和数据集中收敛相似。
最值得注意的是,BM1_CS3_Syn模型在CS1、CS2、CS3和CS3_Syn数据集中都使用相同的头,表明尽管查询复杂性增加,处理表字段标记的机制仍然基本不变。这一发现与我们的理解一致,即这些数据集的主要区别在于SQL关键字的选择(如 GROUP BY 、 SUM 等)。
有关模型如何处理表名和 ORDER BY 或 GROUP BY 标记的进一步分析,请参阅附录 13 ,特别是表 [tab:sae_important_heads_table_name_process] 、 [tab:sae_important_heads_table_name_generate] 和表 [tab:sae_important_heads_by_fields] 。
5 讨论
5.1 MI 技术差异
我们的研究表明,不同的机制可解释性方法可以产生不同的结果。我们不仅在像SAEs和EAP这样的不同方法之间观察到了这些差异,而且在个别方法内部也观察到了这些差异。例如,我们在特定子集CS1提示上的激活修补实验(章节 4.2 ) 产生了不同的结果,即使提示结构大致相同。此外,研究人员必须导航许多细微的决策,这些决策可能会改变结果,例如在零值或均值消融之间选择 (Miller, Chughtai, 和 Saunders 2024) ,或者是否将损坏的输出修补到干净的运行中或反之亦然 (Heimersheim 和 Nanda 2024) 。
这种结果的变异性代表了机制可解释性研究中的根本挑战。因此,我们认为TinySQL的任务控制进展和系统结构使其成为调查这些方法论差异和开发更可靠的可解释性技术的理想平台。
5.2 通过MI分析改进合成数据集
我们最初的数据库使用换行符使SQL查询更容易阅读,但训练后的模型最终依赖这些换行符来处理字段名,导致在格式不同的查询上泛化能力较差。通过去除这些格式工件,我们阻止了模型利用意外信号,并创建了一个更干净的数据集,更好地测试SQL理解。
此外,我们发现训练在CS1到CS3上的模型仅根据用户查询预测字段名,而不是表模式。这使得我们可以进行迭代细化过程,识别模型行为中的问题模式,追溯到特定数据集特性,并对合成数据进行有针对性的改进。这种方法帮助确保我们的数据集实际测试我们打算衡量的能力,而不是允许模型通过不希望的捷径成功。因此,我们认为MI可以帮助以这种方式改进程序任务的合成数据集。
6 结论
我们介绍了TinySQL,一个包含逐步复杂的SQL命令子集的数据集,以及经过不同大小训练的模型。我们对多种可解释性方法(EAP、SAE和激活修补)的分析揭示了解释模型时的既定模式和局限性,突出了当前可解释性技术需要改进的领域,同时提供了一个测试床以提高可解释性技术的鲁棒性。
限制
时间限制意味着我们没有包括计划中的更复杂的SQL子集,包括SQL连接、where子句和多表。我们的发现可能不适用于所有SQL方言或数据库系统。此外,我们对模型算法的机制理解是不完整的,因此我们比较模型间算法的能力也是不完整的。
虽然我们能够利用我们的MI结果改进训练数据,但未能利用我们的MI结果在训练后提高模型性能。由于时间限制,我们并未对所有模型运行所有分析,例如,尽管我们在BM1到BM3上训练了SAEs,但仅在BM1上研究了这些。
伦理考量
这项研究主要影响SQL理解模型的技术稳健性。我们的数据集应能带来更可靠的数据库查询系统,造福软件开发者和数据库管理员。由于我们的工作专注于使用合成数据的技术SQL语法理解,因此呈现的社会危害或误用风险最小。
7 关于AI辅助的说明
AI辅助用于代码开发和改善手稿措辞,而所有分析和结论均由作者独立得出。
8 过度训练的工作说明
从头开始训练的LLM在我们的CSn训练数据上应该能非常准确地预测SQL,因为它可以假设答案总是 “SELECT某些字段 FROM 某些表 ORDER BY 某些字段 WHERE 某些子句”。为了调查我们是否过度训练LLM使其过于特定于SQL,我们在微调训练前后测量模型在一般任务上的性能。在TinyStories案例中,我们使用故事讲述任务和评估,如原始论文所示,见表 1


9 数据集详情
9.1 数据集统计信息用于 CSx_Syn
完整数据集包含300,000个查询,分为训练、验证和测试集,共100,000个查询每个命令集。 meta-llama/Llama-3.2-1B-Instruct 分词器计算的平均查询长度从CS1的12.91个标记、CS2的26.52个标记到CS3的41.76个标记不等。
9.2 数据集生成方法论:CS1_Nat
我们使用Gretel AI的Data Designer 2 ,这是一个由YAML规范控制的复合AI管道,创建了一个我们称为 CS1_Nat 的合成数据集。我们的配置包括:

  • 分类种子列: 我们定义了两个主要种子列, table_name 和 instruction_phrase ,每个列填充了一组多样化的可能值(例如,100个表名,60个指令模式)。这些作为锚点,确保生成的行具有丰富的上下文多样性。
  • 生成数据列: 我们指定每个生成列的提示:
    • column_names : 生成与领域相关的蛇形命名法字段名。
    • selected_columns : 从最终SQL查询中选择部分字段名。
    • column_data_types : 将每个选定的字段名与适当的SQL类型配对(例如, INT , VARCHAR )。
    • sql_prompt : 将表和列引用重新表述为更自然的指令短语,注入同义词变化。
    • sql_context : 通过将字段名和数据类型组合成连贯的模式定义,生成 CREATE TABLE 语句。
    • sql : 生成与生成的模式和上下文匹配的完整 SELECT 查询。

  • 后处理器: 我们应用验证检查以确认语法正确性和逻辑连贯性,确保生成的 SELECT 查询与声明的表模式和指令短语一致。
    通过调整提示并仔细选择种子列值,我们确保每个生成的指令及其相应的SQL查询保持唯一且上下文一致。生成的数据集随后被划分为训练、验证和测试分割,以便进一步用于Text-to-SQL建模和MI研究。所有配置细节和附加示例均可按需提供,以实现可重复性和进一步探索基于提示的合成数据生成。
    以下是用于使用Data Designer生成CS1-Nat的配置文件简化样本:
    model_suite: apache-2.0

    special_system_instructions: >-
    你是一位SQL专家。你的角色是
    编写SQL提示、SELECT语句,
    和CREATE TABLE语句。

    categorical_seed_columns:
    - name: table_name
    values:
    - users
    - user_profiles
    - ...
    - name: instruction_phrase
    values:
    - ``构造一个SQL查询来''
    - ``检索...``'
    - ...

    generated_data_columns:
    - name: sql_prompt
    generation_prompt: >-
    生成简洁的自然语言
    指令...
    - name: sql_context
    generation_prompt: >-
    生成名为 '{table_name}' 的表
    的SQL CREATE TABLE
    语句...
    - name: sql
    generation_prompt: >-
    生成SQL语句...

    post_processors:
    - validator: code
    这种系统化的方法确保了数据集生成的可重复性,同时维持任务复杂性的受控进展。明确的概率和受控词汇表使得在不同实现中生成一致。
    10 训练模型
    10.0.0.1 基础模型许可证。
    BM1的基础模型, TinyStories-33M (Eldan 和 Li 2023) ,是在MIT许可证下发布的。BM2的基础模型, Qwen2.5-0.5B-Instruct (Team 2024) ,是在Apache 2.0许可证下发布的。BM3的基础模型, Llama-3.2-1B-Instruct (Grattafiori 2024) , 是在Llama 3.2社区许可证下发布的。
    10.0.0.2 训练细节。


我们按照表 [tab:TrainedModels] 训练了基础和语义模型。


指令微调BM1 (TinyStories-Instruct-2Layers-33M) 在 CS1_Syn、CS2_Syn、CS3_Syn 上的训练和验证损失曲线。


指令微调BM1 (TinyStories-Instruct-2Layers-33M) 在 CS1_Syn、CS2_Syn、CS3_Syn 上的准确率曲线。


指令微调BM1 (TinyStories-Instruct-2Layers-33M) 在 CS1、CS2、CS3 上的训练和验证损失曲线。


指令微调BM1 (TinyStories-Instruct-2Layers-33M) 在 CS1、CS2、CS3 上的准确率曲线。
11 激活修补结果
在所有类别提示中,我们发现激活修补结果彼此之间差异显著,即使对于同一类别的提示也是如此。我们在附录 11 中的图 [fig:ap-graphs] 提供了4个示例样本,并注意到这种变化贯穿所有示例。


12 电路识别
12.1 边归属修补 (EAP) 结果
我们在一组清洁和损坏的提示对上运行了边缘归属修补(EAP)实验,如章节 4.3 所述。对于每个模型,我们根据正在评估的命令集的复杂性确定要损坏的特征。通常,我们一次损坏一个标记,然后将清洁和损坏的提示对输入EAP算法以识别每个特征的重要边。
为确保可靠性,我们在15批每批100个提示上运行EAP,仅记录在所选阈值以上跨批次出现的边。
12.1.1 每个数据集使用的特征
对于CS1命令集,其中SQL语句遵循以下结构:
### 指令:从订单表中显示类型和日期 ### 上下文:CREATE TABLE orders ( type CHAR, date INT ) ### 响应: SELECT type, date FROM orders
我们识别出以下关键特征以正确预测响应:

  • EngTableName : 表名在 ### 指令中
  • EngFieldName : 字段名在 ### 指令中
  • DefTableName : 表名在 ### 上下文中
  • DefFieldName : 字段名在 ### 上下文中
    对于每个特征,我们通过替换特征为随机单词来破坏提示,同时保持其他内容不变。然后我们运行EAP并记录结果。
    对于CS2命令集,其中SQL语句遵循以下结构:
    ### 指令:从链接表中显示类别和值按值升序排序 ### 上下文:CREATE TABLE links ( category CHAR, value TEXT ) ### 响应:SELECT category, value FROM links ORDER BY value ASC
    我们使用与CS1相同的特征,并添加:
  • OrderByField : 用于排序的字段在 ### 指令中(例如:value)
  • OrderByDirection : 排序方向在 ### 指令中(例如:ascending)
    对于CS3命令集,其中SQL语句遵循以下结构:
    ### 指令:从订单中获取最近代码最少且代码最高的代码 ### 上下文:CREATE TABLE orders ( weight CHAR, code TEXT ) ### 响应: SELECT MIN(code) AS MIN_code FROM orders ORDER BY code DESC
    除了CS2特征外,我们还引入:
  • AggregateField : 用于聚合的字段在 ### 指令中(例如:code)
  • AggregateFunction : 指示聚合函数的术语在 ### 指令中(例如:最高)

12.1.2 EAP 结果

一旦我们生成了每种特征的批次集合,我们就运行EAP算法并记录最重要的边。

对于每次运行,我们选择每批前10条边,并仅保留那些在批次间至少出现T%时间的边。对于CS1和CS2,我们设置T = 100,而对于CS3,我们设置T = 80。

对于每个特征,我们运行四次EAP,覆盖use_synonyms_field和use_synonyms_table所有可能的真值组合。这使我们能够识别每个特征在语义和非语义情况下的责任边。

在运行完所有特征的EAP后,我们为每个特征获得了一组边。然后我们汇总这些边,提取其对应的节点,并在随后的消融研究中使用它们。EAP的结果显示在 图 14 中用于CS1,在 图 15 中用于CS2,以及在 图 16 中用于CS3。我们只显示了use_synonyms_field和use_synonyms_table都设为False的情况下的结果。

12.2 消融研究结果

在使用EAP选择注意力头节点集之后,我们消融了不属于该集的所有注意力头。我们应用了零消融和均值消融,然后比较结果,如 图 [fig:ablation_results] 所示。我们的结论在章节 4.3 中呈现。

12.3 多层感知器(MLP)消融

下一步是保持注意力头完整,而是消融MLP输出,以确定均值消融是否产生相同的结果,以及模型在使用平均激活而不是实际输出激活时是否能保持性能。为了计算平均激活,我们使用了200个示例的批次。

我们的结论在章节 4.3 中呈现。然而,图 图 17 显示第一层在所有模型中起主要作用。此外,当使用复杂的数据库(CS3)时,两层都变得重要,均值消融不再保持性能。这种趋势在所有MLP消融情况下始终观察到。

12.4 全层消融

以同样的方式,我们现在消融所有层的输出。再次,我们观察到如 图 18 所示,第1层在生成中起更重要的作用。然而,这一趋势随着更复杂的命令集而转变。当消融整个层时,无论是在均值消融还是零值消融下,模型在所有层上的表现都会下降。

对于较大的模型如Qwen,无论消融多少层,准确率都会降至20%。

13 SAE分析

我们在表 [tab:sae_important_heads_table_name_process] 中展示了BM1处理表标记的重要头部。我们还考虑了生成“ORDER BY”或“GROUP BY”类型查询的字段标记的重要SAE特征,见表 [tab:sae_important_heads_by_fields] 。

注意,对于响应表名,第0层的Head 1始终是最重要的。而在第1层,我们看到BM1_CS3_*模型始终使用Head 6,而BM1和BM2则使用第13层。

我们接下来查看生成表名的重要头部,即立即位于响应表名之前的头部,见表 [tab:sae_important_heads_table_name_generate] 。

处理表名和字段标记所使用的头部之间的高度重叠表明,这些头部可能是多义性的,或者模型使用类似的机制来选择最终响应中使用的提示部分。

我们现在展示BM1_CS1_Syn、BM1_CS2_Syn和BM1_CS3_Syn填充表名标记最相关的SAE特征,特别是。请参阅图 7 、 8 和 9 ,显示了平均幅度最大的顶级激活SAE特征。

BM1_CS1_Syn在CS1_Syn表字段上的平均SAE激活。

BM1_CS2_Syn在CS2_Syn表字段上的平均SAE激活。

BM1_CS3_Syn在CS3_Syn表字段上的平均SAE激活。

我们可以将这些映射到实际的注意力输出,例如图 10 、 11 和 12 。我们平均这些以确定有影响力的注意力头。

EAP在不同模型和命令集CS1上的结果: BM1_CS1_SYN(行1),BM1_CS3_SYN(行2),BM2_CS1_SYN(行3)和 BM3_CS1_SYN(行4)。每行分别展示EngTableName、EngFieldName、DefTableName和DefFieldName的结果。

EAP在命令集CS2上的模型BM1_CS3_SYN结果: 结果分别为EngTableName、EngFieldName、DefTableName、DefFieldName和OrderBy。

EAP在命令集CS3上的模型BM1_CS3_SYN结果: 结果分别为EngTableName、EngFieldName、DefTableName、DefFieldName、OrderByField、OrderByDirection、AggegrateField和AggregateFunction。

不同模型和数据集的MLP消融结果。每个子图展示了在特定配置下消融MLP输出时准确率的变化。

不同模型和数据集的全部消融结果。每个子图说明了在指定配置下消融所有输出的影响。

不同模型和数据集的MLP消融结果。每个子图展示了在特定配置下消融MLP输出时准确率的变化。

不同模型和数据集的全部消融结果。每个子图说明了在指定配置下消融所有输出的影响。

Belrose, Nora. 2024. “Sparsify.” Eleuther AI; https://github.com/EleutherAI/sparsify .

b-mc2. 2023. “Sql-Create-Context 数据集。” https://huggingface.co/datasets/b-mc2/sql-create-context .

Conmy, Arthur, Augustine Mavor-Parker, Aengus Lynch, Stefan Heimersheim, and Adrià Garriga-Alonso. 2023. “迈向自动化电路发现以实现机制可解释性。” 神经信息处理系统进展会议论文集 36: 16318–52.

Deng, Xiang, Ahmed Hassan Awadallah, Christopher Meek, Oleksandr Polozov, Huan Sun, and Matthew Richardson. 2020. “基于结构的预训练以应对Text-to-SQL任务。” arXiv 预印本 arXiv:2010.12773 .

Eldan, Ronen, and Yuanzhi Li. 2023. “TinyStories:语言模型可以小到什么程度仍然能用连贯的英语表达?” https://arxiv.org/abs/2305.07759 .

Gan, Yujian, Xinyun Chen, Qiuping Huang, Matthew Purver, John R Woodward, Jinxia Xie, and Pengsheng Huang. 2021. “迈向Text-to-SQL模型对同义词替换的鲁棒性。” arXiv 预印本 arXiv:2106.01065 .

Gao, Leo, Tom Dupré la Tour, Henk Tillman, Gabriel Goh, Rajan Troll, Alec Radford, Ilya Sutskever, Jan Leike, and Jeffrey Wu. 2024. “扩展和评估稀疏自编码器。” arXiv 预印本 arXiv:2406.04093 .

Grattafiori, Aaron et al. 2024. “Llama 3 系列模型。” https://arxiv.org/abs/2407.21783 .

Heimersheim, Stefan, and Neel Nanda. 2024. “如何使用和解释激活修补。” arXiv 预印本 arXiv:2404.15255 .

Huben, Robert, Hoagy Cunningham, Logan Riggs Smith, Aidan Ewart, and Lee Sharkey. 2023. “稀疏自编码器在语言模型中找到高度可解释的特征。” In 国际学习表示会议第十二届 .

Marks, Samuel, Can Rager, Eric J Michaud, Yonatan Belinkov, David Bau, and Aaron Mueller. 2024. “稀疏特征电路:发现和编辑语言模型中的可解释因果图。” arXiv 预印本 arXiv:2403.19647 .

Meng, Kevin, David Bau, Alex Andonian, and Yonatan Belinkov. 2022. “定位和编辑 GPT 的事实关联。” In 神经信息处理系统进展会议论文集 . Vol. 35.

Meyer, Yev, Marjan Emadi, Dhruv Nathawani, Lipika Ramaswamy, Kendrick Boyd, Maarten Van Segbroeck, Matthew Grossman, Piotr Mlocek, and Drew Newberry. 2024. “ Synthetic-Text-To-SQL :一个用于训练语言模型生成SQL查询的合成数据集。” https://huggingface.co/datasets/gretelai/synthetic-text-to-sql .

Miller, Joseph, Bilal Chughtai, and William Saunders. 2024. “变压器电路评估指标不具备鲁棒性。” In 第一届语言建模会议 .

Nanda, Neel. 2023. “归属修补:工业规模的激活修补。” https://www.neelnanda.io/mechanistic-interpretability/attribution-patching .

Nanda, Neel, Lawrence Chan, Tom Lieberum, Jess Smith, and Jacob Steinhardt. 2023a. “通过机制可解释性衡量进步。” In 国际学习表示会议第十届 .

———. 2023b. “通过机制可解释性衡量进步。” arXiv 预印本 arXiv:2301.05217 . https://arxiv.org/abs/2301.05217 .

Pi, Xinyu, Bing Wang, Yan Gao, Jiaqi Guo, Zhoujun Li, and Jian-Guang Lou. 2022. “Text-to-SQL模型对自然和真实对抗表扰动的鲁棒性研究。” arXiv 预印本 arXiv:2212.09994 .

Quirke, Philip, and Fazl Barez. 2024. “理解变压器中的加法。” In 国际学习表示会议第十二届 .

Stefaan Hex, Jett Janiak. 2023. “在四层仅注意力变压器中实现Python文档字符串的电路。” https://www.lesswrong.com/posts/u6KXXmKFbXfWzoAXn/a-circuit-for-python-docstrings-in-a-4-layer-attention-only .

Syed, Aaquib, Can Rager, and Arthur Conmy. 2023. “归属修补优于自动化的电路发现。” In 神经信息处理系统进展会议论文集 . https://arxiv.org/abs/2310.10348 .

Team, Qwen. 2024. “Qwen2.5:基础模型系列。” https://qwenlm.github.io/blog/qwen2.5/ .

Templeton, Adly, Tom Conerly, Jonathan Marcus, Jack Lindsey, Trenton Bricken, Brian Chen, Adam Pearce, et al. 2024. “单义性的扩展:从Claude 3十四行诗中提取可解释特征。” Transformer Circuits Thread . https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html .

Wang, Kevin Ro, Alexandre Variengien, Arthur Conmy, Buck Shlegeris, and Jacob Steinhardt. 2023. “野外的可解释性:GPT-2 Small中一个间接对象识别的电路。” In 国际学习表示会议第十届 .

Wu, Zhengxuan, Atticus Geiger, Thomas Icard, Christopher Potts, and Noah D. Goodman. 2024. “大规模可解释性:识别Alpaca中的因果机制。” https://arxiv.org/abs/2305.08809 .

Yu, Tao, Rui Zhang, Kai Yang, Michihiro Yasunaga, Dongxu Wang, Zifan Li, James Ma, et al. 2019. “Spider:一个大型的人工标注数据集,用于复杂和跨域的语义解析和Text-to-SQL任务。” https://arxiv.org/abs/1809.08887 .

Zhong, Victor, Caiming Xiong, and Richard Socher. 2017. “Seq2SQL: 使用强化学习从自然语言生成结构化查询。” CoRR abs/1709.00103.

  1. https://gretel.ai/navigator/data-designer ↩︎
  2. https://gretel.ai/navigator/data-designer ↩︎

原论文:https://arxiv.org/pdf/2503.1273

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Paper易论

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

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

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

打赏作者

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

抵扣说明:

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

余额充值