假如有一种未破译灭绝语言,有关于这种语言的一亿本书,能不能用超级计算机把这门语言用套的方式破译出来?

比如说,这一次假设这个词语是“红色”的意思,那个词语是“树”的意思。发现无法使所有的文本逻辑通顺 然后继续假设这个词语是“一”的意思,那个词语是“他们…
关注者
201
被浏览
199,686

70 个回答

这个问题非常好,其实其本质就是如何理解具备一定语料的未知语言,也就是与一门已知语言建立联系。

这是语言学的一大话题,比如田野语言学需要记录方言乃至从未认知过的语言,历史语言学可能要根据死语言有限的材料尽可能破译信息,比如罗塞塔石碑,或者线性文字AB等。语言学奥林匹克竞赛(National Linguistics Olympiad,NOL)的题目完全就是根据一些未知语言和已知语言的对应关系来推断出未知语言的词汇含义和语法。语言的可能空间非常大,单纯靠暴力猜词是很难搜索到正确结果的。

当然题目的设定其实和上述设定有两点不同。第一点是语料数量。题目中提到这门语言有一亿本书,这其实是田野语言学和死语言解读完全无法想象的数量,比如田野语言学只能从语言老师那里获得有限的几百句话和几百个单词,而罗塞塔石碑甚至只有一块小小的碑文。这是题目设定有利的地方。

罗塞塔石碑,从上到下分别是象形文字,草书体,古希腊文

第二点则是无显著的平行语料。平行语料指的是未知语言以及其已知语言的翻译,比如“apple”对应苹果,“天気がいい”对应天气很好。在田野语言学中,我们可以问掌握未知语言的语言老师“这个东西是什么”,那么获得的语料天然具有注释。语言学奥赛也会给出一些词汇的解释。而罗塞塔石碑同时记录了三种内容相同的文字:希腊文,古埃及草书文,古埃及象形文,其中希腊文是人们非常熟悉的。有了平行语料,人们可以根据一些对应关系猜测词汇的含义,比如频率高的词可能有语法作用,人名相应的拼写可能差不多等等。如果一点没有平行语料没有,对我们的破译会非常不利。当然如果使用这门未知语言的人会学外语,那么可能会有一些书籍记录了外语和该语言的对应关系。可是这就需要挖掘了。

考虑这两个特点,我们应该怎么解决这个问题呢?其实我们可以使用现在非常火的语言模型。

语言模型

虽然有蹭热度以及拿着锤子找钉子的嫌疑(doge),但语言模型其实是非常适合题目的设定的。最通俗地理解语言模型,就是给一句话,模型输出这句话之后什么词有多少可能出现,比如让模型看“苹果很”这句话,那么可能“甜”这个词的可能是 0.8,而“罗纳尔多”的可能是0.001,如此类推。“什么词有多少可能出现”其实就是一个分布,语言模型实际上是把语言看作一个巨大的概率分布。这个分布很有用,比如我们可以从分布中用一些方法选词,这样就能生成文本了。

为了构建语言模型,也就是训练语言模型,我们需要让模型不断根据前文推断出下一个词的分布,然后计算模型的预测和真实值的差距(损失),然后根据损失调整模型。这是目前最流行的神经网络语言模型的主要流程,此外还有传统的 ngram 模型等,在此不讨论。

语言模型有两个特点很适合题目的场景。第一个特点从上面的文字其实可以看到,就是训练一个模型只需要文本自身就可以了,不需要其他信息,也就是说语言模型是自监督(Self-Supervised)的。最简单的语言模型只需要闷头一个词接一个词地预测,然后“对答案”就好了,不需要语法知识或者其他语言的信息。这就天然解决了无平行语料的问题。

第二个特点其实是神经网络语言模型的特点,就是训练数据越多,模型表现就越好。这被称为 Scaling Law。在题目设定的情况下,假如有一亿本书,假设每本书有九万个单词(GPT-4说的成人小说平均单词量),那么就有九万亿个单词可以训练模型,即使里面可能有些数据不好,假设有四万亿本书质量不行,那么也有五万亿个token。用来训练模型绰绰有余了。

当然,满足了这两个特点只能说明语言模型能用于这个情景,但是语言模型真的能够解决我们的问题,构建未知语言到已知语言之间的关系吗?

语言模型的跨语言迁移

这就要说到语言模型的第三个特点,语言模型的跨语言迁移能力(Cross-lingual Transfer)了。如果模型已经学习了一门语言 A 的很多资料,仅仅学习少量用另一门语言 B 编写的内容,语言模型也能非常好地掌握语言 B 的相关能力,并利用语言 A 内容里面的知识。

GPT-2[1] 是 OpenAI 于 2019 年训练的 Transformer 语言模型,其训练材料大部分是英语,他们在整理训练数据集时特意使用了语言分类器来过滤非英语的内容。当然这种过滤不是完美的,比如训练数据里有 10MB 的法语内容,听起来很多,但 GPT-2 整个训练集有 40GB 之大,这就像 OpenAI 把一整个书店的书拿去训练模型,其中只有几本书是法语书。然而即便是这样,GPT-2 在 WMT-14 法译英任务上的表现,也远远超过了拿多得多的法语材料训练的模型的能力。英译法的能力稍微差一点,但是也超过了基线。

RWKV 是彭博研发的一系列 RNN 语言模型,RNN 和 Transformer 是两种不同的神经网络架构,当然其差异对于本文来说不重要。RWKV-v5 [2]在很多多语言任务上表现非常出色,比如因果推理,句子翻译等等,但是它并没有特意在这些语言上训练这些任务,只是在训练时见过各种语言的数据而已。

以上模型的语言迁移能力比较意外,而另外一些模型是瞄准着多语言能力来训练的,比如 mBERT 和 XLM 等。mBERT 由 Google 推出,在 104 种语言的维基百科数据上面训练,所有语言都共享一套参数。BERT 系列模型采用掩码语言模型,也就是在材料种挖空,让模型补全挖空。XLM 模型来自 Facebook,其预训练任务中增加了翻译语料的任务。

对于这些模型来说,这些少量的其他语言的数据就像题目中的未知语言一样。通过预测下一个词,模型就能神奇地做各种相关任务了。所以我们就可以确定方向了:

  1. 选择一个掌握了语言 A (比如英语)或者多种语言的语言模型,比如 GPT-2 / Llama 3 / RWKV-v5
  2. 用未破译语言 X 的数据训练语言模型
  3. 让语言模型做 X 翻译到 A 的任务,胜利!

有一些技术细节需要考虑,比如如果语言 X 的书写系统不是拉丁文,那么可能需要修改语言模型的词表,涵盖语言 X 的单词;第三步的任务需要给一段初始序列也就是提示词(prompt)来让模型开始做翻译任务,GPT-2 的法译英任务用了 "<法语句子>=<英语句子>...<法语句子>="的格式,其中前面是英语法语句子对,让模型“进入状态”,最后一句法语句子是需要翻译的。

跨语言迁移背后的理论解释

上述做法很粗暴,没有任何高深精妙的理论,但是很奏效(doge)。但是怎么理解呢?首先我们还要回到语言模型的训练目标:预测下一个词。这种做法其实很深刻,用一种训练目标统一了非常多的任务:

  1. 如果给模型的材料是,”英文:Thank you,中文:谢谢你。“那么预测“谢谢你”的过程,本质上就是在学习如何翻译 Thank you。
  2. 如果给模型的材料是“我讨厌 perfume 这个词,Burr 说。法语里的说法更好听:parfum”,模型也会掌握如何翻译 perfume。
  3. 如果材料是“圆周率的值是3.1415926”,那么预测“3.1415926”其实就掌握了圆周率的大小的这一知识
  4. 如果材料是百度贴吧里的帖子:“A:<一些观点>B: 啰啰嗦嗦的,不就是……”,那么模型其实在学习如何总结材料。

上面三个例子其实也有层次,第一个例子格式很规整,清晰地展示了英文和中文的对应;第二个例子也比较清楚但没那么格式化,第三个例子和则非常随意,但是里面潜藏了一些能力。第一个例子的数据很少,需要可以收集,但第二个和第三个例子这种非结构化数据则遍地都是。其实这些材料都是某种意义上的平行语料,将不同任务都转化为了A与B的对应关系,通过预测下一个词,模型自行挖掘了数据中潜在的平行语料,而反向传播强迫模型必须学习背后的规律。因此之前提到的方法取决于有多少平行语料。

语言之间的共通性

但是潜在的平行语料终究是整体语言材料的一小部分,剩下的能力是怎么构建的呢?我们需要再深入理解语言模型为什么能学习语言,在这其中分布假说(Distributional Hypothesis)扮演了很重要的角色,也是语言模型能建模为概率分布的基础。一个词的含义是怎么决定的?并不是委员会开个会把几万个词都一一设定意思;一个词的含义是由其他相伴的词决定的。比如“苹果”相伴的词有“红”“吃”“酸甜”“水果”“市场”等等,这些词与苹果之间的共同出现就形成了苹果这个词的意思。那么对于两种不同的语言,如果两个词的相关的词都是类似的,那么这两个词的意思就相近。

最简单的分布假说往往只考虑临近的几个词,但是Transformer为代表的语言模型能够考虑相距上千乃至上万个词之间的联系,这就能更加合理的建模词语之间的关系,进而建模词语的含义了。

不仅词义之间有相似之处,语法之间也有相似之处。自然语言有上千种,但是语法结构大抵都是相似的,比如语序上主谓宾和主宾谓语言占据了大部分,语法上则有主宾或者作通等少数几套非常通用的系统。观察到这些现象,Noam Chomsky 提出了共通语法(Universal Grammar)的概念,认为所有语言背后有一套相同的结构支撑。其依据则是刺激贫乏(Poverty of the Stimulus),即人类童年接受的数据不足以让人类掌握其语言的所有组分,但大部分人还是能掌握母语的绝大部分语法,说明人脑有一些天生的通用机制来掌握语言。当然这个假说是有比较多的争议的,不过也能从侧面佐证语言的共通性。

语言模型不同模态之间的迁移

下一个问题,这些材料中可能不只有文字,还可能有图像,表格等等,或者如果这个语言还有音频资料,怎么利用这些信息呢?

其实语言模型经过微调后也能利用这些信息,这就是神经网络的神奇之处(doge)。最简单的结构可以参考 LLaVA[3],通过一个视觉编码器将图片转化成一系列 token,之后让整套模型来自行学习如何处理视觉 token 和文字token。

语言模型不仅能在不同语言之间迁移,也能在不同模态之间迁移。比如有人用语言模型分类图片,学习蛋白质的折叠,一个经过充分语言训练的模型便能取得不错的表现,达到和在这些任务上单独训练的模型的效果[4]

结语:通用智能与压缩

从物理学的牛顿定律到语言学中通用语法,从机器学习早期手动构建特征到 Transformer 语言模型一通四方,人类一直在追求通用的模型。通用意味着压缩,找出繁杂现象背后的普适规律,用最短的序列传递最多的信息量。开普勒将数以万计的观测数据压缩成三条定律,牛顿又将数以百计的实验定律压缩成三条定律,这个过程与神经网络将万亿的语言数据压缩成区区几十G的权重,进而服务于破译语言,总结问答等等任务,其实是殊途同归。

参考

  1. ^GPT-2 paper https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf
  2. ^https://zhuanlan.zhihu.com/p/659872347
  3. ^https://llava-vl.github.io/
  4. ^https://www.semanticscholar.org/paper/Frozen-Pretrained-Transformers-as-Universal-Engines-Lu-Grover/3aa2c10dd6c72267ea8a622c8f30b3c9240d5fab?sort=relevance&page=4&citedSort=relevance&citedPage=2

不知道为什么这么多答案说不行,还有些答案扯到LLM上去了,实际上这个问题早在LLM时代之前就有成熟的方案了。

通过语言学手段,其实已经能解决大多数失传文字,例如甲骨文、古埃及文字、古巴比伦文字这些的破译工作。题目所说的能否基于计算机通过大量语料进行破译,实际上就是NLP中的无监督机器翻译问题,这一块也早就有大量的研究工作。

Word2Vec时代

从Word2Vec开始,词袋模型告诉我们词向量大致是满足线性规律的,例如我们单词可以在Embedding空间中进行这些计算:

\text{one} + \text{two} \approx \text{three}

\text{king} + \text{woman} \approx \text{queen}

\text{French} - \text{Paris} \approx \text{England} - \text{London}

就在提出Word2Vec之后,还是2013年,Mikolov就给出了利用词向量模型在不同语言间进行无监督翻译的方法。对于不同的语言而言,同样语义词汇之间的相对关系依然不变,例如我们换到中文里还是会满足:

\text{一} + \text{二} \approx \text{三}

\text{国王} + \text{女人} \approx \text{女王}

\text{法国} - \text{巴黎} \approx \text{英国} - \text{伦敦}

即不同语言中,描述同种事物的词汇之间的相对关系保持不变。一种挖掘这种关系的方式是PCA降维,PCA的本质是对样本的协方差阵进行特征值分解,从而拆解出一个旋转矩阵和一个基矩阵。

而我们已经知道不同语言中的词汇相对关系是一致的,只不过词汇的表示不一致,也就是说两种语言的词向量矩阵是相似的——两个矩阵仅相差一个旋转变换。利用PCA降维将这个旋转变换去除掉后,两个矩阵也就得到了对齐。

英语(左)和西班牙语(右)词向量在PCA下的可视化

在论文中实际仅学习了一个映射关系 \min_{W} \| WX-Z \|^2 ,其中X是源语言,Z是目标语言,W就是映射矩阵,这么一个简单的方法就能对大多数词达到53%的准确率,考虑top5结果能达到75%,高置信度部分甚至能达到91%。

英语-&gt;西班牙语映射准确率

Transformer时代

跨入Transformer时代后,无监督翻译更牛逼了,这里就介绍下比较经典的回译(back-translation)的做法。

回译步骤

回译的做法相当巧妙,它妙在利用了译文的译文等于原文这一点,从而脱开了对平行语料的依赖。具体步骤如下:

  1. 先搞一个粗对齐的语料,比如收集两种语言大量的语料,然后利用上面的方法先把词汇对齐了,然后简单按词翻译一下,差不多就行。
  2. 用两种语言的语料建立两个语言模型,然后再用粗对齐语料初始化 f(源语言)->目标语言 和 g(目标语言)->源语言 两个翻译模型。
  3. 回译训练
  • 从源语言拿出一条句子x,计算f(x)作为一条x的伪翻译
  • 再计算g(f(x))将伪翻译结果翻回源语言
  • 由于g(f(x))是x翻译的翻译,因此 x=g(f(x)),这就是回译的损失函数
  • 然后再从目标语言拿一条句子y再来一遍 f(g(y))=y

论文在英法翻译上的实验结果表明,使用回译的无监督学习差不多相当于使用10万条平行语料进行有监督学习的结果,这个结果还是相当可观的。

监督翻译与无监督翻译性能对比

LLM时代

在LLM时代,模型拥有了和人类一样的学习理解能力,更加毋庸置疑我们具有这样的翻译能力。我们可以做一个思想实验,拥有无限语料的LLM学习,就好像将一个盲人小孩扔到一个全新语言环境中学习,那么他显然如同大多数先天性视障人群是可以学会语言的,此时我们将他又扔到一个新的语言环境,保持学习能力不变,他依然可以学会一种新的语言。那么此时的他,会因为没有对照表就不知道两种语言怎么对应了吗?显然不会。

我们之所以拥有这种跨语言的翻译能力,本质上是因为我们有着相似的生活环境和生活方式,比如我们都需要数字进行计数,那就可以根据数字的大小关系建立映射,我们都要在说话的时候进行指代,“你我他这那”就总是有相似的出现规律。这种来源于世界本身的相似性保证了语言语义结构的相似性,也就保证了我们只需要去求解某种最小化的映射,就能保证翻译结果八九不离十。

那么这种翻译只会在一种情况下失效,也就是对面文明和我们的生存环境大不相同,他们平时不数数、不运动,没有视觉和听觉感官,思维混沌无法理解。那面对这种克系语言,我觉得应该确实没有什么办法在两者之间建立映射,毕竟此时是否存在合理的映射都难以保证了。


参考文献:

[1] T. Mikolov, Q. V. Le, and I. Sutskever, “Exploiting Similarities among Languages for Machine Translation,” arXiv:1309.4168 [cs], Sep. 2013, Accessed: [Online]. Available: arxiv.org/abs/1309.4168

[2] G. Lample, M. Ott, A. Conneau, L. Denoyer, and M. Ranzato, “Phrase-Based & Neural Unsupervised Machine Translation,” arXiv:1804.07755 [cs], Aug. 2018, Accessed: [Online]. Available: arxiv.org/abs/1804.0775