大语言模型核心概念:预训练、微调与上下文学习
近年来,大语言模型(Large Language Models, LLM)在自然语言理解、生成及多模态任务上取得了显著进展。这些模型主要通过预训练、微调和上下文学习三种方式的组合来构建能力。本文将详细介绍这三种主要方法,分析它们之间的差异,并探讨它们如何协同工作以优化语言模型的学习过程。
一、什么是预训练?
**预训练(Pre-training)**是语言模型学习的初始阶段。在此阶段,模型会接触到海量的未标记文本数据,例如书籍、文章、代码库和网页内容。
1. 核心目标
预训练的目标是捕获文本语料库中存在的底层模式、结构和语义知识。通过无监督学习,模型学习输入数据的内部表示,从而获取通用的语言特征。
2. 主要特点
- 无监督学习:训练数据不带有人工标注的目标输出,模型从大规模数据中提取特征。
- Masked Language Modeling (MLM):如 BERT 架构,模型被训练预测句子中缺失或屏蔽的单词,学习上下文关系。
- Next Token Prediction:如 GPT 架构,模型预测下一个词的概率分布。
- Transformer 架构:基于 Transformer 的架构擅长捕获远程依赖关系和长距离上下文信息。
3. 技术示例
以下是一个使用 Hugging Face transformers 库加载预训练模型的 Python 示例:
from transformers import AutoTokenizer, AutoModel
# 加载预训练的分词器和模型
model_name = "bert-base-chinese"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)
# 编码输入文本
text = "大语言模型正在改变世界"
inputs = tokenizer(text, return_tensors="pt")
# 获取隐藏层状态
outputs = model(**inputs)
print(outputs.last_hidden_state.shape)
4. 下游任务基础
预训练模型为后续的具体任务提供了良好的初始参数和特征表示。常见的下游任务包括文本生成、机器翻译、情感分析和命名实体识别等。
二、什么是微调?
**微调(Fine-Tuning)**是在特定任务或领域上进一步训练大型语言模型的过程。它利用预训练模型作为起点,在特定任务的有标签数据集上进行训练,调整模型权重以更好地拟合数据。
1. 核心流程
- 冻结部分参数:保持预训练模型底层参数不变,防止破坏已学到的通用特征。
- 更新顶层参数:添加新的分类头或适配层,针对目标任务进行训练。
- 全量或部分更新:根据资源情况,可选择全量微调或参数高效微调(PEFT)。
2. 微调类型
- 监督微调 (SFT):使用标记数据(输入 - 输出对)直接训练模型。适用于大多数结构化任务。
- 基于人类反馈的强化学习 (RLHF):结合人类反馈奖励模型,进一步优化模型输出的对齐程度。常用于提升对话质量。


