Files
modelscope/examples/pytorch/llm/README_CN.md
Jintao 18d33a4825 fix copytree python37 bug (#464)
* fix copytree python37 bug

* add copytree_py37 function
2023-08-14 11:45:33 +08:00

3.0 KiB
Raw Permalink Blame History

大模型微调的例子

魔搭社区
中文   English

请注意!!!

  1. 该README_CN.md拷贝ms-swift
  2. 该目录已经迁移ms-swift, 此目录中的文件不再维护.

特性

  1. 支持的sft方法: lora, qlora, 全参数微调, ...
  2. 支持的模型: qwen-7b, baichuan-7b, baichuan-13b, chatglm2-6b, llama2-7b, llama2-13b, llama2-70b, openbuddy-llama2-13b, ...
  3. 支持的特性: 模型量化, DDP, 模型并行(device_map), gradient checkpoint, 梯度累加, 支持推送modelscope hub, 支持自定义数据集, ...
  4. 支持的数据集: alpaca-en(gpt4), alpaca-zh(gpt4), finance-en, multi-alpaca-all, code-en, instinwild-en, instinwild-zh, ...

准备实验环境

# 请注意修改cuda的版本
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y

pip install sentencepiece charset_normalizer cpm_kernels tiktoken -U
pip install matplotlib tqdm tensorboard -U
pip install transformers datasets -U
pip install accelerate transformers_stream_generator -U

# 推荐从源码安装swift和modelscope, 这具有更多的特性和更快的bug修复
git clone https://github.com/modelscope/swift.git
cd swift
pip install -r requirements.txt
pip install .
# modelscope类似...(git clone ...)
# 当然, 你也可以从pypi上下载
pip install ms-swift modelscope -U

微调和推理

git clone https://github.com/modelscope/swift.git
cd swift/examples/pytorch/llm

# 微调(qlora)+推理 qwen-7b, 需要10G显存.
bash scripts/qwen_7b/qlora/sft.sh
bash scripts/qwen_7b/qlora/infer.sh

# 微调(qlora+ddp)+推理 qwen-7b, 需要4卡*10G显存.
bash scripts/qwen_7b/qlora_ddp/sft.sh
bash scripts/qwen_7b/qlora_ddp/infer.sh

# 微调(full)+推理 qwen-7b, 需要95G显存.
bash scripts/qwen_7b/full/sft.sh
bash scripts/qwen_7b/full/infer.sh

# 更多的scripts脚本, 可以看`scripts`文件夹

拓展数据集

  1. 如果你想要拓展模型, 你可以修改utils/models.py文件中的MODEL_MAPPING. model_id可以指定为本地路径, 这种情况下, revision参数不起作用.
  2. 如果你想要拓展或使用自定义数据集, 你可以修改utils/datasets.py文件中的DATASET_MAPPING. 你需要自定义get_*_dataset函数, 并返回包含instruction, output两列的数据集.