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/*
RUN git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
WORKDIR /app/LLaMA-Factory
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
|