GLM-4.5微调教程:使用Llama Factory和Swift框架的完整指南
GLM-4.5是一款强大的Agentic、Reasoning和Coding(ARC)基础模型,具备3550亿总参数量和320亿活跃参数。本教程将详细介绍如何使用Llama Factory和Swift框架对GLM-4.5进行微调,帮助新手用户快速掌握模型优化的核心步骤和最佳实践。## 为什么选择GLM-4.5进行微调?GLM-4.5系列模型专为智能体应用设计,统一了推理、编码和智能体能力。通
GLM-4.5微调教程:使用Llama Factory和Swift框架的完整指南
GLM-4.5是一款强大的Agentic、Reasoning和Coding(ARC)基础模型,具备3550亿总参数量和320亿活跃参数。本教程将详细介绍如何使用Llama Factory和Swift框架对GLM-4.5进行微调,帮助新手用户快速掌握模型优化的核心步骤和最佳实践。
为什么选择GLM-4.5进行微调?
GLM-4.5系列模型专为智能体应用设计,统一了推理、编码和智能体能力。通过微调,您可以将这款强大的基础模型适配到特定业务场景,显著提升模型在专业领域的表现。
GLM-4.5在多个基准测试中表现优异,微调后可进一步提升特定任务性能
微调前的准备工作
硬件要求
根据官方推荐配置,不同模型和微调策略需要不同的GPU资源:
| 模型 | GPU类型和数量 | 策略 | 批处理大小(每GPU) |
|---|---|---|---|
| GLM-4.5 | H100 x 16 | Lora | 1 |
| GLM-4.5-Air | H100 x 4 | Lora | 1 |
提示:如果您使用的是H20 (96GiB) GPU,可以参考Swift框架的详细配置要求
环境配置
首先克隆GLM-4.5项目仓库:
git clone https://gitcode.com/gh_mirrors/gl/GLM-4.5
cd GLM-4.5
安装必要的依赖:
pip install -r requirements.txt
使用Llama Factory进行微调
Llama Factory是一个功能全面的LLM微调框架,支持多种微调策略和模型类型。
安装Llama Factory
git clone https://github.com/hiyouga/LLaMA-Factory
cd LLaMA-Factory
pip install -r requirements.txt
配置微调参数
创建一个配置文件glm45_lora_config.yaml:
model_name_or_path: zai-org/GLM-4.5
output_dir: ./saved_models/glm45-lora
lora_rank: 8
lora_alpha: 32
lora_dropout: 0.05
per_device_train_batch_size: 1
gradient_accumulation_steps: 4
learning_rate: 2e-4
num_train_epochs: 3
logging_steps: 10
save_steps: 100
启动微调
python src/train_bash.py \
--stage sft \
--model_name_or_path zai-org/GLM-4.5 \
--do_train \
--dataset your_dataset \
--template glm4 \
--finetuning_type lora \
--lora_target q_proj,v_proj \
--output_dir ./saved_models/glm45-lora \
--overwrite_cache \
--per_device_train_batch_size 1 \
--gradient_accumulation_steps 4 \
--learning_rate 2e-4 \
--num_train_epochs 3 \
--logging_steps 10 \
--save_steps 100 \
--fp16
使用Swift框架进行微调
Swift是ModelScope推出的轻量化微调框架,特别适合大规模模型的高效微调。
安装Swift
pip install ms-swift
准备数据集
将您的数据集转换为JSON格式,放在data/目录下,格式如下:
[
{
"instruction": "请解释什么是人工智能",
"input": "",
"output": "人工智能是计算机科学的一个分支,致力于创建能够模拟人类智能的系统。"
},
// 更多数据...
]
启动微调
对于GLM-4.5-Air模型,使用Lora策略微调:
swift sft \
--model_id_or_path zai-org/GLM-4.5-Air \
--dataset your_dataset \
--output_dir ./saved_models/glm45-air-lora \
--lora_rank 8 \
--batch_size 1 \
--num_train_epochs 3 \
--learning_rate 2e-4
微调过程监控
在微调过程中,您可以通过日志查看训练进度和关键指标:
GLM-4.5微调过程中的日志输出,显示模型初始化和训练进度
关键监控指标包括:
- 损失值(loss):应逐渐降低并趋于稳定
- 学习率(learning rate):根据调度策略变化
- 训练步数(steps):当前训练进度
模型评估与导出
评估微调效果
使用验证集评估微调后模型的性能:
python src/evaluate.py \
--model_name_or_path ./saved_models/glm45-lora \
--dataset your_validation_dataset \
--template glm4 \
--finetuning_type lora
导出模型
将微调后的模型导出为 Hugging Face 格式:
python src/export_model.py \
--model_name_or_path zai-org/GLM-4.5 \
--finetuning_type lora \
--checkpoint_dir ./saved_models/glm45-lora \
--output_dir ./exported_models/glm45-lora
微调后的部署
微调完成后,您可以使用vLLM或SGLang部署优化后的模型:
# 使用vLLM部署
vllm serve ./exported_models/glm45-lora \
--tensor-parallel-size 4 \
--reasoning-parser glm45
常见问题解决
内存不足问题
如果遇到GPU内存不足错误,可以尝试:
- 减小批处理大小
- 使用FP8精度(需硬件支持)
- 增加梯度累积步数
过拟合问题
若模型在训练集上表现良好但验证集性能下降:
- 增加正则化(如dropout)
- 使用早停策略
- 增加训练数据量
总结
通过Llama Factory和Swift框架,您可以轻松对GLM-4.5进行微调,使其更好地适应特定应用场景。无论是代码生成、智能问答还是复杂推理任务,微调后的GLM-4.5都能提供更精准、高效的服务。
GLM-4.5的思考模式流程图,展示了模型如何通过多步骤推理解决复杂问题
希望本教程能帮助您顺利完成GLM-4.5的微调工作。如有任何问题,欢迎查阅项目文档或加入社区交流。
更多推荐



所有评论(0)