大型语言模型简介
大型语言模型(LLMs)通过将概率分配给单词序列,并基于大量文本计算出的计数进行训练,学习预测下一个单词并生成文本。它们与简单的n-gram语言模型相似,但能够学习大量实用语言知识,即使只进行预训练。
大型语言模型的架构
LLMs 主要分为三种架构:
- 编码器:获取双向上下文,可以条件化未来单词,例如 BERT 家族和 HuBERT。
- 解码器:通过从两侧的文字预测单词进行训练,例如 GPT、Claude 和 Mixtral。
- 编码器-解码器:训练用于从一个序列映射到另一个序列,例如 T5 和 Whisper。
神经架构影响了预训练的类型和自然应用场景。解码器模型也称为自回归语言模型或因果语言模型。
大型语言模型的预训练
预训练是 LLM 性能的关键。预训练过程主要使用自监督训练算法,即训练模型预测下一个单词。预训练数据主要来自网络爬虫,例如 Common Crawl 和 Pile,包含数十亿页文本。
大型语言模型的微调
微调是针对新领域适应 LLM 的关键步骤。微调可以通过以下方式进行:
- 持续预训练:在新数据上进一步训练模型的所有参数。
- 参数高效微调(PEFT):冻结部分参数,仅更新特定子集的参数,例如 LoRA 技术。
大型语言模型的评估
困惑度是衡量 LLM 预测未见文本能力的指标。困惑度越低,模型越好。
大型语言模型的规模
LLM 的性能主要受以下三个因素影响:
- 模型大小:参数数量(不包括嵌入)。
- 数据集大小:训练数据量。
- 计算量:用于训练的计算资源。
大型语言模型的危害
LLMs 也存在一些潜在危害,例如:
- 幻觉:生成看似合理但实际上不准确或虚假的信息。
- 版权:训练数据可能涉及版权问题。
- 隐私:训练数据可能包含私人信息。
- 毒性和滥用:LLMs 可能被用于生成有害或歧视性内容。
- 错误信息:LLMs 可能被用于传播错误信息。
大型语言模型的处理规模
LLM 的训练需要大量的计算资源。为了高效地训练 LLM,研究人员开发了各种技术,例如 KV 缓存和参数高效微调。