FoNE: Precise Single-Token Number Embeddings via Fourier Features

📄 arXiv: 2502.09741v1 📥 PDF

作者: Tianyi Zhou, Deqing Fu, Mahdi Soltanolkotabi, Robin Jia, Vatsal Sharan

分类: cs.CL, cs.LG

发布日期: 2025-02-13

🔗 代码/项目: PROJECT_PAGE


💡 一句话要点

FoNE:通过傅里叶特征实现精确的单token数值嵌入,提升LLM数值计算能力。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 数值嵌入 傅里叶特征 大型语言模型 数值计算 单token表示

📋 核心要点

  1. 现有LLM使用多token表示数字,导致数值计算效率低且精度受损,成为模型处理数值任务的瓶颈。
  2. FoNE的核心思想是利用傅里叶特征直接将数字映射到嵌入空间,实现单token数值表示,避免碎片化。
  3. 实验表明,FoNE在加减乘等数值任务中显著提升了准确率和效率,所需数据量更少,且达到100%精度。

📝 摘要(中文)

大型语言模型(LLM)通常使用多个token来表示数字,这需要模型聚合这些token才能理解数值。这种碎片化降低了训练和推理效率,并对模型在数字相关任务上的性能产生不利影响。受到预训练LLM内部学习数字token的类傅里叶特征的启发,我们提出了傅里叶数值嵌入(FoNE),这是一种将数字直接映射到具有其傅里叶特征的嵌入空间的新方法。FoNE将每个数字编码为单个token,每个数字仅需两个嵌入维度,从而有效地捕获数值而无需碎片化。这种紧凑的表示形式加速了训练和推理。与传统的子词和逐位嵌入相比,FoNE不仅降低了计算开销,而且在包括加法、减法和乘法在内的各种数值任务中实现了更高的准确性。在6位十进制加法上,FoNE需要比子词和逐位嵌入少64倍的数据才能达到99%的准确率,同时每个数字分别使用少3倍和6倍的token。此外,FoNE是唯一一种在超过100,000个加法、减法和乘法测试示例中产生100%准确率的方法。代码和可视化可在https://fouriernumber.github.io/上找到。

🔬 方法详解

问题定义:现有的大型语言模型在处理数值时,通常将数字拆分成多个token进行表示,例如将“123”拆分成“1”、“2”、“3”或者使用subword的方式。这种碎片化的表示方式导致模型需要额外的计算来聚合这些token,从而理解数值的含义。这不仅降低了计算效率,还可能影响模型在数值计算任务中的准确性。因此,如何高效且准确地表示数值是当前LLM面临的一个重要问题。

核心思路:FoNE的核心思路是受到预训练LLM内部学习数字token的类傅里叶特征的启发,直接将数字映射到具有其傅里叶特征的嵌入空间。具体来说,FoNE将每个数字编码为单个token,并使用傅里叶特征来表示该数字。由于傅里叶特征能够有效地捕捉数值的周期性和频率信息,因此FoNE能够以紧凑且高效的方式表示数值。

技术框架:FoNE的技术框架主要包括以下几个步骤:1) 将数字转换为傅里叶特征;2) 将傅里叶特征映射到嵌入空间;3) 使用嵌入向量进行数值计算。具体来说,对于每个数字,FoNE首先计算其傅里叶特征,然后使用一个线性层将傅里叶特征映射到嵌入空间。最后,可以使用嵌入向量进行各种数值计算任务,例如加法、减法和乘法。

关键创新:FoNE最重要的技术创新点在于使用傅里叶特征来表示数值,并将其嵌入到单个token中。与传统的subword和逐位嵌入相比,FoNE能够以更紧凑和高效的方式表示数值,从而降低计算开销并提高准确性。此外,FoNE还能够更好地捕捉数值的周期性和频率信息,从而提高模型在数值计算任务中的性能。

关键设计:FoNE的关键设计包括以下几个方面:1) 使用正弦和余弦函数作为傅里叶特征的基函数;2) 每个数字使用两个嵌入维度;3) 使用线性层将傅里叶特征映射到嵌入空间。具体来说,FoNE使用正弦和余弦函数作为傅里叶特征的基函数,因为这些函数能够有效地捕捉数值的周期性和频率信息。此外,FoNE每个数字使用两个嵌入维度,分别表示正弦和余弦特征。最后,FoNE使用一个线性层将傅里叶特征映射到嵌入空间,从而将数值信息编码到嵌入向量中。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

FoNE在6位十进制加法任务中,仅需传统方法1/64的数据量即可达到99%的准确率,且每个数字使用的token数分别减少了3倍和6倍。在超过10万个加减乘测试用例中,FoNE是唯一达到100%准确率的方法,显著优于其他数值嵌入方法。

🎯 应用场景

FoNE具有广泛的应用前景,可应用于金融分析、科学计算、数据分析等领域,提升LLM在处理数值密集型任务时的效率和准确性。通过更精确的数值表示,FoNE有望改进LLM在复杂计算和推理方面的表现,并促进相关领域的智能化发展。

📄 摘要(原文)

Large Language Models (LLMs) typically represent numbers using multiple tokens, which requires the model to aggregate these tokens to interpret numerical values. This fragmentation makes both training and inference less efficient and adversely affects the model's performance on number-related tasks. Inspired by the observation that pre-trained LLMs internally learn Fourier-like features for number tokens, we propose Fourier Number Embedding (FoNE), a novel method that directly maps numbers into the embedding space with their Fourier features. FoNE encodes each number as a single token with only two embedding dimensions per digit, effectively capturing numerical values without fragmentation. This compact representation accelerates both training and inference. Compared to traditional subword and digit-wise embeddings, FoNE not only reduces computational overhead but also achieves higher accuracy across various numerical tasks including addition, subtraction and multiplication. On 6-digit decimal addition, FoNE requires 64$\times$ less data to achieve 99% accuracy than subword and digit-wise embeddings while using 3$\times$ and 6$\times$ fewer tokens per number, respectively. Furthermore, FoNE is the only method that yields 100% accuracy on over 100,000 test examples for addition, subtraction, and multiplication. The codes and visualization are available at https://fouriernumber.github.io/.