AI大模型ms-swift框架实战指南(七):InternVL 2.5部署推理实战

系列篇章💥

No.文章
1AI大模型ms-swift框架实战指南(一):框架基础篇之全景概览
2AI大模型ms-swift框架实战指南(二):开发入门之环境准备
3AI大模型ms-swift框架实战指南(三):模型部署初体验
4AI大模型ms-swift框架实战指南(四):大模型推理实践完全指南
5AI大模型ms-swift框架实战指南(五):大模型推理加速技术揭秘
6AI大模型ms-swift框架实战指南(六):本地部署Chat对话全流程
7AI大模型ms-swift框架实战指南(七):InternVL 2.5部署推理实战


前言

MS-Swift框架就像一把精心打造的万能钥匙,能精准地打开大模型在本地高效部署的大门。通过它,开发者和AI爱好者可以突破云端限制,在本地打造强大的智能计算中心,深度掌控和灵活使用大模型。本文将作为您的向导,带您深入MS-Swift框架的大模型本地部署实战。文章会详细讲解从环境准备到框架安装配置,再到模型下载、部署和推理测试的每一个关键步骤,毫无保留地分享实操要点。无论您是AI领域的专业人士,还是初入行的爱好者,都能从本文中获取实用知识,快速掌握核心技能,开启本地大模型应用之旅,在AI领域自由探索。

一、环境准备

本次部署选用 Ubuntu 22.04 操作系统,搭配 Python 3.10 与 PyTorch 2.1.2。计算硬件为一块 NVIDIA GeForce RTX 4090D GPU,显存 24GB,同时安装 Cuda 11.8,确保环境稳定高效,满足运行需求。

二、安装相关依赖

(一)安装swift

如果想根据自己的需求调整框架里的代码,那就从 GitHub 上把 ms-swift 的源代码下载到本地。这样不仅装好了框架,以后修改源代码,马上就能看到效果,方便你定制框架。

  1. 首先,从GitHub上克隆ms-swift仓库到本地。在终端中执行以下命令:
git clone https://github.com/modelscope/swift.git

这将把ms-swift的源代码下载到本地机器。
在这里插入图片描述

  1. 进入克隆后的目录:
cd swift

克隆的代码如下:
在这里插入图片描述

  1. 然后使用pip安装ms-swift,同时安装相关的依赖项:
pip install -e .

执行如下:
在这里插入图片描述

这种安装方式允许您在开发过程中对源代码进行修改,并立即生效,适用于需要对框架进行定制或参与开发的用户。

(二)安装vllm

为进一步提升模型推理速度,别忘安装 vllm,在 bash 环境下执行 “pip install vllm”,简单一步为后续模型运行注入强大动力。

# vllm加速
pip install vllm

安装如下:
在这里插入图片描述

三、模型下载

在进行模型训练或推理之前,我们需要下载相应的模型。可以从modelscope获取模型,以下以下载OpenGVLab/InternVL2_5-4B模型为例,展示在不同操作系统下的下载命令。

(一)安装lfs

由于一些大模型的文件体积过于庞大,普通的下载方法难以满足需求,此时我们需要借助git - lfs这一强大的工具。git - lfs(Git Large File Storage)专门用于处理大文件的存储和传输,能够确保大模型文件的下载过程稳定、高效。

  1. 在终端中,首先运行“curl -s https://packagecloud.io/install/repositories/github/git - lfs/script.deb.sh | sudo bash”,这一步是在下载并执行安装git - lfs的脚本。该脚本会自动配置好相关的安装环境和依赖项,为后续的安装工作做好铺垫。
  2. 接着执行“sudo apt - get install git - lfs”,这一命令将正式安装git - lfs到您的系统中。安装完成后,git - lfs就能够稳稳地将大模型文件从远程服务器下载到本地,确保文件的完整性和下载速度。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs

安装如下:
在这里插入图片描述

(二)下载模型

以从modelscope下载OpenGVLab/InternVL2_5 - 4B模型为例,在终端中输入以下命令:

 git clone https://www.modelscope.cn/OpenGVLab/InternVL2_5-4B.git

这条命令会将OpenGVLab/InternVL2_5 - 4B模型的文件完整无误地下载到本地。
执行如下:
在这里插入图片描述

查看下载文件:下载完成后,务必仔细核对下载的文件。将本地下载的文件与模型库中的清单进行详细比对,确保每一个文件都完整无缺地被下载到本地。这一步骤至关重要,因为任何文件的缺失或损坏都可能导致后续模型无法正常使用,影响整个部署和应用流程。

四、模型部署

(一)部署模型服务

使用swift 部署模型,并且使用vLLM进行加速

CUDA_VISIBLE_DEVICES=0 swift deploy \
    --model /root/autodl-tmp/InternVL2_5-4B \
--infer_backend vllm

指定 0 号 GPU 设备,指向本地模型路径并启用 vllm 推理后端,瞬间激活大模型,使其随时待命,输出智能结果。
部署成功如下:
在这里插入图片描述

部署成功后,会在终端显示相应的成功提示信息,同时模型将通过8000端口提供相关的API服务,等待用户的调用。

(二)模型服务调用

模型部署成功后,我们可以使用cli命令脚本调用模型服务,与模型进行交互。以下是具体的调用示例:

  1. 首次调用,询问模型“你是谁?”
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "InternVL2_5-4B",
"messages": [{"role": "user", "content": "你是谁?"}],
"temperature": 0
}'

模型API返回响应结果如下:

{"model":"InternVL2_5-4B","choices":[{"index":0,"message":{"role":"assistant","content":"我是书生·万象,英文名是InternVL,是由上海人工智能实验室、清华大学及多家合作单位联合开发的多模态大语言模型。","tool_calls":null},"finish_reason":"stop","logprobs":null}],"usage":{"prompt_tokens":48,"completion_tokens":33,"total_tokens":81},"id":"e23545a9e21143ca8e16833a556fc796","object":"chat.completion","created":1736239621}

从响应结果中,我们可以清晰地看到模型对问题的回答,以及相关的使用信息,如提示词的token数量、完成回答的token数量、总token数量等。
2. 再次调用测试,询问模型“请介绍一下AI大模型”

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "InternVL2_5-4B",
"messages": [{"role": "user", "content": "请介绍一下AI大模型"}],
"temperature": 0
}'

响应如下:

{"model":"InternVL2_5-4B","choices":[{"index":0,"message":{"role":"assistant","content":"AI大模型是指使用深度学习技术构建的大型神经网络模型,通常用于自然语言处理、计算机视觉、语音识别等领域。这些模型通常由数百万个神经元组成,可以处理大量的数据,并且可以自动学习和优化模型参数,从而提高模型的准确性和性能。AI大模型的训练需要大量的计算资源和数据,因此通常需要使用GPU或TPU等高性能计算设备。","tool_calls":null},"finish_reason":"stop","logprobs":null}],"usage":{"prompt_tokens":50,"completion_tokens":87,"total_tokens":137},"id":"86e996e4e1504c6aaeec0c7999d2c080","object":"chat.completion","created":1736239679}

(三)模型推理测试

除了通过API服务调用模型,我们还可以使用swift infer命令进行模型推理,直接使用模型来生成输出或预测。这一方式为我们提供了一种更加灵活、便捷的方式来测试模型的性能。

CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --model /root/autodl-tmp/InternVL2_5-4B \
    --infer_backend pt \
--stream true

在这个命令中:

  1. “CUDA_VISIBLE_DEVICES=0”明确指定使用0号GPU设备,为推理任务分配硬件资源,确保模型能够在最佳的硬件环境下运行。
  2. “–model /root/autodl-tmp/InternVL2_5-4B”精准指向模型的完整路径,确保命令能够找到模型所在位置,顺利启动推理过程。
  3. “–infer_backend pt”指定使用PyTorch (pt)作为推理后端,发挥其强大的计算能力,实现高效、准确的推理。
  4. “–stream true”开启了连续数据流模式,特别适用于处理实时数据或连续的信息流,让推理过程更加流畅高效。

推理命令执行后,可以看到如下效果:
在这里插入图片描述

模型推理实践测试:

<<< 你是谁?
我是书生·万象,英文名是InternVL,是由上海人工智能实验室、清华大学及多家合作单位联合开发的多模态大语言模型。
--------------------------------------------------
<<< 请介绍一下LLM
LLM,全称为Large Language Model,即大型语言模型。它是一种基于深度学习的自然语言处理技术,通过大规模的语料库训练,学习语言的结构、语法、语义和上下文关系,从而能够理解和生成自然语言文本。

大型语言模型通常由多个神经网络层组成,每个层都包含大量的参数。这些参数通过反向传播算法进行优化,以最小化预测输出与实际输出之间的差异。在训练过程中,模型会不断地调整参数,以提高其预测的准确性。

大型语言模型在自然语言处理领域具有广泛的应用,例如机器翻译、文本生成、问答系统、情感分析等。它们已经成为许多自然语言处理任务的基准模型,为后续的研究和应用提供了重要的基础。
--------------------------------------------------
<<< 你是哪一年发布的?
我是书生·万象,英文名是InternVL,是由上海人工智能实验室、清华大学及多家合作单位联合开发的多模态大语言模型。我是在2023年发布的。
--------------------------------------------------
<<< 今年是哪一年?
今年是2023年。
--------------------------------------------------
<<< 今天天气怎么样?
很抱歉,我无法获取实时天气信息。建议您查看当地的天气预报或使用天气应用程序来获取最新的天气信息。

五、总结

回顾全程,从环境搭建的严谨筹备,到 MS-Swift 框架的多元安装,再到模型下载与部署的精准操作,每一步都紧密相扣。通过这次实战,我们不仅掌握了本地部署大模型的核心技能,更为后续创新应用开启无限可能。未来,可依项目需求灵活优化,让 MS-Swift 与大模型组合在本地大放异彩。

在这里插入图片描述

🎯🔖更多专栏系列文章:AI大模型提示工程完全指南AI大模型探索之路(零基础入门)AI大模型预训练微调进阶AI大模型开源精选实践AI大模型RAG应用探索实践🔥🔥🔥 其他专栏可以查看博客主页📑

😎 作者介绍:资深程序老猿,从业10年+、互联网系统架构师,目前专注于AIGC的探索(CSDN博客之星|AIGC领域优质创作者)
📖专属社群:欢迎关注【小兵的AI视界】公众号或扫描下方👇二维码,回复‘入群’ 即刻上车,获取邀请链接。
💘领取三大专属福利:1️⃣免费赠送AI+编程📚500本,2️⃣AI技术教程副业资料1套,3️⃣DeepSeek资料教程1套🔥(限前500人)
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我们,一起携手同行AI的探索之旅,开启智能时代的大门!

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻道AI小兵

🐳 感谢你的巨浪支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值