没有合适的资源?快使用搜索试试~ 我知道了~
内容包括四个部分: LM:这是ChatGPT的基石的基石,是一个最基本的概念,绕不开,逃不过,没办法。 Transformer:这是ChatGPT的基石,准确来说它的一部分是基石。 GPT:本体,从GPT-1,一直到现在的GPT-4,按openai自己的说法,那模型都是那个模型,只是它长大了,变胖了,不过更好看了。关于这点,大家基本都没想到。现在好了,攀不上了。 RLHF:ChatGPT神兵利器,有此利刃,ChatGPT才是那个ChatGPT,不然就只能是GPT-3
资源推荐
资源详情
资源评论
Yam
Feeling, Coding, Thinking
ChatGPT 基础科普:知其一点所以然
2022年底,ChatGPT突然间在AI圈开始流行,准确来说是搞自然语言处理(Natural Language Processing,
NLP)圈子里先火起来了。遥想当时,本以为就会在圈内火一阵,结果现在……没想到居然成了AI的救命稻草,当
然对AI工程师尤其是NLP工程师是什么就不好说了。海内外沸腾之后就是第一时间的跟进,结果自然是努力对齐而
无功,连牛逼的Google和FaceBook都翻车了。不过总归是折腾出来一些东西,大伙儿也都有了目标,圈子又有了
新活力。希望OpenAI继续发力,我等再多苟些日子。
无论是ChatGPT还是后来的模仿者,它们其实都是语言模型,准确来说——大语言模型。使用时,无论是调用API
还是开源项目,总有一些参数可能需要调整。对大部分内行人士来说应该都不成问题,但对外行就有点玄乎了。基
于此,本文将简要介绍ChatGPT相关技术基本原理,行文将站在外行人角度,尝试将内容尽量平民化。虽然不能深
入细节,但知晓原理足以很好使用了。
本文共分为四个部分:
LM:这是ChatGPT的基石的基石,是一个最基本的概念,绕不开,逃不过,没办法。
Transformer:这是ChatGPT的基石,准确来说它的一部分是基石。
GPT:本体,从GPT-1,一直到现在的GPT-4,按openai自己的说法,那模型都是那个模型,只是它长大
了,变胖了,不过更好看了。关于这点,大家基本都没想到。现在好了,攀不上了。
RLHF:ChatGPT神兵利器,有此利刃,ChatGPT才是那个ChatGPT,不然就只能是GPT-3。
LM
LM,Language Model,语言模型,简单来说就是利用自然语言构建的模型。这个自然语言就是人常说的话,或
者记录的文字等等,只要是人生产出来的文字,都可以看做语言。你现在看到的文字也是。模型就是根据特定输
入,通过一定计算输出相应结果的一个东西,可以把它当做人的大脑,输入就是你的耳、眼听或看到的文字,输出
就是嘴巴说出来或手写出来的文字。总结一下,语言模型就是利用自然语言文本构建的,根据输入的文字,输出相
应文字的模型。
具体是怎么做的呢,方法有很多种,比如我写好一个模板:「XX喜欢YY」,如果XX=我,YY=你,那就是我喜欢
你,反过来就是你喜欢我。我们这里重点要说的是概率语言模型,它的核心是概率,准确来说是下一个词的概率。
这种语言模型在通过已经有的词预测接下来的词。我们举个简单的例子,比如你只告诉模型:「我喜欢你」这句
话,当你输入「我」的时候,它就知道你接下来要说「喜欢」了。为什么?因为它脑子里就只有这四个字,你没告
诉它其他的呀。
好,接下来,我们要升级了。假设你给了模型很多很多句话,多到现在网上能找到的资料都给了它。这时候你再输
入「我」,我敢打赌它大概不会说「喜欢」了。为什么?简单,见多了世面,眼里怎么可能只有喜欢你三个字。但
因为我们考虑的是最大概率,很有可能它每次都会输出同样的话。对,没错,如果每次都只选择下个最大概率的
词,你就是会得到同样的话。这种方法叫做Greedy Search(中文叫贪心搜索),很贪,很短视!所以,语言模型
都会在这个地方做一些策略,让模型每一步多看几个可能的词,而不是就看那最高的一个,这样继续往下找的时
候,你会发现到下一步时,刚刚最大概率的词,如果加上这一步的词,它的路径(两步概率乘积)可能没有刚刚小
一点概率的词的路径。举个例子,请看下面这幅图:
(图1:如何预测下一个词)
先看第一步,如果只选概率最大的那个词,那就变成「我想」了,但是别急,我们给「喜欢」一点机会,同时考虑
它们两个好不好。再往下看一步,最大概率的都是你,我们也选两个,最后有这么几句(以及我们附上它们的概
率):
「我喜欢你」概率:0.3×0.8=0.24
「我喜欢吃」概率:0.3×0.1=0.03
「我想你」概率:0.4×0.5=0.2
「我想去」概率:0.4×0.3=0.12
多看一步大不一样!看看概率最大的成谁了,久违了,再说一句「我喜欢你」。上面这种方法叫做Beam Search
(中文叫集束搜索),简单来说就是一步多看几个词,看最终句子(比如生成到句号、感叹号或其他停止符号)的
概率。刚刚我们的例子中,num_beams=2(只看了2个),看的越多,约不容易生成固定的文本。
好了,其实在最开始的语言模型中,大家基本就到这里,上面介绍这两种也叫解码策略。当时更多被研究的还是模
型本身,我们经历了从简单模型到复杂模型到巨复杂模型的变迁过程。简单模型就是把一句话切成一个个词,然后
统计概率,这类模型叫做Ngram语言模型,是最简单的语言模型,这里的N表示每次用到的上下文长度。还是举个
例子,看下面这句话:「我喜欢在深夜的星空下伴随着月亮轻轻地想你」。常用的N=2或3,等于2的叫Bi-
Gram,等于3的叫Tri-Gram:
Bi-Gram:我/喜欢 喜欢/在 在/深夜 深夜/的 的/星空 星空/下……
Tri-Gram:我/喜欢/在 喜欢/在/深夜 在/深夜/的 深夜/的/星空 的/星空/下……
前者下一个词是根据上一个词来的,后者是根据上两个词来的,就是这个区别。这里有个小知识需要说明一下,实
际中我们往往不叫一个词为「词」,而是「Token」,你可以将其理解为一小块,可以是一个字,也可以是两个字
的词,或三个字的词,取决于你怎么Token化。也就是说,给定一个句子时,我有多种Token化方式,可以分词,
也可以分字,英文现在都是分子词。比如单词Elvégezhetitek,Token化后变成了:
中文现在基本都是字+词的方式。我们不直接解释为啥这么做,但是可以想一下完全的字或词的效果,拿英文举例
更直观。如果只是用26个英文字母,虽然词表很小(加上各种符号可能就100来个),但粒度太细,每个Token几
乎完全没法表示语义;如果用词,这个粒度又有点太大,尤其英文还有不同时态,其实它们意思差不多,只是后面
不一样。所以子词就应运而生——它把一个词拆成一定大小的语义单位,每个单位既可以表示一定含义,又能灵活
组合。中文稍微简单一些,就是字+词,字就是一个字能独立表示意义,比如「是」、「有」、「爱」;词是这个
词拆开就不太对劲了,比如「长城」、「情比金坚」。当然,中文你非要搞成一个一个字也不是不可以。我们主要
还是从效果上来看。
Ngram模型有个致命缺陷——它的表示是离散的,稍微解释一下,在计算机中,只能用1和0表示某个词。假设词
表大小为50000,刚刚Bi-Gram中,「我喜欢」这个Gram就是49999个0和1个1组成的稀疏向量。这种表示方法使
用起来有很多缺点,关于这部分内容,后面的《Embedding》部分会展开讲解。对,Embedding就是一种稠密表
示方法,简单来说,一个Token(后面就都说Token了)是很多个小数(这个很多可以是任意多个,专业称呼为
Embedding的维度,看用的模型和设定的参数),一般数字越多,模型越大,表示能力越强。你说我就喜欢用一
个小模型,搞一个很大的维度,那我只能说效果可能要让你失望了,911在乡村土路上可能跑不过拖拉机。
接下来,我们就假设每个词是一个一维向量,简单解释一下在这种设定下怎么预测下一个Token。其实还是算概
率,但这次和刚刚有点不一样了,刚刚离散的那就是统计出来有多少次除以总词数就是出现概率。但是稠密向量要
稍微换个方式,也就是说,给你一个d维的向量,你最后要输出一个长度为N的向量,N是词表大小,N中每一个值
都是一个概率值,表示Token的概率,加起来为1。写成简单的计算表达式如下:
上面的W就是模型的参数,其实X也可以看作是参数自动学习到。因为我们知道了输入和输出的大小,所以中间其
实可以经过任意随意的计算,总之就是各种张量(三维以上数组)运算,只要保证最后的形式不变就行。这中间的
各种计算就意味着各种不同的模型。
在深度学习的初期,最著名的语言模型是RNN,Recurrent Neural Network,中文叫循环神经网络。RNN 模型
与其他神经网络不同的地方在于,它的节点之间存在循环连接,这使得它能够记住之前的信息,并将它们应用于当
前的输入。这种记忆能力使得 RNN 在处理时间序列数据时特别有用,例如预测未来的时间序列数据、自然语言处
1
['El', '##vé', '##ge', '##zhet', '##ite', '##k']
1
2
3
X = [0.001, 0.002, 0.0052, ..., 0.0341] # d维,加起来和1没关系,大小是1×d
Y = [0.1, 0.5, ..., 0.005, 0.3] # N个,加起来=1,大小是1×N
W·X = Y # W自然可以是 d×N 维的矩阵
剩余17页未读,继续阅读
资源评论
贤哥呵
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功