本文以DataWhale大模型开源教程为学习路线,进行一整个大模型的入门操作
什么是语言模型
语言模型是一种对词元序列(token)的概率分布,可以用于评估文本序列的合理性并生成新的文本。
从生成文本的方式来看,LM(language modle)可以简单的分为:
自回归模型 | 非自回归模型 | |
---|---|---|
特点 | 逐字生成文本,每个词的生成都依赖于上文,关联性好 | 一次性生成整个文本序列,不捕捉上文信息 |
优点 | 内容质量高 | 生成速度快 |
缺点 | 生成速度慢 | 质量不稳定 |
常见模型 | RNN (LSTM, GRU)、Transformer (GPT seriels) | Transformer with parallel decoding、Autoregressive-to-Non-autoregressive Translation (ANT) |
应用场景 | 文本生成、对话系统(求质) | 机器翻译、文本摘要(求速) |
语言模型的发展历史
1948,香农的信息理论
N-gram模型
神经语言模型(RNN–包括LSTMs、Transformers)
N-gram模型 | 神经语言模型 | |
---|---|---|
学习方式 | 背诵课文,只能记住有限的几个词的组合 | 理解语言,能够根据上下文理解整个句子的含义 |
复杂度 | 基于统计的简单模型 | 基于神经网络的复杂模型 |
优点 | 直观易实现 | 能更好地捕捉长期依赖关系,上下文长度不受n的限制,泛化能力强(举一反三) |
缺点 | 上下文信息长度有限 | 训练复杂,可解释性差 |
联系 | 基础 | 改进 |
以下探讨均以GPT3为对象
GPT3作为一个极具代表性的大型语言模型,在NLP领域(语言建模、问答、翻译、算术、新闻文章生成等)表现出了超越了现有技术的最高水平,而在其他未特殊训练领域,只展示出了平均水平。
在这里,语言模型是对词元序列的概率分布,能评估序列,在一定提示下还能生成序列;而任务被定义为从输入映射到输出(如问答任务)。
主要有两种方式来进行这种Adaptation:
训练(有监督学习) | 提示(上下文学习) | |
---|---|---|
具体方式 | 训练一个新模型 | 对任务的描述建一个或一组提示(上下文信息)直接输入模型 |
分类 | 探针/finetune微调/轻量级微调 | zero零/one单/few shot少样本学习 |
学习思路 | 题海战术,学习输入与输出之间的映射关系 | 侧重文本理解,弄懂上下文信息以推理 |
数据需求 | 大量标注数据 | 相对较少 |
可解释性 | 较强,简单模型可直接规则提取 | 较弱,但利用注意力机制、添加扰动和可视化工具,可将“黑盒”进行一定程度的解释 |
增加模型大小和训练样本的数量可以提升 GPT-3 的性能,同时也不能忽视提示学习的重要性
语言模型可以看作一个黑箱(black box)
从形象化的概念理解上来说当前大语言模型(大:模型规模/参数量级大),可以根据输入需求的语言描述(prompt)生成符合需求的结果(completion)
分词和模型架构是构建大语言模型的两个重要方面
在构建大语言模型时,需要综合考虑分词方式和模型架构,以达到最佳的性能