训练、微调与数据5084 字

Swift模型训练框架快速入门

·全库 299 / 611

《Swift模型训练框架快速入门》共 0.5 万字,通篇围绕 数据集、推理、量化、部署 展开,归在「训练、微调与数据」这一层。

覆盖数据集推理量化部署多模态LoRA

适合要自己训模型、或者判断这一版该不该训的人

目录骨架(8 节)
  1. 使用样例
  2. Wheel包安装
  3. 源代码安装
  4. 支持的硬件
  5. 运行环境
  6. Notebook环境
  7. 基本参数
  8. 模型参数
目录 · 4 节

示例代码

前言

ms-swift是魔搭社区提供的大模型与多模态大模型训练部署框架,现已支持450+大模型与150+多模态大模型的训练(预训练、微调、人类对齐)、推理、评测、量化与部署。模型开发者可以在ms-swift框架中一站式完成围绕大模型的各类需求。目前ms-swift的主要能力包含:

  • 🍎 模型类型:支持450+纯文本大模型、150+多模态大模型以及All-to-All全模态模型、序列分类模型、Embedding模型训练到部署全流程。
  • 数据集类型:内置150+预训练、微调、人类对齐、多模态等各种类型的数据集,并支持自定义数据集。
  • 硬件支持:CPU、RTX系列、T4/V100、A10/A100/H100、Ascend NPU、MPS等。
  • 🍊 轻量训练:支持了LoRA、QLoRA、DoRA、LoRA+、ReFT、RS-LoRA、LLaMAPro、Adapter、GaLore、Q-Galore、LISA、UnSloth、Liger-Kernel等轻量微调方式。
  • 分布式训练:支持分布式数据并行(DDP)、device_map简易模型并行、DeepSpeed ZeRO2 ZeRO3、FSDP等分布式训练技术。
  • 量化训练:支持对BNB、AWQ、GPTQ、AQLM、HQQ、EETQ量化模型进行训练。
  • RLHF训练:支持纯文本大模型和多模态大模型的DPO、GRPO、RM、PPO、KTO、CPO、SimPO、ORPO等人类对齐训练方法。
  • 🍓 多模态训练:支持对图像、视频和语音不同模态模型进行训练,支持VQA、Caption、OCR、Grounding任务的训练。
  • 界面训练:以界面的方式提供训练、推理、评测、量化的能力,完成大模型的全链路。
  • 插件化与拓展:支持自定义模型和数据集拓展,支持对loss、metric、trainer、loss-scale、callback、optimizer等组件进行自定义。
  • 🍉 工具箱能力:除了对大模型和多模态大模型的训练支持外,还支持其推理、评测、量化和部署全流程。
  • 推理加速:支持PyTorch、vLLM、LmDeploy推理加速引擎,并提供OpenAI接口,为推理、部署和评测模块提供加速。
  • 模型评测:以EvalScope作为评测后端,支持100+评测数据集对纯文本和多模态模型进行评测。
  • 模型量化:支持AWQ、GPTQ和BNB的量化导出,导出的模型支持使用vLLM/LmDeploy推理加速,并支持继续训练。

安装

ms-swift的安装请参考安装文档。

使用样例

10分钟在单卡A10上对Qwen/Qwen2-1.5B进行自我认知微调:

CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model Qwen/Qwen2-1.5B \
    --train_type lora \
    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#30' \
              'AI-ModelScope/alpaca-gpt4-data-en#30' \
              'swift/self-cognition#40' \
    --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

小贴士:

  • 如果要使用自定义数据集进行训练,你可以参考这里组织数据集格式,并指定--dataset <dataset_path>。
  • --model_author和--model_name参数只有当数据集中包含swift/self-cognition时才生效。
  • 如果要使用其他模型进行训练,你只需要修改--model <model_id/model_path>即可。
  • 默认使用ModelScope进行模型和数据集的下载。如果要使用HuggingFace,指定--use_hf true即可。

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求