GLM-4.5微调教程:使用Llama Factory和Swift框架的完整指南

【免费下载链接】GLM-4.5 GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models 【免费下载链接】GLM-4.5 项目地址: https://gitcode.com/gh_mirrors/gl/GLM-4.5

GLM-4.5是一款强大的Agentic、Reasoning和Coding(ARC)基础模型,具备3550亿总参数量和320亿活跃参数。本教程将详细介绍如何使用Llama Factory和Swift框架对GLM-4.5进行微调,帮助新手用户快速掌握模型优化的核心步骤和最佳实践。

为什么选择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微调日志示例 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的思考模式流程图,展示了模型如何通过多步骤推理解决复杂问题

希望本教程能帮助您顺利完成GLM-4.5的微调工作。如有任何问题,欢迎查阅项目文档或加入社区交流。

【免费下载链接】GLM-4.5 GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models 【免费下载链接】GLM-4.5 项目地址: https://gitcode.com/gh_mirrors/gl/GLM-4.5

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐