ms-swift
요약
ms-swift는 ModelScope에서 제공하는 대규모 언어 모델(LLM) 및 멀티모달 모델을 위한 통합 미세 조정 및 배포 프레임워크입니다. 1,000개 이상의 모델과 다양한 학습/추론/양자화 기술을 지원하며, 학습부터 배포까지의 전체 파이프라인을 제공합니다.
핵심 포인트
- 600개 이상의 텍스트 및 400개 이상의 멀티모달 모델 지원
- 사전 학습, 미세 조정, 강화학습(RL), 양자화 등 전체 파이프라인 제공
- LoRA, QLoRA 등 다양한 경량 미세 조정 기법 통합
- vLLM, SGLang 등을 활용한 추론 및 배포 가속화 지원
- NVIDIA GPU부터 Ascend NPU까지 폭넓은 하드웨어 지원
ModelScope 커뮤니티 웹사이트
중국어 | 영어
논문 | 영어 문서 | 중국어 문서
다음 그룹을 추가하여 저희에게 연락하고 소통할 수 있습니다:
| Discord 그룹 | WeChat 그룹 |
|---|---|
🍲 ms-swift는 ModelScope 커뮤니티에서 제공하는 대규모 모델(Large Model) 및 멀티모달 대규모 모델(Multimodal Large Model) 미세 조정(Fine-tuning) 및 배포 프레임워크입니다. 현재 600개 이상의 텍스트 전용 대규모 모델과 400개 이상의 멀티모달 대규모 모델에 대해 학습(사전 학습(Pre-training), 미세 조정(Fine-tuning), 인간 정렬(Human Alignment)), 추론(Inference), 평가(Evaluation), 양자화(Quantization) 및 배포(Deployment)를 지원합니다. 대규모 모델에는 Qwen3, Qwen3.5, InternLM3, GLM4.5, Mistral, DeepSeek-R1, Llama4 등이 포함됩니다. 멀티모달 대규모 모델에는 Qwen3-VL, Qwen3-Omni, Llava, InternVL3.5, MiniCPM-V-4, Ovis2.5, GLM4.5-V, DeepSeek-VL2 등이 포함됩니다.
🍔 또한, ms-swift는 학습을 가속화하기 위한 TP, PP, CP, EP와 같은 Megatron 병렬화 기술(Parallelism techniques)을 비롯하여, 모델 지능을 향상시키기 위한 GRPO, DAPO, GSPO, SAPO, CISPO, RLOO, Reinforce++ 등을 포함한 수많은 GRPO 알고리즘 계열의 강화학습 (RL) 알고리즘을 포함한 최신 학습 기술을 통합합니다. ms-swift는 DPO, KTO, RM, CPO, SimPO, ORPO와 같은 선호도 학습 (Preference Learning) 알고리즘을 비롯하여 임베딩 (Embedding), 리랭커 (Reranker), 시퀀스 분류 (Sequence Classification) 작업 등 광범위한 학습 작업을 지원합니다. ms-swift는 vLLM, SGLang, LMDeploy를 사용한 추론, 평가 및 배포 모듈 가속화와 GPTQ, AWQ, BNB, FP8 기술을 사용한 모델 양자화를 포함하여 대규모 모델 학습을 위한 전체 파이프라인 (Full-pipeline) 지원을 제공합니다.
왜 ms-swift를 선택해야 할까요?
- 🍎
모델 유형 (Model Types): 600개 이상의 텍스트 전용 대규모 모델 (text-only large models), 400개 이상의 멀티모달 대규모 모델 (multimodal large models), 그리고 All-to-All 풀 모달리티 (full modality) 모델을 학습부터 배포까지 전체 파이프라인 (full pipeline)으로 지원하며, 인기 모델에 대한 Day-0 지원을 제공합니다. 데이터셋 유형 (Dataset Types): 사전 학습 (pre-training), 미세 조정 (fine-tuning), 인간 정렬 (human alignment), 멀티모달 및 기타 다양한 작업을 위한 150개 이상의 데이터셋이 내장되어 있으며, 커스텀 데이터셋을 지원합니다. 사용자는 원클릭 학습을 위해 데이터셋만 준비하면 됩니다. 하드웨어 지원 (Hardware Support): A10/A100/H100, RTX 시리즈, T4/V100, CPU, MPS, 그리고 Ascend NPU와 같은 국산 하드웨어를 지원합니다. 경량 학습 (Lightweight Training): LoRA, QLoRA, DoRA, LoRA+, LLaMAPro, LongLoRA, LoRA-GA, ReFT, RS-LoRA, Adapter, LISA 등의 경량 미세 조정 (fine-tuning) 방법을 지원합니다. 양자화 학습 (Quantized Training): BNB, AWQ, GPTQ, AQLM, HQQ, EETQ 양자화 모델에 대한 학습을 지원하며, 7B 모델의 경우 단 9GB의 학습 리소스만 필요합니다. 메모리 최적화 (Memory Optimization): GaLore, Q-Galore, UnSloth, Liger-Kernel, Flash-Attention 2/3, 그리고 Ulysses 및 Ring-Attention 시퀀스 병렬화 (sequence parallelism) 기술을 지원하여 긴 텍스트 학습 시 메모리 소비를 줄여줍니다. 분산 학습 (Distributed Training): 분산 데이터 병렬화 (DDP), device_map 단순 모델 병렬화 (model parallelism), DeepSpeed ZeRO2/ZeRO3, FSDP/FSDP2, 그리고 Megatron 분산 학습 기술을 지원합니다. - 🍓
멀티모달 학습 (Multimodal Training): 멀티모달 패킹 (multimodal packing) 기술을 지원하여 학습 속도를 100% 이상 향상시키며, 텍스트, 이미지, 비디오, 오디오가 포함된 혼합 모달리티 데이터 학습을 지원하고, vit/aligner/llm의 독립적인 제어를 지원합니다. 에이전트 학습 (Agent Training): 에이전트 (Agent) 템플릿을 지원하여 하나의 데이터셋으로 서로 다른 모델을 학습할 수 있습니다. - 🍊
학습 작업 (Training Tasks): 사전 학습 (pre-training) 및 지시 미세 조정 (instruction fine-tuning)은 물론 DPO, GKD, KTO, RM, CPO, SimPO, ORPO와 같은 학습 작업을 지원하며, 임베딩 (Embedding)/리랭커 (Reranker) 및 시퀀스 분류 (sequence classification) 작업을 지원합니다. - 🥥
Megatron 병렬화 (Megatron Parallelism): TP/PP/SP/CP/ETP/EP/VPP 병렬 전략을 제공하여 MoE 모델 학습 속도를 크게 향상시킵니다.
300개 이상의 순수 텍ext 대규모 모델 (Large Models) 및 100개 이상의 멀티모달 (Multimodal) 대규모 모델에 대해 전체 파라미터 (Full-parameter) 및 LoRA 학습 방법을 지원합니다. CPT/SFT/GRPO/DPO/KTO/RM 학습 태스크를 지원합니다. - 🍉
강화학습 (Reinforcement Learning): GRPO, DAPO, GSPO, SAPO, CISPO, CHORD, RLOO, Reinforce++ 등을 포함하여 풍부한 GRPO 제품군 알고리즘이 내장되어 있습니다. vLLM 엔진의 동기 및 비동기 추론 가속을 지원하며, 플러그인을 통해 확장 가능한 보상 함수 (Reward functions), 다회차 추론 스케줄러 (Multi-turn inference Schedulers) 및 환경을 제공합니다.
전체 파이프라인 역량 (Full-Pipeline Capabilities): 학습, 추론, 평가, 양자화 (Quantization) 및 배포의 전체 워크플로우를 다룹니다.
UI 학습 (UI Training): 학습, 추론, 평가 및 양자화를 위한 Web-UI 인터페이스를 제공하여 대규모 모델을 위한 전체 파이프라인을 완성합니다.
추론 가속 (Inference Acceleration): Transformers, vLLM, SGLang 및 LmDeploy 추론 가속 엔진을 지원하며, 추론, 배포 및 평가 모듈을 가속화하기 위한 OpenAI 인터페이스를 제공합니다.
모델 평가 (Model Evaluation): EvalScope를 평가 백엔드로 사용하여, 텍스트 전용 및 멀티모달 모델을 평가하기 위한 100개 이상의 평가 데이터셋을 지원합니다.
모델 양자화 (Model Quantization): AWQ, GPTQ, FP8 및 BNB에 대한 양자화 내보내기 (Quantization export)를 지원합니다. 내보내기 된 모델은 vLLM/SGLang/LmDeploy를 사용한 추론 가속을 지원합니다.
- 🎁 2026.06.10: Megatron-Ray가 이제 GRPO 및 GKD 학습을 지원합니다. 문서와 예제를 확인하세요.
- 🎁 2026.03.03:
ms-swift v4.0 메이저 버전이 공식 출시되었습니다. 릴리스 노트(release notes)는 여기를 참조하세요. 이 이슈(issue)를 통해 저희에게 제안을 주실 수 있습니다. 지원해 주셔서 감사합니다. - 🎁 2025.11.14: Megatron GRPO를 이제 사용할 수 있습니다! 문서와 예제를 확인하세요. - 🎁 2025.11.04: Mcore-Bridge를 지원하여, Megatron 학습을 transformers만큼 간단하고 사용하기 쉽게 만들었습니다.
- 🎁 2025.10.28: Ray가 도입되었습니다.
- 🎁 2025.09.07: CHORD 학습 알고리즘 지원을 추가했습니다. 문서를 참조하세요.
- 🎁 2025.09.06: 이제 Ulysses를 ring-attention과 함께 사용할 수 있어, 시퀀스(sequences)를 임의의 개수의 청크(chunks)로 샤딩(sharding)할 수 있습니다 (더 이상 헤드(heads)의 수에 제한되지 않음). 인자는
--sequence_parallel_size N으로 유지됩니다. - 🎁 2025.09.02: Megatron-SWIFT가 이제 멀티모달(multimodal) 모델 학습을 지원합니다. 문서는 여기에서 찾을 수 있습니다.
- 🎁 2025.08.12: SFT 학습에서 동적 미세 조정(Dynamic Fine-Tuning, DFT)을 지원합니다.
--enable_dft_loss true파라미터를 사용하세요. 학습 스크립트는 여기에서 찾을 수 있습니다. - 🎁 2025.07.09: Megatron-SWIFT가 LoRA 학습을 지원합니다. ms-swift와 비교하여 MoE 모델에서 상당한 속도 향상을 달성했습니다. 학습 스크립트는 여기에서 찾을 수 있습니다. - 🎁 2025.06.23: 리랭커(reranker) 모델의 미세 조정(Fine-tuning)이 지원됩니다. 학습 스크립트는 여기에서 찾을 수 있습니다: Reranker.
- 🎁 2025.06.15: 순수 텍스트 대규모 모델 및 멀티모달 모델 모두에서 GKD 학습을 지원합니다. 학습 스크립트는 여기에서 찾을 수 있습니다: Pure Text, Multimodal.
더 보기
- 🎁 2025.06.11: RLHF 학습을 위한 Megatron 병렬화 (parallelism) 기술 사용 지원. 학습 스크립트는 여기에서 찾을 수 있습니다.
- 🎁 2025.05.29: pretrain, sft, dpo 및 grpo에서 시퀀스 병렬화 (sequence parallel) 지원, 스크립트는 여기를 확인하세요.
- 🎁 2025.05.11: GRPO가 이제 보상 모델 (reward models)을 위한 커스텀 처리 로직을 지원합니다. 여기에서 GenRM 예시를 확인하세요.
- 🎁 2025.04.15: ms-swift 논문이 AAAI 2025에 채택되었습니다. 이 링크에서 논문을 확인할 수 있습니다.
- 🎁 2025.03.23: 다회차 대화 시나리오 (예: agent tool calling) 학습을 위한 Multi-round GRPO가 이제 지원됩니다. 문서를 참조하세요.
- 🎁 2025.03.16: Megatron의 병렬 학습 (parallel training) 기술 지원이 가능해졌습니다. Megatron-SWIFT 학습 문서를 참조하세요.
- 🎁 2025.03.15: 순수 텍스트 (pure text) 및 멀티모달 (multimodal) 모델 모두에 대한 임베딩 모델 (embedding models) 미세 조정 (Fine-tuning)을 지원합니다. 학습 스크립트를 확인하세요.
- 🎁 2025.03.05: GRPO를 위한 하이브리드 모드 (hybrid mode)가 지원되며, 4개의 GPU (4*80G)에서 72B 모델을 학습하기 위한 스크립트를 여기에서 사용할 수 있습니다. vllm을 이용한 텐서 병렬화 (Tensor parallelism) 또한 지원되며, 학습 스크립트는 여기에서 확인할 수 있습니다.
- 🎁 2025.02.21: GRPO 알고리즘이 이제 LMDeploy를 지원하며, 학습 스크립트는 여기에서 확인할 수 있습니다. 또한, 다양한 트릭을 사용하여 학습 속도를 최대 300%까지 향상시키며 GRPO 알고리즘의 성능을 테스트했습니다. 여기에서 WanDB 테이블을 확인하세요.
- 🎁 2025.02.21: The
swift sample
명령어가 이제 지원됩니다. 강화 학습 미세 조정 (reinforcement fine-tuning) 스크립트는 여기에서 확인할 수 있으며, 대규모 모델 API 증류 (API distillation) 샘플링 스크립트는 여기에서 사용할 수 있습니다. - 🔥 2025.02.12: GRPO (Group Relative Policy Optimization) 학습 알고리즘 지원이 추가되었습니다. 문서는 여기에서 확인할 수 있습니다.
- 🎁 2024.12.04: ms-swift 3.0으로의 주요 업데이트가 있었습니다. 릴리스 노트와 변경 사항을 참조하세요. - 🎉 2024.08.12: ms-swift 논문이 arXiv에 게시되었으며 여기에서 읽을 수 있습니다.
- 🔥 2024.08.05: 대규모 모델 및 멀티모달 모델 평가를 위한 백엔드로 evalscope를 사용하는 기능을 지원합니다.
- 🔥 2024.07.29: 대규모 모델 및 멀티모달 모델의 추론을 가속화하기 위해 vllm 및 lmdeploy를 사용하는 기능을 지원합니다. infer/deploy/eval을 수행할 때
--infer_backend vllm/lmdeploy를 지정할 수 있습니다. - 🔥 2024.07.24: DPO/ORPO/SimPO/CPO/KTO/RM/PPO를 포함하여 멀티모달 대규모 모델의 인간 선호도 정렬 (human preference alignment) 학습을 지원합니다.
- 🔥 2024.02.01: 에이전트 (Agent) 학습을 지원합니다! 학습 알고리즘은 이 논문에서 유도되었습니다.
pip를 사용하여 설치하기:
pip install ms-swift -U
# uv 사용 시
pip install uv
...
소스에서 설치하기:
# pip install git+https://github.com/modelscope/ms-swift.git
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
...
실행 환경:
| 범위 | 권장 사항 | 비고 |
|---|---|---|
| python | >=3.10 | 3.12 |
| ... |
추가적인 선택적 의존성(optional dependencies)에 대해서는 여기를 참조하세요.
단일 3090 GPU에서 Qwen3-4B-Instruct-2507의 10분 자기 인식 (self-cognition) 미세 조정:
# 13GB
CUDA_VISIBLE_DEVICES=0 \
swift sft \
...
팁:
- 커스텀 데이터셋으로 학습하려는 경우, 이 가이드를 참조하여 데이터셋 형식을 구성하고
--dataset <dataset_path>를 지정할 수 있습니다. ---model_author및--model_name파라미터는 데이터셋에swift/self-cognition이 포함된 경우에만 유효합니다. - 다른 모델로 학습하려면--model <model_id/model_path>를 수정하기만 하면 됩니다.
. - 기본적으로 모델과 데이터셋을 다운로드하는 데에는 ModelScope가 사용됩니다. HuggingFace를 사용하려면 --use_hf true를 지정하기만 하면 됩니다.
.
학습이 완료된 후, 다음 명령어를 사용하여 학습된 가중치(weights)로 추론(inference)을 수행할 수 있습니다:
- 여기서
--adapters는 학습 중에 생성된 마지막 체크포인트(checkpoint) 폴더로 교체해야 합니다. 어댑터(adapters) 폴더에는 학습 파라미터 파일인args.json이 포함되어 있으므로,--model이나--system을 별도로 지정할 필요가 없습니다. Swift가 이 파라미터들을 자동으로 읽어옵니다. 이 동작을 비활성화하려면--load_args false로 설정할 수 있습니다.
# 추론을 위해 대화형 커맨드 라인을 사용합니다.
CUDA_VISIBLE_DEVICES=0 \
swift infer \
...
마지막으로, 다음 명령어를 사용하여 모델을 ModelScope에 푸시(push)할 수 있습니다:
CUDA_VISIBLE_DEVICES=0 \
swift export \
--adapters output/vx-xxx/checkpoint-xxx \
...
Web-UI는 Gradio 인터페이스 기술을 기반으로 한 진입 장벽이 없는(zero-threshold) 학습 및 배포 인터페이스 솔루션입니다. 자세한 내용은 여기에서 확인할 수 있습니다.
SWIFT_UI_LANG=en swift web-ui
ms-swift는 Python을 사용한 학습 및 추론도 지원합니다. 아래는 학습 및 추론을 위한 의사코드(pseudocode)입니다. 자세한 내용은 여기를 참조하십시오.
학습(Training):
from peft import LoraConfig, get_peft_model
from swift import get_model_processor, get_template, load_dataset, EncodePreprocessor
from swift.trainers import Seq2SeqTrainer, Seq2SeqTrainingArguments
...
추론(Inference):
from swift import TransformersEngine, InferRequest, RequestConfig
# 네이티브 Transformers 엔진을 사용하여 추론을 수행합니다
engine = TransformersEngine(model_id_or_path, adapters=[lora_checkpoint])
...
다음은 ms-swift를 사용하여 학습부터 배포까지 수행하는 최소한의 예시입니다. 자세한 내용은 예시(examples)를 확인하십시오.
- 다른 모델이나 데이터셋(멀티모달 모델 및 데이터셋 포함)을 사용하려면,
--model을 수정하여 해당 모델의 ID 또는 경로를 지정하고,--dataset을 수정하기만 하면 됩니다.
해당 데이터셋의 ID 또는 경로를 지정합니다. - 기본적으로 모델과 데이터셋을 다운로드할 때는 ModelScope가 사용됩니다. HuggingFace를 사용하려면 단순히 --use_hf true를 지정하면 됩니다.
| 유용한 링크 |
|---|
| 🔥명령줄 파라미터 (Command Line Parameters) |
| ... |
| 지원되는 학습 방법 (Supported Training Methods): |
| 방법 (Method) | 전체 파라미터 (Full-Parameter) | LoRA | QLoRA | Deepspeed | 멀티 머신 (Multi-Machine) | 멀티모달 (Multimodal) |
|---|---|---|---|---|---|---|
| 사전 학습 (Pre-training) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ... | ||||||
| 사전 학습 (Pre-training): |
# 8*A100
NPROC_PER_NODE=8 \
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
...
미세 조정 (Fine-tuning):
CUDA_VISIBLE_DEVICES=0 swift sft \
--model Qwen/Qwen3-4B-Instruct-2507 \
--dataset AI-ModelScope/alpaca-gpt4-data-en \
...
RLHF:
CUDA_VISIBLE_DEVICES=0 swift rlhf \
--rlhf_type dpo \
--model Qwen/Qwen3-4B-Instruct-2507 \
...
ms-swift는 대규모 클러스터 학습 및 MoE 모델 학습을 포함하여, 학습을 가속화하기 위한 Megatron 병렬화 (parallelism) 기술 사용을 지원합니다. 다음과 같은 학습 방법들이 지원됩니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기