跳到主要内容【大模型微调】LLaMA Factory 微调 LLMs & VLMs | 极客日志广泛任务:多轮对话、工具调用、图像理解、视觉定位、视频识别和语音理解等等。实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等等。 极速推理:基于 vLLM 或 SGLang 的 OpenAI 风格 API、浏览器界面和命令行接口。 | 适配时间 | 模型名称 |
|---|
| Day 0 | Qwen3 / Qwen2.5-VL / Gemma 3 / GLM-4.1V / InternLM 3 / MiniCPM-o-2.6 |
| Day 1 | Llama 3 / GLM-4 / Mistral Small / PaliGemma2 / Llama 4 |
| 方法 | 全参数训练 | 部分参数训练 | LoRA | QLoRA |
|---|
| 预训练 | ✅ | ✅ | ✅ | ✅ |
| 指令监督微调 | ✅ | ✅ | ✅ | ✅ |
| 奖励模型训练 | ✅ | ✅ | ✅ | ✅ |
| PPO 训练 | ✅ | ✅ | ✅ | ✅ |
| DPO 训练 | ✅ | ✅ | ✅ | ✅ |
| KTO 训练 | ✅ | ✅ | ✅ | ✅ |
| ORPO 训练 | ✅ | ✅ | ✅ | ✅ |
| SimPO 训练 | ✅ | ✅ | ✅ | ✅ |
二、支持的模型
三、提供的数据集(基础)
下面这些是基础数据集,提供给我们使用的,我们也可以自定义数据集的。
注意:部分数据集的使用需要确认,推荐使用下述命令登录自己的 Hugging Face 账户
pip install --upgrade huggingface_hub huggingface-cli login
四、安装LLaMA Factory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory
创建一个Conda环境,名字为LLaMA-Factory,指定Python是3.10:
conda create -n LLaMA-Factory python=3.10
然后安装troch=2.5.1,CUDA=12.1,执行命令:
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121
pip install -e ".[torch,metrics]" --no-build-isolation
| 方法 | 精度 | 7B | 14B | 30B | 70B | xB |
|---|
Full (bf16 or fp16) | 32 | 120GB | 240GB | 600GB | 1200GB | 18xGB |
Full (pure_bf16) | 16 | 60GB | 120GB | 300GB | 600GB | 8xGB |
| Freeze/LoRA/GaLore/APOLLO/BAdam | 16 | 16GB | 32GB | 64GB | 160GB | 2xGB |
| QLoRA | 8 | 10GB | 20GB | 40GB | 80GB | xGB |
| QLoRA | 4 | 6GB | 12GB | 24GB | 48GB | x/2GB |
| QLoRA | 2 | 4GB | 8GB | 16GB | 24GB | x/4GB |
五、微调LLM实践--Qwen3-4B-Thinking
conda activate LLaMA-Factory
然后我们选择模型(Qwen3-4B-Thinking)、微调方法(lora)、训练方式(Supervised Fine-Tuning)监督微调
选择数据集(alpaca_zh_demo),点击'预览数据集'能看到:
其他参考可以默认了,然后点击'训练',等待训练完成
六、微调VLM实践--Qwen/Qwen2.5-VL-3B-Instruct
conda activate LLaMA-Factory
然后我们选择模型(Qwen/Qwen2.5-VL-3B-Instruct)、微调方法(lora)、训练方式(Supervised Fine-Tuning)监督微调
选择数据集(mllm_demo),点击'预览数据集'能看到:
对应的图片:(LLaMA-Factory/data/mllm_demo_data/1.jpg)
其他参考可以默认了,然后点击'训练',等待训练完成
七、了解源代码
首先看看数据集的目录,有上面微调训练用到的alpaca_zh_demo.json、mllm_demo.json,
看一下alpaca_zh_demo.json文件的数据:
[ { "instruction": "识别并解释给定列表中的两个科学理论:细胞理论和日心说。", "input": "", "output": "细胞理论是生物科学的一个理论,它认为所有生命体都是由微小的基本单元——细胞所构成。这是生物学的一个基础理论,认为细胞是所有生物的基本结构和功能单位,所有的生物都是由一个或多个细胞组成,细胞只能通过细胞分裂产生新的细胞。这一理论由薛定谔、施瓦内和雪莱于1839年首次提出。\n\n日心说是指太阳是太阳系的中心,也就是说,行星围绕太阳旋转的理论。这个理论打破了传统的地心说观点,认为地球并不是宇宙的中心。日心说的提出者是尼古拉·哥白尼,他在16世纪初发表了他的著作《天体运行论》,阐述了太阳系行星围绕太阳运行的模型,为天文学的发展做出了巨大贡献。" }, { "instruction": "输入三支篮球队的名称并生成一个适当的口号。", "input": "输入:俄克拉荷马城雷霆队,芝加哥公牛队,布鲁克林网队。", "output": "输出: \"雷霆,公牛和网队:各显神通,角逐群雄!\"" }, { "instruction": "比较以下两位著名人物,使用特征列表并以句子形式提供输出。", "input": "人物1:阿尔伯特·爱因斯坦\n人物2:斯蒂芬·霍金\n特征:智力、教育、对世界的影响", "output": "阿尔伯特·爱因斯坦和斯蒂芬·霍金都是拥有极其出色智力的人物。两人都取得过非常高的教育成就,他们推进了科学发展并在世界范围内产生了深远的影响。爱因斯坦以其相对论和质能关系公式而闻名,而霍金以其关于黑洞和宇宙的发现而著称。两位科学家都以其深厚的学识和非凡的贡献影响了世界。" }, { "instruction": "请根据以下文章构建一个需要回答的问题。", "input": "", "output": "我不好意思,您没有提供任何信息或文章来供我根据它构建问题。 请提供相应的文章或信息,以便我能够帮助您构建问题。" }, ......... { "instruction": "描述安第斯山脉的位置。", "input": "", "output": "安第斯山脉位于南美洲,横跨七个国家,包括委内瑞拉,哥伦比亚,厄瓜多尔,秘鲁,玻利维亚,智利和阿根廷。安第斯山脉是世界上最长的山脉之一,全长约7,000千米(4,350英里),其山脉沿着南美洲西海岸蜿蜒延伸,平均海拔约为4,000米(13,000英尺)。在其南部,安第斯山脉宽度达到700千米(430英里),在其北部宽度约为500千米(310英里)。" }
[ { "messages": [ { "content": "<image>Who are they?", "role": "user" }, { "content": "They're Kane and Gretzka from Bayern Munich.", "role": "assistant" }, { "content": "What are they doing?<image>", "role": "user" }, { "content": "They are celebrating on the soccer field.", "role": "assistant" } ], "images": [ "mllm_demo_data/1.jpg", "mllm_demo_data/1.jpg" ] }, { "messages": [ { "content": "<image>Who is he?", "role": "user" }, { "content": "He's Thomas Muller from Bayern Munich.", "role": "assistant" }, { "content": "Why is he on the ground?", "role": "user" }, { "content": "Because he's sliding on his knees to celebrate.", "role": "assistant" } ], "images": [ "mllm_demo_data/2.jpg" ] }, ....... { "messages": [ { "content": "<image>请描述这张图片", "role": "user" }, { "content": "中国宇航员桂海潮正在讲话。", "role": "assistant" }, { "content": "他取得过哪些成就?", "role": "user" }, { "content": "他于2022年6月被任命为神舟十六号任务的有效载荷专家,从而成为2023年5月30日进入太空的首位平民宇航员。他负责在轨操作空间科学实验有效载荷。", "role": "assistant" } ], "images": [ "mllm_demo_data/3.jpg" ] } ]
目前支持 alpaca 格式和 sharegpt 格式的数据集。允许的文件类型包括 json、jsonl、csv、parquet 和 arrow。
然后在dataset_info.json文件中,添加自定义的数据集名字和格式就好啦.(能看到alpaca_zh_demo和mllm_demo数据集也在里面的)
比如,新加了vlm_graph_gen数据集,标注内容在vlm_graph_gen.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" } }, "glaive_toolcall_zh_demo": { "file_name": "glaive_toolcall_zh_demo.json", "formatting": "sharegpt", "columns": { "messages": "conversations", "tools": "tools" } }, "mllm_demo": { "file_name": "mllm_demo.json", "formatting": "sharegpt", "columns": { "messages": "messages", "images": "images" }, "tags": { "role_tag": "role", "content_tag": "content", "user_tag": "user", "assistant_tag": "assistant" } }, "vlm_graph_gen": { "file_name": "vlm_graph_gen.json", "formatting": "sharegpt", "columns": { "messages": "messages", "images": "images" }, "tags": { "role_tag": "role", "content_tag": "content", "user_tag": "user", "assistant_tag": "assistant" } },
八、其他参考资料
相关免费在线工具
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online