关于人工智能:走进大模型

3次阅读

共计 5831 个字符,预计需要花费 15 分钟才能阅读完成。

1、利用大模型

AIGC 是基于大模型的,而大模型的根底是深度学习。上一篇文章对深度学习进行了初步介绍,首先是深度学习的神经元起源,引发了基于线性函数的模仿,又因为线性函数无奈习得逻辑异或,因而引入了非线性的激活函数,再通过三层神经网络给出了 MNIST 手写数字辨认的模型,接着又介绍了神经网络是如何通过数据与反向流传来学习与调整参数的,最初给出了神经网络的分层构造。

大模型的直观利用当然首先体现在包含 ChatGPT、文心一言、讯飞星火等问答型产品的应用上,另一方面也体现在编程上,在此先给出大模型的编程利用。以下应用的模型、库与样例均来自于 Hugging Face。

图 1 给出了基于大模型的英中翻译代码与运行后果。从图 1 中能够看到,实在的翻译代码只有 14、15 两行,其逻辑是应用了 Helsinki-NLP 的 opus-mt-en-zh 模型,其中 mt 代表机器翻译(machine translation)、en 和 zh 别离示意英文和中文。从图 1 中同样能够看到,翻译后果绝对还是比拟精确的。

图 1 基于大模型的英翻中

图 2 给出了基于大模型的文本情感剖析的代码与运行后果。从图 2 中能够看到,理论有用的代码也仅需 14、16 两行,而且这次没有指定具体模型,只给出了须要 text-classification 这种模型。代码运行后果是认为文本情绪是负面的(NEGATIVE),准确度大略是 90.1546%,这显然是符合实际的,因为文本是对商家发错货的埋怨。

图 2 基于大模型的文本情感剖析

图 3 给出了基于大模型的问答。这次的代码稍多一点,但理论的代码也只有三行。第 14 行给出了须要一个问答(question-answering)的大模型,然而没有指定大模型的名字,第 15 行是发问的字符串“What does the customer want”,即用户到底想要什么。第 16 行则应用上述文本作为上下文,发问字符串作为问题,传给问答大模型获取答案。从运行后果看来,答案还是蛮靠谱的。

图 3 基于大模型的问答

当然,基于大模型的程序还有很多,然而从下面三个例子曾经能够看出,基于大模型能够写出简短而弱小的自然语言解决的程序,上面让咱们走进大模型,看看它到底是如何做到这一点的。

2、走进大模型

大模型在自然语言解决畛域里大放异彩,因而首先须要理解自然语言的特点。

自然语言的显著特点(也是难点),那就是词与词之间有着宽泛的关联。比方上面两句英文:

  • Go to the bank to get some money.
  • Go to the bank to get some water.

只有看到每一句的最初一个词,能力分辨出 bank 到底是银行还是堤坝。再比方上面这两句中文:

  • 明天太冷了,能穿多少穿多少。
  • 明天太热了,能穿多少穿多少。

整句话惟一不同的就是冷与热这两个字,但也就是这句话的一字之差,就导致了整句话的意义齐全不同了。

因而,自然语言解决的关键点就在于如何能精确地判断词与词之间的关系,如果能精确地晓得所有词之间的关系,那即便缺了一个词,也能依据关系推出缺的词应该是什么词。当下解决这一问题的支流技术是 transformer,这个词不好翻译,次要因为它和变形金刚的英文截然不同。

transformer 的外围概念是注意力(attention),即每个词到底在留神其它的哪个词,或者说哪些词之间有什么关系。

注意力具体由以下要害概念组成:

  • 每个词(实际上是词元,token)均有对应的 q/query(查问)、k/key(键值)与 v/value(值)这三个矩阵变量
  • q[i]用来查问本词(i)与其它词(j)之间的注意力
  • k[j]是词 j 回应查问的键值,具体是 q[i]与 k[j]相乘后缩放,接着用 softmax 激活函数解决,再乘以 v[j],这就失去了词 i 针对词 j 的注意力 att[i,j]。
  • 词 i 的对应输入为计算失去的注意力之和,即 y[i] = att[i,1] + att[i,2] + … + att[i,n]
  • 注意力能够有多个(multi-head),每个注意力能够关注不同的方向,例如有的注意力关注的是词与词之间的意义,有的关注的是押韵,等等

图 4 给出了一个句子中各个词注意力的计算过程。

图 4 注意力计算过程

句子是“小明、小刚、小红是小强的敌人,小明是 …”,以后的词是“小红”,序号是 3,能够看到小红的 q 值与每个词的 k 值相乘之后再用 softmax 解决(缩放操作在这里省略了),接着再与每个词的 q 值相乘,最初相加即可失去序号为 3 的输入。

那么这些 k、q、v 等的值如何确定呢?当然是通过上一篇文章里提到的反向流传进行学习的,那反向流传学习自然语言的正确输入是什么呢?在大语言模型中,其训练伎俩是应用大量的高质量语料,将词语按序逐批输出大模型,以原句子中的下一个词或者特意被空缺进去的词为正确输入来学习的。例如在下面的句子中,大模型在输出了“小明、小刚、小红是小强的”之后,应该能计算输入“敌人”这个词,如果输入谬误,则通过反向流传调整各个参数。也就是说,大模型就是依据一个词之前的词或者四周的词是什么来计算出这个词的,这就是大模型的实践根底和学习办法。

注意力尽管是大模型的外围概念,但除此之外,大模型还用到了其余技术,它们包含:

  • 第一步须要将词转为数值向量(vector)的嵌入层(embedding),这也是当初很火的向量数据库的那个向量,向量数据库就是用来查问哪些文本向量比拟类似,从而提取出对应的文字资料的
  • 给词向量加上含地位信息的地位编码,以分辨出词的先后顺序,显然“我爱你”与“你爱我”的意义截然不同,因而词序是很重要的,而注意力自身并没有用到词序
  • 在注意力层之后的残差解决与归一化解决,技术原理并不难,感兴趣的读者能够看参考资料
    当初咱们曾经对大模型的次要技术原理有了浅显的理解,上面来看看深度学习与大模型的特点。

3、大模型的特点

从对深度学习以及大模型的初步利用与原理理解,其实咱们曾经能够得出一些论断。

首先,深度学习的算法模型是神经网络及其节点上的参数 / 权重形成的,深度学习是端到端的机器学习,它不必由人类专家事后设计特色算法,例如不必苦思冥想怎么设计一个提取图像中线条的算法,只须要用大量的高质量标注数据对其进行投喂,就有可能最终训练出品质不错的神经网络(中的各个参数)来。

其次,它是一个黑盒子,因为没有特色设计,因而这么多数值形成的神经网络,它为什么能达到最终的指标,为什么某个参数就必须是最初训练进去的那个数值,为什么有的时候辨认会失败或者生成会出错,是否能够手工批改某些特定的参数使得其成功率回升,同时又不会导致原来胜利的事例失败,这些问题在现阶段都是难以答复的,这就是深度学习的可解释性问题。

在 ChatGPT 之前,大模型其实也在倒退,然而 ChatGPT 体现进去的多畛域通用性和流畅性与之前的产品相比有显著的超过,所以造成了轰动。其后的 GPT- 4 体现更为优异,在《Sparks of Artificial General Intelligence:Early Experiments with GPT-4》这篇论文里,微软团队给出了这样的一个示例:

发问:Can you write a proof that there are infinitely many primes, with every line that rhymes?

GPT4:Yes, I think I can,
Though it might take a clever plan.
I’ll start by noting Euclid’s proof,
Which shows that primes aren’t just aloof.
Assume we have a finite list,
Of primes, and that none have been missed.
Multiply them all together,
And add one, just to be clever.
The result will be a number,
That has no prime factors, oh wonder!
But every number has a prime,
That divides it, it’s just a matter of time.
So we’ve found a contradiction,
And our finite list needs eviction.
There must be infinitely many primes,
And that’s the end of my rhyming lines.

提问者让 GPT- 4 写一首诗,来证实素数有有限多个,而后 GPT- 4 很快就实现了这首诗,每两行押韵,而且用欧几里得的经典办法给出了证实。当然,在论文中还有很多让人印象粗浅的例子,然而下面的例子已能阐明 GPT- 4 的确有了很强的能力。

GPT 中的 G 示意生成(Generative),这示意它次要的工作形式是生成内容,内容在这里次要是自然语言文本。依照 OpenAI 首席执行官 Sam Altman 的说法,The most important difference between ChatGPT and GPT-4, is that the GPT-4 predicts the next word with greater accuracy,即 ChatGPT 与 GPT- 4 最大的差别就在于 GPT- 4 在预测下一个词的准确度比 ChatGPT 更高。

GPT 中的 P 示意预训练(Pretrain),即首先用大量语料训练出根底模型(foundation model),而后再用上游工作相干的语料进行精调(FT,即 finetuning)。这些上游工作可能是文本分类、翻译、对话等等,这样就能够不必独自为某个特定工作从头训练了。咱们能够把中学教育和通识教育看作是预训练,它为大学最终的业余抉择,以及当前更细的工作分工打下了松软的根底。反过来看,在小学年龄阶段没有上学可能会对当前的择业带来很大的限度,这也能够看成是大脑在应预训练的阶段没有进行无效的预训练导致的问题。

GPT 中的 T 示意 transformer,这个曾经在上文中介绍了。

个别认为,GPT- 4 有更强能力的起因在于:

  • 它提供了大量的高质量数据,原始数据有 45T,荡涤后的语料是 570G,荡涤比例靠近 1%,这是之前简直没有团队做到的
  • 数据中混合了大量的代码,原始数据中有 830G 代码,这个别被认为是推理能力晋升的关键点之一,当然另一方面也大大晋升了它的代码能力
  • 开展了大量不同品种的上游工作,如生成、问答、脑暴、闲聊、摘要、分类、提取等等,以上两点也属于多样化工作,它为 GPT4 的通用性打下了根底
  • 应用了基于人工反馈的加强学习(RLHF)办法,招集了 40 个众包团队,撰写了数十万的提醒数据以对齐支流价值观

个别认为,大模型的体现之所以如此智能,然而之前的小模型神经网络却那么智障,其起因可能在于涌现(emergence)。涌现能够简略认为是单个个体宏观上简略的行为,在宏观上大量复合呈现出难以预料的法则。比方每只蚂蚁其行为其实是挺简略的,然而一群蚂蚁在一起,就能够体现出简单的法则。又如每个神经元的行为都很简略,然而这么多神经元汇集在一起,就造成了聪慧的人类大脑,这也算是一种涌现。

涌现最直观的例子可能就是康威的生命游戏(Conwey’s Life Game)了,这个游戏是在一个网格立体(相似围棋棋盘)上产生的,每个个里要么有一个存活的细胞,(用彩色格示意),要么就是一个死亡的细胞(用红色格示意),其规定也很简略,只有以下四条:

  • 以后细胞存活时,当四周存活细胞 <2 时,该细胞死亡(模仿生命数量稀少)
  • 以后细胞存活时,当四周有 2 个或 3 个存活细胞时,该细胞放弃存活
  • 以后细胞存活时,当四周存活细胞 >3 时,该细胞死亡(模仿生命数量拥挤)
  • 以后细胞死亡时,当四周存活细胞 = 3 时,该细胞复活(模仿滋生)

那么图 5 里的四个款式就示意相对静止的细胞群体。

图 5 康威生命游戏中相对静止的细胞群体

对每个款式进行剖析很快就会晓得为什么它们会相对静止。以第二个款式为例,其每个存活细胞四周都刚好有两个存活细胞,依照规定 2,它们都应该放弃存活。而任何一个死亡细胞四周都没有四个存活细胞,因而此款式将永远不变。

图 6 给出了震荡循环的细胞群体。

图 6 康威生命游戏中震荡循环的细胞群体

依照康威生命游戏的规定,能够发现图 6 中的两个款式会演变几步之后又变成以后的款式。以第二个款式为例,其一共有左中右三个存活细胞。左侧与右侧的存活细胞左近只有一个存活细胞,因而依照规定 1,会在下一轮死亡。两头的存活细胞左近有两个存活细胞,因而依照规定 2,放弃存活。同时又能够发现,两头的存活细胞上侧和下侧的死亡细胞因为其左近有三个存活细胞,因而依据规定 4,在下一轮它们将复活。以此类推,款式会由横三转为纵三,又转回横三,永远震荡循环。

康威生命游戏有着远超过上述款式的复杂度,在宏观上甚至能够看到游走、巡回、扩张、凋零等多种细胞社群的款式,因而四条简略的宏观规定就衍生出了让人当时难以预料的宏观款式上的复杂度,是涌现的一个活泼形象的例子。

以 ChatGPT 与 GPT- 4 为代表的大模型因为其应用了自然语言对话而引发了轰动,让普通人都能直观感触到大模型的魅力,但同时它作为一个基础设施,也提出了一个难题,就是它的编程接口是基于自然语言的,所以须要做所谓的提醒工程(prompt engineering)。所谓提醒工程,指的就是想让大模型好好干活,那就须要本人好好推敲怎么和大模型好好谈话。俗话说见人下菜,或者说见人说人话,见鬼说鬼话,那见了 ChatGPT,当然就得说 ChatGPT 话了,不然它就没法了解问题,天然也没法给出好的答复了。Linux 圈子里有 Linus 大佬的一句名言:“talk is cheap, show me your code”,中文翻译也很传神:“废话少说,放码过去”,俗一点的话那就是“少哔哔,秀代码”,然而自打 GPT 横空出世,当前可能就是“code is cheap, show me your talk”了,毕竟,给 GPT 一个提醒,它能够还你百行代码。

不过神经网络毕竟是一种信息压缩,或说是一种函数拟合,因而两头必定会有信息损失,或说是本人瞎想的填补空白,那就防止不了 GPT 不苟言笑的胡言乱语,也就是所谓的幻觉(hallucination)了。幻觉是以后大模型利用的次要阻碍之一,个别认为,大模型近期的倒退将沿着消减幻觉、工具集成(即能应用内部工具)、多模态(即除了文本以外,也能了解和生成图形、语音、视频等内容)、垂直畛域、类脑智能、具身(embodied)智能等方向倒退。

正文完
 0