当前位置: 首页 > news >正文

易学探索助手-个人记录(十)

本文分享了我们基于 Qwen2.5-32B-Chat 模型,在 易学(周易)领域进行指令微调的完整实践过程。训练框架选用了轻量、灵活的 LLaMA-Factory,结合 LoRA 技术完成微调

一、实验目标

通过基于 Qwen2.5-32B 模型进行指令微调,使模型掌握以下方面的知识与能力:

  • 易学基础概念(如阴阳、五行、八卦等)

  • 易学体例与术语

  • 易学人物与代表著作

  • 古籍文辞理解与评估能力

二、数据集构建

数据集全部采用 Alpaca 格式,内容来源分为三部分:

来源处理量问答条数
Self-Instruct 数据-4,475
易学研究论文处理2,726篇11,532
易学古籍文献349本16,068
总计-32,075

三、环境准备

1. Docker 镜像部署

我们基于济南 AICC 提供的 LLaMA-Factory 镜像,完成了容器环境部署:

  • 拉取镜像

    docker pull aicc/llama-factory:<tag>
    
  • 创建并启动容器:每台裸金属服务器均执行:

    bash start_container.sh
    
  • 配置环境变量

    vim ~/.bashrc
    # 添加环境路径等
    source ~/.bashrc
    

2. 模型与依赖安装

每台服务器需执行:

  • 创建 Python 环境

  • 安装 LLaMA-Factory 项目依赖

  • 下载 Qwen2.5-32B-Chat 权重文件至指定目录 /home/data/LLMs/qwen/

四、微调配置与执行

微调框架

  • 使用框架:LLaMA-Factory

  • 微调方式:LoRA(全量层适配)

  • 分布式训练:Deepspeed + DDP

核心配置参数如下:

# 模型参数
model_name_or_path: /home/data/LLMs/qwen/Qwen2.5-32B-Chat
finetuning_type: lora
lora_target: all# 分布式训练
deepspeed: examples/deepspeed/ds_z3_offload_config.json
ddp_timeout: 180000000# 数据参数
dataset: zhouyi
template: qwen
cutoff_len: 1024
max_samples: 100000
preprocessing_num_workers: 16# 输出设置
output_dir: /home/data/output/qwen/Qwen2.5-32B-Chat
overwrite_output_dir: true
plot_loss: true# 训练参数
per_device_train_batch_size: 4
gradient_accumulation_steps: 8
learning_rate: 1e-4
num_train_epochs: 50
lr_scheduler_type: cosine
warmup_ratio: 0.1
fp16: true
logging_steps: 10
save_steps: 500# 验证参数
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

启动训练脚本

我们在两台服务器上分别运行如下命令,启动微调:

bash train_qwen_lora.sh

五、训练结果

训练性能与指标如下:

  • 最终 epoch:49.99

  • 训练 loss:0.8569

  • 总 FLOPs:2.7e+17

  • 每秒训练样本数:3.801

  • 每秒训练步数:0.007

六、评估效果

我们使用人工评估方式对模型在不同维度进行打分,统计如下:

评估维度满分得分
易学概念3022
易学体例2921
易学人物与著作2924
易学文辞理解与评估3230
总计12097

评估结论:模型在 文辞理解能力人物著作识别能力 上表现出色,对于易学概念仍有一定提升空间。

七、总结

通过本次微调实践,我们验证了 LLaMA-Factory 框架在大模型 LoRA 微调中的高效性与灵活性,也证实了 Qwen2.5-32B 模型在知识型任务中的可塑性。未来我们将继续探索在更多中文垂类知识场景下的落地与优化。

相关文章:

  • Kuka AI音乐AI音乐开发「人声伴奏分离」 —— 「Kuka Api系列|中文咬字清晰|AI音乐API」第6篇
  • python打卡day25
  • 数字高程模型(DEM)公开数据集介绍与下载指南
  • vscode extention踩坑记
  • 七部门:设立“国家创业投资引导基金”,优先支持取得关键核心技术突破的科技型企业上市融资
  • 学会使用ai作图
  • c++在头文件中声明全局的变量
  • TNNLS-2020《Autoencoder Constrained Clustering With Adaptive Neighbors》
  • Deep Learning(手写字识别 - CNN)
  • 阿里的库存秒杀实现与Inventory Hint技术解析
  • Python 接入DeepSeek
  • 高等数学第七章---微分方程(§7.1-§7.3微分方程概念、一阶微分方程、一阶微分线性方程)
  • 生成式人工智能认证(GAI认证)官网 - 全国统一认证中文服务平台上线
  • 一种资源有限单片机处理cJSON数据的方法
  • WordPress 文章和页面:它们的区别是什么?
  • Qt 的.pro文件配置详解
  • 让 Cursor 教我写 MCP Client
  • Qt for Android编译报错解决 -------- Connection reset
  • 编程技能:字符串函数04,直接使用 strcpy,解决报错
  • C#上位机RS485通信控制变频器
  • 刘晓庆被实名举报涉嫌偷税漏税,税务部门启动调查
  • 宜昌谱写新叙事:长江大保护与高质量发展如何相互成就
  • 车载抬头显示爆发在即?业内:凭借市场和产业链优势,国内供应商实现反超
  • 习近平会见哥伦比亚总统佩特罗
  • 最新研究:新型合成小分子可“精准杀伤”癌细胞
  • 北京航空航天大学首个海外创新研究院落户巴西