Files
Jintao 18d33a4825 fix copytree python37 bug (#464)
* fix copytree python37 bug

* add copytree_py37 function
2023-08-14 11:45:33 +08:00
..
2023-08-14 11:45:33 +08:00
2023-08-14 11:45:33 +08:00
2023-08-14 11:45:33 +08:00
2023-08-14 11:45:33 +08:00
2023-08-14 11:45:33 +08:00
2023-08-02 09:25:21 +08:00
2023-08-02 09:25:21 +08:00

LLM SFT Example

Modelscope Hub
中文   English

Note!!!

  1. This README.md file is copied from ms-swift
  2. This directory has been migrated to ms-swift, and the files in this directory are no longer maintained.

Features

  1. supported sft method: lora, qlora, full, ...
  2. supported models: qwen-7b, baichuan-7b, baichuan-13b, chatglm2-6b, llama2-7b, llama2-13b, llama2-70b, openbuddy-llama2-13b, ...
  3. supported feature: quantization, ddp, model parallelism(device map), gradient checkpoint, gradient accumulation steps, push to modelscope hub, custom datasets, ...
  4. supported datasets: alpaca-en(gpt4), alpaca-zh(gpt4), finance-en, multi-alpaca-all, code-en, instinwild-en, instinwild-zh, ...

Prepare the Environment

# Please note the cuda version
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

# Recommended installation from source code for faster bug fixes
git clone https://github.com/modelscope/swift.git
cd swift
pip install -r requirements.txt
pip install .
# same as modelscope...(git clone ...)
# You can also install it from pypi
pip install ms-swift modelscope -U

Run SFT and Inference

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

# sft(qlora) and infer qwen-7b, Requires 10GB VRAM.
bash scripts/qwen_7b/qlora/sft.sh
bash scripts/qwen_7b/qlora/infer.sh

# sft(qlora+ddp) and infer qwen-7b, Requires 4*10GB VRAM.
bash scripts/qwen_7b/qlora_ddp/sft.sh
bash scripts/qwen_7b/qlora_ddp/infer.sh

# sft(full) and infer qwen-7b, Requires 95GB VRAM.
bash scripts/qwen_7b/full/sft.sh
bash scripts/qwen_7b/full/infer.sh

# For more scripts, please see `scripts/` folder

Extend Datasets

  1. If you need to extend the model, you can modify the MODEL_MAPPING in utils/models.py. model_id can be specified as a local path. In this case, revision doesn't work.
  2. If you need to extend or customize the dataset, you can modify the DATASET_MAPPING in utils/datasets.py. You need to customize the get_*_dataset function, which returns a dataset with two columns: instruction, output.