好用的模型训练框架,支持各模态模型训练和微调哦

git地址
git仓库 地址 主要功能 star/fork数
llamafactory hiyouga/LLaMA-Factory 适配性好的大模型训练框架 60k/7k
本文目录
1  llamafactory  1.1  功能说明  1.2  demo说明2  实战训练  2.1  Qwen分类模型训练  2.2  qwen2vl模型训练3  大模型相关训练/微调数据集格式介绍  3.1 指令微调数据集  3.2 预训练数据集  3.3 偏好数据集  3.4 KTO数据集  3.5 多模态数据集4 环境说明

llamafactory

功能说明
  • 项目是干啥的
  • LLaMA-Factory项目的目标是整合主流的各种高效训练微调技术,适配市场主流开源模型,形成一个功能丰富,适配性好的训练框架。
  • 项目提供了多个高层次抽象的调用接口,包含多阶段训练,推理测试,benchmark评测,API Server等,使开发者开箱即用。
  • 详细官方帮助文档,可参考 LLaMA Factory
  • 回复【llamafactory】获取项目地址

demo说明
    1. 启用demo如下
  • 服务启用就本节的几行命令的事儿啦, 其中git版本应用的为 ac925a248
  • 如下,pip采用需要啥装啥的设计,需要实现什么功能,比如vllm,增加即可
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics,vllm,deepspeed]" --no-build-isolation -i https://pypi.tuna.tsinghua.edu.cn/simplellamafactory-cli versionexport USE_MODELSCOPE_HUB=1 CUDA_VISIBLE_DEVICES=3,4,7 && llamafactory-cli webui # 启用web页面,模型指定为魔塔社区

    1. 开始搞了
      • 如下所示,包括训练、推理以及权重合并的命令demo如下
      • 具体命令,可以在web页面时,点击 预览命令 就可以了
# 模型训练export USE_MODELSCOPE_HUB=1 CUDA_VISIBLE_DEVICES=3,4,7llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml \    learning_rate=1e-5 \    logging_steps=1# 权重合并llamafactory-cli export --model_name_or_path openai/gpt-oss-20b \    --adapter_name_or_path saves/gpt-20b/lora/sft \    --export_dir gpt_merged# 模型推理llamafactory-cli chat --model_name_or_path gpt_merged --template gpt --skip_special_tokens False


这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
在这里插入图片描述

实战训练

Qwen分类模型训练
    1. 任务具体的要求为:
  • 给定新闻种类,根据新闻标题对新闻进行分类。
  • 输入为新闻标题,输出为新闻所属的种类,不需要额外解释,但保留思维链的内容;在输入的新闻标题前加上“新闻分类:”等类似文本来标明询问目的。
  • 详细地址为 Qwen3 4B × LLaMA Factory: 让大模型高效学习新闻领域分类
    1. 数据集获取
cd datawget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/llama_factory/data_news_300.zipunzip data_news_300.zip
    1. 数据格式为
  • 工具支持直接预览demo数据

    1. 开始训练了
  • 默认的配置就不错,还带损失函数查看的地儿

    1. 结果查看
  • 模型训练好了,将上面训练好保存的模型地址放到检查点路径,点击chat即可

qwen2vl模型训练
    1. 任务具体的要求为:
  • 训练图文模态,构建文旅大模型
  • 详细地址为 LLaMA Factory多模态微调实践:微调Qwen2-VL构建文旅大模型
    1. 数据集获取
  • 数据集中的样本为单轮对话形式,含有 261 条样本,每条样本都由一条系统提示、一条用户指令和一条模型回答组成,微调过程中模型不断学习样本中的回答风格,从而达到学习文旅知识的目的。
cd datawget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/llama_factory/Qwen2-VL-History.zipmv data rawdata && unzip Qwen2-VL-History.zip -d data
    1. 数据格式为
  • 输入数据包括图&文本

    1. 结果查看
  • 模型训练好了,将上面训练好保存的模型地址放到检查点路径,点击chat即可
  • 在系统提示词中说明下任务,上传图片后,模型就可以给你介绍这个地儿了

大模型相关训练/微调数据集格式介绍

    1. 总结
训练任务类型 数据集特点
指令监督微调 支持 alpacasharegpt 两种格式。 - alpaca 格式:包含 instructioninputoutput 等字段。 - sharegpt 格式:支持多种角色(human、gpt、observation、function),需按顺序交替出现。
预训练 使用未标记文本进行训练,数据格式为简单的 {"text": "document"} 形式。
偏好学习 包含优质回答 (chosen) 与劣质回答 (rejected)。 - alpaca 风格:分别列出 chosen/rejected 字段。 - sharegpt 风格:在消息列表中指定 chosen/rejected 对象。
KTO训练 类似偏好数据集,但每条样本只有一个布尔标签 (kto_tag) 表示反馈质量(true/false)。
多模态训练 图像/视频/音频数据集中需额外提供对应媒体文件路径 (images/videos/audio 列),且数量必须匹配文本中标记的数量。
    1. 对于自定义数据集,需要在 dataset_info.json 中补充定义
{  "identity": {    "file_name": "identity.json"  },"alpaca_en_demo": {    "file_name": "alpaca_en_demo.json"  },"alpaca_zh_demo": {    "file_name": "alpaca_zh_demo.json"  },"glaive_toolcall_en_demo": {    "file_name": "glaive_toolcall_en_demo.json",    "formatting": "sharegpt",    "columns": {      "messages": "conversations",      "tools": "tools"    }...}
指令微调数据集
    1. 指令监督微调(Instruct Tuning)通过让模型学习详细的指令以及对应的回答来优化模型在特定指令下的表现。
  • instruction 列对应的内容为人类指令, input 列对应的内容为人类输入, output 列对应的内容为模型回答。
  • 下面是一个例子
# alpaca_zh_demo.json{  "instruction": "计算这些物品的总费用。 ",  "input": "输入:汽车 - $3000,衣服 - $100,书 - $20。",  "output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"},
    1. 指令监督微调数据集 alpaca类型格式要求 如下
[  {    "instruction": "人类指令(必填)",    "input": "人类输入(选填)",    "output": "模型回答(必填)",    "system": "系统提示词(选填)",    "history": [      ["第一轮指令(选填)", "第一轮回答(选填)"],      ["第二轮指令(选填)", "第二轮回答(选填)"]    ]  }]
    1. 指令监督微调数据集 sharegpt类型格式要求
  • 相比 alpaca 格式的数据集, sharegpt 格式支持 更多 的角色种类,例如 human、gpt、observation、function 等等。它们构成一个对象列表呈现在 conversations 列中。

  • 其中 human 和 observation 必须出现在奇数位置,gpt 和 function 必须出现在偶数位置

    , 即人类先说,完了要一问一答

[  {    "conversations": [      {        "from": "human",        "value": "人类指令"      },      {        "from": "function_call",        "value": "工具参数"      },      {        "from": "observation",        "value": "工具结果"      },      {        "from": "gpt",        "value": "模型回答"      }    ],    "system": "系统提示词(选填)",    "tools": "工具描述(选填)"  }]
    1. 对于自定义数据集,需要在 dataset_info.json 中添加定义如下
# alpaca风格"数据集名称": {"file_name": "data.json","columns": {    "prompt": "instruction",    "query": "input",    "response": "output",    "system": "system",    "history": "history"  }}# sharegpt风格"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {    "messages": "conversations",    "system": "system",    "tools": "tools"  }}
预训练数据集
    1. 预训练任务,即大语言模型通过学习未被标记的文本进行预训练,从而学习语言的表征。
[  {"text": "document"},  {"text": "document"}]
    1. 对于自定义数据集,需要在 dataset_info.json 中添加定义如下
"数据集名称": {  "file_name": "data.json",  "columns": {    "prompt": "text"  }}
偏好数据集
    1. 偏好数据集用于奖励模型训练、DPO 训练和 ORPO 训练。对于系统指令和人类输入,偏好数据集给出了一个更优的回答和一个更差的回答。
  • 偏好数据集需要在 chosen 列中提供更优的回答,并在 rejected 列中提供更差的回答,
  • alpaca风格的,在一轮问答中其格式如下
[  {    "instruction": "人类指令(必填)",    "input": "人类输入(选填)",    "chosen": "优质回答(必填)",    "rejected": "劣质回答(必填)"  }]
    1. sharegpt风格数据集要求如下
  • 需要在 chosen 列中提供更优的消息,并在 rejected 列中提供更差的消息
[  {    "conversations": [      {        "from": "human",        "value": "人类指令"      },      {        "from": "gpt",        "value": "模型回答"      },      {        "from": "human",        "value": "人类指令"      }    ],    "chosen": {      "from": "gpt",      "value": "优质回答"    },    "rejected": {      "from": "gpt",      "value": "劣质回答"    }  }]
    1. 对于自定义数据集,需要在 dataset_info.json 中添加定义如下
# alpaca风格"数据集名称": {"file_name": "data.json","ranking": true,"columns": {    "prompt": "instruction",    "query": "input",    "chosen": "chosen",    "rejected": "rejected"  }}# sharegpt风格"数据集名称": {"file_name": "data.json","formatting": "sharegpt","ranking": true,"columns": {    "messages": "conversations",    "chosen": "chosen",    "rejected": "rejected"  }}
KTO数据集
    1. KTO数据集与偏好数据集类似,但不同于给出一个更优的回答和一个更差的回答,KTO数据集对每一轮问答只给出一个 true/false 的 label
  • 除了 instruction 以及 input 组成的人类最终输入和模型回答 output ,KTO 数据集还需要额外添加一个 kto_tag 列(true/false)来表示人类的反馈。
  • 数据demo如下
[  {    "instruction": "人类指令(必填)",    "input": "人类输入(选填)",    "output": "模型回答(必填)",    "kto_tag": "人类反馈 [true/false](必填)"  }]
    1. 对于自定义数据集,需要在 dataset_info.json 中添加定义如下
"数据集名称": {  "file_name": "data.json",  "columns": {    "prompt": "instruction",    "query": "input",    "response": "output",    "kto_tag": "kto_tag"  }}
多模态数据集
    1. 数据格式
  • 1). 多模态图像数据集需要额外添加一个 images 列,包含输入图像的路径。 注意图片的数量必须与文本中所有 标记的数量严格一致。
  • 2). 多模态视频数据集需要额外添加一个 videos 列,包含输入视频的路径。 注意视频的数量必须与文本中所有标记的数量严格一致。
  • 3). 多模态音频数据集需要额外添加一个 audio 列,包含输入图像的路径。 注意音频的数量必须与文本中所有标记的数量严格一致。
[  {    "instruction": "人类指令(必填)",    "input": "人类输入(选填)",    "output": "模型回答(必填)",    "images": [      "图像路径(必填)"    ]  }]
    1. 对于自定义数据集,需要在 dataset_info.json 中添加定义如下
"数据集名称": {  "file_name": "data.json",  "columns": {    "prompt": "instruction",    "query": "input",    "response": "output",    "images": "images"  }}

环境说明

    1. 环境说明
ubuntu1~22.04.2NVIDIA A100-SXM4-80GBPython 3.12.11CUDA Version: 12.8docker  27.5.1
    1. python环境
  • python库版本,请看requirements_env.txt
llamafactory==0.9.4.dev0vllm==0.10.0torch==2.7.1torchvision==0.22.1

AI大模型学习和面试资源

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
在这里插入图片描述

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐