前言

上篇文章 大模型训练全流程实战指南基础篇(二)——大模型文件结构解读与原理解析剖析了大模型的核心文件组成与生成原理,并通过实战演示了从模型加载到文本生成的完整流程。那么在实际应用中,诸如 DeepSeek、豆包这类大家日常使用的大模型,究竟是如何高效部署并支撑大规模调用呢?本篇笔者与大家一起实战两种主流部署方案:适合本地快速实验的 Ollama 部署面向生产环境的高性能 Vllm 部署。笔者将从环境准备、部署步骤到调用示例逐一展开,帮助大家在不同场景下都能顺利搭建自己的大模型服务。(温馨提示:本章内容较长,但详实记载了本地部署的相关步骤,并给出了优化指南,大家如果对部署本地大模型不熟悉可收藏阅读,感谢支持)。

大模型训练对计算资源有一定要求,尤其是GPU显存。为降低学习门槛,笔者与国内主流云平台合作,大家可以通过打开链接: https://www.lab4ai.cn/register?agentID=user-XorgKKc56U ,体验H100 GPU 6.5小时的算力。本系列所有实战教程均将在该平台上完成,帮助大家低成本上手实践。

除大模型训练外,笔者也在同步更新《深入浅出LangChain&LangGraph AI Agent 智能体开发》免费专栏,要说明该专栏适合所有对 LangChain 感兴趣的学习者,无论之前是否接触过 LangChain。该专栏基于笔者在实际项目中的深度使用经验,系统讲解了使用LangChain/LangGraph如何开发智能体,目前已更新 37 讲,并持续补充实战与拓展内容。欢迎感兴趣的同学关注笔者的CSDN账号与专栏,也可关注笔者的同名微信公众号大模型真好玩,每期分享涉及的代码均可在公众号私信: LangChain智能体开发免费获取。

一、本地部署大模型优势

相信很多同学和我一样,平时会直接使用 DeepSeek、通义千问等提供的 API 服务——这种方式确实方便快捷。既然云端调用如此便利,为什么还要学习本地部署大模型呢?

在这里插入图片描述

与云端部署相比,将大模型部署在本地通常具备以下几点优势:

  1. 数据隐私与安全可控
    许多企业会使用内部数据训练或微调大模型,在这个过程中难免需要模型参与数据处理。为避免企业机密、个人隐私或受监管数据上传至第三方平台,本地部署能更好地满足数据合规要求,保障数据不出域。
  2. 完全自主的控制权
    云端服务可能因厂商限速、服务中断或模型版本更新而导致调用失败或效果波动(例如年初 DeepSeek 服务受攻击,或平时忘记续费导致调用失败)。本地部署则确保模型版本、服务稳定性完全由自己掌控,避免因外部因素影响业务连续性。
  3. 长期成本更可控
    虽然初期需要投入硬件与部署成本,但长期使用边际成本极低,尤其适合高频调用或规模化应用场景。这也避免了因供应商定价策略调整而带来的不确定性,有利于长期项目规划。

综上所述,对于重视数据安全、需要稳定服务或长期成本控制的企业、科研团队及开发者来说,掌握本地部署大模型的能力具有重要价值。它不仅是技术保障,也逐渐成为一项核心竞争优势。

接下来,笔者将为大家分享两种实用的部署方案:适合生产环境的高性能 Vllm 部署方案,以及适合本地快速实验的 Ollama 部署方案。

二、VLLM大模型部署方案

2.1 认识VLLM

虽然可以使用 transformers 库来完成大模型的调用和推理,但在生产环境中往往需要更高的推理效率。为此专为高性能推理的 vllm 库应运而生。

vLLM 是加州大学伯克利分校开发的一个 Python 库,其核心优势在于创新的内存管理技术、高效的任务调度能力,以及出色的易用性和兼容性。这使得它能在相同硬件上显著提升模型推理的吞吐量与并发处理能力。因此,vLLM 非常适合需要快速响应、高并发的生产环境。

值得注意的是,vLLM 目前仅支持 Linux 系统,在 Windows 下无法使用。如果大家使用的是 Windows 环境,可以考虑下文将介绍的 Ollama 框架作为替代方案。
在这里插入图片描述

vllm的核心优势总结主要有以下几点:

  1. 极致的内存效率: 利用分页注意力机制和KV缓存, 将显存利用率提高到90%
  2. 极高的吞吐量与并发: 动态合并新请求到正在进行的批处理中,持续“榨干”GPU算力,吞吐量可达传统静态批处理的2.8倍
  3. 开箱即用的易用性: vllm与 HuggingFace 无缝集成,更是提供 OpenAI兼容的API,无需复杂转换即可加载主流开源模型;现有应用可无缝迁移,极大降低部署门槛。

2.2 VLLM大模型部署方案实战

既然vllm部署有这么大的优点,那接下来必然要学习一下vllm的部署方法了,本次实验环境同样是在九章云极算力平台下进行部署,大家可以通过打开链接: https://www.lab4ai.cn/register?agentID=user-XorgKKc56U ,免费体验H100 GPU 6.5小时的算力。本系列所有实战教程均将在该平台上完成,帮助大家低成本上手实践。

  1. 创建实例: 打开Lab4AI官网,新建一个 VS Code 云实例。
    在这里插入图片描述

  2. 选择镜像: 在新建实例页面,选择适合的镜像并完成创建。

    在这里插入图片描述

    在这里插入图片描述

  3. 检查环境: 点击 VS Code 中的 Terminal,可以看到系统已预置名为 lf 的 Anaconda 虚拟环境,其中已安装 llamafactory 库及其依赖(包括 vLLM)。
    执行 pip show vllm 可查看当前 vLLM 版本。大家也可以通过 pip install vllm==xxx 安装指定版本,但预置版本通常已足够新。

    在这里插入图片描述

  4. 查看显存: vLLM 对显存要求较高。执行 nvidia-smi 命令查看当前 GPU 资源。如图所示,环境配备了一块 80G 显存的 H100 显卡。
    注意:一个 32B 参数模型约需 66G 显存,H100 单卡部署可能紧张。为便于演示,笔者选用更轻量的 Qwen3-4B 模型。

    在这里插入图片描述

  5. 下载模型: 运行大模型第一步首先要下载大模型,大家还记得 大模型训练全流程实战指南基础篇(二)——大模型文件结构解读与原理解析 上一小节内容中教大家如何从modelscope处获得模型的方法吧,访问 ModelScope 官网,搜索 Qwen3-4B 模型。点击下载,页面会显示下载命令。

    在这里插入图片描述

  6. 执行下载: 在终端执行以下命令modelscope download --model Qwen/Qwen3-4B --local_dir ./Qwen3-4B将Qwen3-4B模型下载到当前目录下的Qwen3-4B文件夹中。下载完成后情况如下:

    在这里插入图片描述

  7. 启动 vLLM 服务: 模型就绪后,执行以下命令启动兼容 OpenAI API 格式的推理服务器:vllm serve ./Qwen3-4B/ --served-model-name Qwen3-4B --max-model-len 32768 --gpu-memory-utilization 0.9 --port 6666 即可开启兼容OpenAI格式请求的服务器,服务成功启动后,终端会显示运行日志:

    在这里插入图片描述

  8. 测试调用: 在服务器根目录下新建 test.py 文件,并写入以下测试代码(因启动时未指定 API Key,此处可任意填写)。执行 python test.py,成功返回模型响应即表示部署成功。

    from openai import OpenAI
    client = OpenAI(base_url="http://localhost:6666/v1", api_key="EMPTY")
    response = client.chat.completions.create(model="Qwen3-4B", messages=[{"role": "user", "content": "你好"}])
    print(response.choices[0].message.content)
    

    在这里插入图片描述

以上就是使用 vLLM 本地部署大模型的完整流程。掌握本地大模型服务的部署能力,对于后续的数据治理、模型训练与部署都至关重要。

2.3 VLLM常用部署参数详解

上一节仅展示了部分命令行参数,下表列出了更多生产中常用的参数及其说明:

参数 推荐值 作用说明
--max-model-len 32768 设置模型的最大上下文长度,Qwen3模型支持32K上下文。
--gpu-memory-utilization 0.8-0.95 GPU显存利用率,值越高预留空间越少。
--tensor-parallel-size GPU数量 张量并行大小必须等于使用的GPU数量(默认单卡为1),如果你使用两张卡,这里就是2,注意数目只能是2^n次。
--max-num-seqs 256 同时处理的最大请求数,影响并发能力。
--enforce-eager (无值) 在Ascend NPU上运行可能需要添加此参数,以避免编译错误。
--api-key abc123 设置API密钥,增加基础安全性。
--enable-function-calling (无值) 启用工具功能(之后笔者会讲解)
--pipeline-parallel-size GPU数量 流水线并行大小,流水线通过将模型层分布到多个GPU,每个GPU顺序处理,可与tensor-parallel-size参数合用
--enable-expert-parallel True or False 针对MoE模型的优化,例如DeepSeek-V3等模型,平衡不同MoE专家计算开销

根据以上参数,如果需要使用 4 张 GPU 来推理 Qwen3-32B 模型,命令应如下所示:

vllm serve \
    --model “Qwen3-32B模型所存位置” \
    --tensor-parallel-size 4 \
    --trust-remote-code \
    --gpu-memory-utilization 0.8 \
    --max-num-seqs 32 \
    --max-model-len 8192 \
    --port 8000

参数组合清晰明了,相信大家都已经学会啦!

2.4 VLLM优化技巧

其实在实际生产环境中为了最大限度的压榨算力,还有很多的vllm的优化技巧,笔者常用的技巧有如下2点:

  1. 多实例负载均衡
    当有多个相同模型同时部署时(例如 8 张卡,每 2 张部署一个 Qwen3-32B,共 4 个实例),可在前端使用 Nginx 做负载均衡,实现吞吐量的线性增长。(如有需要,笔者后续可专门分享此方案。)
  2. 超大模型部署策略
    部署参数量极大的模型时,需要合理组合 TP(张量并行)PP(流水线并行)EP(专家并行) 策略。通常可以适当调大 TP 和 PP,并将 EP 设为 True,以在多 GPU 同步开销与整体性能之间取得最佳平衡。

三、Ollama大模型部署方案

3.1 认识Ollama

VLLM 部署方案虽然强大,但它主要面向生产环境,需要 Linux 系统和高性能显卡。如果大家想在个人电脑上快速体验模型,或者在 Windows 系统中进行本地调用,有什么更轻便的方案呢?Ollama 正是为此而生。

在这里插入图片描述

ollama是在llama.cpp基础上封装的简化的本地部署工具,提供了一键运行功能,非常适合大家非技术模型的快速验证。与vllm相比主要有如下三点优势:

  1. 部署极其简单,开箱即用:Ollama提供一键安装脚本和简单的命令行操作,下载后即可快速运行模型,非常适合个人快速体验。而vLLm通常需要配置Python环境、安装CUDA依赖并进行更多初始化设置,门槛相对较高。
  2. 对个人硬件更友好,资源要求低:Ollama专注于在消费级硬件(包括苹果芯片、普通CPU和消费级GPU)上运行。它通过高效的模型量化技术,能用更少的内存或显存运行大模型(不一定需要显卡,内存也可以)。
  3. 内置模型库,管理模型非常便捷:Ollama内置了一个包含大量主流开源预量化模型的“应用商店”。大家可以像安装软件一样,通过一条命令(如 ollama pull Qwen3:4b, 现在甚至不需要命令在界面也可以操作)轻松拉取、运行和切换不同模型,无需手动处理复杂的模型转换和优化步骤。

3.2 ollama部署实战演示

下面笔者以 Windows 系统为例,演示如何安装和使用 Ollama 部署大模型。目前最新版本的 Ollama 已提供图形界面,可方便地配置模型路径。若想了解更多细节或使用旧版本,可参考笔者之前的文章:人工智能大模型入门分享(一)——利用ollama搭建本地大模型服务(DeepSeek-R1)

  1. 下载安装包: 访问 Ollama 官网,点击右上角 “Download” 按钮,选择 Windows 系统并下载安装包。

    在这里插入图片描述

  2. 安装软件: 双击下载好的 .exe 文件,点击 “Install” 完成安装,默认安装至 C 盘。

    在这里插入图片描述

  3. 修改模型存放路径: 安装完成后,建议先打开软件设置,将模型保存目录修改到非系统盘(如 D 盘或 E 盘),以避免占用过多系统空间。

    在这里插入图片描述
    在这里插入图片描述

  4. 查找模型:Ollama 官网 的模型搜索页中,搜索 qwen3:

    在这里插入图片描述

  5. 下载并运行模型: 进入 Qwen3 模型页面,页面会显示运行命令 ollama run qwen3(默认下载 8B 版本)。若想下载 4B 版本,则执行以下命令:

    在这里插入图片描述

    在这里插入图片描述

  6. 在 Ollama 界面中测试: 下载完成后,可直接在 Ollama 自带的对话界面中输入问题进行测试。

    在这里插入图片描述
    在这里插入图片描述

  7. 通过 OpenAI 兼容 API 调用: Ollama 同样提供兼容 OpenAI 格式的 API 服务(默认端口为 11434)。可以通过以下 Python 代码进行调用(若本地未安装 openai 库,需先执行 pip install openai):

    from openai import OpenAI
    client = OpenAI(base_url="http://localhost:11434/v1", api_key="EMPTY") #api_key随便填
    response = client.chat.completions.create(model="qwen3:4b", messages=[{"role": "user", "content": "你好"}])
    print(response.choices[0].message.content)
    

    在这里插入图片描述

  8. 了解模型存储结构: Ollama 下载的模型默认保存在你设置的目录下(例如 E:\Ollama\models)。目录内主要包含两个文件夹:

    • blobs:存放模型具体的二进制文件(通常以 sh 开头的哈希文件命名)。
    • manifests:存放模型的元数据信息,用于定义哪些文件属于哪个模型。

    在这里插入图片描述

    在这里插入图片描述

  9. 更多配置: 如需了解更详细的配置选项(如修改端口、启用 GPU 等),可参考笔者之前的文章: 人工智能大模型入门分享(一)——利用ollama搭建本地大模型服务(DeepSeek-R1),非常简单,这里就不再赘述了~

3.3 ollama与量化

细心观察的大家会发现:在 Ollama 中下载的 Qwen3-4B 模型只有约 2.5 GB,而在 ModelScope 下载的原始模型却有 8.1 GB。Ollama 用了什么“魔法”让模型变得如此小巧?这背后的关键技术就是模型量化

大模型训练全流程实战指南基础篇(二)——大模型文件结构解读与原理解析 文章中大家了解到,大模型主要由结构和大量参数构成,保存这些参数占用了绝大部分存储空间。

这些参数的储存形式通常都是浮点数,量化就是把浮点数的有效数字的位数进行缩小,举个形象的例子,圆周率可以用3.1415926535来表示,然而默认3.14也可以表示圆周率,存储3.1415926535要11位数字,存储3.14只需要3位数字,存储位数少了,存储模型的大小也自然小了。在大模型上就是把FP16的格式量化为INT4格式,将有效位数从16位降到4位。

在这里插入图片描述
在这里插入图片描述

Ollama 是基于 llama.cpp 构建的,llama.cpp 是一个高性能的纯 C/C++ 大语言模型推理框架,支持在 CPU 或 GPU 上高效运行,并能够将原始模型进行量化,显著减少模型体积。量化后的模型可以方便地发布和部署,因此 Ollama 默认使用量化后的模型。

进一步来说,llama.cpp 在转换模型时通常将其保存为 GGUF 格式。这是一种由 llama.cpp 创始人设计的二进制格式,针对高效推理进行了优化。与 Transformer 原生使用的 *.safetensors 格式不同,GGUF 格式通常将所有模型数据整合为单一文件。Ollama 原生支持该格式,这也解释了为什么在 Ollama 后端文件中会有一个体积特别大的文件——它本质上就是整个量化后的模型。

以上就是笔者今天分享的全部内容啦!本教程示例代码可以关注笔者同名公众号:大模型真好玩,并私信大模型训练免费获得。

要想完全学懂还是需要亲手实践一下,大家可以照着笔者的教程亲手实践一遍。为降低大家学习门槛,笔者与国内主流云平台合作,大家可以通过打开链接: https://www.lab4ai.cn/register?agentID=user-XorgKKc56U ,体验H100 GPU 6.5小时的算力。本系列所有实战教程均将在该平台上完成,帮助大家低成本上手实践。

四、总结

本期内容详细分享了两种主流本地部署方案:面向生产环境、支持高并发的高性能 VLLM 部署(适合Linux系统),以及面向个人快速体验、对硬件要求低的轻量级 Ollama 部署(支持Windows),提供了从环境准备到代码调用的完整实战步骤,并解释了模型量化原理,旨在帮助读者在不同场景下快速搭建自己的大模型服务。

本地部署的大模型作为万能的api, 可以编写调用脚本进行自然语言处理任务的批处理,将来我们数据处理流程一定会用到。下期分享笔者将为大家讲解大模型请求的各种方式,帮助大家掌握利用大模型api开发各种各样应用的能力,大家敬请期待!大家读完感兴趣可以关注笔者的同名微信公众号:大模型真好玩,获取本系列分享以及其它系列分享的全部内容。

大模型训练对计算资源有一定要求,尤其是GPU显存。为降低学习门槛,笔者与国内主流云平台合作,大家可以通过打开链接: https://www.lab4ai.cn/register?agentID=user-XorgKKc56U,体验H100 GPU 6.5小时的算力。本系列所有实战教程均将在该平台上完成,帮助大家低成本上手实践。

除大模型训练外,笔者也在同步更新《深入浅出LangChain&LangGraph AI Agent 智能体开发》免费专栏,要说明该专栏适合所有对 LangChain 感兴趣的学习者,无论之前是否接触过 LangChain。该专栏基于笔者在实际项目中的深度使用经验,系统讲解了使用LangChain/LangGraph如何开发智能体,目前已更新 37 讲,并持续补充实战与拓展内容。欢迎感兴趣的同学关注笔者的CSDN账号与专栏,也可关注笔者的同名微信公众号大模型真好玩,每期分享涉及的代码均可在公众号私信: LangChain智能体开发免费获取。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐