揭秘ChatTCM-7B-SFT-openmind训练过程:基于LlamaFactory框架的全参数微调实践

【免费下载链接】ChatTCM-7B-SFT-openmind 【免费下载链接】ChatTCM-7B-SFT-openmind 项目地址: https://ai.gitcode.com/hf_mirrors/jeffding/ChatTCM-7B-SFT-openmind

ChatTCM-7B-SFT-openmind是一个专注于中医领域的专业大语言模型,它通过基于LlamaFactory框架的全参数微调训练,实现了对中医知识的深度理解和临床应用能力。这个模型的训练过程展示了如何将现代AI技术与传统医学知识相结合,为中医智能化发展提供了重要参考。

为什么选择LlamaFactory框架进行全参数微调?🤔

LlamaFactory框架作为当前最流行的开源大模型微调框架之一,为ChatTCM-7B-SFT-openmind的训练提供了强大的技术支撑。选择LlamaFactory框架进行全参数微调的主要原因包括:

  1. 高效的分布式训练支持 - 框架天然支持多GPU并行训练,大大缩短了训练时间
  2. 灵活的配置选项 - 提供了丰富的超参数调整接口
  3. 完整的训练监控 - 实时监控训练损失和性能指标
  4. 易于复现的实验环境 - 确保训练过程的稳定性和可重复性

训练环境与硬件配置 💻

ChatTCM-7B-SFT-openmind的训练在2张A800-80G GPU上进行,这样的硬件配置确保了大规模参数模型的高效训练。训练环境的关键配置包括:

  • GPU: 2×A800-80G
  • 框架: PyTorch + LlamaFactory
  • 基础模型: SylvanL/ChatTCM-7B-Pretrain
  • 数据集: SylvanL/Traditional-Chinese-Medicine-Dataset-SFT

训练损失曲线

从上图的训练损失曲线可以看出,模型在第一个epoch的训练过程中损失值稳定下降,从初始值逐渐收敛到1.069左右,表明训练过程稳定有效。

数据集构建与预处理 📊

训练使用的数据集是专门为中医领域构建的SFT(Supervised Fine-tuning)数据集,包含多个子数据集:

  • SFT_medicalKnowledge_source1_548404
  • SFT_medicalKnowledge_source2_99334
  • SFT_medicalKnowledge_source3_556540
  • SFT_nlpDiseaseDiagnosed_61486
  • SFT_nlpSyndromeDiagnosed_48665
  • SFT_structGeneral_310860
  • SFT_structPrescription_92896
  • _SFT_traditionalTrans_1959542.json

这些数据集涵盖了中医知识问答、疾病诊断、证型识别、方剂推荐、古文翻译等多个维度,总数据量超过百万条。

训练参数配置详解 ⚙️

ChatTCM-7B-SFT-openmind的训练采用了精心设计的参数配置:

llamafactory-cli train \
    --stage sft \
    --do_train True \
    --model_name_or_path {SylvanL/ChatTCM-7B-Pretrain} \
    --preprocessing_num_workers 16 \
    --finetuning_type full \
    --template default \
    --flash_attn auto \
    --dataset_dir {dataset_dir} \
    --dataset SFT_medicalKnowledge_source1_548404,SFT_medicalKnowledge_source2_99334,SFT_medicalKnowledge_source3_556540,SFT_nlpDiseaseDiagnosed_61486,SFT_nlpSyndromeDiagnosed_48665,SFT_structGeneral_310860,SFT_structPrescription_92896,_SFT_traditionalTrans_1959542.json \
    --cutoff_len 1024 \
    --learning_rate 5e-05 \
    --num_train_epochs 1.0 \
    --max_samples 1000000 \
    --per_device_train_batch_size 28 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 1 \
    --save_steps 1000 \
    --warmup_steps 0 \
    --optim adamw_torch \
    --packing False \
    --report_to none \
    --output_dir {output_dir} \
    --bf16 True \
    --plot_loss True \
    --ddp_timeout 180000000 \
    --include_num_input_tokens_seen True \
    --deepspeed cache/ds_z3_offload_config.json

关键训练参数解析:

  1. 学习率策略:采用5e-05的学习率配合cosine调度器
  2. 批处理配置:每个设备28个样本,梯度累积步数为4
  3. 精度设置:使用BF16混合精度训练,节省显存同时保持精度
  4. 序列长度:截断长度为1024,适合中医文本的特点

训练成果与性能指标 📈

经过1个epoch的全参数微调训练,ChatTCM-7B-SFT-openmind取得了显著的训练成果:

epoch 1: 
    "num_input_tokens_seen": 1649269888,
    "total_flos": 3298213988794368.0,
    "train_loss": 1.0691444667014194,
    "train_runtime": 587389.2072,
    "train_samples_per_second": 3.483,
    "train_steps_per_second": 0.016

训练统计亮点

  • 处理了16.5亿个输入token
  • 完成了3.3×10¹⁵次浮点运算
  • 平均每秒处理3.483个训练样本
  • 最终训练损失收敛到1.069

模型能力提升与中医特色 🏥

通过全参数微调,ChatTCM-7B-SFT-openmind在以下中医专业能力方面得到了显著提升:

1. 古文翻译能力 📜

模型具备了将文言文/古文翻译为现代文的能力,这对于理解中医典籍至关重要。中医经典如《黄帝内经》、《伤寒论》等都使用古文撰写,这一能力让模型能够更好地理解和应用传统医学知识。

2. 临床诊断逻辑 🩺

模型学习了主流中医执业医师的临床诊断思维,能够:

  • 理解患者症状描述
  • 进行证型分析判断
  • 提供诊断建议
  • 推荐治疗方案

3. 中医知识问答 ❓

模型在中医领域的知识问答能力得到了加强,能够:

  • 准确回答中医理论问题
  • 解释中医术语和概念
  • 提供药物配伍建议
  • 分析病例治疗方案

4. 中医NLP基础能力 🔍

模型强化了面向中医术语的自然语言处理能力,支持:

  • 中医命名实体识别
  • 关系抽取与分析
  • 同义实体消歧
  • 拼写检查与纠错

推理使用指南 🚀

使用ChatTCM-7B-SFT-openmind进行推理非常简单,可以参考examples/inference.py中的代码示例:

from openmind import pipeline, is_torch_npu_available
from openmind import AutoTokenizer, AutoModelForCausalLM
import torch

# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained("jeffding/ChatTCM-7B-SFT-openmind", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("jeffding/ChatTCM-7B-SFT-openmind", trust_remote_code=True)

# 创建文本生成管道
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)

# 生成文本
text = "请将古人云翻译成现代文"
generated_text = pipe(text, max_length=50, do_sample=False, no_repeat_ngram_size=2)[0]

可选指令模板 💡

ChatTCM-7B-SFT-openmind支持多种中医相关的指令格式:

将输入的古文翻译成现代文。
请为输入的现代文找到其对应的古文原文与出处。
基于输入的患者医案记录,直接给出你的证型诊断,无需给出原因。
基于输入的患者医案记录,直接给出你的疾病诊断,无需给出原因。
基于输入的患者医案记录,直接给出你认为的方剂中药组成。
基于输入的患者医案记录,直接给出你认为的【治疗方案】{可多选}∈["中药", "成药", "方剂"],和【诊断】{可多选}∈["证型", "治法", "西医诊断", "中医诊断"]:

技术挑战与解决方案 🛠️

在训练ChatTCM-7B-SFT-openmind过程中,团队面临并解决了多个技术挑战:

1. 中医术语标准化

中医术语存在大量同义词和变体,通过构建专业词典和术语映射表,确保了模型对中医术语的准确理解。

2. 数据质量保证

中医文本数据质量参差不齐,通过多轮数据清洗和人工审核,确保了训练数据的准确性和专业性。

3. 模型稳定性

大规模参数微调容易导致模型不稳定,通过梯度裁剪、学习率调度等技术手段,确保了训练的稳定性。

未来发展方向 🎯

ChatTCM-7B-SFT-openmind的成功训练为中医AI发展开辟了新的道路,未来的发展方向包括:

  1. 多模态扩展 - 结合中医舌诊、脉诊图像数据
  2. 临床验证 - 与医院合作进行临床效果验证
  3. 个性化诊疗 - 基于患者个体差异的个性化治疗方案
  4. 知识图谱集成 - 与中医知识图谱深度融合

总结与展望 🌟

ChatTCM-7B-SFT-openmind基于LlamaFactory框架的全参数微调实践,展示了现代AI技术在传统医学领域的巨大潜力。通过精心设计的训练流程和专业的医学数据集,模型在中医古文翻译、临床诊断、知识问答等多个方面都展现出了优异的能力。

这个项目的成功不仅为中医智能化提供了技术参考,也为其他专业领域的大模型微调提供了宝贵经验。随着技术的不断进步和数据的不断积累,相信ChatTCM-7B-SFT-openmind将在中医教育、临床辅助、科研创新等方面发挥越来越重要的作用。

对于想要深入了解模型细节的开发者,可以查看完整的config.json配置文件,了解模型的具体架构和参数设置。模型文件采用safetensors格式存储,确保了安全性和兼容性。

中医AI的发展道路虽然充满挑战,但ChatTCM-7B-SFT-openmind的成功训练已经迈出了坚实的一步。期待这个项目能够为中医的现代化和智能化发展做出更大的贡献!🌱

【免费下载链接】ChatTCM-7B-SFT-openmind 【免费下载链接】ChatTCM-7B-SFT-openmind 项目地址: https://ai.gitcode.com/hf_mirrors/jeffding/ChatTCM-7B-SFT-openmind

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐