LLaMA-Factory QuickStart 流程详解

1. 项目背景与目标

LLaMA-Factory 是一个整合主流高效训练与微调技术的框架,支持主流开源大模型(如 LLaMA、Qwen、Baichuan 等),提供便捷的接口和工作台,降低大模型微调门槛。


2. 流程概览

2.1 前置准备

硬件与驱动支持
  1. 确保硬件环境满足需求(如 RTX 3090/4090)。

    • 使用 nvidia-smi 命令验证 GPU 状态。
  2. 安装 CUDA 和 PyTorch 环境

    • 克隆项目代码并安装依赖:

      复制代码
      git clone https://github.com/hiyouga/LLaMA-Factory.git
      conda create -n llama_factory python=3.10
      conda activate llama_factory
      cd LLaMA-Factory
      pip install -e '.[torch,metrics]'
    • 校验环境:

      复制代码
      import torch
      torch.cuda.current_device()
      torch.cuda.get_device_name(0)
      torch.__version__
  3. 下载模型文件

    • 通过 Huggingface 下载:

      复制代码
      git clone https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct
    • 通过 ModelScope 下载(国内推荐):

      复制代码
      git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git
  4. 验证模型文件

    • 运行原始推理代码,确保模型文件和环境正确:

      复制代码
      import transformers
      import torch
      
      model_id = "/path/to/Meta-Llama-3-8B-Instruct"
      
      pipeline = transformers.pipeline(
          "text-generation",
          model=model_id,
          model_kwargs={"torch_dtype": torch.bfloat16},
          device_map="auto",
      )

2.2 原始模型直接推理

  • 使用 webchat 参数启动 Gradio 前端页面:

    复制代码
    CUDA_VISIBLE_DEVICES=0 llamafactory-cli webchat \
        --model_name_or_path /path/to/Meta-Llama-3-8B-Instruct \
        --template llama3
  • 通过浏览器访问http://localhost:7860


2.3 自定义数据集构建

数据集格式

LLaMA-Factory 支持 AlpacaShareGPT 格式,示例如下:

  • 单轮数据格式 (Alpaca):

    复制代码
    {
      "instruction": "写一个有效的比较语句",
      "input": "篮球和足球",
      "output": "篮球和足球都是受欢迎的运动。"
    }
  • 多轮数据格式 (ShareGPT):

    复制代码
    {
      "instruction": "谢谢",
      "output": "不用谢! 很高兴我提供的信息能够帮助到你!",
      "history": [
        ["请你给我写一个面试准备计划", "微软官网找招聘信息..."]
      ]
    }
示例:数据集构建流程
  1. 系统自带数据集 (identity.json) 修改:

    • 使用 sed 进行批量替换:

      复制代码
      sed -i 's/{{name}}/PonyBot/g' data/identity.json
      sed -i 's/{{author}}/LLaMA Factory/g' data/identity.json
  2. 自定义商品文案生成数据集:

    • 原始格式:

      复制代码
      {
        "content": "类型#裤*版型#宽松",
        "summary": "宽松的阔腿裤...设计感更强。"
      }
    • 步骤:

      • 将数据集放置于 data 目录下。

      • 修改 data/dataset_info.json 进行注册:

        复制代码
        "adgen_local": {
          "path": "data/adgen.json",
          "columns": {"instruction": "content", "output": "summary"}
        }
    • 结果: 自定义数据集名称为 adgen_local,可在训练时调用。


2.4 指令微调 (SFT) 训练

使用 LoRA + SFT 技术微调大模型,示例命令:

复制代码
llamafactory-cli train \
    --model_name_or_path /path/to/Meta-Llama-3-8B-Instruct \
    --dataset adgen_local \
    --template llama3 \
    --output_dir ./output

2.5 推理与验证

  1. 动态合并 LoRA 微调结果:

    复制代码
    llamafactory-cli webchat \
        --model_name_or_path /path/to/Meta-Llama-3-8B-Instruct \
        --adapter ./output
  2. 批量预测与训练效果评估:

    复制代码
    llamafactory-cli eval \
        --model_name_or_path /path/to/Meta-Llama-3-8B-Instruct \
        --dataset adgen_local

2.6 模型合并与导出

  • 合并 LoRA 微调后的模型:

    复制代码
    llamafactory-cli export \
        --model_name_or_path /path/to/Meta-Llama-3-8B-Instruct \
        --adapter ./output \
        --output_dir ./merged_model
  • 导出 GGUF 格式,适配 Ollama 推理:

    复制代码
    llamafactory-cli export --output_format gguf

2.7 可视化 WebUI 使用

  • 启动 WebUI 工作台:

    复制代码
    llamafactory-cli webui
  • 访问地址http://localhost:7860


2.8 API 服务部署与调用

  • 启动 API 服务:

    复制代码
    llamafactory-cli api \
        --model_name_or_path /path/to/Meta-Llama-3-8B-Instruct
  • 通过 HTTP 请求调用接口。


总结

LLaMA-Factory 提供了全链路大模型微调与推理的工具链,包括:

  1. 硬件环境与依赖准备
  2. 模型下载与验证
  3. 数据集构建
  4. LoRA 微调与推理
  5. 可视化 WebUI 和 API 部署
相关推荐
洛阳泰山10 小时前
MaxKB4j Docker Compose 部署指南
java·docker·llm·springboot·rag·maxkb4j
jjinl10 小时前
1.1 llama.cpp 编译
llama
serve the people11 小时前
macbook m4 LLaMA-Factory入门级微调
llama
cuguanren13 小时前
MuleRun vs OpenClaw vs 网页服务:云端安全与本地自由的取舍之道
安全·大模型·llm·agent·智能体·openclaw·mulerun
大数据AI人工智能培训专家培训讲师叶梓13 小时前
FaithLens:8B 参数大模型幻觉检测器,性能超 GPT-4.1 且低成本可解释
大模型·llm·大模型幻觉·人工智能讲师·大模型讲师·大模型培训·llm幻觉
星始流年14 小时前
AI Agent 开发系列 之 01 🔎重新认识 LLM
人工智能·llm·agent
_张一凡14 小时前
【大语言模型学习】一文详解阿里Qwen3大模型以及全参量微调入门实战教程(代码完整)
llm·aigc·大语言模型·多模态·qwen3·大语言模型微调·全参量微调
supersolon20 小时前
OpenClaw接入飞书(channel)
ai·llm·飞书·openclaw·龙虾
每天都要写算法(努力版)20 小时前
【大模型的原理架构对比解析】Encoder-Decoder 架构与 Decoder-Only 架构的输入输出详解
llm·encoder-decoder·decoder-only
8Qi820 小时前
Hello-Agents学习笔记--旅行助手智能体案例
人工智能·llm·agent·智能体·tavily