大模型微调零基础入门教程:从环境搭建到跑通第一个模型

动手前的准备清单

在开始大模型微调之前,先确认你手头有没有这些“武器”。
最核心的是显卡,NVIDIA RTX 3090 或 4090 都能跑,显存最好在 12GB 以上。
如果没有这么强的显卡,也可以用云服务器,比如 AutoDL、恒源云,按小时租用就行。

操作系统推荐 Ubuntu 22.04,Windows 也能用,但 Linux 环境更省心。
你的硬盘至少留出 50GB 空闲空间,用于存放模型权重和数据集。

还需要一个 Python 3.10 环境,建议用 Miniconda 管理虚拟环境,避免和系统 Python 打架。
最后,准备一个小数据集,比如 100 条中文问答,格式可以用 JSON 文件,每条包含 "instruction""output" 字段。
如果你没有现成的,去 GitHub 搜 alpaca_chinese_dataset 下载。

搭建微调环境:一步一步来

第一件事,创建虚拟环境并激活:

conda create -n finetune python=3.10 -y
conda activate finetune

然后安装 PyTorch,建议去 PyTorch 官网根据你的 CUDA 版本复制命令。
一般用 CUDA 12.1 的版本:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

接着安装 Hugging Face 的核心库和加速库:

pip install transformers datasets accelerate peft bitsandbytes

如果你打算用 LLaMA-Factory(一个非常好用的微调工具),直接克隆项目再安装:

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt

最后下载一个基座模型。
新手推荐用 Qwen2.5-1.5B-Instruct,只有 1.5B 参数,显存压力小。
通过 Hugging Face 镜像站下载:

huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct --local-dir ./Qwen2.5-1.5B-Instruct

如果下载慢,可以用国内镜像 HF_ENDPOINT=https://hf-mirror.com 再试。

跑通第一条微调命令

用 LLaMA-Factory 做 LoRA 微调最简单。
进入项目目录,创建一个数据集文件 data/custom.json,格式如下:

[
  {
    "instruction": "写一首五言诗",
    "output": "床前明月光,疑是地上霜。"
  }
]

然后在 data/dataset_info.json 里注册这个数据集,加上:

"custom": {
  "file_name": "custom.json",
  "columns": {
    "prompt": "instruction",
    "response": "output"
  }
}

接着运行微调脚本(单卡环境):

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --model_name_or_path ./Qwen2.5-1.5B-Instruct \
    --dataset custom \
    --template qwen \
    --finetuning_type lora \
    --output_dir ./output \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 4 \
    --num_train_epochs 3 \
    --logging_steps 10 \
    --save_steps 100

看到终端里输出 Training completed 并且没有报错,说明微调已经跑通了。
整个过程在 1.5B 模型上大概 10 分钟就完成。

新手最容易遇到的几个坑

坑一:CUDA 内存不足——解决方法:减小 per_device_train_batch_size 到 1,启用 gradient_checkpointing
在命令中加入 --gradient_checkpointing 参数。

坑二:数据集格式不对——LLaMA-Factory 要求 instructionoutput 都是字符串,并且不能有空值。
用 Python 检查:

import json
with open('data/custom.json', 'r') as f:
    data = json.load(f)
print(len(data), type(data[0]["instruction"]))

坑三:找不到模型文件——确认 model_name_or_path 指向的路径包含 config.jsonpytorch_model.bin
如果本地没有下载完整,用上面提到的 huggingface-cli download 重新下载。

坑四:TGI 或 transformers 版本冲突——建议在虚拟环境中重新安装 LLaMA-Factory 的 requirements.txt,不要混装不同版本。

如何确认微调效果

训练结束后,在 ./output 文件夹里会生成检查点。
用下面的命令加载训练好的 LoRA 权重并测试对话:

python src/cli_demo.py \
    --model_name_or_path ./Qwen2.5-1.5B-Instruct \
    --adapter_name_or_path ./output \
    --template qwen \
    --finetuning_type lora

输入你训练时用过的指令,比如“写一首五言诗”,看输出是否和训练数据中你给的答案一致。
如果模型输出了你希望的内容(或者类似),说明微调成功了。

更严谨一些,可以画损失曲线。
在训练过程中 logging_steps 设为 10,程序会在 ./output/trainer_log.jsonl 里记录每个日志步的 loss。
用 matplotlib 画个图,如果 loss 从 1.5 降到 0.1 左右,就说明模型确实学进去了。

如果你正在处理大模型微调零基础入门教程,建议先按本文步骤完整执行,再根据自己的环境和数据集做调整;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
旧电脑改造低成本AI推理服务器:手把手教你用旧电脑搭建低成本
下一篇
RAG知识库搭建实现私有文档问答:RAG知识库搭建
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意