大语言模型概述
定义与特点
什么是大语言模型
- 也叫LLM (Large Language Model)
- 用于做自然语言相关任务的深度学习模型
- 给模型一些文本内容输入,它能返回相应的输出
主要功能
- 生成
- 分类
- 总结
- 改写
发展里程碑
ChatGPT的影响
- 2022年11月30日OpenAI发布ChatGPT
- 成为当下最快达到100万用户的线上产品
- 带动大语言模型成为时下热点
- 更多AI聊天助手雨后春笋般出现
基于大语言模型的应用
- ChatGPT
- Claude
- 文心一言
- 通义千问
大语言模型的"大"
训练数据巨大
GPT-3训练数据来源
- 多个互联网文本语料库
- 线上书籍
- 新闻文章
- 科学论文
- 维基百科
- 社交媒体帖子
数据的作用
- 借助海量训练文本数据
- 模型能更多了解单词与上下文之间的关系
- 更好地理解文本的含义
- 生成更准确的预测
参数数量巨大
什么是参数
- 模型内部的变量
- 可以理解为是模型在训练过程中学到的知识
- 参数决定了模型如何对输入数据做出反应
- 从而决定模型的行为
参数增长的意义
- 用更多的数据和算力来训练具有更多参数的模型
- 很多时候能带来更好的模型表现
- 类比:AI学习做蛋糕,可调整的变量更多,更能模仿做出更好吃的蛋糕
- 随着参数的增加,甚至有能力做出别的玩意儿,创造一些全新的品种
GPT系列参数发展
- GPT-1:1.17亿个参数
- GPT-2:15亿个参数
- GPT-3:1750亿个参数
大模型与小模型的区别
- 大模型不像小模型那样局限于单项或某几项任务
- 具有更加广泛的能力
- 以前:需要训练单独的模型,分别去做总结、分类、提取等任务
- 现在:一个大模型就可以搞定这一切
技术发展历程
技术发展的里程碑
2017年:Transformer架构诞生
- 2017年6月,谷歌团队发表论文"attention is all you need"
- 提出了transformer架构
- 自此,自然语言处理的发展方向被改变了
2018-2019年:基于Transformer的模型涌现
- 2018年:OpenAI发布GPT-1.0,谷歌发布BERT
- 2019年:OpenAI发布GPT-2.0,百度发布AI1.0
大语言模型发展特点
- 发展早就如火如荼了
- 并不是像很多人以为的到了2022年才有所突破
- ChatGPT因为直接向公众开放才被大众关注
ChatGPT背后的技术
GPT的含义
- G:Generative(生成式)
- P:Pre-trained(预训练)
- T:Transformer(转换器)
- 表明transformer是其中的关键
Transformer架构详解
传统RNN的局限性
RNN的工作方式
- 按顺序逐字处理
- 每一步的输出取决于先前的隐藏状态和当前的输入
- 要等上一个步骤完成后才能进行
RNN的问题
- 当前的计算机无法并行计算
- 训练效率低
- 不擅长处理长序列(长文本)
- 时间距离越远,前面对后面的影响越弱
- 难以有效捕获到长距离的语义关系
实际例子
- 在人类自然语言中,依赖信息之间距离较远是很常见的情况
- 如果由RNN生成后续内容,到了关键位置时,可能已经把前面的信息忘没了
LSTM的改进与局限
- LSTM长短期记忆网络是RNN的改良版本
- 为了捕获长距离依赖性
- 但依然没有解决传统RNN无法并行计算的问题
- 在处理非常长的序列时也依然受到限制
Transformer的创新
核心能力
- 有能力学习输入序列里所有词的相关性和上下文
- 不会受到短时记忆的影响
自注意力机制
工作原理
- transformer在处理每个词的时候,不仅会注意这个词本身以及它附近的词
- 还会去注意输入序列里所有其他的词
- 然后给每个词不一样的注意力权重
权重的获得
- 权重是模型在训练过程中通过大量文本逐渐习得的
- transformer有能力知道当前这个词和其他词之间的相关性有多强
- 然后去专注于输入里真正重要的部分
长距离依赖处理
- 即使两个词的位置隔得很远,transformer依然可以捕获到它们之间的依赖关系
- 例子:单从语法上来讲,“IT"可以指的是离得更近的"street”,也可以是离得更远的"animal"
- 自注意力机制捕获到了"IT"和"animal"之间更强的关系,因此更集中在"animal"上
位置编码
位置的重要性
- 在语言里,顺序很重要
- 即使句子里包含的字都是一样的,但顺序不一样也能导致意思大相径庭
- 这也是为什么自然语言处理领域会用"序列"这个词
RNN的处理方式
- RNN和人类阅读文本一样,对输入序列同样是按顺序依次处理
- 这就造成了训练速度的瓶颈,因为只能串行,没办法并行
- 也就是没法同时去学习所有信息
Transformer的位置编码方案
- 再把词输入给神经网络前,除了会先对词进行嵌入转换成向量
- 也就是把词用一串数字表示
- 还会把每个词在句子中的位置也用一串数字表示
- 添加到输入序列的表示中,然后把这个结果给神经网络
位置编码的优势
- 大模型既可以理解每个词的意义,又能够捕获词在句子中的位置
- 从而理解不同词之间的顺序关系
- 借助位置编码,词可以不按顺序输入给transformer
- 模型可以同时处理输入序列里的所有位置,而不需要像RNN那样依次处理
并行计算优势
- 在计算时,每个输出都可以独立的计算
- 不需要等待其他位置的计算结果
- 这大大提高了训练速度
- 训练速度一快,训练出巨大的模型也不是那么难了
Transformer的影响
对当前大语言模型的贡献
- 自"attention is all you need"论文之后
- transformer以及它的变体已经被普遍运用在大型数据集上来训练大语言模型
- transformer架构对我们当下能拥有那么多牛叉的大语言模型功不可没