游乐游手机版
首页/AI教程/文章详情

MS-Swift框架大模型推理实践指南(四)

时间:2026-06-11 16:34
ms-swift框架从环境搭建到命令行及PythonAPI,提供完整大模型推理实践方案,全面支持多模态模型(如文本、图像、音频等),满足不同开发者的灵活需求,附带丰富示例与详尽文档,适用于学术研究与工业实践,助力快速部署与高效推理。

在大模型开发与应用中,推理环节往往被视为“临门一脚”——模型训练得再出色,上线后能否真正发挥作用,全看推理效果。无论是智能客服解答用户提问,还是内容创作工具自动生成文案,亦或是智能助手完成各类任务,都离不开高效、精准的推理过程。ms-swift 框架作为大模型开发的重要工具,在推理方面提供了极为灵活且强大的能力。本文将深入探讨 ms-swift 框架下的大模型推理实践,从基础环境搭建,到命令行与代码层面的具体操作,逐步展示如何利用该框架实现高效推理。

2. 推理概述

推理,简单来说,就是使用训练好的模型处理新输入的数据,让模型输出预测结果或生成内容。在大模型场景下,推理可涵盖文本生成、问答、分类、情感分析等多种任务。模型的“智能”正是在推理环节转化为实际价值——它依据训练阶段习得的模式与知识,对新数据进行分析并给出合理回应。

ms-swift 框架的推理设计充分考虑了不同开发者的需求:如果你只想快速上手体验,可以使用命令行一键运行;如果你需要深度定制与精细控制,也可以通过 Python API 获得全部掌控权。无论是新手还是资深开发者,都能找到适合自己的使用方式。

3. 环境准备

在本地部署大模型之前,硬件与软件环境是必须首先跨越的门槛。如果已有合适的服务器并装好依赖,可直接跳过此部分。

3.1 服务器

硬件配置决定了模型能否运行以及运行速度。根据模型规模和计算需求选择服务器配置,例如使用 NVIDIA GeForce RTX 4090D GPU(24GB 显存)即可应对多数 7B 级别模型。软件方面,推荐 Ubuntu 22.04 系统、Python 3.10 版本,并安装 PyTorch 2.1.2 与 CUDA 11.8,这是一套成熟稳定的 AI 开发组合。

3.2 安装依赖

接下来需要安装必要的软件包。执行以下命令完成安装:

# 克隆 ms-swift 仓库
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

# 安装 vllm,用于模型转换和推理
pip install vllm

# 安装 modelscope,提供模型下载和管理功能
pip install modelscope

3.3 模型准备

模型下载可以借助 modelscope 库的 snapshot_download 函数。在 /root/autodl-tmp 目录下创建一个 Jupyter Notebook 文件(例如 model_download.ipynb),写入以下代码:

from modelscope import snapshot_download

# 定义模型名称与下载路径
model_name = 'Qwen/Qwen2.5-7B-Instruct'
cache_dir = '/root/autodl-tmp'

# 使用 snapshot_download 下载模型
model_dir = snapshot_download(model_name, cache_dir=cache_dir, revision='master')
print(f"Model downloaded and stored in: {model_dir}")

执行后,函数会自动处理下载与解压,模型将保存在指定路径下。至此,本地部署的基础工作全部完成,可以进入后续的微调与推理环节。

当然,也可以直接通过命令行下载:

# 安装 git-lfs
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs

# 下载模型
git clone https://www.modelscope.cn/Qwen/Qwen2.5-7B-Instruct.git

4. 文本模型推理

4.1 命令行推理

CUDA_VISIBLE_DEVICES=0 swift infer --model /root/autodl-tmp/Qwen/Qwen2.5-7B-Instruct --stream true --infer_backend pt --max_new_tokens 2048

推理效果如下:

GPU 资源消耗(nvidia-smi 输出):

4.2 Python 推理

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'

from swift.llm import PtEngine, RequestConfig, InferRequest

model = '/root/autodl-tmp/Qwen/Qwen2.5-7B-Instruct'

# 加载推理引擎
engine = PtEngine(model, max_batch_size=2)
request_config = RequestConfig(max_tokens=512, temperature=0)

# 使用 2 个 infer_request 展示 batch 推理
infer_requests = [
    InferRequest(messages=[{'role': 'user', 'content': 'who are you?'}]),
    InferRequest(messages=[
        {'role': 'user', 'content': '浙江的省会在哪?'},
        {'role': 'assistant', 'content': '浙江省的省会是杭州。'},
        {'role': 'user', 'content': '这里有什么好玩的地方'},
    ]),
]

resp_list = engine.infer(infer_requests, request_config)
query0 = infer_requests[0].messages[0]['content']
print(f'response0: {resp_list[0].choices[0].message.content}')
print(f'response1: {resp_list[1].choices[0].message.content}')

代码执行后打印输出如下:

response0: I am Qwen, a large language model created by Alibaba Cloud. I am here to assist with a wide variety of tasks and provide information on numerous topics. How can I help you today?
response1: 杭州有很多好玩的地方,以下是一些推荐:
1. **西湖**:被誉为“人间天堂”,是杭州最著名的景点之一,四季景色各异,有苏堤春晓、断桥残雪等著名景点。
2. **宋城**:以宋代文化为背景,结合现代科技手段,展现宋代风情和历史文化的主题公园。
3. **灵隐寺**:位于杭州西郊,是中国著名的佛教寺庙之一,环境幽静,适合静心游览。
4. **西溪国家湿地公园**:是中国第一个国家湿地公园,自然风光优美,可以体验到江南水乡的独特魅力。
5. **杭州乐园**:适合家庭游玩,有各种游乐设施和表演。
6. **雷峰塔**:与白娘子的故事紧密相连,不仅有美丽的传说,还有精美的建筑和周边的风景。
7. **中国茶叶博物馆**:了解中国茶文化的好地方,可以参观茶园,品尝各种名茶。
8. **杭州植物园**:拥有丰富的植物资源,是休闲散步的好去处。

5. 多模态模型推理

5.1 命令行推理

CUDA_VISIBLE_DEVICES=0 MAX_PIXELS=1003520 VIDEO_MAX_PIXELS=50176 FPS_MAX_FRAMES=12 swift infer --model /root/autodl-tmp/Qwen/Qwen2.5-VL-3B-Instruct --stream true --infer_backend pt --max_new_tokens 2048

推理效果如下:

<<< 这两张图有什么区别
Input an image path or URL <<< /root/autodl-tmp/images/cat.png
Input an image path or URL <<< /root/autodl-tmp/images/animal.png
这两张图片的区别在于它们的动物种类和场景。
1. **第一张图片**:
   - 动物:一只小猫。
   - 场景:背景是模糊的,可能是室内环境,但具体细节不清晰。
2. **第二张图片**:
   - 动物:四只羊。
   - 场景:背景是一个绿色的草地,有山丘和蓝天白云,显得非常自然和田园风光。
总结来说,第一张图片展示了一只小猫,而第二张图片展示了四只羊在一个自然的环境中。
--------------------------------------------------

输入 这两张图有什么区别 之后,控制台会自动输出 Input an image path or URL <<< 提示输入图片地址。这里的 标签表示接下来要输入图像数据,两个 说明需要两张图。模型会根据标签位置把图像嵌入到 inputs_embeds 中,再结合文本进行推理。

模型推理消耗 GPU 资源(nvidia-smi 输出):

5.2 Python 推理

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
os.environ['MAX_PIXELS'] = '1003520'
os.environ['VIDEO_MAX_PIXELS'] = '50176'
os.environ['FPS_MAX_FRAMES'] = '12'

from swift.llm import PtEngine, RequestConfig, InferRequest

model = '/root/autodl-tmp/Qwen/Qwen2.5-VL-3B-Instruct'

# 加载推理引擎
engine = PtEngine(model, max_batch_size=2)
request_config = RequestConfig(max_tokens=512, temperature=0)

# 使用 3 个 infer_request 展示 batch 推理(纯文本、图像、视频)
infer_requests = [
    InferRequest(messages=[{'role': 'user', 'content': 'who are you?'}]),
    InferRequest(messages=[{'role': 'user', 'content': '两张图的区别是什么?'}],
                 images=['/root/autodl-tmp/images/cat.png', '/root/autodl-tmp/images/animal.png']),
    InferRequest(messages=[{'role': 'user', 'content': '

代码执行后打印输出如下:

response0: I am a large language model created by Alibaba Cloud. I am called Qwen.
response1: 这两张图片展示了完全不同的主题和风格。以下是它们之间的主要区别:
1. **主题**: - 第一张图片展示了一只可爱的猫咪,具有卡通风格的绘画。 - 第二张图片展示了一群卡通风格的绵羊,背景是一个绿色的草地和山丘。
2. **风格**: - 第一张图片采用了卡通风格,色彩鲜艳,细节丰富,尤其是猫咪的眼睛和表情非常生动。 - 第二张图片同样采用了卡通风格,但更偏向于简洁和可爱,颜色柔和,整体画面更加和谐。
3. **内容**: - 第一张图片中的猫咪是主角,占据了画面的主要部分,显得非常突出。 - 第二张图片中的绵羊是一组角色,每只绵羊都有独特的特征,但都保持了统一的卡通风格。
总结来说,第一张图片专注于一只可爱的猫咪,而第二张图片则是一组卡通风格的绵羊,背景和主题完全不同。
response2: A baby wearing glasses is sitting on a bed and reading a book. The baby is holding the book with both hands and is looking down at it. The baby is wearing a light blue shirt and pink pants. The baby is sitting on a white blanket. The baby is looking at the book and appears to be enjoying it. The baby is not moving much, just slightly shifting its head and body as it reads.

6. 结语

通过本文的系统梳理,相信你对 ms-swift 框架的大模型推理实践已经有了较为全面的了解。从环境搭建到命令行调用,再到 Python 层次的高度灵活控制,每一步都彰显了该框架的实用性与设计巧思。无论你是刚接触大模型的初学者,还是需要深度集成的开发者,ms-swift 都提供了足够灵活且强大的工具,帮助你将大模型的智能能力快速接入实际应用。

希望本文能助你在 ms-swift 的推理之路上少走弯路。后续还可探索更多高级功能与优化技巧,进一步提升模型性能与用户体验。

来源:https://blog.csdn.net/xiaobing259/article/details/147360546
上一篇款免费AI视频总结工具,省时80%收藏必备 下一篇AI一键生成专业课题研究与论文技术路线图
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CapCut AI Docker 一键部署:镜像拉取、端口映射与数据目录配置教程
AI教程 · 2026-06-30

CapCut AI Docker 一键部署:镜像拉取、端口映射与数据目录配置教程

CapCutAI容器化部署需先确认镜像来源与授权范围,再完成环境准备、镜像拉取、端口映射、数据目录挂载和启动验证,适合本地试用、团队内网演示与轻量化AI剪辑服务管理。

CapCut AI Windows本地安装配置2026最新版含下载与环境要求
AI教程 · 2026-06-30

CapCut AI Windows本地安装配置2026最新版含下载与环境要求

CapCutAI与剪映AI在Windows端适合短视频、口播、课程和营销素材剪辑,安装前需确认系统、显卡、存储与网络条件,优先选择官方渠道下载,并完成账号、素材目录、硬件加速和导出参数配置。

Veo新手保姆级安装教程:从下载到首次运行
AI教程 · 2026-06-30

Veo新手保姆级安装教程:从下载到首次运行

Veo适合用文字生成短视频,新手应先确认官方入口、准备账号与设备环境,再按网页或应用方式完成启用。首次运行重点在提示词、参数、素材合规与结果保存,避免使用非官方安装包。

Veo本地模型运行下载路径设置与性能优化指南
AI教程 · 2026-06-30

Veo本地模型运行下载路径设置与性能优化指南

Veo本地模型部署需先确认模型来源与硬件条件,再完成下载校验、目录规划、路径配置和推理参数优化。重点关注显存占用、依赖版本、缓存位置、授权范围与常见报错处理。

Veo安装失败解决指南:常见报错与日志排查及升级回滚方案
AI教程 · 2026-06-30

Veo安装失败解决指南:常见报错与日志排查及升级回滚方案

Veo安装失败通常与系统环境、依赖版本、网络源、权限和缓存有关。排查时应先确认版本要求,再查看安装日志,按报错类型处理,并提前备份项目,确保升级与回滚可控。