大模型微调(Fine-Tuning)实战指南
1. 什么是 Fine-Tuning
Fine-Tuning,即微调。在原有预训练模型的基础上,通过补充特定领域的数据,对原有模型的部分参数进行调整,从而使模型能在某些特定的场景下表现更优。
微调可以提高模型在特定任务上的表现,但需要注意,过度微调可能会降低模型在通用场景下的能力(灾难性遗忘)。因此,选择合适的学习率和数据量至关重要。
本文将带你从零开始跑通一个完整的微调流程,无需深厚的深度学习背景,只需具备基础的 Python 编程能力即可。
2. 环境准备
使用 Hugging Face 生态进行模型训练和微调。执行以下代码安装依赖:
# pip 安装
pip install transformers datasets torch accelerate
# conda 安装
conda install -c huggingface transformers
Hugging Face 简介
- 相当于面向 NLP 模型的 GitHub,拥有最丰富的开源模型库
- 封装了模型、数据集、训练器等,极大简化了下载、使用和训练流程
3. 加载训练数据集
使用 datasets 库中的 load_dataset 函数在线加载数据。本文以 rotten_tomatoes 情感分类数据集为例。
- 输入:电影评论文本
- 输出:['负面', '正面']
import os
from datasets import load_dataset
DATASET_NAME = "rotten_tomatoes"
# 加载数据集
raw_datasets = load_dataset(DATASET_NAME)
# 保存到本地以便后续复用
save_path = os.path.join("data", DATASET_NAME)
os.makedirs(save_path, exist_ok=True)
raw_datasets.save_to_disk(save_path)
# 划分训练集和验证集
raw_train_dataset = raw_datasets["train"]
raw_valid_dataset = raw_datasets["validation"]
4. 加载预训练模型
使用 transformers 库中的 AutoModelForCausalLM 自动加载预训练模型。本文选用轻量级的 gpt2 模型,适合在普通笔记本上运行。
from transformers import AutoModelForCausalLM
MODEL_NAME = "gpt2"
# 加载模型
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
trust_remote_code=True
)


