跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

基于 LLaMA-Factory 的 Docker 环境模型训练与推理指南

综述由AI生成在 Docker 容器中部署 LLaMA-Factory 进行大语言模型微调与推理的完整流程。内容包括启动 Docker 容器、安装 NVIDIA CUDA 驱动与环境变量配置、编译安装 Python 3.10、克隆并安装 LLaMA-Factory 框架。随后通过配置文件设置 SFT 微调参数,执行训练任务并监控指标。最后展示了如何加载训练后的权重进行对话测试及评估模型性能(MMLU)。

监控大屏发布于 2026/4/5更新于 2026/5/2328 浏览
基于 LLaMA-Factory 的 Docker 环境模型训练与推理指南

本文主要讲述在 Docker 环境下使用 LLaMA-Factory 训练和推理模型。

拉取镜像

首先需要启动 Docker,然后在终端中输入:

docker run -tid --gpus all -p 8000:8000 --name LLM -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --privileged=true ubuntu:20.04

该命令启动了一个 Ubuntu 20.04 容器,使用所有可用的 GPU,主机的 8000 端口映射到容器的 8000 端口,容器命名为 LLM,以特权模式运行。

进入容器

docker exec -it LLM /bin/bash

此时仅将 GPU 映射到了 Docker 中,尚未安装驱动。

安装 CUDA 驱动

wget https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda_12.6.2_560.35.03_linux.run
sh cuda_12.6.2_560.35.03_linux.run

默认安装即可。安装后若提示 nvcc: command not found,说明系统的 PATH 环境变量未包含 /usr/local/cuda-12.6/bin。

编辑环境变量:

vim ~/.bashrc

加入以下两行:

export PATH=/usr/local/cuda-12.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH

重新加载配置:

source ~/.bashrc

验证成功。

Docker 内安装 Python

Docker 拉取的 Ubuntu 20.04 可能缺少基础工具,需通过 apt-get install 安装 wget 等。

下载 Python 源码包(以 3.10.6 为例):

wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz
tar -zxvf Python-3.10.6.tgz
cd Python-3.10.6
sudo ./configure

编译并安装:

sudo make
sudo make test
sudo make install

LLaMA-Factory 部署

安装框架

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
 LLaMA-Factory
pip install -e 
cd
".[torch,metrics]"

如果使用昇腾 NPU,先设置环境变量:

export ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest

下载模型

git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git

创建配置文件

在 LLaMA-Factory/examples 下创建 train.yaml 文件,用于微调训练模型:

### model
model_name_or_path: /home/Qwen/Qwen2___5-1___5B-Instruct

### method
stage: sft
do_train: true
finetuning_type: freeze
lora_target: all
dataset: alpaca_zh_demo
template: qwen
cutoff_len: 10240
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: output
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 2
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
fp16: true
ddp_timeout: 180000000

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

使用 LLaMA-Factory/data/alpaca_zh_demo.json 数据集,其中 instruction 描述任务指令,input 包含输入数据,output 为模型输出。

开始微调训练

llamafactory-cli train examples/train.yaml

训练过程中可监控以下指标:

  • loss: 预测结果与实际标签的差异。
  • grad_norm: 梯度范数,反映梯度大小。
  • learning_rate: 优化器更新步长。
  • epoch: 数据集完整遍历次数。

训练指标总结

***** train metrics *****
epoch = 3.0
total_flos = 2906404GF
train_loss = 1.0846
train_runtime = 0:04:15.80
train_samples_per_second = 10.555
train_steps_per_second = 5.277

加载权重对话

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_name_or_path = "/home/LLaMA-Factory/output"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path)
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)

prompt = "列出一个应该在野营应急包中的 7 件物品。"
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
    outputs = model.generate(inputs.input_ids, max_length=50)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

评估

LlamaFactory 支持 MMLU、CMMLU、CEVAL 三种数据集验证:

llamafactory-cli eval --task mmlu --model_name_or_path /home/Qwen/Qwen2___5-1___5B-Instruct --template qwen --batch_size 1 --n_shot 5

推理

在 LLaMA-Factory/examples 目录下新建 infer.yaml 文件:

model_name_or_path: /home/Qwen/Qwen2___5-1___5B-Instruct
template: qwen
do_sample: false

运行推理:

llamafactory-cli chat infer.yaml

目录

  1. 拉取镜像
  2. Docker 内安装 Python
  3. LLaMA-Factory 部署
  4. model
  5. method
  6. output
  7. train
  8. eval
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++11 核心新特性详解:初始化、声明与右值引用
  • Python 数据结构核心指南与常见面试题解析
  • OpenClaw Mac 安装与配置飞书机器人完整指南
  • 2026 AI 编程助手排行榜:文心快码、Copilot 与 Cursor 深度评测
  • 永磁同步电机 PMSM 无感 FOC 驱动:高频注入启动与观测器切换
  • IntelliJ IDEA 集成 Claude Code GUI 插件实战指南
  • Socket 网络编程实战:C# 服务端与客户端通信实现
  • 腾讯 Claw 系 AI Agent 横评:WorkBuddy、QClaw、CodeBuddy 实测与选型
  • 基于SpringBoot2与Vue3的疫情打卡健康评测系统设计
  • CSS 盒子模型详解:边框、内边距与外边距
  • VSCode 下载与安装指南及加速方案
  • 基于 Spring AI 构建生产级“AI 问数”Agent 实战
  • Jupyter Notebook 中 pyecharts 无法显示可视化图形的解决方法
  • Python 音视频处理实战:基于 FFmpeg 与 Spleeter 的人声分离
  • P2P 网络(Peer-to-Peer Network)基础架构与区块链应用
  • A2UI 技术原理深度解析:AI Agent 如何安全生成富交互 UI
  • Flutter eip55 库在鸿蒙系统的适配指南:以太坊地址校验
  • Linux 线程池封装与实现详解
  • C++ 核心数据结构:Stack 与 Queue 类深度解析
  • ThreadLocal 原理、使用场景及内存泄漏问题解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online