“AI 教父”Geoffrey Hinton:AI 会欺骗人类,控制超级智能非常重要( 四 )


“AI 教父”Geoffrey Hinton:AI 会欺骗人类,控制超级智能非常重要

文章插图
我只是想给你展示一个蒸馏的例子 。这里有一些来自"M"数据集的图像 。我展示给你的是教师对各个类别的概率分配情况 。
当你使用高温度参数训练教师模型并观察第一行时,它非常自信地认为这是一个数字二 。如果你看第二行,它也相当自信地认为这是一个数字二 。但它同时认为可能是一个数字三,或者可能是一个数字八 。如果你仔细观察,你会发现这个数字二与字母"h"相比更相似,而不是其他数字二 。如果你看第三行,你会发现这个数字二非常像一个零 。
而教师模型告诉学生,当你看到那个图像时,应该输出数字二,但你也可以在输出中稍微增加对数字零的可能性 。学生模型从这个例子中学到了比仅仅被告知那是一个数字二更多的信息 。它正在学习与该图像相似的其他特征 。
如果你看第四行,你会发现学生模型非常自信地认为那是一个数字二,但它也认为可能是一个数字一的可能性非常小 。对于其他的数字二,它并不认为可能是数字一,或许只有第一行有一点可能性 。我已经画出了学生模型认为可能是数字一的那个图像,这样你就能理解为什么它看起来像一个数字一,因为有时候数字一就是画成那样的 。
其中一个图像在顶部有一条线,在底部有一条线 。这种样子的图像是数字一的一种特点,数字二也有点类似 。然后,如果你看最后一张图,这是教师实际上判断错误的一张图,教师认为它是数字五,但根据无尽标签,它实际上是数字二 。学生模型可以从教师的错误中学到很多东西 。
关于蒸馏的一个特殊属性我特别喜欢,那就是当你训练学生模型使用教师的概率时,你在训练学生模型以与教师相同的方式进行概括,即通过给错误答案赋予较小的概率来进行概括 。
通常情况下,当你训练一个模型时,你会努力让它在训练数据上得到正确答案,并希望它能正确地推广到测试数据上 。你会尽量使模型不过于复杂,或者采取各种方法,希望它能正确地进行推广 。但在这里,当你训练学生模型时,你直接训练学生模型去进行推广,因为它被训练成以与教师相同的方式进行推广 。显然,你可以通过给出一个图像的标题而产生更丰富的输出,然后训练教师和学生以相同的方式预测标题中的单词 。
“AI 教父”Geoffrey Hinton:AI 会欺骗人类,控制超级智能非常重要

文章插图
现在我想讨论的是一个智能体群体如何共享知识 。
所以,我们不再考虑个体智能体,而是考虑在一个群体中分享知识,事实证明,社区内部的知识共享方式决定了计算过程中的许多其他因素 。
使用数字模型和数字智能,你可以拥有一大群使用完全相同权重的智能体,并以完全相同的方式使用这些权重 。这意味着你可以让这些智能体对不同的训练数据片段进行观察和计算,为权重计算出梯度,然后将它们的梯度进行平均 。
现在,每个模型都从它所观察到的数据中学习 。这意味着你可以通过让不同的模型副本观察不同的数据片段,获得大量的数据观察能力 。它们可以通过共享梯度或权重来高效地分享所学的知识 。
如果你拥有一个拥有万亿个权重的模型,那意味着每次分享时你可以获得数万亿比特的带宽 。但这样做的代价是你必须拥有行为完全相同的数字智能体,并且它们以完全相同的方式使用权重 。这在制造和运行方面都非常昂贵,无论是成本还是能源消耗方面 。
一种替代权重共享的方法是使用蒸馏(distillation) 。如果数字模型具有不同的架构,我们已经在数字模型中使用蒸馏 。但是,如果你使用的是利用特定硬件的模拟特性的生物模型,那么你无法共享权重 。因此,你必须使用蒸馏来共享知识 。这就是这次讨论中所涉及的内容 。
正如你所看到的,使用蒸馏来共享知识并不是很高效 。用蒸馏来共享知识是困难的 。使我产生了一些句子,你试着弄清楚如何改变你的权重,以便你也能产生相同的句子 。但是与仅仅共享梯度相比,这种方式的带宽要低得多 。每个曾经教过东西的人都希望能够将自己所知道的东西直接倾囊而授给学生 。那将是很好的 。那大学就没必要存在了 。
但是我们的工作方式并不像那样,因为我们是生物智能 。我的权重对你没有用处 。到目前为止,我们可以说有两种不同的计算方式,一种是数字计算,另一种是生物计算,后者利用了动物的特性 。它们在不同代理之间有效共享知识的效率上存在很大差异 。如果你观察大型语言模型,它们使用数字计算和权重共享 。


推荐阅读