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 格式,其中每一行都是一个包含 query 和 response 字段的 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 仓库: