本文根据datawhale 2023年9月的学习项目 简单学点大模型 做的笔记。
基座课程:斯坦福大学大规模语言模型课程
Task01:引言部分
内容简介:
- 项目目标:目前对大规模预训练语言模型的相关知识的重点讲解
- 项目背景:GPT-3等大型语言模型的出现,以及相关领域研究的发展
一、语言模型简介
1、语言模型是文本单元(token)序列的概率分布p
语言模型(LM)的经典定义是一种对文本单元(token)的概率分布。在大型语言模型中,"token"是指文本中的一个最小单位。通常,一个token可以是一个单词、一个标点符号、一个数字、一个符号等。
假设我们有一个文本单元的词汇表V。语言模型p为每个token序列分配一个概率(0~1),就形成一个概率分布
直观上,一个好的语言模型应具有语言能力和世界知识。
假设给定词汇表{ate, ball, cheese, mouse, the}
具有语言能力的语言模型会赋予token序列"mouse the cheese ate"一个非常低的概率,因为它在语法上是不正确的。
即便是语法正确的句子,也会因为语义上的差异,而被赋予不同的概率。掌握了世界知识的语言模型会赋予token序列"the mouse ate the cheese"比"the cheese ate the mouse"更高的概率,因为"the mouse ate the cheese"更符合语义逻辑。
语言模型可以做生成任务,如定义所示,语⾔模型p接受⼀个序列并返回⼀个概率来评估其好坏。我们也可以根据语⾔模型⽣成⼀个序列。最纯粹的⽅法是从语⾔模型中以概率进⾏采样,表示为:
自回归语言模型允许有效地基于给定的token序列(提示)生成补全token序列(生成)
,直观理解就是计算计算基于
条件下,
的概率分布。
我们通常不直接从语⾔模型中进⾏采样,这既因为真实语⾔模型的限制,也因为我们有时希望获得的不是⼀个“平均”的序列,⽽是更接近“最佳”序列的结果。我们会通过温度系数T去控制。
要从⾃回归语⾔模型中⽣成整个序列,我们需要⼀次⽣成⼀个文本单元(token),基于之前的文本序列进⾏计算获得:
其中T >= 0是⼀个控制我们希望从语⾔模型中得到多少随机性的温度参数:
T=0:确定性地在每个位置 i 选择最可能的token(T=0就是把差异放大了,概率大的会更大)
T=1:按照语⾔模型原本的概率分布采样
T=∞:从整个词汇表上的均匀分布中采样(当T很大的时候,指数接近0次方也就是1,再归一化概率就都很接近,采样就很均匀)
二、n-gram模型和神经网络模型
两个语言生成模型的对比
n-gram模型 | 神经网络模型 | |
---|---|---|
原理 | 关于xi的预测只依赖于最后的n-1个字符,而不是整个历史 | 搭建RNN、Transformer等神经网络,依赖于整个上下文计算xi的条件概率分布 |
计算效率 | 高效 | 低效,成本昂贵 |
统计效率 | 低效,n太小或太大都无法得到准确的估计 | 高效 |
三、语言模型的相关风险
LLM目前存在以下风险:
可靠性:大模型幻觉问题,输出貌似合理,实则胡说八道的答案,普通人难以分辨
社会偏见:在不同⼈群之间存在性能差异,并且其预测可能会强化刻板印象。
有害性:⼤语⾔模型是基于⼤量互联⽹数据进⾏训练的,其中不可避免地包含了冒犯性内容。
虚假信息:GPT可以轻松制造虚假的新闻⽂章。这项技术可以被恶意⾏为者更轻松地⽤于进⾏虚假信息宣传。
安全性:⼤型语⾔模型⽬前是基于公共互联⽹的抓取进⾏训练的,攻击者可以将毒性文档注入到训练集中。
版权:语⾔模型是基于版权数据(例如书籍)进⾏训练的。如果⽤户使⽤语⾔模型⽣成恰好是受版权保护的⽂本,存在一定的侵权风险。
成本和环境影响:⼤语⾔模型在使⽤过程中可能⾮常昂贵。训练通常需要数千个GPU的并⾏化。这是一次性的成本。对训练模型进⾏推理以进⾏预测也会带来成本,这是⼀个持续性的成本。为供电GPU所需的能源,以及由此产⽣的碳排放和最终的环境影响都有待评估。
开源:目前的大模型只有少数巨头公司和组织才有能力进行训练,像GPT和Claude都是闭源的,未来,需要更多开源的大模型,才能使得大模型处于人类共同的监督和掌控之下。