arithmetic-sorl-data
收藏Hugging Face2026-04-08 更新2026-04-09 收录
下载链接:
https://huggingface.co/datasets/thoughtworks/arithmetic-sorl-data
下载链接
链接失效反馈官方服务:
资源简介:
Arithmetic SoRL Data 是一个用于 SoRL 算术可解释性研究的训练和评估数据集。该数据集包含小型 transformer 模型在整数加法和减法上的训练数据,旨在通过 SoRL 技术将进位/借位电路外部化为显式的抽象标记。数据集包含两个主要子集:`add_6digit`(仅加法)和 `add_sub_6digit`(加法和减法),每个子集包含 500K 训练样本、10K 验证样本和分层评估样本。数据集的列包括 `tokens`(完整序列)、`labels`(每个答案数字的子任务标签)、`op`(操作类型)、`complexity`(Quirke 复杂度)、`cascade_depth`(最大进位/借位级联长度)以及操作数和答案的数字表示。数据集还提供了详细的子任务标签和复杂度分类,适用于文本生成任务和机制可解释性研究。
创建时间:
2026-04-06
原始信息汇总
Arithmetic SoRL Data 数据集概述
数据集基本信息
- 数据集名称: Arithmetic SoRL Data
- 创建者/组织: thoughtworks
- 许可证: Apache-2.0
- 主要语言: 英语 (en)
- 数据规模: 1M < n < 10M
- 任务类别: 文本生成 (text-generation)
- 标签: 算术 (arithmetic)、可解释性 (interpretability)、SoRL、机制可解释性 (mechanistic-interpretability)、加法 (addition)、减法 (subtraction)、Quirke
数据集用途
本数据集用于 SoRL 算术可解释性研究,旨在为训练小型Transformer模型提供整数加法/减法数据,并利用 SoRL 将进位/借位电路外部化为显式的抽象标记。
数据集结构
数据集包含多个配置,每个配置对应不同的数据子集和操作类型。
| 配置名称 | 操作类型 | 训练集文件 | 验证集文件 | 测试集文件 |
|---|---|---|---|---|
add_6digit |
仅加法 | add_6digit/train.parquet |
add_6digit/val.parquet |
add_6digit/eval_stratified.parquet |
add_sub_6digit |
加法与减法 | add_sub_6digit/train.parquet |
add_sub_6digit/val.parquet |
add_sub_6digit/eval_stratified.parquet |
add_handcrafted |
加法 | 无 | 无 | add_handcrafted/test.parquet |
sub_handcrafted |
减法 | 无 | 无 | sub_handcrafted/test.parquet |
数据量统计
| 子文件夹 | 操作 | 训练样本数 | 验证样本数 | 分层评估样本数 |
|---|---|---|---|---|
add_6digit |
仅加法 | 500,000 | 10,000 | ~550 (S0-S6每类50个 + 200个随机) |
add_sub_6digit |
加法与减法 | 500,000 | 10,000 | ~1100 (S0-S6及M0-M6每类50个 + 随机样本) |
数据列说明
| 列名 | 数据类型 | 描述 |
|---|---|---|
tokens |
list[int] | 完整序列(6位数对应21个标记) |
labels |
list[str] | 每个答案数字对应的子任务标签 |
op |
str | 操作类型:"add" 或 "sub" |
complexity |
str | Quirke复杂度:加法为 S0-S6,减法为 M0-M6 |
cascade_depth |
int | 最大进位/借位级联长度 |
x_digits |
list[int] | 第一个操作数(最高位优先) |
y_digits |
list[int] | 第二个操作数(最高位优先) |
z_digits |
list[int] | 答案(最高位优先,共 n_digits+1 位) |
注意:eval_stratified 分割集包含一个额外的列 eval_category。
子任务标签 (Quirke et al.)
每个答案数字需要特定的算术操作。
加法标签
| 标签 | 名称 | 条件 | 作用 |
|---|---|---|---|
| SA | 基本加法 | Dn + Dn < 9,无进位 |
最简单情况 |
| SC | 产生进位 | Dn + Dn >= 10 |
生成进位 |
| SS | 和为9 | Dn + Dn == 9 |
若有进位到达,则传播进位 |
| UC | 使用进位 | carry_in=1, sum != 9 | 消耗传入的进位 |
| US | 使用和为9 | carry_in=1, sum == 9 | 级联:最难情况 |
减法标签 (x >= y)
| 标签 | 名称 | 条件 | 作用 |
|---|---|---|---|
| MD | 基本差值 | Dn > Dn,无借位 |
最简单情况 |
| MB | 产生借位 | Dn < Dn |
生成借位 |
| ME | 数字相等 | Dn == Dn |
若有借位到达,则传播借位 |
| UB | 使用借位 | borrow_in=1, Dn != Dn |
消耗传入的借位 |
| UD | 使用相等 | borrow_in=1, Dn == Dn |
级联:最难情况 |
复杂度分类 (Quirke Table 8)
复杂度由最长进位/借位级联链的长度定义。
- S0: 无进位 (~10%)
- S1: 孤立进位 (~50%)
- S2: 2级级联 (~26%)
- S3: 3级级联 (~9%)
- S4: 4级级联 (~3%)
- S5: 5级级联 (~1%)
- S6: 6级级联 (<0.5%)
示例: 555555+444448=1000003 属于 S6 —— 来自 D0 的进位通过5个连续的和为9的位置级联。
数据增强
遵循Quirke的方法:60%的批次中,40%的数字位置被强制设置为和为9,以增加级联频率,确保模型能看到足够的S4-S6案例。
使用示例
python from datasets import load_dataset
加载训练数据
ds = load_dataset("thoughtworks/arithmetic-sorl-data", data_dir="add_6digit") print(ds["train"][0])
输出示例: {tokens: [...], labels: [SA, UC, US, ...], complexity: S3, cascade_depth: 3, ...}
加载分层评估数据
eval_ds = load_dataset("thoughtworks/arithmetic-sorl-data", data_dir="add_6digit", data_files="eval_stratified.parquet")
相关资源
- 模型检查点: https://huggingface.co/thoughtworks/arithmetic-sorl
- 代码仓库: https://github.com/fangyuan-ksgk/mod_gpt/tree/amir/arithmetic/arithmetic
- 参考文献: Quirke et al., "Understanding Addition and Subtraction in Transformers" (2024)
搜集汇总
数据集介绍

构建方式
在算术可解释性研究领域,arithmetic-sorl-data数据集通过系统化生成六位数整数加减法运算对构建而成。该数据集依据Quirke等人提出的复杂度分类框架,精心设计了涵盖不同进位或借位级联深度的运算实例,确保模型能够接触到从简单到复杂的各类算术模式。构建过程中,特别采用了数据增强策略,在60%的训练批次中强制40%的位数位置满足和为九的条件,从而显著提升了长级联案例的出现频率,有效解决了罕见复杂模式样本不足的问题。
特点
该数据集的核心特征在于其精细的结构化标注与层次化的复杂度划分。每个运算实例不仅包含完整的数字序列,还标注了逐位运算的子任务标签,清晰揭示了进位或借位的产生、传播与消耗过程。数据集依据最长进位级联链的长度,将运算划分为S0至S6或M0至M6的复杂度等级,为分析模型在不同算术难度下的行为提供了精确的维度。此外,数据集提供了分层的评估集,确保了模型性能评估能够覆盖所有复杂度类别,增强了评估的全面性与科学性。
使用方法
使用该数据集时,研究者可通过Hugging Face的datasets库便捷加载不同配置。数据集包含针对纯加法与加减混合运算的独立子集,并划分了训练、验证与分层测试集。在加载后,数据以结构化的字典形式呈现,包含tokens、labels、complexity等关键字段,便于直接输入模型进行训练或评估。分层评估集特别适用于系统性地检验模型在不同算术复杂度下的表现,为深入探究Transformer模型执行基本算术运算的机制提供了标准化的实验基础。
背景与挑战
背景概述
算术运算作为基础认知任务,长期被视为检验神经网络内部工作机制的理想测试平台。2024年,Quirke等人及其合作机构ThoughtWorks在《理解Transformer中的加法与减法》研究中,构建了arithmetic-sorl-data数据集,旨在通过结构化规则学习(SoRL)方法,外化Transformer模型执行多位数加减法时的进位与借位电路,从而揭示其内部计算机制。该数据集专注于六位数整数运算,通过精细标注每个输出数位的子任务类别与运算复杂度,为可解释性研究提供了高粒度、可操控的实验数据,推动了机械可解释性领域对模型算术推理能力的深入探索。
当前挑战
在算术推理的可解释性研究中,核心挑战在于如何从模型的连续向量表示中分离并识别出离散、符号化的计算规则,例如进位链的传播逻辑。arithmetic-sorl-data数据集旨在应对这一挑战,通过SoRL方法将隐式电路显式化为抽象标记。数据构建过程中的主要困难在于,自然随机生成的算术样本中,长距离进位或借位级联事件(如S4-S6复杂度)的出现概率极低,这可能导致模型无法充分学习此类关键模式。为此,研究团队采用了数据增强策略,主动提高特定数字组合(如和为9)的比例,以确保训练数据能均衡覆盖从简单到复杂的全部运算场景,从而有效支持对模型内部机制的稳健分析。
常用场景
经典使用场景
在算术运算的机制可解释性研究中,该数据集为小型Transformer模型提供了整数加减法的训练与评估基准。通过引入SoRL方法,数据集将进位或借位电路外化为显式的抽象标记,使得模型能够学习并揭示算术运算中的内部计算机制。这一场景常用于探索神经网络如何处理结构化数学任务,特别是在多位数运算中,模型如何逐位处理并管理进位或借位的复杂级联过程。
解决学术问题
该数据集直接应对了神经网络在算术运算中的可解释性挑战,解决了模型如何学习并执行多位数加减法的内部机制问题。通过Quirke复杂性分类,它量化了进位或借位级联的深度,为研究模型在不同计算复杂度下的表现提供了结构化框架。这不仅深化了对Transformer架构处理符号推理的理解,还为机制可解释性领域提供了实证基础,推动了从黑箱模型向透明计算过程的转变。
衍生相关工作
该数据集衍生了多项经典研究,其中最突出的是Quirke等人的工作《Understanding Addition and Subtraction in Transformers》,它系统分析了Transformer在算术任务中的行为。基于此,后续研究扩展了SoRL方法到其他数学运算,如乘法或除法,并探索了更复杂的机制可解释性技术。这些工作共同构建了一个研究范式,将算术数据集作为探针,用于揭示神经网络中抽象概念的表示与计算过程。
以上内容由遇见数据集搜集并总结生成



