大语言模型的基本概念
大语言模型 (Large Language Model, LLM) 是通过大量文本语言数据,基于transformer模型架构,通过预训练,指令微调,人类对齐,解码后部署的。之后基于自然语言的研究还有提示学习,规划与智能体,评测和应用。
目前主要的大模型就有GPT4o,PaLM, LLaMA等。实现的内容包括机器翻译、文本生成、语音识别、问答系统等。
构建过程
1.预训练
一般来说需要大规模数据做训练,类似word2vec用无标注文本预料训练可通用的词嵌入模型。文本需要清洗,词元化(tokenization)切分batch。
预训练模型的参数通常会进行量化和优化,以减少内存占用和提高推理速度。在训练过程中,还需要考虑模型的架构设计、损失函数的选择以及优化器的配置等关键因素。但涉及昂贵的计算,所以我先不说了。
2.微调
微调是在预训练模型的基础上,使用特定任务的数据集(较少,内容统一)进行进一步训练的过程。比如在数据集上添加专门的指令任务“把句子翻译成中文”。通过微调,模型可以学习到Instruction Following,更好地适应特定领域或任务的需求。这个过程通常需要较少的数据和计算资源,但能显著提升模型在目标任务上的表现。广泛使用的是指令微调(有监督微调,Supervised Fine-tuning,SFT)。
所以在这方面的研究,有许多关注在数据上。比如数据的质量和多样性、数据的规模大小、以及如何构建高质量的指令数据集等。这些研究旨在提高微调的效率和效果。Self-Instruct借助llm的数据合成能力进行迭代来进行指令数据生成。指令格式设计和引入思维链数据,拓展指令数量,指令重写和筛选都是很好的方法。
指令微调的训练策略
与预训练过程相似。优化器设置(AdamW or Adafactor),稳定训练技巧(权重衰减和梯度裁剪),训练技术(3D并行,ZeRO和混合精度训练)。
数据集要平衡;多阶段指令数据微调(比如先用大规模nlp任务指令,再用多样的日常对话指令和合成指令);结合预训练数据和指令微调数据(正则化)
参数高效的模型微调
LoRA(Low-Rank Adaptation)
LoRA是一种参数高效的微调方法,通过在原始权重矩阵中添加低秩矩阵来实现。其数学公式如下:
$$ W = W_0 + A·B^T $$
其中:
- W_0 是预训练模型的权重矩阵
- A 和 B^T 是低秩分解矩阵
- 通常 rank(A·B^T) << min(d, k)
LoRA的优势在于:
- 显著减少可训练参数数量
- 训练速度快,内存效率高
- 可以快速切换不同任务的适配器
此外,还有其他参数高效微调方法如Adapter Tuning, Prefix-tuning, Prompt-tuning等,它们都致力于在保持模型性能的同时减少计算资源的消耗。
3.人类对齐
相当于思想品德的教育,把一些偏见,价值观,社会伦理等内容与人类的对齐。让模型听话,说一些正能量。
评估标准为有用性、诚实性和无害性。
主要方法有RLHF!
RLHF(基于人类反馈的强化学习,Reinforcement Learning from Human Feedback)通过收集