开场白
人工智能发展到现在,在2个重要领域取得了重大突破,有望达到人类水平:
- 计算机视觉 (Computer Vision, CV)-> 希望机器帮助人类处理图像数据
- 自然语言处理(Natural Language Processing, NLP)-> 希望机器帮助人类处理文本数据
AIGC
- 计算机视觉 (Computer Vision, CV)-> AI作画
- 自然语言处理(Natural Language Processing, NLP)-> 文本生成
自然语言处理在大语言模型(Large Language Model, LLM)被提出之后,再次取得重大突破:
-
以ChatGPT为代表的对话大模型有望重新定义人类使用计算机的方式
- 直接以自然语言让计算机执行任务替代编程语言已具备可能性
-
使用大模型的能力设计开发互联网产品,有望颠覆部分领域产品设计开发模式
- 举个🌰:百度翻译、谷歌翻译
注:
- 关于使用计算机的方式 -> 我们这里讲的是底层的使用方式,应用层来看的话都是通过软件来使用,但软件也是经由编写程序编译之后的产物,归根结底还是通过代码。
- 关于颠覆部分领域 -> 负责任地讲,目前还是有一些领域传统方法效率和结果更好,未来不确定。
接下来我们来从0到1了解一下大语言模型背后的基础知识。
导语
通过本节课程,希望大家能够了解:
- 语言模型的数学基础:概率语言模型 (25分钟)
- 神经网络语言模型的发展历史:即大语言模型是如何发展而来的 (10分钟)
- GPT训练流程:大语言模型是如何训练的 (10分钟)
语言模型 Language Model
根据语言客观事实而进行的语言抽象数学建模,是一种对应关系。
语言模型与语言客观事实之间的关系,如同数学上的抽象直线与具体直线之间的关系。
语言模型发展简史
概率语言模型 Probabilistic Language Model
一说统计语言模型 Statistic Language Model
概率语言模型是一个基于概率的判别式模型,它的输入是一句话即多个单词组成的顺序序列,输出是这句话的概率,即这些单词的联合概率(joint probability)。
compute the probability of a sentence or sequence of words
概率语言模型是一个针对语言进行数学建模的概率模型,它衡量了一句话,也即是多个单词的组成的顺序序列,在语料库(corpus)中实际存在的概率,如果语料库无限大,那么这个概率扩展到这句话实际在自然语言中存在的概率。
注:也可以理解为是也可以理解为它是真实正确的一句话的概率。
css
复制代码
I like eating apples. ✅
I prefer coke to soda. ✅
Enjoy basketball playing I. ❌
以上面3个句子为例,前2句是真实句子,在日常生活中可能会被用到,第3句则不是。
N-Gram语言模型
假定一个自然语言句子WWW由lll个单词组成,记为w_1,w_2,…,wlw_1,w_2,…,w_lw_1,w_2,…,wl,那么:
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(W)=P(w1,w2,…wl)=p(w1)p(w2∣w1)p(w3∣(w1,w2))…p(wl∣w1,w2,…,wl−1)
条件概率公式:
P(B∣A)=P(AB)/P(A)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(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)P(ABC)=P(A)∗P(B∣A)∗∣P(C∣AB)
这么计算概率有个问题:0<p(wi)<10<p(w_i)<10<p(wi)<1 ,句子越长,参数空间越大,概率越接近0,数据稀疏严重。
引入马尔科夫假设(Markov Assumption),即下一个词的出现仅依赖于它前面的n−1n-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})p(wi∣w1,w2,…wi−1)=p(wi∣wi−n,…wi−1)
马尔科夫性质:当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。 这里引入马尔科夫假设,认为按从左到右读到的一句话有时间先后的概念,后面的单词仅依赖于它前面的n-1个单词。
n=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)P(w1,w2,…,wl)=∏i=1lP(wi)
erlang
复制代码
# English
Questions make difference.
Questions make reality.
Questions begin a quest.
# 中文
我吃苹果。
我吃香蕉。
我喝可乐。
提问:
给定单词“我”,下一个单词是吃的概率是多少?下一个单字是喝的概率是多少?“我吃苹果”整句话的概率是多少?
n=2n=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})P(w1,w2,…,wl)=∏i=1lP(wi∣wi−1)
n=3n=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})P(w1,w2,…,wl)=∏i=1lP(wi∣wi−2wi−1)
以此类推,我们的得到了给定nnn词,输出下一个词概率的语言模型: P(W)=∏i=1lp(wi∣wi−n+1i−1)P(W)=\prod_{i=1}{l}p(w_i|w_{i-n+1}{i-1})P(W)=∏i=1lp(wi∣wi−n+1i−1),其中wijw_i^jwij表示单词序列wi,w2,…,wjw_i,w_2,…,w_jwi,w2,…,wj
构建语言模型可以使用最大似然估计(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})p(wi∣wi−1)=count(wi−1,wi)/count(wi−1)
计算概率语言模型公式的每一个组成元素,再将所有组成元素连乘,即得整个句子的概率。
提问(非常重要) :
给定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 即预训练 + 下游任务精调
- Pre-training -> 训练通用语言模型 (相当于训练模型认识自然语言)
- 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 | 强化学习建模,通过强化学习的方式训练模型输出奖励最大的文本,即更符合人类偏好的文本 |
强化学习建模过程如下:
- 将指令精调后的大语言模型作为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的动作空间
- 将奖励模型作为Environment对模型输出进行打分,将分数作为奖励。
注:
3. 二元分类说法并不准确,原始目标是希望对两个生成的回复进行打分即两者之间按更符合人类预期进行比较,胜出的回复应该得到更多的分数,亦即获得更大的奖励。或者也可以认为是在两者之间做分类,将更符合人类预期的筛选出来,但前者是更加准确的描述。
图源:cs224n-2023-lecture11-prompting-rlhf.pdf
- 奖励模型是用来实现强化学习的一个辅助模型,可以理解为强化学习建模中的环境(Environment)**
Key Takeaway
- 概率语言模型设计用于计算一个句话在自然语言中出现的概率
n-gram语言模型是概率语言模型基于条件独立假设的简化,给定n个单词,它可以用来预测第n+1单词 - 语言建模(即训练语言模型的过程):给定n个单词,预测第n+1个单词是什么。神经网络语言模型使用神经网络进行语言建模。
- 神经网络语言模型随着自然语言处理领域不断提出新的网络架构逐步演进,transformer是其中一个标志性里程碑。基于transformer,Google和Open AI分别提出了BERT和GPT 1.0/2.0,开启了自然语言处理pretraining + fintuning(预训练语言模型)的时代,模型参数到达亿级别,大语言模型的雏形出现。
- 随着神经网络语言模型的参数量继续增大到一个千亿级别,开始表现出强大的涌现能力,辅以instruction fituning和RLHF的(大语言模型)训练流程改进,突破性的大语言模型ChatGPT出现,大模型时代来临。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓