
Моделий веб -сайт сообщества
中文 | английский
Документ | Английская документация | 中文文档
Swift2.x en doc | swift2.x 中文文档
Вы можете связаться с нами и общаться с нами, добавив нашу группу:
| Раздор Группа | WeChat Group |
|---|---|
![]() | ![]() |
? MS-Swift-это официальная структура, предоставленная сообществом моделей для точной настройки и развертывания крупных языковых моделей и многомодальных больших моделей. В настоящее время он поддерживает обучение (предварительное обучение, тонкая настройка, выравнивание человека), вывод, оценка, квантование и развертывание более 400 крупных моделей и более 150 многомодальных крупных моделей. Эти крупные языковые модели (LLMS) включают такие модели, как QWEN2.5, Llama3.3, GLM4, Internlm2.5, YI1.5, Mistral, DeepSeek2.5, Baichuan2, Gemma2 и TeleChat2. Многомодальные LLM включают такие модели, как QWEN2-VL, QWEN2-Audio, Llama3.2-Vision, Llava, Internvl2.5, Minicpm-V-2,6, GLM4V, Xcomposer2.5, Yi-VL, DeepSeek-VL2, PHI3.5-Vision и GOT-OCR2.
? Кроме того, MS-Swift собирает новейшие технологии обучения, в том числе Lora, Qlora, Llama-Pro, Longlora, Galore, Q-Galore, Lora+, Lisa, Dora, Fourierft, Reft, Usloth и Liger. MS-Swift поддерживает ускорение модулей вывода, оценки и развертывания с использованием VLLM и LMDEPLOY, а также поддерживает квантование крупных моделей и многомодальных крупных моделей с использованием таких технологий, как GPTQ, AWQ и BNB. Чтобы помочь исследователям и разработчикам точно настраивать и более легко применять большие модели, MS-Swift также предоставляет интерфейс на основе Gradio Web-UI и множество лучших практик.
Почему выбирают MS-Swift?
--infer_backend vllm/lmdeploy .Чтобы установить с помощью PIP:
pip install ms-swift -UЧтобы установить из источника:
# pip install git+https://github.com/modelscope/ms-swift.git
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e . 10 минут самооценки тонкой настройки QWEN2,5-7B-2-инструктора на одном 3090 GPU:
# 22GB
CUDA_VISIBLE_DEVICES=0
swift sft
--model Qwen/Qwen2.5-7B-Instruct
--train_type lora
--dataset ' AI-ModelScope/alpaca-gpt4-data-zh#500 '
' AI-ModelScope/alpaca-gpt4-data-en#500 '
' swift/self-cognition#500 '
--torch_dtype bfloat16
--num_train_epochs 1
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--learning_rate 1e-4
--lora_rank 8
--lora_alpha 32
--target_modules all-linear
--gradient_accumulation_steps 16
--eval_steps 50
--save_steps 50
--save_total_limit 2
--logging_steps 5
--max_length 2048
--output_dir output
--system ' You are a helpful assistant. '
--warmup_ratio 0.05
--dataloader_num_workers 4
--model_author swift
--model_name swift-robot После завершения обучения используйте следующую команду для выполнения вывода с обученными весами. Опция --adapters должна быть заменена последней папкой контрольной точки, сгенерированной из обучения. Поскольку папка «Адаптеры» содержит файлы параметров из обучения, нет необходимости указывать --model или --system отдельно.
# Using an interactive command line for inference.
CUDA_VISIBLE_DEVICES=0
swift infer
--adapters output/vx-xxx/checkpoint-xxx
--stream true
--temperature 0
--max_new_tokens 2048
# merge-lora and use vLLM for inference acceleration
CUDA_VISIBLE_DEVICES=0
swift infer
--adapters output/vx-xxx/checkpoint-xxx
--stream true
--merge_lora true
--infer_backend vllm
--max_model_len 8192
--temperature 0
--max_new_tokens 2048Web-UI представляет собой решение для интерфейса обучения и развертывания с нулевым делом, основанным на технологии интерфейса Gradio. Для получения более подробной информации вы можете проверить здесь.
SWIFT_UI_LANG=en swift web-ui
MS-Swift также поддерживает обучение и вывод с использованием Python. Ниже псевдокод для обучения и вывода. Для получения более подробной информации вы можете обратиться к здесь.
Обучение:
# Retrieve the model and template, and add a trainable LoRA module
model , tokenizer = get_model_tokenizer ( model_id_or_path , ...)
template = get_template ( model . model_meta . template , tokenizer , ...)
model = Swift . prepare_model ( model , lora_config )
# Download and load the dataset, and encode the text into tokens
train_dataset , val_dataset = load_dataset ( dataset_id_or_path , ...)
train_dataset = EncodePreprocessor ( template = template )( train_dataset , num_proc = num_proc )
val_dataset = EncodePreprocessor ( template = template )( val_dataset , num_proc = num_proc )
# Train the model
trainer = Seq2SeqTrainer (
model = model ,
args = training_args ,
data_collator = template . data_collator ,
train_dataset = train_dataset ,
eval_dataset = val_dataset ,
template = template ,
)
trainer . train ()Вывод:
# Perform inference using the native PyTorch engine
engine = PtEngine ( model_id_or_path , adapters = [ lora_checkpoint ])
infer_request = InferRequest ( messages = [{ 'role' : 'user' , 'content' : 'who are you?' }])
request_config = RequestConfig ( max_tokens = max_new_tokens , temperature = temperature )
resp_list = engine . infer ([ infer_request ], request_config )
print ( f'response: { resp_list [ 0 ]. choices [ 0 ]. message . content } ' )Вот самый простой пример обучения для развертывания с использованием MS-Swift. Для получения более подробной информации вы можете проверить примеры.
| Полезные ссылки |
|---|
| Параметры командной строки |
| Поддерживаемые модели и наборы данных |
| Пользовательские модели, пользовательские наборы данных |
| Учебник LLM |
Предварительная тренировка:
# 8*A100
NPROC_PER_NODE=8
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
swift pt
--model Qwen/Qwen2.5-7B
--dataset swift/chinese-c4
--streaming true
--train_type full
--deepspeed zero2
--output_dir output
--max_steps 100000
...Тонкая настройка:
CUDA_VISIBLE_DEVICES=0 swift sft
--model Qwen/Qwen2.5-7B-Instruct
--dataset AI-ModelScope/alpaca-gpt4-data-en
--train_type lora
--output_dir output
...Rlhf:
CUDA_VISIBLE_DEVICES=0 swift rlhf
--rlhf_type dpo
--model Qwen/Qwen2.5-7B-Instruct
--dataset hjh0119/shareAI-Llama3-DPO-zh-en-emoji:en
--train_type lora
--output_dir output
...CUDA_VISIBLE_DEVICES=0 swift infer
--model Qwen/Qwen2.5-7B-Instruct
--stream true
--infer_backend pt
--max_new_tokens 2048
# LoRA
CUDA_VISIBLE_DEVICES=0 swift infer
--model Qwen/Qwen2.5-7B-Instruct
--adapters swift/test_lora
--stream true
--infer_backend pt
--temperature 0
--max_new_tokens 2048CUDA_VISIBLE_DEVICES=0 swift deploy
--model Qwen/Qwen2.5-7B-Instruct
--infer_backend vllmCUDA_VISIBLE_DEVICES=0 swift eval
--model Qwen/Qwen2.5-7B-Instruct
--infer_backend lmdeploy
--eval_dataset ARC_cCUDA_VISIBLE_DEVICES=0 swift export
--model Qwen/Qwen2.5-7B-Instruct
--quant_bits 4 --quant_method awq
--dataset AI-ModelScope/alpaca-gpt4-data-zh
--output_dir Qwen2.5-7B-Instruct-AWQЭта структура лицензирована по лицензии Apache (версия 2.0). Для моделей и наборов данных, пожалуйста, обратитесь к исходной странице ресурса и следуйте соответствующей лицензии.
@misc { zhao2024swiftascalablelightweightinfrastructure ,
title = { SWIFT:A Scalable lightWeight Infrastructure for Fine-Tuning } ,
author = { Yuze Zhao and Jintao Huang and Jinghan Hu and Xingjun Wang and Yunlin Mao and Daoze Zhang and Zeyinzi Jiang and Zhikai Wu and Baole Ai and Ang Wang and Wenmeng Zhou and Yingda Chen } ,
year = { 2024 } ,
eprint = { 2408.05517 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL } ,
url = { https://arxiv.org/abs/2408.05517 } ,
}