在人工智能快速发展的今天, 大语言模型 (LLM) 已成为各行各业数字化转型的重要推动力。然而, 如何快速有效地对这些庞大的模型进行定制化训练, 一直是困扰许多企业和开发者的难题。近日,ModelScope 团队推出的 SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning) 框架, 为这一难题提供了优雅的解决方案。
全面覆盖的模型支持
SWIFT 最引人注目的特点之一, 是其对大语言模型的广泛支持。据 ModelScope 团队介绍,SWIFT 目前支持 300 多种 LLM 和 50 多种多模态大模型 (MLLM) 的训练、推理、评测和部署。这些模型涵盖了目前业界主流的开源大模型, 如 Qwen 、 ChatGLM 、 Llama 、 InternLM 等系列。
值得一提的是,SWIFT 不仅支持各种规模的基础模型, 还支持针对特定任务优化的模型变体。例如, 它支持代码生成模型如 CodeGeeX, 支持数学问题求解模型如 DeepSeek-Math, 还支持长文本处理模型如 Xverse-256K 等。这种全面的模型支持, 使得开发者可以根据实际需求选择最适合的模型进行微调。
丰富的训练方法
在训练方法上,SWIFT 提供了多种选择, 以适应不同的硬件条件和训练需求。最基本的全参数微调 (Full-parameter Fine-tuning) 适用于拥有充足计算资源的场景。对于计算资源有限的情况,SWIFT 实现了包括 LoRA 、 QLoRA 、 AdaLoRA 等在内的多种参数高效微调 (PEFT) 方法。
此外,SWIFT 还支持一些新颖的训练技术, 如 NEFTune(Noisy Embeddings Improve Instruction Finetuning) 。这种方法通过在训练过程中给词嵌入添加噪声, 可以显著提升模型性能。对于需要处理超长文本的场景,SWIFT 还提供了 LongLoRA 等专门的训练方法。
值得一提的是,SWIFT 不仅支持监督式微调 (SFT), 还支持人类反馈强化学习 (RLHF) 中的 DPO(Direct Preference Optimization) 算法。这使得开发者可以更好地将人类偏好引入模型训练过程, 提升模型输出的质量和可控性。
便捷的训练流程
SWIFT 的另一大亮点是其简化的训练流程。开发者只需几行命令, 就可以启动训练任务。例如, 要使用 LoRA 方法对 Qwen-7B-Chat 模型进行微调, 只需运行如下命令:
CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model_type qwen-7b-chat \
    --dataset blossom-math-zh \
    --train_dataset_sample -1 \
    --num_train_epochs 5 \
    --max_length 2048 \
    --learning_rate 5e-5 \
    --weight_decay 0.1 \
    --gradient_accumulation_steps 4 \
    --sft_type lora \
    --lora_rank 8 \
    --output_dir output这种简洁的命令行接口大大降低了使用门槛, 使得即使是对深度学习不太熟悉的开发者也能快速上手。对于更复杂的训练需求,SWIFT 还提供了丰富的配置选项, 可以通过命令行参数或配置文件灵活调整。
高效的分布式训练
面对越来越大的模型规模, 单卡训练已经难以满足需求。 SWIFT 在这方面也做了充分准备, 支持多种分布式训练方案。最基本的是数据并行 (DDP), 可以在多 GPU 上进行高效训练。对于超大模型,SWIFT 还支持模型并行 (MP) 和 Pipeline 并行。
更进一步,SWIFT 集成了 DeepSpeed 框架, 支持 ZeRO-2 和 ZeRO-3 优化。这些技术可以大幅降低显存占用, 使得在有限硬件上训练大模型成为可能。例如, 使用 ZeRO-3 优化, 开发者可以在 4 张 A100 GPU 上对 Qwen-14B 模型进行全参数微调。
全面的评测和部署支持
训练完成后的模型评测和部署同样重要。在评测方面,SWIFT 集成了多个标准数据集, 如 MMLU 、 CEval 、 ARC 等, 可以快速对模型能力进行全面评估。评测过程支持多种加速技术, 如 vLLM, 可以显著提升评测效率。
在部署方面,SWIFT 提供了多种选择。对于需要快速验证的场景, 可以使用内置的推理接口。对于生产环境,SWIFT 支持将模型导出为 ONNX 格式, 或者使用 vLLM 、 ChatGLM.cpp 等高性能推理引擎进行部署。这种灵活的部署方案, 可以满足不同场景下的性能需求。
友好的用户界面
除了强大的功能,SWIFT 还提供了直观的 Web UI 界面。用户可以通过简单的 swift web-ui 命令启动图形界面, 在浏览器中进行模型训练和推理。这种可视化的操作方式, 进一步降低了使用门槛, 使得非技术背景的用户也能轻松驾驭大模型训练。
结语
SWIFT 的出现, 无疑为大模型的定制化应用铺平了道路。它集成了当前最先进的训练技术, 提供了全面的模型支持, 同时保持了简单易用的特性。无论是初学者还是经验丰富的 AI 研究人员, 都能在 SWIFT 中找到适合自己的工具。
随着 AI 技术的不断发展, 像 SWIFT 这样的开源框架将发挥越来越重要的作用。它不仅推动了技术的民主化, 也为 AI 创新提供了重要的基础设施支持。可以预见, 在 SWIFT 的助力下, 更多创新的 AI 应用将会涌现, 为各行各业带来新的机遇和变革。
参考文献
- ModelScope Team. (2024). SWIFT: Scalable lightWeight Infrastructure for Fine-Tuning. GitHub. https://github.com/modelscope/swift