我们提供了多样化的大模型微调示例脚本。

```
examples/
├── lora_single_gpu/
│   ├── pretrain.sh: 基于 LoRA 进行增量预训练
│   ├── sft.sh: 基于 LoRA 进行指令监督微调
│   ├── reward.sh: 基于 LoRA 进行奖励模型训练
│   ├── ppo.sh: 基于 LoRA 进行 PPO 训练
│   ├── dpo.sh: 基于 LoRA 进行 DPO 训练
│   ├── orpo.sh: 基于 LoRA 进行 ORPO 训练
│   ├── sft_mllm.sh: 基于 LoRA 进行多模态指令监督微调
│   ├── prepare.sh: 保存预处理后的数据集
│   └── predict.sh: 基于 LoRA 进行批量预测并计算 BLEU 和 ROUGE 分数
├── qlora_single_gpu/
│   ├── 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 进行单节点 LoRA 训练
│   ├── multi_node.sh: 使用 Accelerate 进行多节点 LoRA 训练
│   └── ds_zero3.sh: 使用 DeepSpeed ZeRO-3 进行 LoRA 训练（拆分权重）
├── full_multi_gpu/
│   ├── single_node.sh: 使用 DeepSpeed 进行单节点全量训练
│   ├── multi_node.sh: 使用 DeepSpeed 进行多节点全量训练
│   └── predict.sh: 基于全量训练进行多卡批量预测并计算 BLEU 和 ROUGE 分数
├── merge_lora/
│   ├── merge.sh: 将 LoRA 权重合并到预训练模型中
│   └── quantize.sh: 使用 AutoGPTQ 量化微调后的模型
├── inference/
│   ├── 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 训练模型
    ├── badam/
    │   └── sft.sh: 使用 BAdam 训练模型
    ├── loraplus/
    │   └── sft.sh: 使用 LoRA+ 训练模型
    ├── mod/
    │   └── sft.sh: 使用深度混合训练模型
    ├── llama_pro/
    │   ├── expand.sh: 扩展模型中的层
    │   └── sft.sh: 训练扩展后的模型
    └── fsdp_qlora/
        └── sft.sh: 使用 FSDP+QLoRA 微调量化模型
```
