如何开始使用ms-swift?安装、配置与第一个“Hello World” – wiki词典

如何开始使用 ms-swift:安装、配置与第一个“Hello World”

“ms-swift” 实际上是 ModelScope-SWIFT 的简称,它是一个由魔搭(ModelScope)社区开源的、功能强大的大模型(LLM)与多模态大模型(MLLM)训练、微调和部署框架。它并非微软(Microsoft)的 Swift 语言工具。本文将详细介绍如何安装、配置并运行你的第一个 ms-swift 示例。

1. 先决条件

在开始安装之前,请确保你的环境满足以下要求:

  • Python: 版本 >= 3.8
  • PyTorch: 版本 >= 1.13。建议使用与你的 CUDA 版本匹配的最新稳定版。
  • Git: 用于克隆代码仓库。
  • 硬件 (推荐): 虽然 SWIFT 支持 CPU,但为了获得理想的训练和推理速度,强烈建议使用 NVIDIA GPU,并安装好对应的 CUDA Toolkit。

2. 安装

你可以通过两种主要方式安装 SWIFT。推荐使用从源码安装的方式,因为它能确保你使用的是最新功能。

方法一:从源码安装 (推荐)

这种方式非常适合需要进行开发或希望获取最新更新的用户。

  1. 克隆 SWIFT 仓库:
    打开你的终端,运行以下命令克隆官方 GitHub 仓库。

    bash
    git clone https://github.com/modelscope/swift.git

  2. 进入项目目录:

    bash
    cd swift

  3. 安装 SWIFT:
    使用 pip 以可编辑模式(-e)安装。这会将项目链接到你的 Python 环境中,方便你修改代码并立即生效。

    bash
    pip install -e .

  4. 安装完整依赖 (可选):
    为了使用 SWIFT 的全部功能(如量化、特定的加速引擎等),你可以安装带有 [all] 标签的完整依赖包。

    bash
    pip install -e '.[all]'

方法二:通过 PyPI 直接安装

这种方式更简单,适合只想快速使用 SWIFT 的用户。

  1. 基础安装:
    运行以下命令从 PyPI 安装最新版本的 ms-swift

    bash
    pip install ms-swift -U

  2. 安装完整依赖 (可选):
    同样,如果你需要全部功能,可以这样安装:

    bash
    pip install 'ms-swift[all]' -U

3. 配置

SWIFT 的设计非常友好,大部分情况下你不需要进行复杂的配置文件设置。其核心“配置”实际上是通过命令行参数来完成的。

一个重要的配置项是模型的下载源。SWIFT 默认从魔搭(ModelScope)平台下载模型和数据集。如果你更习惯使用 Hugging Face Hub,可以在执行命令时添加 --use_hf true 参数。

4. 第一个 “Hello World”: 运行 LoRA 微调任务

对于 LLM 框架而言,最好的 “Hello World” 就是成功运行一个微调任务。下面,我们将以一个具体的例子来展示如何使用 SWIFT 对 qwen/Qwen-7B-Chat 模型在 alpaca-en-pt 数据集上进行 LoRA 微调。

第 1 步: 启动微调

在你的终端中(确保已进入 swift 目录,如果你是源码安装的话),运行以下命令:

bash
swift sft --model_id_or_path qwen/Qwen-7B-Chat --dataset alpaca-en-pt --sft_type lora

命令解释:
* swift sft: sft 代表 Supervised Fine-Tuning(有监督微调),这是 SWIFT 中用于执行此类任务的主命令。
* --model_id_or_path qwen/Qwen-7B-Chat: 指定了我们想要微调的基础模型。SWIFT 会自动从 ModelScope 或 Hugging Face 下载它。
* --dataset alpaca-en-pt: 指定用于微调的数据集。这里使用的是一份经过预处理的英文 Alpaca 数据集。
* --sft_type lora: 指定微调的方法。lora (Low-Rank Adaptation) 是一种高效的参数微调技术,它只训练一小部分新增的权重,从而大大降低了计算资源需求。

命令执行后,SWIFT 会开始下载模型和数据,然后进入训练流程。你会看到进度条和训练日志输出。

第 2 步: 使用微调后的模型进行推理

训练完成后,模型权重和训练配置会保存在一个默认的输出目录中(通常是 output/ 下的一个子目录)。

要与你刚刚训练好的模型进行对话,你需要使用 infer 命令,并指定原始模型和 checkpoint 路径。

“`bash

注意: –ckpt_dir 的路径需要根据你实际的输出进行替换

swift infer –model_id_or_path qwen/Qwen-7B-Chat –ckpt_dir ‘output/qwen-7b-chat/vx-xxx/checkpoint-xxx’
“`

如何找到正确的 ckpt_dir?
* 训练完成后,终端的输出日志通常会提示 checkpoint 的保存位置。
* 你可以查看项目目录下的 output 文件夹。它会有一个类似 qwen-7b-chat 的子目录,再进入版本目录(如 v0-20240101-120000),里面会包含 checkpoint-xxx 这样的文件夹,xxx 是训练步数。将这个完整的路径填入 --ckpt_dir 即可。

执行 infer 命令后,系统会加载基础模型和你的 LoRA 权重,然后提供一个交互式命令行,你就可以开始提问,检验微调的效果了。

5. 总结与后续

恭喜你!你已经成功完成了 ms-swift 的安装,并运行了你的第一个模型微调任务。这只是一个开始,SWIFT 框架还支持更多高级功能,包括:

  • 支持数百种不同的 LLM 和 MLLM。
  • 更丰富的微调方法(QLoRA, 全参数微调, DPO 等)。
  • 模型的量化与部署。
  • 分布式训练。

要深入学习,强烈建议查阅以下资源:

祝你在大模型的探索之路上旅途愉快!

滚动至顶部