update examples

Former-commit-id: 369294b31c8a03a1cafcee83eb31a817007d3c49
This commit is contained in:
hiyouga
2024-04-15 22:14:34 +08:00
parent 86556b1c74
commit 276f2cb24e
11 changed files with 78 additions and 70 deletions

View File

@@ -3,41 +3,42 @@ We provide diverse examples about fine-tuning LLMs.
```
examples/
├── lora_single_gpu/
│ ├── pretrain.sh: Do pre-training
│ ├── sft.sh: Do supervised fine-tuning
│ ├── reward.sh: Do reward modeling
│ ├── ppo.sh: Do PPO training
│ ├── dpo.sh: Do DPO training
│ ├── orpo.sh: Do ORPO training
│ ├── pretrain.sh: Do pre-training using LoRA
│ ├── sft.sh: Do supervised fine-tuning using LoRA
│ ├── reward.sh: Do reward modeling using LoRA
│ ├── ppo.sh: Do PPO training using LoRA
│ ├── dpo.sh: Do DPO training using LoRA
│ ├── orpo.sh: Do ORPO training using LoRA
│ ├── prepare.sh: Save tokenized dataset
│ └── predict.sh: Do batch predict
│ └── predict.sh: Do batch predict and compute BLEU and ROUGE scores after LoRA tuning
├── qlora_single_gpu/
│ ├── bitsandbytes.sh: Fine-tune 4/8-bit BNB models
│ ├── gptq.sh: Fine-tune 4/8-bit GPTQ models
│ ├── awq.sh: Fine-tune 4-bit AWQ models
│ └── aqlm.sh: Fine-tune 2-bit AQLM models
│ ├── bitsandbytes.sh: Fine-tune 4/8-bit BNB models using QLoRA
│ ├── gptq.sh: Fine-tune 4/8-bit GPTQ models using QLoRA
│ ├── awq.sh: Fine-tune 4-bit AWQ models using QLoRA
│ └── aqlm.sh: Fine-tune 2-bit AQLM models using QLoRA
├── lora_multi_gpu/
│ ├── single_node.sh: Fine-tune model with Accelerate on single node
│ └── multi_node.sh: Fine-tune model with Accelerate on multiple nodes
│ ├── single_node.sh: Fine-tune model with Accelerate on single node using LoRA
│ └── multi_node.sh: Fine-tune model with Accelerate on multiple nodes using LoRA
├── full_multi_gpu/
│ ├── single_node.sh: Fine-tune model with DeepSpeed on single node
── multi_node.sh: Fine-tune model with DeepSpeed on multiple nodes
│ ├── single_node.sh: Full fine-tune model with DeepSpeed on single node
── multi_node.sh: Full fine-tune model with DeepSpeed on multiple nodes
│ └── predict.sh: Do batch predict and compute BLEU and ROUGE scores after full tuning
├── merge_lora/
│ ├── merge.sh: Merge LoRA weights into the pre-trained models
│ └── quantize.sh: Quantize fine-tuned model with AutoGPTQ
│ └── quantize.sh: Quantize the fine-tuned model with AutoGPTQ
├── inference/
│ ├── cli_demo.sh: Launch a command line interface
│ ├── api_demo.sh: Launch an OpenAI-style API
│ ├── web_demo.sh: Launch a web interface
│ └── evaluate.sh: Evaluate model on the MMLU benchmark
│ ├── cli_demo.sh: Launch a command line interface with LoRA adapters
│ ├── api_demo.sh: Launch an OpenAI-style API with LoRA adapters
│ ├── web_demo.sh: Launch a web interface with LoRA adapters
│ └── evaluate.sh: Evaluate model on the MMLU/CMMLU/C-Eval benchmarks with LoRA adapters
└── extras/
├── galore/
│ └── sft.sh: Fine-tune model with GaLore
├── loraplus/
│ └── sft.sh: Fine-tune model with LoRA+
│ └── sft.sh: Fine-tune model using LoRA+
├── llama_pro/
│ ├── expand.sh: Expand layers in the model
│ └── sft.sh: Fine-tune expanded model
│ └── sft.sh: Fine-tune the expanded model
└── fsdp_qlora/
└── sft.sh: Fine-tune quantized model with FSDP
└── sft.sh: Fine-tune quantized model with FSDP+QLoRA
```

View File

@@ -1,36 +1,36 @@
我们提供了多样化的示例脚本。
我们提供了多样化的大模型微调示例脚本。
```
examples/
├── lora_single_gpu/
│ ├── pretrain.sh: 进行预训练
│ ├── sft.sh: 进行指令监督微调
│ ├── reward.sh: 进行奖励模型训练
│ ├── ppo.sh: 进行 PPO 训练
│ ├── dpo.sh: 进行 DPO 训练
│ ├── orpo.sh: 进行 ORPO 训练
│ ├── pretrain.sh: 基于 LoRA 进行预训练
│ ├── sft.sh: 基于 LoRA 进行指令监督微调
│ ├── reward.sh: 基于 LoRA 进行奖励模型训练
│ ├── ppo.sh: 基于 LoRA 进行 PPO 训练
│ ├── dpo.sh: 基于 LoRA 进行 DPO 训练
│ ├── orpo.sh: 基于 LoRA 进行 ORPO 训练
│ ├── prepare.sh: 保存预处理后的数据集
│ └── predict.sh: 进行批量预测
│ └── predict.sh: 基于 LoRA 进行批量预测并计算 BLEU 和 ROUGE 分数
├── qlora_single_gpu/
│ ├── bitsandbytes.sh: 微调 4/8 比特 BNB 模型
│ ├── gptq.sh: 微调 4/8 比特 GPTQ 模型
│ ├── awq.sh: 微调 4 比特 AWQ 模型
│ └── aqlm.sh: 微调 2 比特 AQLM 模型
│ ├── bitsandbytes.sh: 基于 QLoRA 微调 4/8 比特 BNB 模型
│ ├── gptq.sh: 基于 QLoRA 微调 4/8 比特 GPTQ 模型
│ ├── awq.sh: 基于 QLoRA 微调 4 比特 AWQ 模型
│ └── aqlm.sh: 基于 QLoRA 微调 2 比特 AQLM 模型
├── lora_multi_gpu/
│ ├── single_node.sh: 使用 Accelerate 进行单节点训练
│ └── multi_node.sh: 使用 Accelerate 进行多节点训练
│ ├── single_node.sh: 使用 Accelerate 进行单节点 LoRA 训练
│ └── multi_node.sh: 使用 Accelerate 进行多节点 LoRA 训练
├── full_multi_gpu/
│ ├── single_node.sh: 使用 DeepSpeed 进行单节点训练
── multi_node.sh: 使用 DeepSpeed 进行多节点训练
| └── predict.sh: 使用单卡做全参批量预测
│ ├── single_node.sh: 使用 DeepSpeed 进行单节点全量训练
── multi_node.sh: 使用 DeepSpeed 进行多节点全量训练
└── predict.sh: 基于全量训练进行批量预测并计算 BLEU 和 ROUGE 分数
├── merge_lora/
│ ├── merge.sh: 将 LoRA 权重合并到预训练模型中
│ └── quantize.sh: 使用 AutoGPTQ 量化模型
│ └── quantize.sh: 使用 AutoGPTQ 量化微调后的模型
├── inference/
│ ├── cli_demo.sh: 启动命令行推理接口
│ ├── api_demo.sh: 启动 OpenAI 风格 API
│ ├── web_demo.sh: 启动浏览器推理接口
│ └── evaluate.sh: 在 MMLU 数据集上评测模型
│ ├── cli_demo.sh: 启动 LoRA 模型的命令行推理接口
│ ├── api_demo.sh: 启动 LoRA 模型的 OpenAI 风格 API
│ ├── web_demo.sh: 启动 LoRA 模型的浏览器推理接口
│ └── evaluate.sh: 在 MMLU/CMMLU/C-Eval 数据集上评测 LoRA 模型
└── extras/
├── galore/
│ └── sft.sh: 使用 GaLore 训练模型
@@ -40,5 +40,5 @@ examples/
│ ├── expand.sh: 扩展模型中的层
│ └── sft.sh: 训练扩展后的模型
└── fsdp_qlora/
└── sft.sh: 使用 FSDP 微调量化模型
└── sft.sh: 使用 FSDP+QLoRA 微调量化模型
```

View File

@@ -9,6 +9,7 @@ CUDA_VISIBLE_DEVICES=0 python ../../src/train_bash.py \
--template default \
--finetuning_type lora \
--lora_target q_proj,v_proj \
--loraplus_lr_ratio 16.0 \
--output_dir ../../saves/LLaMA2-7B/loraplus/sft \
--overwrite_cache \
--overwrite_output_dir \
@@ -29,5 +30,4 @@ CUDA_VISIBLE_DEVICES=0 python ../../src/train_bash.py \
--max_samples 3000 \
--val_size 0.1 \
--plot_loss \
--fp16 \
--loraplus_lr_ratio 16.0
--fp16

View File

@@ -3,7 +3,7 @@
CUDA_VISIBLE_DEVICES=0 python ../../src/train_bash.py \
--stage sft \
--do_predict \
--model_name_or_path meta-llama/Llama-2-7b-hf \
--model_name_or_path ../../saves/LLaMA2-7B/full/sft \
--dataset alpaca_gpt4_en,glaive_toolcall \
--dataset_dir ../../data \
--template default \

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# DO NOT use quantized model or quantization_bit when merging lora weights
CUDA_VISIBLE_DEVICES= python ../../src/export_model.py \
CUDA_VISIBLE_DEVICES=0 python ../../src/export_model.py \
--model_name_or_path meta-llama/Llama-2-7b-hf \
--adapter_name_or_path ../../saves/LLaMA2-7B/lora/sft \
--template default \