本文为作者内部同享文档,由于不涉敏能够揭露,同享自身是课程方法,有什么疑问欢迎在评论区留言。

开场白

人工智能开展到现在,在2个重要范畴获得了重大突破,有望抵达人类水平:

  • 核算机视觉 (Computer Vision, CV)-> 期望机器协助人类处理图像数据
  • 自然言语处理(Natural Language Processing, NLP)-> 期望机器协助人类处理文本数据

AIGC

  • 核算机视觉 (Computer Vision, CV)-> AI作画
  • 自然言语处理(Natural Language Processing, NLP)-> 文本生成

自然言语处理在大言语模型(Large Language Model, LLM)被提出之后,再次获得重大突破:

  1. 以ChatGPT为代表的对话大模型有望从头界说人类运用核算机的方法

    • 直接以自然言语让核算机执行使命替代编程言语已具有或许性
  2. 运用大模型的才能规划开发互联网产品,有望推翻部分范畴产品规划开发形式

    • 举个:百度翻译、谷歌翻译

注:

  1. 关于运用核算机的方法 -> 咱们这儿讲的是底层的运用方法,应用层来看的话都是经过软件来运用,但软件也是经由编写程序编译之后的产品,归根结底仍是经过代码。
  2. 关于推翻部分范畴 -> 负责任地讲,现在仍是有一些范畴传统方法功率和成果更好,未来不确定。

接下来咱们来从0到1了解一下大言语模型背面的根底知识。

导语

经过本节课程,期望咱们能够了解:

  1. 言语模型的数学根底:概率言语模型 (25分钟)
  2. 神经网络言语模型的开展前史:即大言语模型是怎么开展而来的 (10分钟)
  3. GPT练习流程:大言语模型是怎么练习的 (10分钟)

言语模型 Language Model

依据言语客观事实而进行的言语抽象数学建模,是一种对应联系。
言语模型与言语客观事实之间的联系,如同数学上的抽象直线与详细直线之间的联系。

言语模型开展简史

概率言语模型 Probabilistic Language Model

一说统计言语模型 Statistic Language Model
概率言语模型是一个根据概率的判别式模型,它的输入是一句话即多个单词组成的顺序序列,输出是这句话的概率,即这些单词的联合概率(joint probability)。

compute the probability of a sentence or sequence of words

概率言语模型是一个针对言语进行数学建模的概率模型它衡量了一句话,也便是多个单词的组成的顺序序列,在语料库(corpus)中实践存在的概率如果语料库无限大,那么这个概率扩展到这句话实践在自然言语中存在的概率

注:也能够理解为是也能够理解为它是实在正确的一句话的概率。

I like eating apples. ✅
I prefer coke to soda. ✅
Enjoy basketball playing I. ❌

以上面3个语句为例,前2句是实在语句,在日常生活中或许会被用到,第3句则不是。

N-Gram言语模型

假定一个自然言语语句WWll个单词组成,记为w_1,w_2,…,wlw\_1,w\_2,…,w_l,那么:
P(W)=P(w1,w2,…wl)=p(w1)p(w2∣w1)p(w3∣(w1,w2))…p(wl∣w1,w2,…,wl−1)P(W) = P(w_1,w_2,…w_l)=p(w_1)p(w_2|w_1)p(w_3|(w_1,w_2))…p(w_l|w_1,w_2,…,w_{l-1})

条件概率公式:
P(B∣A)=P(AB)/P(A)P(B|A) = P(AB)/P(A) P(AB)=P(A)∗P(B∣A)P(AB) = P(A)*P(B|A) P(ABC)=P(A)∗P(B∣A)∗∣P(C∣AB)P(ABC) = P(A)*P(B|A)*|P(C|AB)

这么核算概率有个问题:0<p(wi)<10<p(w_i)<1 ,语句越长,参数空间越大,概率越挨近0,数据稀疏严重。

引进马尔科夫假定(Markov Assumption),即下一个词的呈现仅依靠于它前面的n−1n-1个词,咱们得到: p(wi∣w1,w2,…wi−1)=p(wi∣wi−n,…wi−1)p(w_i|w_1,w_2,…w_{i-1})=p(w_i|w_{i-n},…w_{i-1})

马尔科夫性质:当一个随机进程在给定现在状况及一切曩昔状况情况下,其未来状况的条件概率散布仅依靠于当时状况;换句话说,在给定现在状况时,它与曩昔状况(即该进程的前史途径)是条件独立的,那么此随机进程即具有马尔可夫性质。 这儿引进马尔科夫假定,以为按从左到右读到的一句话有时间先后的概念,后面的单词仅依靠于它前面的n-1个单词。

n=n=表明下一个词的呈现不依靠它前面的0个单词,即每个单词条件独立,称为unigram model P(w1,w2,…,wl)=∏i=1lP(wi)P(w_1,w_2,…,w_l)=\prod_{i=1}^{l}P(w_i)

# English
Questions make difference.
Questions make reality.
Questions begin a quest.
# 中文
我吃苹果。
我吃香蕉。
我喝可乐。
发问:
给定单词“我”,下一个单词是吃的概率是多少?下一个单字是喝的概率是多少?“我吃苹果”整句话的概率是多少?

n=2n=2表明下一个词的呈现只依靠它前面的1个词,称为bigram model P(w1,w2,…,wl)=∏i=1lP(wi∣wi−1)P(w_1,w_2,…,w_l)=\prod_{i=1}^{l}P(w_i|w_{i-1})

n=3n=3表明下一个词的呈现只依靠它前面的2个词,称为trigram model(常用) P(w1,w2,…,wl)=∏i=1lP(wi∣wi−2wi−1)P(w_1,w_2,…,w_l)=\prod_{i=1}^{l}P(w_i|w_{i-2}w_{i-1})

以此类推,咱们的得到了给定nn词,输出下一个词概率的言语模型: P(W)=∏i=1lp(wi∣wi−n+1i−1)P(W)=\prod_{i=1}^{l}p(w_i|w_{i-n+1}^{i-1}),其间wijw_i^j表明单词序列wi,w2,…,wjw_i,w_2,…,w_j

构建言语模型能够运用最大似然估量(Maximum Likelihood Estimate)生成每一个条件概率,以unigram为例即: p(wi∣wi−1)=count(wi−1,wi)/count(wi−1)p(w_i|w_{i-1})=count(w_{i-1},w_i)/count(w_{i-1})

核算概率言语模型公式的每一个组成元素,再将一切组成元素连乘,即得整个语句的概率。

发问(十分重要)
给定 n n n个词,为语料库里面的一切单词依次核算概率,选概率最大的那个单词,作为n+1个单词输出,想想咱们在做什么?

给定n+1个单词,求第n+2个单词,…,咱们在做文本生成这便是言语模型最朴素的原理

这种用法下,咱们将n-gram模型作为生成式模型运用。

N-gram言语模型实践效果并不好,能处理的实践问题十分有限,因而自然言语处理在概率言语模型阶段没有发生太大影响力。

神经网络言语模型 (NNLM)

跟着深度学习的呈现和兴起,咱们有了一个强有力的工具:人工神经网络
神经网络言语模型即运用神经网络来进行言语建模咱们将给定的n个单词作为输入,猜测第n+1个单词作为输出,那么能够运用监督学习的方法经过符号数据集让神经网络学习到输入输出之间的映射联系。

NNLM

NNLM, Neural Network Language Model
A Neural Probabilistic Language Model (2000, 2003)

大模型基础知识 - 语言模型及其演进 公开版

运用一个简单的神经网络来替代概率模型,模型的练习方针界说为给定 n n n个单词作为上下文,猜测下一个单词是上下文中的第 i i i个单词,输入层 C C C表明一个同享的矩阵参数,随机初始化, C i C_i Ci​表明语料库中第 i i i个单词的特征向量。

发问(十分重要)
输入层的矩阵 C C C是什么?

答案:词向量

Word2Vec

Efficient Estimation of Word Representations in Vector Space(2013)
练习神经网络言语模型进程中,将神经网络的权重值作为词向量来运用

现在咱们讲的词向量,其实是练习言语模型进程中的副产品

大模型基础知识 - 语言模型及其演进 公开版

项目 Value
CBOW (Continuous Bag-of-Words Model) Skip-gram
CBOW 的基本思想为以上下文作为输入,猜测中心词。详细而言,设定一个上下文规划 N,输入为中心词的前 N 个单词和后 N 个单词,输出为中心词的概率散布,练习方针是实在中心词的概率最大(即argmax),也即1次分类进程。 Skip-gram基本思想为以中心单词作为输入,猜测上下文。详细而言,设定一个上下文规划 N,输入为中心词,输出为前 N 个单词和后 N 个单词的概率散布,练习方针是2N次概率输出,每次使得实在上下文词的概率最大(即2N次argmax),也即2N次分类进程。练习进程的参数规划十分巨大,有Hierarchical Softmax、Negative Sampling等方法下降核算复杂度,这儿不再展开。

神经网络言语模型架构演进

上个末节介绍的NNLM和Word2Vec是一个DNN架构的神经网络言语模型,跟着神经网络架构的演进,神经网络言语模型的架构也在不断演进:

大规划言语模型 Large Language Model (LLM

PaLM、LLaMA、GPT 3.5、GPT 4

大规划言语模型(Large Language Model, LLM) ,即参数规划十分大的神经网络言语模型,由神经网络言语模型随网络架构经长时间开展迭代而来,特点是参数规划抵达一定量级(千万~亿)之后,呈现了呈现才能,使得模型在各项NLP使命中获得重大突破,挨近人类水平。

呈现才能一句话介绍便是模型参数抵达一定量级(亿),才能突飞猛进,更多概况,能够参见:

LLM的呈现才能和Scaling
Emergent Abilities of Large Language Models
Scaling Laws for Neural Language Models

神经网络言语模型开展史

nlp中的预练习言语模型总结(单向模型、BERT系列模型、XLNet)

大模型年代之前 ->2019

预练习模型
NLP范式:Pre-training + fintuning 即预练习 + 下游使命精调

大模型基础知识 - 语言模型及其演进 公开版

  1. Pre-training -> 练习通用言语模型 (相当于练习模型认识自然言语)
  2. Fine-tuning -> 练习下游NLP使命(相当于练习模型执行使命)

大模型基础知识 - 语言模型及其演进 公开版

大模型基础知识 - 语言模型及其演进 公开版

大模型年代 2019->

Pre-training + instruction fintuning + RLHF 即 预练习+指令精调+RLHF
下一节的GPT练习流程部分有详细描绘

大模型基础知识 - 语言模型及其演进 公开版

PaLM: arxiv.org/pdf/2204.02…
LLaMA: arxiv.org/pdf/2302.13…

清华提出了ChatGLM系列,并开源了其间的ChatGLM-6B和ChatGLM2-6B,在C-Eval上测验是现在最好的中文大模型:

cevalbenchmark.com/static/lead…

大模型基础知识 - 语言模型及其演进 公开版

GPT开展史

如果咱们单看GPT的话

大模型基础知识 - 语言模型及其演进 公开版
GPT-1: Improving Language Understanding by Generative Pre-Training
GPT-2: Language Models are Unsupervised Multitask Learners
GPT-3: Language Models are Few-Shot Learners

ChatGPT练习流程

图源:State of GPT – Microsoft Build

大模型基础知识 - 语言模型及其演进 公开版

笔者翻译上图如下:
大模型基础知识 - 语言模型及其演进 公开版

阶段 子阶段 方针 补白
Pre-Training ——– 言语建模
Instruction Finetuning ——— 让模型能够理解自然言语指令
RLHF Reward Modeling 奖赏建模,用来替代人工打分,下降标注本钱 奖赏模型是用来建模强化学习的一个组件
RLHF Reinforcement Learning 强化学习建模,经过强化学习的方法练习模型输出奖赏最大的文本,即更契合人类偏好的文本

强化学习建模进程如下:

  1. 将指令精调后的大言语模型作为Agent,agent的action即给定输入文本 i i i进入 S t a t e State State S i S_i Si​后的文本 O u t p u t i Output_i Outputi​。
  • 一切或许输入的文本构成了agent的状况空间
  • 一切或许输出的文本构成了agent的动作空间
  1. 奖赏模型作为Environment对模型输出进行打分,将分数作为奖赏。

注:
3. 二元分类说法并不准确,原始方针是期望对两个生成的回复进行打分即两者之间按更契合人类预期进行比较,胜出的回复应该得到更多的分数,亦即获得更大的奖赏。或许也能够以为是在两者之间做分类,将更契合人类预期的挑选出来,但前者是愈加准确的描绘。

大模型基础知识 - 语言模型及其演进 公开版

图源:cs224n-2023-lecture11-prompting-rlhf.pdf

  1. 奖赏模型是用来完成强化学习的一个辅助模型,能够理解为强化学习建模中的环境(Environment)**

Key Takeaway

  1. 概率言语模型规划用于核算一个句话在自然言语中呈现的概率
    n-gram言语模型是概率言语模型根据条件独立假定的简化,给定n个单词,它能够用来猜测第n+1单词
  2. 言语建模(即练习言语模型的进程):给定n个单词,猜测第n+1个单词是什么。神经网络言语模型运用神经网络进行言语建模。
  3. 神经网络言语模型跟着自然言语处理范畴不断提出新的网络架构逐步演进,transformer是其间一个标志性里程碑。根据transformer,Google和Open AI分别提出了BERT和GPT 1.0/2.0,敞开了自然言语处理pretraining + fintuning(预练习言语模型)的年代,模型参数抵达亿等级,大言语模型的雏形呈现。
  4. 跟着神经网络言语模型的参数量持续增大到一个千亿等级,开端表现出强壮的呈现才能,辅以instruction fituning和RLHF的(大言语模型)练习流程改进,突破性的大言语模型ChatGPT呈现,大模型年代降临。