论文粗读系列-13:XVAL

论文粗读系列-13

XVAL: A CONTINUOUS NUMBER ENCODING FOR LARGE LANGUAGE MODELS

1.简介

arxiv [Submitted on 4 Oct 2023]

链接:[2310.02989] xVal: A Continuous Number Encoding for Large Language Models (arxiv.org)

代码:GitHub - PolymathicAI/xVal: Repository for code used in the xVal paper

大型语言模型还没有广泛应用于科学数据集的分析,部分原因是数字token化的独特困难。作者提出XVAL,这是一种数字编码方案,仅使用一个token就可以表示任何实数。XVAL通过将专用嵌入向量按数值缩放来表示给定的实数。与改进的数字推理方法相结合,当将该策略视为从输入字符串的数字到输出字符串的数字的映射时,该策略使模型端到端连续。这导致归纳偏置,通常更适合在科学领域的应用。作者在许多合成和真实世界的数据集上对作者的建议进行了经验评估。与现有的数字编码方案相比,作者发现XVAL具有更高的标记效率和更好的泛化能力。

尽管大型语言模型(llm)在文本数据的生成和分析中表现出复杂的行为,但科学界在将这些模型应用于主要由数值组成的数据集方面收效甚微。LLMs一直在努力解决简单的算术问题,如多位数乘法,并倾向于“虚构”答案。标准的LLM标记化方案本身并不能捕获区分数字数据与其他自然语言输入的精确定量属性。

一些工作探索了编码数字信息作为语言模型输入的几种潜在改进(参见Thawani等人(2021)的评论)。例如,数字可以用科学记数法格式或十进制格式逐位编码。(Jiang et al.,2020)将数字映射到有限的“原型数字”集合上,而(Sundararaman et al.,2020)强制执行约束,使得数字嵌入之间的余弦距离反映了它们的实际数学距离。使用这种编码的Transformer已被证明可以成功地解决各种数学问题,例如线性代数问题,包括矩阵乘法(Charton, 2022)。

尽管取得了这些进展,但仍有许多挑战尚未解决。众所周知,语言模型会利用数据中的捷径和虚假相关性(Tu等人,2020;Liu et al., 2022;Dziri等人,2023),并且仍然在数学问题和科学领域中挣扎于插值和分布外泛化(Grosse等人,2023;Anil et al., 2022)。出现在这些域中的函数通常是连续的或平滑的,除了某些例外,例如临界点。类似地,Transformer架构应用于视觉和音频领域(例如,Dosovitskiy等人,2020;Garg等人,2022)通常在没有标记化的情况下连续处理数字(参见Copet等人,2023;Chen等人,2020b),但这些模型通常需要高度结构化的输入,不能应用于具有任意文本和数字序列的数据集。另一方面,当将数字编码为文本时,llm在编码和解码阶段都是不连续的。虽然离散模型可以(并且确实)学习近似连续函数(d’ascoli等人,2022),但与许多非参数回归模型(Wasserman, 2006)中通过构造内置连续性的模型相比,这可能更具挑战性且样本效率更低。为了克服这个固有的挑战,有必要根据我们对数字连续性质的认识施加适当的归纳偏差。

2.方法

作者介绍了XVAL,一种在大型语言模型中编码数值的固有连续方法。通过对数值的大小进行乘法编码,并在嵌入空间内将它们定向到可学习的方向,XVAL实质上改变了转换器架构处理和解释数字的方式。这将导致使用单个词汇表元素的编码方案,该方案还将每个数字编码为单个标记。因此,XVAL既具有token效率,又具有最小的词汇表占用。与经过修改的数字推理范例相结合,当将转换模型视为输入字符串的数字与输出字符串的数字之间的映射时,XVAL允许转换模型是连续的(或者在给定光滑非线性的情况下是光滑的)。作者期望当被逼近的函数是连续的或光滑的时,这将导致更好的归纳偏置。作者在许多合成和现实世界的科学数据集上评估XVAL,并与现有的数字编码方案进行比较。作者证明了XVAL既具有更高的token效率,又具有更好的插值特性。

XVAL不是为不同的数字或 composite numbers使用不同的标记,而是直接沿着嵌入空间的特定可学习方向嵌入数值。这一过程的示意图见图1。具体来说,给定一个包含数字和文本的字符串输入x,作者首先解析x以提取所有数值,并将它们收集到一个单独的列表xnum中。然后,作者用一个指定的token[NUM]替换x中的所有数字来构造一个新的字符串xtext,该token充当数值的占位符。作者对xtext进行标记和嵌入,得到htext。然后,作者将[NUM]令牌的每次出现的嵌入值与其在xnum中的相关数值相乘。这个过程可以通过定义一个新的列表hnum来有效地完成,方法是将xnum分散为与标记化的文本具有相同的长度,并为[NUM]以外的任何标记插入1。样品的最终埋入为hemb = hnum × htext,然后送入transformer主干。

在这里插入图片描述

在作者的实现中,XVAL的乘法嵌入之后是在第一个转换器块中添加位置编码向量和层规范。layernorm的作用是在样本基础上对每个标记的嵌入进行规范化。当添加的位置嵌入与[NUM]token的嵌入不共线时,标量值有效地通过非线性重新缩放函数传递。

假设u为[NUM]的嵌入,p为位置嵌入,x是被编码的标量值,为了简化计算可以假定u · p=0,其中∥u∥ =∥p∥ = 1,可以得到
u ⋅ x u + p ∣ ∣ x u + p ∣ ∣ = x 1 + x 2 (1) u\cdot \frac{xu+p}{||xu+p||}=\frac{x}{\sqrt{1+x^2}} \tag{1} u∣∣xu+p∣∣xu+p=1+x2 x(1)

即x的值被编码为与u同方向,并且该属性在训练后仍然可以保持。

作为基于转换器的语言模型中的标准实践,作者定义了一个标记头,它输出词汇表中标记的概率分布。然而,由于作者的形式将数字替换为[NUM]令牌,因此该头部不携带任何关于数字值的信息。因此作者引入了一个带有标量输出的新数字头,通过均方误差(MSE)损失进行训练,以恢复与[NUM]令牌的每个实例相关的数值。对于任何输入,首先查看令牌头的输出。如果生成的令牌是[NUM]令牌,那么我们将查看数字头以填充此令牌的值。如第3节所示,由于在推断数值时,Transformer现在是端到端连续的,因此在插值到以前未见过的值时,它的性能会更好

3.狗头保命

以上观点均为本人对于原文的粗鄙理解,仅作为个人学习笔记,如有错误烦请指正,如有侵权请联系我删除。

不摆了,加训!

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
This function mmasub performs one MMA-iteration, aimed at % solving the nonlinear programming problem: % % Minimize f_0(x) + a_0*z + sum( c_i*y_i + 0.5*d_i*(y_i)^2 ) % subject to f_i(x) - a_i*z - y_i <= 0, i = 1,...,m % xmin_j <= x_j = 0, y_i >= 0, i = 1,...,m %*** INPUT: % % m = The number of general constraints. % n = The number of variables x_j. % iter = Current iteration number ( =1 the first time mmasub is called). % xval = Column vector with the current values of the variables x_j. % xmin = Column vector with the lower bounds for the variables x_j. % xmax = Column vector with the upper bounds for the variables x_j. % xold1 = xval, one iteration ago (provided that iter>1). % xold2 = xval, two iterations ago (provided that iter>2). % f0val = The value of the objective function f_0 at xval. % df0dx = Column vector with the derivatives of the objective function % f_0 with respect to the variables x_j, calculated at xval. % df0dx2 = Column vector with the non-mixed second derivatives of the % objective function f_0 with respect to the variables x_j, % calculated at xval. df0dx2(j) = the second derivative % of f_0 with respect to x_j (twice). % Important note: If second derivatives are not available, % simply let df0dx2 = 0*df0dx. % fval = Column vector with the values of the constraint functions f_i, % calculated at xval. % dfdx = (m x n)-matrix with the derivatives of the constraint functions % f_i with respect to the variables x_j, calculated at xval. % dfdx(i,j) = the derivative of f_i with respect to x_j. % dfdx2 = (m x n)-matrix with the non-mixed second derivatives of the % constraint functions f_i with respect to the variables x_j, % calculated at xval. dfdx2(i,j) = the second derivative % of f_i with respect to x_j (twice). %
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值