Llama Factory

1. Llama Factory 到底是什么?

1.1 简单比喻

想象你要定制一辆汽车:

传统方式(没有 Llama Factory):

  • 你需要自己造发动机、设计车身、组装零件
  • 需要懂机械工程、电子技术、材料科学
  • 整个过程复杂、容易出错、耗时很长

使用 Llama Factory:

  • 你只需要:
    1. 选择基础车型(预训练模型)
    2. 告诉工厂你的需求(训练数据)
    3. 选择改装方案(训练方法)
    4. 工厂自动完成所有改装
  • 你不需要懂技术细节,只需要提需求

1.2 一句话定义

Llama Factory 是一个"AI模型定制工厂",它让普通人也能轻松地定制和训练自己的大语言模型。

2. 为什么需要 Llama Factory?

2.1 传统训练的痛点

假设你想训练一个懂医疗知识的AI助手:

# 传统方式 - 需要写很多复杂代码 import torch from transformers import AutoModel, AutoTokenizer, TrainingArguments, Trainer from datasets import load_dataset import deepspeed # 1. 数据预处理(很复杂) def preprocess_function(examples): # 需要懂分词、填充、截断等技术 pass # 2. 模型配置(容易出错) training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, gradient_accumulation_steps=4, learning_rate=2e-5, # ... 还有几十个参数需要设置 ) # 3. 训练循环(需要深度学习知识) trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets, data_collator=data_collator, # ... 更多复杂配置 ) # 4. 处理各种错误(内存不足、配置错误等)

问题总结:

  • 技术门槛高:需要懂编程、深度学习、分布式训练
  • 配置复杂:几十个参数需要调优
  • 容易出错:内存溢出、配置错误、训练不稳定
  • 效率低下:大量时间花在调试上

2.2 Llama Factory 的解决方案

# 使用 Llama Factory 的方式 from llama_factory import TrainArguments, run_train # 只需要配置几个关键参数 train_args = TrainArguments( model_name_or_path="Qwen/Qwen2-7B-Instruct", # 基础模型 dataset="my_medical_data", # 你的数据 finetuning_type="lora", # 训练方法 output_dir="./my_medical_ai" # 输出位置 ) # 一键开始训练 run_train(train_args)

3. Llama Factory 的核心功能详解

3.1 四种训练方法(像选择汽车改装方案)

方案1:全参数微调 - "整车大改装"

        工作原理:更新模型的所有参数
        ✅ 优点:效果最好,能力最强
        ❌ 缺点:成本高,需要大量GPU内存
        💡 适合:大公司,有充足计算资源
        🔧 需求:多张A100/H100显卡

        内存需求:模型大小 × 4 × 3 ≈ 12倍模型大小
        例如:7B模型需要 7×4×3 = 84GB GPU内存

方案2:LoRA - "加装智能配件"

        工作原理:只训练少量新增的参数,不改变原模型
        ✅ 优点:节省90%内存,训练快,可切换不同任务
        ❌ 缺点:效果略低于全参数微调
        💡 适合:大多数应用场景
        🔧 需求:单张RTX 3090/4090即可

        内存需求:模型大小 + 少量额外参数
        例如:7B模型只需要 7GB + 0.1GB = 7.1GB GPU内存

方案3:QLoRA - "轻量化智能配件"

        工作原理:在LoRA基础上,把模型压缩到4位精度
        ✅ 优点:极省内存,消费级显卡就能训练大模型
        ❌ 缺点:效果有轻微损失
        💡 适合:个人开发者,资源有限
        🔧 需求:单张RTX 3080/4060即可

        内存需求:模型大小 × 0.5 + 少量参数
        例如:7B模型只需要 7×0.5 + 0.1 = 3.6GB GPU内存

方案4:P-Tuning - "只改方向盘"

        工作原理:只训练极少量提示参数
        ✅ 优点:超级省内存,训练极快
        ❌ 缺点:效果有限,能力提升小
        💡 适合:快速实验,极小资源
        🔧 需求:几乎任何显卡都能用

        内存需求:模型大小 + 极少量参数

4. Llama Factory 的完整工作流程

4.1 第一步:准备数据(像准备菜谱)

数据格式要求:

// 你的训练数据应该长这样 [ { "instruction": "给以下症状提供医疗建议", "input": "患者发烧38.5℃,咳嗽,流鼻涕", "output": "建议多休息、多喝水,可服用退烧药,如症状持续请就医" }, { "instruction": "翻译以下英文", "input": "Hello, how are you?", "output": "你好,最近怎么样?" } ]

各个字段的含义:

  • instruction:你要AI完成什么任务
  • input:给AI的输入信息
  • output:你期望AI输出的正确答案

数据准备技巧:

  1. 数量:至少100条,越多越好
  2. 质量:确保答案准确、专业
  3. 多样性:覆盖各种场景和问题类型

4.2 第二步:选择基础模型(像选择原材料)

常见基础模型推荐:

中文任务: - Qwen系列(阿里通义千问):对中文支持最好 - ChatGLM系列(清华):中文理解强 - Baichuan系列(百川):中文优化好 英文任务: - Llama系列(Meta):生态丰富 - Mistral系列:性能优秀 - Gemma系列(Google):轻量高效 多语言任务: - Qwen系列:中英文都不错 - Llama系列:通过扩展支持多语言

选择原则:

  • 任务语言 → 选择对应语言优化好的模型
  • 硬件限制 → 选择参数量合适的模型
  • 功能需求 → 选择能力匹配的模型

4.3 第三步:配置训练参数(像设置烹饪参数)

# 一个完整的训练配置示例 train_args = TrainArguments( # 基础配置 model_name_or_path="Qwen/Qwen2-7B-Instruct", # 基础模型 dataset="my_medical_data", # 数据集名称 finetuning_type="lora", # 训练方法 # LoRA 专用配置 lora_target="q_proj,v_proj", # 要改动的模型部件 lora_rank=16, # 改动程度(16-64) lora_alpha=32, # 学习强度 # 训练参数 output_dir="./my_medical_ai", # 保存位置 per_device_train_batch_size=4, # 批次大小 gradient_accumulation_steps=4, # 梯度累积 learning_rate=2e-4, # 学习率 num_train_epochs=3, # 训练轮数 # 资源优化 fp16=True, # 使用半精度节省内存 logging_steps=10, # 每10步输出日志 )

4.4 第四步:开始训练(像启动智能厨房)

from llama_factory import run_train # 一键开始训练 run_train(train_args) # 训练过程中你会看到: # 🔥 开始训练... # 📊 第1步,损失: 2.3456 # 📊 第10步,损失: 1.2345 # 📊 第20步,损失: 0.8765 # 💾 保存检查点... # 🎉 训练完成!

4.5 第五步:测试和使用(像品尝菜品)

from llama_factory import load_model, get_infer_args # 加载训练好的模型 infer_args = get_infer_args({ "model_name_or_path": "Qwen/Qwen2-7B-Instruct", "adapter_name_or_path": "./my_medical_ai", # 你的训练结果 "template": "qwen" }) model, tokenizer = load_model(infer_args) # 测试你的AI助手 messages = [ {"role": "user", "content": "我发烧38℃,应该怎么办?"} ] response = model.chat(tokenizer, messages) print(f"AI回答: {response}") # 输出:建议多休息、多喝水,可服用退烧药...

5、介绍完,就可以尝试了

LLaMA-Factory 是一个用于训练和微调模型的工具。它支持全参数微调、LoRA 微调、QLoRA 微调、模型评估、模型推理和模型导出等功能。

微调的过程

        模型微调通过在特定任务的数据集上继续训练预训练模型来进行,使得模型能够学习到与任务相关的特定特征和知识。这个过程通常涉及到模型权重的微幅调整,而不是从头开始训练一个全新的模型。微调过程主要包括以下几个步骤:

1. 数据准备:收集和准备特定任务的数据集。

2. 模型选择:选择一个预训练模型作为基础模型。

3. 迁移学习:在新数据集上继续训练模型,同时保留预训练模型的知识。

4. 参数调整:根据需要调整模型的参数,如学习率、批大小等。

5. 模型评估:在验证集上评估模型的性能,并根据反馈进行调整。

安装

若电脑没有GPU,可以使用ModelScope云服务

我的Notebook · 魔搭社区

前提CUDA要安装,然后安装llamafactory

# 构建虚拟环境 conda create -n llamafactory python=3.10 -y && conda activate llamafactory # 下载仓库 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory # 安装 pip install -e . 
校验
llamafactory-cli version 

安装完成后、可以启动webUI界面配置,也可以直接在示例文件夹下修改。

可以读一下readme使用哪个方法训练,有对应命令行的执行命令

打开这个文件有几个配置

第一个框是它要训练的模型路径,默认模型文件从modelScope上下载

第二个框是用的数据集,有两个,第一个是自我认证:

用户什么都没有输入,只是让模型知道它是谁,一个自我认证的数据集

第二个就是微调的数据集(en证明是英文的)。

第三个框是一次训练最大例子数量,可以调小一点加快训练。

训练配置完成后就可以在命令行执行:

llamafactory-cli train examples/train_qlora/llama3_lora_sft_otfq.yaml

## 官方博客

- 💡 [Easy Dataset × LLaMA Factory: 让大模型高效学习领域知识](https://buaa-act.feishu.cn/wiki/KY9xwTGs1iqHrRkjXBwcZP9WnL9)(中文)

- [使用 LLaMA-Factory 微调心理健康大模型](https://www.lab4ai.cn/project/detail?id=25cce32ec131497b9e06a93336a0817f&type=project&utm_source=LLaMA-Factory)(中文)

- [使用 LLaMA-Factory 构建 GPT-OSS 角色扮演模型](https://docs.llamafactory.com.cn/docs/documents/best-practice/gptroleplay/?utm_source=LLaMA-Factory)(中文)

- [基于 LLaMA-Factory 和 EasyR1 打造一站式无代码大模型强化学习和部署平台 LLM Model Hub](https://aws.amazon.com/cn/blogs/china/building-llm-model-hub-based-on-llamafactory-and-easyr1/)(中文)

Read more

企业微信外部群“群机器人”主动推送消息实现指南

QiWe开放平台 · 开发者名片                 API驱动企微自动化,让开发更高效         核心能力:企微二次开发服务 | 多语言接入 | 免Root授权         官方站点:https://www.qiweapi.com(功能全景)         开发文档:https://doc.qiweapi.com(开发指南)         团队定位:专注企微API生态的技术服务团队        对接通道:搜「QiWe 开放平台」联系客服         核心理念:合规赋能,让企微开发更简单、更高效 在企业微信的生态开发中,针对外部群(包含微信用户的群聊)进行自动化消息推送,最稳健且合规的方式是利用群机器人(Webhook)。本文将从技术逻辑、核心步骤及注意事项三个维度,分享如何实现这一功能。 一、 实现逻辑简述 企业微信外部群机器人主要通过一个唯一的 Webhook 地址 接收标准的 HTTP POST 请求。开发者只需将构造好的

VR视频转换利器:一键将3D沉浸体验变为2D自由视角

VR视频转换利器:一键将3D沉浸体验变为2D自由视角 【免费下载链接】VR-reversalVR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_mirrors/vr/VR-reversal 还在为只能在VR设备上观看的3D视频而烦恼吗?VR-Reversal这款开源工具彻底改变了这一现状,它通过智能算法将复杂的VR视频格式转换为标准2D视频,同时保留了自由探索视角的核心优势。无论你是想在大屏电视上重温VR旅行记录,还是希望在普通电脑上分享沉浸式内容,这个工具都能满足你的需求。 🎮 零基础也能上手的操作界面 VR-Reversal的设计理念就是让每个人都能轻松使用。你不需要任何专业的视频编辑知识,只需要简单的拖拽操作就能开始转换过程。 从演示动图中可以看到,原本只能在VR设备中体验的360度全景内容,现在通过简

OpenClaw多智能体路由实战:飞书多机器人配置指南

文章目录 * 飞书重新安装问题 * 批量增加机器人 * 缺点 * 多个飞书机器人名称包含大小写的问题 * 多个Agent名称包含大小写的问题 目前我已经完成了OpenClaw的基本安装,但是在对话框只有一个,机器人也只绑定到主会话,一次只能处理一个消息。很多时候我在聊天窗口,说A任务,然后做了一半,又发了关于B任务的指令。一是每次发完消息,如果OpenClaw还在处理,剩下的消息要么进入队列、要么看不到(实际还在队列)。两个任务切来切去,感觉体验很不好。 要彻底解决这个问题,实现网上演示的那种对各Agent、每个对话机器人对应一个Agent,就需要用到多智能体路由技术。 实现的步骤如下: * 在飞书创建一个新的机器人 * 通过控制台创建新的智能体 * 按照指引将飞书配置上去 * 根据需要创建多个Agent和机器人,并对应配置上去(略) 飞书重新安装问题 明明我已经安装好了飞书,系统还是会提示我安装,否则就跳过了添加飞书这步。应该是系统Bug。这次安装的飞书位置在~/.openclaw/extensions/feishu,其实和~/.npm-globa

2026 AI元年:AI原生重构低代码,开发行业迎来范式革命

2026 AI元年:AI原生重构低代码,开发行业迎来范式革命

前言         2026 年,被全球科技产业正式定义为AI 规模化落地元年。 从实验室走向生产线、从对话交互走向系统内核、从锦上添花的功能插件走向底层驱动引擎,AI 不再是概念炒作,而是重构软件研发、企业服务、数字化转型的核心生产力。低代码开发平台,作为过去十年企业数字化落地最轻量化、最普及的工具,在 2026 年迎来最彻底的一次变革:AI 全面注入低代码,从 “可视化拖拽” 迈向 “意图驱动生成”。         长期以来,低代码行业始终面临两大争议:一是被技术开发者嘲讽 “只能做玩具系统,无法支撑企业级复杂场景”;二是被业务人员抱怨 “依旧需要懂技术、配规则、调逻辑,门槛依然很高”。而随着大模型技术成熟、国产模型规模化商用、AI 工程化能力落地,这一切正在被改写。         JNPF 作为企业级低代码平台的代表,在 2026 年全面完成 AI 原生架构升级,深度对接 Deepseek、通义千问、