(LLaMa Factory)大模型训练方法--预训练(Qwen2-0.5B)

❗由于大模型的预训练需要数千个GPU并持续数月的时间,所以一般情况下实际工作中并不会涉及到预训练,本篇文章我们只做的简单流程体验。

1、准备训练数据

说明:LLaMa-Factory的Github上有训练数据格式的详细说明,请见README_zh。

复制代码
• 预训练数据格式:[
{"text": "document"},
{"text": "document"}
]
  • 数据集样例:

    #按照数据集样例,我们准备如下的自定义预训练数据集,保存到data/custom_pt_train_data.json。

    [
    {"text":"患者在过去的五年中多次出现头痛症状。"},
    {"text":"研究表明,适量运动有助于改善心血管健康。"},
    {"text":"高血压患者需定期监测血压水平。"},
    {"text":"糖尿病患者应注意饮食控制和胰岛素使用。"},
    {"text":"流感疫苗每年接种可以有效预防流感。"},
    {"text":"保持良好的睡眠习惯对心理健康至关重要。"},
    {"text":"慢性咳嗽可能是肺部疾病的早期征兆。"},
    {"text":"定期体检可以帮助早期发现健康问题。"},
    {"text":"心理咨询对缓解焦虑和抑郁症状有效。"},
    {"text":"饮食中增加纤维素有助于消化系统健康。"},
    {"text":"适量饮水对维持身体正常功能非常重要。"},
    {"text":"戒烟可以显著降低患肺癌的风险。"},
    {"text":"高胆固醇水平可能导致心脏病。"},
    {"text":"保持健康体重有助于降低多种疾病风险。"},
    {"text":"心理健康与身体健康密切相关。"},
    {"text":"儿童应定期进行视力和听力检查。"},
    {"text":"老年人易患骨质疏松症,需注意补钙。"},
    {"text":"过度饮酒会对肝脏造成严重损害。"},
    {"text":"心脏病患者应遵循医生的治疗方案。"},
    {"text":"良好的饮食习惯可以改善生活质量。"},
    {"text":"运动可以帮助减少压力和焦虑。"},
    {"text":"戒烟后,肺部功能会逐渐恢复。"},
    {"text":"高血糖可能导致多种并发症。"},
    {"text":"定期锻炼有助于提高免疫力。"},
    {"text":"适量的社交活动可以提高生活满意度。"},
    {"text":"健康的生活习惯可以改善整体健康状况。"},
    {"text":"心理健康教育应引起全社会的重视。"}
    ]

注册自定义数据 : 我们需要在dataset_info.json中按照以下格式注册自定义的数据集。

• 数据集注册格式:

复制代码
"数据集名称": {
"file_name": "data.json",
"columns": {
  "prompt": "text"
}
}

我们在data/dataset_info.json中添加如下数据集:

复制代码
"custom_pt_train_data": {
  "file_name": "custom_pt_train_data.json",
  "columns": {
    "prompt": "text"
  }
}

2、配置训练参数:

复制代码
• Model name: Qwen2-0.5B
• Model path: models/Qwen2-0.5B
• Finetuning method: full
• Stage : Pre-Training
• Dataset: custom_pt_train_data , c4_demo, wiki_demo
• Output dir: Qwen2_pretrain_output_demo1

参数简要说明:

复制代码
• Finetuning method代表微调的方法:
  • full: 完全微调模型的所有参数。
  • Freeze:冻结模型的某些层或所有层,仅微调特定的参数。
  • LoRA (Low-Rank Adaptation):在不改变原始模型参数的情况下,通过添加少量的可训练参数来适应新任务。
• Stage 代表训练的阶段:
  • Pre-Training: 预训练阶段。
  • Supervised Fine-Tuning: 微调阶段。
  • Reward Model: 奖励模型是一个过程,通过构建一个模型来预测给定输入的奖励值,通过训练奖励模型,可以为后续的强化学习提供一个目标。
  • PPO (Proximal Policy Optimization): PPO是一种强化学习算法,旨在优化策略(即模型的行为),以最大化预期奖励。
  • DPO (Direct Preference Optimization): DPO是一种直接优化偏好的方法,通常用于根据人类反馈直接调整模型的输出。
  • KTO (Knowledge Transfer Optimization): KTO指的是知识迁移优化,旨在从一个任务或模型中迁移知识到另一个任务或模型。

3、预览训练数据 : 在 LLaMa-Factory的WebUI界面上,选择Dataset为 custom_pt_train_data,点击Preview dataset按钮,预览数据集。

4、启动训练 : 点击Preview Command预览命令行无误后,点击Start即可开启训练。

5、查看模型文件 :在saves/Qwen2-0.5B/full目录下,可以查看到预训练好的模型文件。

相关推荐
同学小张17 小时前
【端侧AI 与 C++】1. llama.cpp源码编译与本地运行
开发语言·c++·aigc·llama·agi·ai-native
程序员与背包客_CoderZ5 天前
C/C++版LLM推理框架Llama.cpp——入门与编码实战
c语言·开发语言·网络·c++·人工智能·语言模型·llama
java_logo7 天前
LOBE-CHAT Docker 容器化部署指南
运维·docker·语言模型·容器·llama
AI大模型7 天前
手把手教你用LlamaIndex搭建RAG系统,让LLM告别“幻觉”,提升回答质量!
llm·agent·llama
开发者导航15 天前
【开发者导航】轻量可微调且开源的大语言模型家族:LLaMA
语言模型·开源·llama
缘友一世16 天前
借助LLama_Factory工具对大模型进行lora微调
llama
illuspas17 天前
MI50运算卡使用llama.cpp的ROCm后端运行Qwen3-Coder-30B-A3B的速度测试
人工智能·llama
herogus丶17 天前
【LLM】LLaMA-Factory 训练模型入门指南
python·ai编程·llama
illuspas17 天前
MI50运算卡使用llama.cpp的ROCm后端运行gpt-oss-20b的速度测试
人工智能·gpt·llama
谏书稀17 天前
LLaMA Factory微调大模型
python·transformer·llama