LLaMA-Factory 入门(一):Ubuntu20 下大模型微调与部署

参考链接:

简介

LLaMA-Factory 是一个面向大语言模型(LLM)的高效训练与微调框架,专为简化 LLaMA 系列以及各类开源大模型的训练流程而设计。它以“开箱即用、灵活高效”为核心理念,提供从数据准备、参数高效微调(PEFT)、训练配置管理到模型部署的一站式解决方案。

LLaMA-Factory 支持多种主流模型架构(如 LLaMA、Qwen、Gemma、Mistral 等),并集成了 LoRA、QLoRA、AdaLoRA、Prompt Tuning 等多种轻量化训练技术,使开发者能够以极低成本在单卡或多卡环境下完成高质量模型微调。

该框架提供直观易用的命令行工具与 Web UI,适配从科研实验到生产级应用的多场景需求。通过结构化的配置体系、完善的训练监控以及可扩展的数据加载管线,LLaMA-Factory 让大模型训练变得更加透明、可控且易于维护。

项目结构

LLaMA-Factory
├── assets                      # 项目静态资源(图标、示例图片、赞助商信息等)
│   ├── sponsors                # 赞助商Logo与展示资源
│   └── thirdparty              # 第三方依赖或引用资源
│
├── data                        # Demo 数据与示例数据集
│   └── mllm_demo_data          # 多模态LLM(MLLM)演示数据
│
├── docker                      # Docker 环境配置(CUDA/NPU/ROCm 等)
│   ├── docker-cuda             # NVIDIA GPU 环境 Dockerfile
│   ├── docker-npu              # 华为 Ascend NPU 训练环境
│   └── docker-rocm             # AMD ROCm 训练环境
│
├── examples                    # 训练、推理、工具使用的完整示例脚本
│   ├── accelerate              # accelerate 分布式训练示例
│   ├── ascend                  # 华为 Ascend NPU 示例
│   ├── deepspeed               # DeepSpeed 训练配置与示例
│   ├── extras                  # 各类高级特性示例(如 fp8、Galore、LoRA+ 等)
│   │   ├── adam_mini           # Adam mini 参数优化示例
│   │   ├── apollo              # Apollo 优化器示例
│   │   ├── badam               # BAdam 优化器示例
│   │   ├── dft                 # DFT 训练示例
│   │   ├── fp8                 # FP8 训练示例
│   │   ├── fsdp_qlora          # FSDP + QLoRA 示例
│   │   ├── galore              # GaLore低秩优化示例
│   │   ├── llama_pro           # LLaMA-Pro 示例
│   │   ├── loraplus            # LoRA+ 示例
│   │   ├── mod                 # MOD 技术示例
│   │   ├── multi_tokens        # 多Token生成实验示例
│   │   ├── muon                # Muon 优化器示例
│   │   ├── nlg_eval            # 文本生成质量评测示例
│   │   ├── oft                 # OFT 微调示例
│   │   ├── pissa               # PiSSA 权重重参数方法示例
│   │   └── qoft                # QOFT 示例
│   ├── inference               # 推理脚本示例(Chat、工具调用等)
│   ├── kt_optimize_rules       # KTO 规则示例(奖励建模优化)
│   ├── megatron                # Megatron-LM 适配示例
│   ├── merge_lora              # LoRA 权重合并示例
│   ├── train_full              # 全参数训练示例
│   ├── train_lora              # LoRA 微调示例
│   └── train_qlora             # QLoRA 微调示例
│
├── scripts                     # 辅助脚本(转换、统计、API示例)
│   ├── api_example             # HTTP/API 使用示例
│   ├── convert_ckpt            # 权重转换脚本(HF <-> 原始权重)
│   └── stat_utils              # 数据、token 统计工具
│
├── src
│   └── llamafactory            # 核心代码入口
│       ├── api                 # Web API / 服务端(OpenAI 接口兼容)
│       ├── chat                # ChatEngine、多轮对话、工具调用
│       ├── data                # 数据加载、处理、格式化、模板系统
│       │   ├── processor       # 数据预处理组件(指令/对话/多模态)
│       ├── eval                # 模型评测
│       ├── extras              # 辅助函数(如日志、常量,环境等)
│       ├── hparams             # 超参数解析(模型/数据/训练参数)
│       ├── model               # 模型加载、LoRA/QLoRA/PEFT、patch等
│       │   └── model_utils     # 模型结构、权重、分布式工具
│       ├── third_party         # 集成第三方模块(如 muon 优化器)
│       ├── train               # 训练核心模块(SFT/DPO/KTO/PPO/RM等)
│       │   ├── dpo             # DPO 训练逻辑
│       │   ├── ksft            # KSFT 训练逻辑
│       │   ├── kto             # KTO 训练逻辑
│       │   ├── mca             # MCA 对齐算法
│       │   ├── ppo             # PPO 强化学习训练
│       │   ├── pt              # 预训练流程
│       │   ├── rm              # Reward Model(奖励模型训练)
│       │   └── sft             # 指令监督微调
│       ├── v1                  # 老版本核心(LLaMA-Factory v1)
│       │   ├── config          # v1 配置系统
│       │   ├── core            # v1 核心训练与推理模块
│       │   ├── extras          # v1 扩展功能
│       │   ├── plugins         # 插件系统(模型/采样器/分布式等)
│       │   └── trainers        # 训练器(Trainer)体系
│       └── webui               # Web UI(Gradio 界面)
│           ├── components      # UI 组件
│
├── tests                       # 测试集(核心模块测试)
│   ├── data                    # 数据处理测试
│   ├── e2e                     # 端到端测试
│   ├── eval                    # 评测模块测试
│   ├── model                   # 模型加载/patch等测试
│   └── train                   # 训练流程测试
│
└── tests_v1                    # v1 版本的历史测试集
    ├── core                    # v1 核心模块测试
    └── plugins                 # v1 插件系统测试

支持的训练方法如下:

方法全参数训练部分参数训练LoRAQLoRA
预训练
指令监督微调
奖励模型训练
PPO 训练
DPO 训练
KTO 训练
ORPO 训练
SimPO 训练

原文是在mac下实现的,现在我需要的是在ubuntu下完成微调和部署的工作,这是我本机的配置情况(32G内存和24G显存)。在这里插入图片描述
在这里插入图片描述

如果是mac,需要先确认自己的电脑是否支持mps的gpu。

安装

接下来我们正式安装LLaMA-Factory,首先克隆对应的源码内容:

# 克隆源码
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

接着开始安装

# 进入到源码目录
cd LLaMA-Factory
# 创建conda环境
conda create -n llama_factory python=3.11
conda activate llama_factory 

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install flash-attn==2.7.4 --no-build-isolation
# 开始安装
pip install -e ".[torch,metrics]"

安装完成后即可使用。
或者直接使用一键安装与配置的脚本:

#!/bin/bash
set -e  # 遇到错误立即停止

# ================= 目标配置 =================
ENV_NAME="llama_factory_cu124"
PYTHON_VER="3.11"
TORCH_VER="2.6.0"
CUDA_TAG="cu124" # 对应 PyTorch 的 CUDA 版本标识
FA_VER="2.7.4.post1"   # Flash Attention 版本
# ===========================================

echo ">>> [1/6] 初始化 Conda..."
# 尝试找到 conda 的初始化脚本,确保脚本内可以使用 conda 命令
# 如果你的 conda 安装路径不同,请手动修改下面这一行,例如 ~/anaconda3/etc/profile.d/conda.sh
CONDA_PATH=$(conda info --base)
source "$CONDA_PATH/etc/profile.d/conda.sh"

echo ">>> [2/6] 创建新环境 (Python $PYTHON_VER)..."
# 如果环境已存在,会先移除旧的 (保证纯净)
if conda info --envs | grep -q "$ENV_NAME"; then
    echo "环境 $ENV_NAME 已存在,正在重建以确保纯净..."
    conda env remove -n "$ENV_NAME" -y
fi
conda create -n "$ENV_NAME" python="$PYTHON_VER" -y
conda activate "$ENV_NAME"

echo ">>> [3/6] 安装构建工具 (用于编译 Flash Attention)..."
# 安装 ninja 和 packaging,这对编译 flash-attn 至关重要
pip install ninja packaging wheel setuptools

echo ">>> [4/6] 安装 PyTorch $TORCH_VER ($CUDA_TAG)..."
# 指定 index-url 为 cu124 版本
pip install torch==${TORCH_VER} torchvision torchaudio --index-url https://download.pytorch.org/whl/${CUDA_TAG}

echo ">>> [5/6] 安装 Flash Attention $FA_VER..."
# 注意:这步通常最耗时,因为它可能需要本地编译 CUDA 代码
# 必须加上 --no-build-isolation 以便使用当前环境的 PyTorch 进行编译链接
pip install flash-attn==${FA_VER} --no-build-isolation

echo ">>> [6/6] 安装 LLaMA-Factory..."
if [ ! -d "LLaMA-Factory" ]; then
    git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
fi
cd LLaMA-Factory
# 强制更新一下代码
git pull
# 安装本体
pip install -e ".[torch,metrics]"

echo "=================================================="
echo "✅ 安装全部完成!"
echo "配置详情: Python $PYTHON_VER | Torch $TORCH_VER | CUDA $CUDA_TAG | Flash-Attn $FA_VER"
echo ""
echo "请执行以下命令开始使用:"
echo "   conda activate $ENV_NAME"
echo "   llamafactory-cli webui"
echo "=================================================="

启动

安装完毕后就可以启动了,但是要注意先关闭vpn,有vpn的情况下无法正常启动webui界面。注意,在启动之前,我们需要提前指定安装源,使用的是modelscope,国内可以正常访问下载模型的地址:

export USE_MODELSCOPE_HUB=1
llamafactory-cli webui
  File "/home/cyun/Disk/Shared/Conda/envs/llama_factory/lib/python3.11/site-packages/httpx/_client.py", line 245, in <dictcomp>
    key: None if url is None else Proxy(url=url)
                                  ^^^^^^^^^^^^^^
  File "/home/cyun/Disk/Shared/Conda/envs/llama_factory/lib/python3.11/site-packages/httpx/_config.py", line 214, in __init__
    raise ValueError(f"Unknown scheme for proxy URL {url!r}")
ValueError: Unknown scheme for proxy URL URL('socks://127.0.0.1:7890/')

在这里插入图片描述
这个问题说的比较明确,就是无法使用socks://127.0.0.1:7890/,这配置终端的环境变量导致的问题,只需要解除相关的环境变量就可以了(不需要关闭vpn)

unset all_proxy http_proxy https_proxy ALL_PROXY HTTP_PROXY HTTPS_PROXY

解除配置后,即可重新运行

llamafactory-cli webui

在这里插入图片描述

微调

下载示例的数据集,进入LLaMA-Factory文件夹:

wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama_factory/data.zip
# 把原有的data文件夹备份到rawdata中,然后解压当前的压缩包
mv data rawdata && unzip data.zip -d data

数据就在data文件夹下的train和eval两个json文件,info的json对应的是这个数据集的信息。示例如下

[
{
    "conversations": [
      {
        "from": "human",
        "value": "模仿西游记的孙悟空的语气和我聊天。如果你把水冻住,你会得到什么?"
      },
      {
        "from": "gpt",
        "value": "哈哈,这问题还难倒俺老孙吗?把水冻住就是变成冰啦!不过若是在取经的路上用得着这冰来做啥,比如过火焰山时,那可就是解渴消暑的好东西了!你觉得呢?还有没有更有趣的问题让俺老孙来解答?"
      },
      {
        "from": "human",
        "value": "那怎么做才可以把水冻住"
      },
      {
        "from": "gpt",
        "value": "哈哈,对俺老孙来说,这可是轻而易举的事情!只需将水放在凉快的地方,或者使用法力,一吹仙气,水便能迅速结冰啦!当然,在你的世界里,把水放进冰箱的冷冻室里等一阵子,水就会变成冰块了。要是嫌慢,可以尝试用点干冰或液氮什么的,不过得小心使用哈!毕竟不像俺老孙有抗寒法力。"
      }
    ]
}
]

接下来设置一下微调的参数,修改内容如下(之后我们再深入学习这些配置参数的含义)
在这里插入图片描述
在这里插入图片描述
目前还不理解相关的配置参数的意义,先跟着配置一下,然后就可以**[开始]**训练了。
如果没有提前指定模型位置,那它就会先下载对应的模型,路径如下:

~/.cache/modelscope/hub/models/Qwen

如果想要看到当前的网速情况,可以下载sudo apt install nload工具进行观看。
在这里插入图片描述
下载完成后它就会开始微调了。我的设备使用的显存大概在20G左右。训练完成之后的文件都保存在了saves文件夹中,可以进入到最底层,此时的文件大概有几百MB,它是微调的输出文件,这里介绍一下一下微调生成的这些文件。

先介绍微调后显示结果的相关参数:
指标详解

键名含义说明
predict_bleu-4BLEU-4 分数:24.27常用于机器翻译/文本生成评估,表示预测结果与参考答案在 n-gram 上的重合程度。24.26 属于中等偏上的水平。
predict_rouge-1ROUGE-1 分数:46.49测量预测与参考答案之间 unigram(单个词)的重合率,适合评估总结、对话等生成任务。
predict_rouge-2ROUGE-2 分数:25.11测量 bigram(2个词组合)的重合率,越高表示生成更符合参考内容。
predict_rouge-lROUGE-L 分数:38.39衡量预测与参考答案之间的最长公共子序列(LCS),体现句子结构与顺序的匹配程度。

性能相关指标

键名含义说明
predict_model_preparation_time模型加载准备耗时(秒):0.0011几乎忽略不计,说明模型已提前加载好或在内存中。
predict_runtime预测耗时:3469.58 秒整体预测任务总耗时(约 57 分钟),与评估的数据量和硬件环境有关。
predict_samples_per_second平均每秒处理样本数:0.314说明每秒大约能预测 0.314 条样本,较慢,可能是模型大/显存限制/生成长度较长导致。
predict_steps_per_second每秒执行 step 数:0.157每秒的 forward 推理 step 次数,一般用于性能调优参考。

主要生成质量指标

  • 生成结果与参考答案在 BLEU-4 上达到了 24.26
  • ROUGE 指标表现良好,ROUGE-1 为 46.49%,ROUGE-L 为 38.39%
  • 说明模型已经能够生成较有质量的文本
  • 性能上处理速度较慢(每秒不到 1 条样本),但正常
{
    "epoch": 3.0,
    "num_input_tokens_seen": 596904,
    "total_flos": 4725950383300608.0,
    "train_loss": 1.4550889680782955,
    "train_runtime": 119.3362,
    "train_samples_per_second": 8.044,
    "train_steps_per_second": 4.022
}

在这里插入图片描述

  • adapter_model.safetensors (或 .bin):这是核心文件。它里面装的是你训练出来的“新知识”或“新说话方式”的权重参数。注意:它不是一个完整的模型,它只是原有模型的一层“补丁”。

  • adapter_config.json:这是说明书。它告诉程序这块“补丁”应该贴在模型的哪个位置(比如贴在 Attention 层),以及使用了什么参数(Rank, Alpha 等)。

  • tokenizer 相关文件 (可选):有时会包含 tokenizer.json 等。如果你的微调没有修改词表(一般 LoRA 不改),这些文件和基座模型的一样。

  • trainer_state.json 等日志文件:记录了训练过程中的 Loss 曲线、步数等信息,用于回顾训练质量。
    知道这些就可以了,也就是说,基座模型还是一直都是需要的。

我们先回顾两个概念,分别是预训练和微调,其中:

  • Pre-train (预训练) 让模型学会了“成语接龙”和“世界知识”(它看过《新华字典》)。
  • SFT (微调) 则是让模型学会“听懂指令”和“按格式回答”(教它如何当一个客服、翻译官或医生)。

SFT作为监督微调,是有它的损失的概念的,这是它的损失曲线:
在这里插入图片描述
SFT 使用的损失函数依然是 交叉熵损失函数 (Cross-Entropy Loss),具体形式为 Next Token Prediction Loss(下一个词预测损失)。
在这里插入图片描述
也就是说微调的时候只有回答会计算损失,这里还是没有清楚的表达出怎么处理数据的,我们举个具体的例子来进行说明,假设输入输出分别为
Instruction: “你好” (假设分词后 id 为 [101, 200])
Output: “好” (假设分词后 id 为 [300])
在 LLaMA-Factory 内部处理时,数据会被拼接成一个序列,并生成对应的 labels:
序列内容 User : 你 好 \n AI : 好
Token ID 1 2 101 200 3 4 5 300 2
Labels (用于算Loss) -100 -100 -100 -100 -100 -100 -100 300 2
这里面很多是-100,这是 PyTorch 中 CrossEntropyLoss 的默认忽略索引(ignore_index)。这意味着模型在处理“User: 你好”这部分时,无论预测得准不准,都不产生梯度,不更新参数。
而300,2当中:只有在模型预测“好”和结束符 时,产生的误差才会反向传播,更新模型权重。数学本质是带Mask的CLM(Causal Language Modeling)(因果语言建模)
更加详细的内容会在后面的文章中继续学习其详细的情况是怎么样的。

完整导出

如果要导出微调后的所有文件包括基座模型,可以使用LLama-Factory的Export功能。导出之前也是需要先加载模型的,这个会在模型对话里面再次提到,这里我们要导出的是微调后的模型,所以按照我的配置设置即可。

在这里插入图片描述
然后导出(默认配置+导出路径即可),等待一段时间后就导出完成了,对应路径下就有了整体的模型了。
在这里插入图片描述

评估

接下来评估微调好的模型,也是直接运行:

llamafactory-cli webui

在这里插入图片描述
配置好过后开始即可。

对话

在这里插入图片描述
加载一下模型就好了
在这里插入图片描述
如果不加载模型,那就是微调之前的效果,我们同样来测试一下:
在这里插入图片描述
测试微调效果的时候用同样的问题来对比
在这里插入图片描述
当然,更加正式的对比应该是用微调前的模型和微调后的模型对一些更加复杂的问题进行测试(有一些评估模型水平的标准)

以上就是大模型微调的全部内容了,也是最基础的一些知识,包括Lora微调,加载模型,导出模型等等,后续就要从更加复杂一点的数学原理上来进行学习认识了。

<think>首先,用户的问题是基于之前的引用和系统指令。用户询问的是在Ubuntu系统中使用LLaMA Factory的方法。引用提供了关于LLaMA Factory的信息,包括它的功能、支持的模型、微调方法等。 系统指令要求: - 使用$...$格式表示行内数学表达式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识(例如:[^1])。 用户的问题是:"我想查找在Ubuntu系统中使用站式大模型高效微调平台LLaMA Factory的方法 请问Ubuntu系统下站式大模型高效微调平台LLaMA Factory的使用方法"。这是个关于如何在Ubuntu系统中使用LLaMA Factory的问题。 从引用中提取相关信息: - 引用[1]:介绍了LLaMA Factory支持多种模型,有用户友好的Web界面。 - 引用[2]:介绍了如何使用PAI和LLaMA Factory微调Llama-3模型,提到了LoRA方法。 - 引用[3]:详细描述了LLaMA-Factory的推理方式,包括使用命令行工具、Web界面、vllm引擎等。 - 引用[4]:提供了微调时的显存要求,基于模型大小和方法。 用户指定了Ubuntu系统,所以我需要关注在Ubuntu上的安装和使用步骤。 构建回答结构: 1. **介绍LLaMA Factory**:简要解释是什么及其优势。 2. **系统要求**:确保Ubuntu系统满足要求,如Python版本、GPU内存等(参考引用[4])。 3. **安装步骤**: - 依赖安装:如Python、PyTorch等。 - 安装LLaMA Factory。 4. **使用方法**: - 微调模型:使用LoRA等方法(参考引用[2])。 - 推理:使用命令行或Web界面(参考引用[3])。 5. **注意事项**:如显存要求。 6. **生成相关问题**:在最后添加相关问题。 参考用户之前的请求:系统级指令提到要引用段落末尾添加标识,所以我需要在回答中自然地引用相关引用。 回答必须使用中文。 可能的安装和使用步骤: - 安装步骤可能包括:克隆仓库、安装依赖。 - 使用方法:配置微调参数、运行命令。 从引用[3]: - 推理命令:`llamafactory-cli chat inference_config.yaml` 或 `llamafactory-cli webchat inference_config.yaml` - 微调:引用[2]提到使用PAI和LLaMA Factory,但用户需要Ubuntu-specific方法。假设LLaMA Factory有通用安装。 通用步骤: 1. 确保系统有Python、CUDA等。 2. 安装LLaMA Factory: `pip install llama-factory` 或从GitHub克隆。 3. 配置模型路径等。 4. 运行微调或推理命令。 生成相关问题: - 基于主题,如:如何使用LoRA微调?如何优化推理速度? 最终回答结构: - 开头介绍。 - 分步骤说明安装和使用。 - 结束时添加相关问题列表。 </think>### 在Ubuntu系统中使用LLaMA Factory站式高效微调方法 LLaMA Factory个开源的大模型高效微调框架,支持多种流行模型(如 LLaMA、Mistral、Llama-3 等),提供零代码或低代码操作界面,适用于学术研究和企业应用。在 Ubuntu 系统上,您可以轻松安装和使用它进行模型微调、推理和部署。以下步骤基于引用资料,结合 Ubuntu 环境(推荐 Ubuntu 20.04 LTS 或更高版本),确保您能快速上手。关键依赖包括:Python 3.8+、NVIDIA GPU(支持 CUDA 11.8+)、以及足够的显存(参考引用[4]的显存要求表)。 #### 1. **系统环境准备** 在 Ubuntu 上启动前,确保系统满足以下要求: - **硬件要求**:至少配备 NVIDIA GPU,显存根据模型大小和微调方法不同而变化(如微调 7B 模型时,QLoRA 方法需 4~8GB 显存)。详细显存需求可参考引用[4]的表格: | 方法 | 7B 模型显存 | 14B 模型显存 | |------|-------------|--------------| | Full (bf16/fp16) | 32GB | 60GB | | QLoRA | 4~10GB | 8~20GB | - **软件依赖**:安装必备工具: ```bash # 更新系统并安装 Python 和 pip sudo apt update && sudo apt upgrade -y sudo apt install python3-pip git -y # 安装 CUDA Toolkit(以 CUDA 11.8 为例) wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt install cuda-11-8 -y # 设置环境变量(添加到 ~/.bashrc) echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` 验证安装:`nvidia-smi` 应显示 GPU 状态,`nvcc --version` 确认 CUDA 版本[^4]。 #### 2. **安装 LLaMA Factory** 通过 pip 或 GitHub 克隆安装 LLaMA Factory,以下步骤在 Ubuntu 终端执行: ```bash # 创建虚拟环境(推荐) python3 -m venv llama-env source llama-env/bin/activate # 安装 PyTorch 和 LLaMA Factory pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install llama-factory # 或从 GitHub 克隆最新版本(可选,用于获取完整功能) git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -r requirements.txt ``` 安装完成后,检查版本:`llamafactory-cli --version`。LLaMA Factory 支持多种模型和微调方法(如 LoRA、QLoRA),覆盖从基础模型到企业级应用[^1]。 #### 3. **使用方法:微调推理** LLaMA Factory 提供命令行工具和 Web 界面两种方式。以下以微调 Llama-3 模型为例(基于引用[2]的 LoRA 方法),并支持中文任务如问答或角色扮演。 - **微调模型(Fine-tuning)**: 1. 准备数据集:将中文数据集(如 JSON 格式)放在 `data/` 目录下。 2. 创建配置文件(例如 `finetune_config.yaml`),指定模型、方法和数据集: ```yaml model_name_or_path: meta-llama/Llama-3-8B # 原始模型路径 dataset_dir: data/ # 数据集目录 finetuning_type: lora # 使用轻量化LoRA方法 output_dir: outputs/ # 输出目录 ``` 3. 运行微调命令: ```bash llamafactory-cli finetune finetune_config.yaml ``` 微调过程中,LLaMA Factory 会自动优化训练效率,并生成日志文件。完成后,模型权重保存在 `outputs/` 目录。验证效果可通过 ROUGE 分数或人工测试(引用[2])。 - **推理对话(Inference)**: - **命令行推理**:使用简单 chat 模式: ```bash llamafactory-cli chat inference_config.yaml # 配置文件需指定模型和模板 ``` 在配置文件中添加 `adapter_name_or_path: outputs/` 以加载微调后的模型。 - **Web 界面推理**:启动可视化界面,适合交互式测试: ```bash llamafactory-cli webchat inference_config.yaml ``` 访问 `http://localhost:7860` 在浏览器中使用。 - **批量推理**:对于大规模数据集,启用 vllm 引擎加速(引用[3]): ```bash llamafactory-cli vllm --config inference_config.yaml --input data/test.json --output results.json ``` 或在配置中设置 `infer_backend: vllm` 以提升速度[^3]。 #### 4. **注意事项** - **显存管理**:Ubuntu 下可使用 `nvidia-smi` 监控 GPU 使用。如果显存不足,优先选用 QLoRA 方法(占用更低,见引用[4])。 - **常见问题**:安装失败时,检查 CUDA 版本兼容性;微调超时通常因数据集过大,可缩减批次大小。 - **安全提示**:操作涉及高资源消耗,建议在专业服务器或云平台(如 PAI)运行(引用[2])。 通过以上步骤,您可以在 Ubuntu 上高效完成模型微调和推理。LLaMA Factory 的用户友好设计(如 LlamaBoard Web 界面)显著降低了入门门槛,即使是零基础用户也能快速上手[^1]。后续可结合实际业务数据集进行优化,解决特定场景问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云千载尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值