针对 Yi 6B 和 34B 进行微调代码 + lora微调 llama factory
对于 Yi-34B 模型,由于使用零卸载技术会占用大量 CPU 内存,请注意限制 34B 微调训练中的 GPU 数量。用于微调 34B 模型的典型硬件设置是一个具有 8GPUS 的节点(通过 CUDA_VISIBLE_DEVICES=0,1,2,3 限制运行时为 4 个),每个 GPU 内存大于 80GB,总 CPU 内存大于 900GB。对于Yi-6B基础模型,设置training_debug_
针对 Yi 6B 和 34B 进行微调代码
Llama Factory lora微调:LLM - 大模型速递之 Yi-34B 入门与 LoRA 微调_yi大模型 技术博客-CSDN博客
准备
从图像
默认情况下,我们使用来自BAAI/COIG的小型数据集来微调基础模型。您还可以按照以下jsonl
格式准备自定义数据集:
{ "prompt": "Human: Who are you? Assistant:", "chosen": "I'm Yi." }
然后将它们挂载到容器中来替换默认的:
docker run -it \
-v /path/to/save/finetuned/model/:/finetuned-model \
-v /path/to/train.jsonl:/yi/finetune/data/train.json \
-v /path/to/eval.jsonl:/yi/finetune/data/eval.json \
ghcr.io/01-ai/yi:latest \
bash finetune/scripts/run_sft_Yi_6b.sh
从本地服务器
确保你有 conda。如果没有,请使用
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
source ~/.bashrc
然后,创建一个 conda 环境:
conda create -n dev_env python=3.10 -y
conda activate dev_env
pip install torch==2.0.1 deepspeed==0.10 tensorboard transformers datasets sentencepiece accelerate ray==2.7
硬件设置
对于 Yi-6B 型号,建议使用具有 4 个 GPU 的节点,每个 GPU 内存大于 60GB。
对于 Yi-34B 模型,由于使用零卸载技术会占用大量 CPU 内存,请注意限制 34B 微调训练中的 GPU 数量。请使用 CUDA_VISIBLE_DEVICES 来限制 GPU 数量(如 scripts/run_sft_Yi_34b.sh 中所示)。
用于微调 34B 模型的典型硬件设置是一个具有 8GPUS 的节点(通过 CUDA_VISIBLE_DEVICES=0,1,2,3 限制运行时为 4 个),每个 GPU 内存大于 80GB,总 CPU 内存大于 900GB。
快速开始
将 LLM 基础模型下载到 MODEL_PATH(6B 和 34B)。典型的模型文件夹如下:
|-- $MODEL_PATH
| |-- config.json
| |-- pytorch_model-00001-of-00002.bin
| |-- pytorch_model-00002-of-00002.bin
| |-- pytorch_model.bin.index.json
| |-- tokenizer_config.json
| |-- tokenizer.model
| |-- ...
将数据集从 huggingface 下载到本地存储 DATA_PATH,例如 Dahoas/rm-static。
|-- $DATA_PATH
| |-- data
| | |-- train-00000-of-00001-2a1df75c6bce91ab.parquet
| | |-- test-00000-of-00001-8c7c51afc6d45980.parquet
| |-- dataset_infos.json
| |-- README.md
finetune/yi_example_dataset
有示例数据集,这些数据集是从BAAI/COIG修改而来的
|-- $DATA_PATH
|--data
|-- train.jsonl
|-- eval.jsonl
cd
进入脚本文件夹,复制并粘贴脚本,然后运行。例如:
cd finetune/scripts
bash run_sft_Yi_6b.sh
对于Yi-6B基础模型,设置training_debug_steps=20和num_train_epochs=4可以输出聊天模型,大概需要20分钟。
对于Yi-34B基础模型,初始化需要相对较长的时间。请耐心等待。
评估
cd finetune/scripts
bash run_eval.sh
然后你会看到基础模型和微调模型的答案
更多推荐
所有评论(0)