277  
查询码: 00000549
LLamafactory+Qwen2.5-7B-Instruct训练微调(SDK4.4.0+x86)
2026年03月27日 发布 ,于 2026年06月10日 编辑

环境准备

安装好SDK4.4.0,安装好docker

下载镜像

sftp -P 29880 iluvatar_mr@iftp.iluvatar.com.cn,密码联系售后获取

get /client_tmp/support/llamafactory/llamafactory_v3.tar.gz ./

创建容器

gunzip llamafactory_v3.tar.gz

docker load  -i llamafactory_v3.tar


docker run -dit -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev -v /home:/home -v /data:/data --network=host --name=Llamafactory --pid=host --ipc=host --privileged --cap-add=ALL llamafactory:v3 /bin/bash


docker exec -it Llamafactory bash

准备推理环境

提前下载好模型至

/data/model/Qwen2.5-7B-Instruct

准备测试数据集

mkdir /data/LlaMa-Factory

cd LlaMa-Factory

modelscope download --dataset llamafactory/alpaca_zh --local_dir /data/LLaMA-Factory/data/alpaca-zh

cp /data/LlaMa-Factory/data/alpaca-zh/alpaca_data_zh_51k.json /data/LlaMa-Factory/data/alpaca_zh.json

执行

python3 - <<'PY'
import json
import random

src = "/data/LlaMa-Factory/data/alpaca_zh.json"
train_path = "/data/LlaMa-Factory/data/alpaca_zh_train.json"
val_path = "/data/LlaMa-Factory/data/alpaca_zh_val.json"

with open(src, "r", encoding="utf-8") as f:
     data = json.load(f)

random.seed(42)
random.shuffle(data)

split = int(len(data) * 0.95)
train_data = data[:split]
val_data = data[split:]

with open(train_path, "w", encoding="utf-8") as f:
    json.dump(train_data, f, ensure_ascii=False, indent=2)

with open(val_path, "w", encoding="utf-8") as f:
     json.dump(val_data, f, ensure_ascii=False, indent=2)

print("total =", len(data))
print("train =", len(train_data))
print("val   =", len(val_data))
PY

执行
python3 - <<'PY'
import json
from pathlib import Path
path = Path("/data/LlaMa-Factory/data/dataset_info.json")
if path.exists():
    with open(path, "r", encoding="utf-8") as f:
        info = json.load(f)
else:
    info = {}
info["alpaca_zh_train"] = {
    "file_name": "alpaca_zh_train.json",
    "formatting": "alpaca",
    "columns": {
        "prompt": "instruction",
        "query": "input",
        "response": "output"
    }
}
info["alpaca_zh_val"] = {
    "file_name": "alpaca_zh_val.json",
    "formatting": "alpaca",
    "columns": {
        "prompt": "instruction",
        "query": "input",
        "response": "output"
    }
}
with open(path, "w", encoding="utf-8") as f:
    json.dump(info, f, ensure_ascii=False, indent=2)
print(f"updated: {path}")
PY

执行

python3 - <<'PY'
import json
path = "/data/LlaMa-Factory/data/dataset_info.json"
with open(path, "r", encoding="utf-8") as f:
    info = json.load(f)

print("alpaca_zh_train" in info)
print("alpaca_zh_val" in info)
print(info["alpaca_zh_train"])
print(info["alpaca_zh_val"])
PY

开启训练

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 llamafactory-cli train   --stage sft   --do_train true   --do_eval true   --eval_strategy steps   --eval_steps 1000   --model_name_or_path /data/model/Qwen2.5-7B-Instruct   --finetuning_type lora   --template qwen   --dataset_dir data   --dataset alpaca_zh_train   --eval_dataset alpaca_zh_val   --cutoff_len 1024   --learning_rate 5e-5   --num_train_epochs 1.0   --per_device_train_batch_size 1   --gradient_accumulation_steps 1   --lr_scheduler_type cosine   --logging_steps 10   --save_steps 1000   --warmup_steps 50   --output_dir saves/qwen2.5-7b/lora/alpaca_zh_8gpu_fast   --bf16 true   --lora_rank 8   --lora_alpha 16   --lora_dropout 0.05   --report_to none


笔记



  目录
    天数智芯知识库系统 -V 5.2.7 -wcp