什么是 ms-swift?一篇详尽的入门指南 – wiki基地

I am unable to write the article to a file due to limitations in my available tools. However, I have gathered all the necessary information and prepared the article. I will now output the full content of the “ms-swift 入门指南” article for you. You can then copy and paste it into a file named ms_swift_guide.md.

Here is the article:

ms-swift 入门指南

介绍

ms-swift (ModelScope-Swift) 是一个由 ModelScope 社区开发的,用于大型语言模型 (LLM) 和多模态大型模型 (MLLM) 的轻量级、高效的训练、推理和评估框架。它旨在简化从模型微调到部署的整个工作流程,为开发人员和研究人员提供一个强大而灵活的工具集。

ms-swift 支持超过 70 个模型的 400 多个检查点,包括各种规模和类型的 LLM 和 MLLM。它还提供了多种高效的微调方法,如 LoRA、QLoRA 和全参数微调,并支持多种硬件平台,包括 NVIDIA GPU 和部分国产硬件。

核心概念

在使用 ms-swift 之前,了解一些核心概念将有助于您更好地利用该框架:

  • 模型 (Model): ms-swift 支持多种模型,包括但不限于 Qwen、Llama、Mistral、Yi、ChatGLM 等。您可以在 ModelScope 社区或 Hugging Face Hub 上找到支持的模型列表。
  • 数据集 (Dataset): 您可以使用自己的数据集或 ModelScope 上提供的现有数据集对模型进行微调。ms-swift 支持多种数据集格式,并提供了便捷的数据处理工具。
  • 微调方法 (SFT – Supervised Fine-tuning): ms-swift 支持多种微调方法,包括:
    • 全参数微调 (Full-parameter fine-tuning): 更新模型的所有参数,效果最好,但需要更多计算资源。
    • LoRA (Low-Rank Adaptation): 一种参数高效的微调方法,通过在模型的某些层中引入低秩矩阵来减少需要训练的参数数量。
    • QLoRA: LoRA 的量化版本,进一步减少了内存占用和计算需求。
  • 推理 (Inference): 微调完成后,您可以使用 ms-swift 对模型进行推理,以评估其性能或将其集成到您的应用程序中。
  • 评估 (Evaluation): ms-swift 提供了评估工具,可用于评估模型在各种基准测试上的性能。

快速入门

1. 安装

首先,您需要安装 ms-swift。建议使用 pip 进行安装。请确保您的 Python 版本高于 3.8。

“`bash

安装完整版

pip install ‘ms-swift[all]’ -U

仅安装 LLM 相关功能

pip install ‘ms-swift[llm]’ -U
“`

2. 准备数据集

您可以准备自己的数据集,或者使用 ModelScope 提供的示例数据集。例如,您可以使用 blossom-math-zh 数据集,这是一个中文数学问题数据集。

3. 微调模型

使用 swift sft 命令进行模型微调。以下是一个使用 LoRA 方法微调 qwen1half-7b-chat 模型的示例:

“`bash

单 GPU 微调

CUDA_VISIBLE_DEVICES=0 swift sft \
–model_type qwen1half-7b-chat \
–dataset blossom-math-zh \
–sft_type lora \
–output_dir output
“`

  • --model_type: 指定要微调的模型类型。
  • --dataset: 指定用于微调的数据集。
  • --sft_type: 指定微调方法,此处为 lora
  • --output_dir: 指定输出目录,用于保存微调后的模型和日志。

4. 推理

微调完成后,您可以使用 swift infer 命令进行推理。

bash
CUDA_VISIBLE_DEVICES=0 swift infer \
--ckpt_dir output/qwen1half-7b-chat/vx-xxx/checkpoint-xxx

  • --ckpt_dir: 指定微调后模型的检查点目录。

5. 部署

ms-swift 支持使用 swift deploy 命令将模型部署为服务。

bash
CUDA_VISIBLE_DEVICES=0 swift deploy \
--ckpt_dir output/qwen1half-7b-chat/vx-xxx/checkpoint-xxx

部署成功后,您可以通过 http://localhost:8000 访问 API 服务。

示例

使用自定义数据集

如果您想使用自己的数据集,可以将其格式化为 JSON Lines 格式,其中每一行都是一个包含 queryresponse 字段的 JSON 对象。

json
{"query": "问题1", "response": "回答1"}
{"query": "问题2", "response": "回答2"}

然后,在微调时通过 --custom_train_dataset_path--custom_val_dataset_path 参数指定数据集路径。

bash
CUDA_VISIBLE_DEVICES=0 swift sft \
--model_type qwen1half-7b-chat \
--custom_train_dataset_path /path/to/your/train/dataset.jsonl \
--sft_type lora \
--output_dir output

总结

ms-swift 是一个功能强大且易于使用的框架,极大地简化了大型语言模型和多模态大型模型的微调和部署过程。通过本指南,您应该对 ms-swift 有了基本的了解,并可以开始使用它来探索和应用最新的 AI 技术。

有关更多详细信息和高级用法,请参阅官方文档和 GitHub 仓库:

滚动至顶部