Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Llama-factory使用

构建镜像

编辑Dockerfile文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
FROM ljxha471758/llama-factory

# 设置工作目录
WORKDIR /app

# 安装必要的软件包
RUN apt-get update && apt-get install -y \
git \
vim \
libaio-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# 克隆 LLaMA-Factory 项目,深度为 1 以减少克隆大小
RUN git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

# 进入 LLaMA-Factory 目录
WORKDIR /app/LLaMA-Factory

# 安装 Python 依赖
RUN pip install --upgrade pip && \
pip install -e ".[torch,metrics]"

# 设置默认的启动命令(可选)
CMD ["/bin/bash"]

构建镜像:

1
docker build --platform linux/amd64 -t llama-factory-image -f Dockerfile .

启动镜像

1
sudo docker run -it --privileged --gpus all --shm-size=50g -v /mnt/data/model/Qwen2.5-0.5B-Instruct:/app/models/Qwen2.5-0.5B-Instruct llama-factory 

**--privileged**:以特权模式运行容器,允许容器访问主机的所有设备。

**--gpus all**:启用容器对所有可用 GPU 的访问。通常用于深度学习的训练或推理任务,使得容器中的应用可以使用主机的 GPU 资源。

**--shm-size=50g**:将共享内存(/dev/shm)大小设置为 50 GB。

  • 许多深度学习框架在处理大批量数据时需要较大的共享内存。
  • 增加共享内存的大小可以减少因内存不足导致的错误,特别是使用大模型或大数据集时。

**-v /mnt/data/model/Qwen2.5-0.5B-Instruct:/app/models/Qwen2.5-0.5B-Instruct**:将主机的 /mnt/data/model/Qwen2.5-0.5B-Instruct 目录挂载到容器内的 /app/models/Qwen2.5-0.5B-Instruct 目录下。

执行命令

微调

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
FORCE_TORCHRUN=1 CUDA_VISIBLE_DEVICES=0,1,3,4 llamafactory-cli train \
--stage sft \
--do_train \
--model_name_or_path /app/models/Qwen2.5-0.5B-Instruct \
--dataset alpaca_zh_demo \
--dataset_dir ./data \
--template qwen \
--finetuning_type lora \
--output_dir ./saves/qwen/lora/sft \
--overwrite_cache \
--overwrite_output_dir \
--cutoff_len 1024 \
--preprocessing_num_workers 16 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--gradient_accumulation_steps 4 \
--lr_scheduler_type cosine \
--logging_steps 50 \
--warmup_steps 20 \
--save_steps 100 \
--eval_steps 50 \
--evaluation_strategy steps \
--load_best_model_at_end \
--learning_rate 5e-5 \
--num_train_epochs 5.0 \
--max_samples 1000 \
--val_size 0.1 \
--plot_loss \
--fp16

合并

1
2
3
4
5
6
7
8
9
llamafactory-cli export \
--model_name_or_path /app/models/Qwen2.5-0.5B-Instruct \
--adapter_name_or_path ./saves/LLaMA3-8B/lora/sft \
--template qwen \
--finetuning_type lora \
--export_dir models/llama3_lora_sft \
--export_size 2 \
--export_device cpu \
--export_legacy_format false

评论