大模型部署框架Ollama和vLLM不知怎么选?一文讲透两大框架的优缺点和适用场景

Ollama

在人工智能技术迅猛发展的今天,大型语言模型(LLM)的应用越来越广泛。Ollama作为一款创新的开源框架,为开发者和研究者提供了在本地环境高效部署和运行LLM的全新解决方案。

跨平台安装指南

Ollama支持主流操作系统,安装过程极为简便:

• Linux用户可通过终端一键安装:

wget -O - https://setup.ollama.ai | bash

• macOS用户推荐使用Homebrew:

brew tap ollama/ollama && brew install

• Windows用户可通过WSL轻松部署

模型快速启动示例

启动预训练模型仅需简单指令:

ollama start qwen2.5-14b --detail

添加–detail参数可实时监控token生成速率,便于性能调优。

个性化模型配置

我们可以通过Modelfile可实现深度定制,比如新建下面一个文件:

BASE qwen2.5-14b

# 模型参数设置
SET temperature 0.7
SET context_length 16384
SET max_tokens 8192

# 角色定义
DEFINE ROLE "您是一位专业的技术顾问"

构建自定义模型流程:

ollama build custom-model -c config.mod
ollama activate custom-model --detail

交互方式

  1. 原生API接口调用示例:
import requests

response = requests.post('http://<my_ollama_server_ip>:11434/api/chat', 
    json={
        'model': 'qwen2.5:14b',
        'messages': [
            {
                'role': 'system',
                'content': 'You are a helpful AI assistant.'
            },
            {
                'role': 'user',
                'content': 'What is AI Agent?'
            }
        ],
        'stream': False
    }
)
print(response.json()['message']['content'])
  1. 兼容OpenAI接口的Python实现:
from openai import OpenAI

client = OpenAI(
    base_url="http://<my_ollama_server_ip>:11434/v1",
    api_key="xx"# 可设成任意字符串
)

response = client.chat.completions.create(
    model="qwen2.5:14b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is AI Agent?"}
        ]
)
print(response.choices[0].message.content)

核心功能亮点

  • 实时Token生成特性:我们的系统支持生成即时token,与OpenAI API完全兼容,非常适合用于开发响应式应用。
  • 并行模型运行:我们的系统可以同时操作多个模型,但需要注意一点。当VRAM资源有限时,Ollama会关闭一个模型以启动另一个,所以合理规划资源至关重要。
  • 高度定制化设定:通过API调用,我们可以进行各种自定义设置,尽管这提供了极大的灵活性,但对初学者和用于生产环境的服务器可能不是那么友好。
  • CPU兼容和智能资源管理:如果VRAM资源不足,我们的系统可以智能地将模型转移到CPU上执行,这使得在GPU内存受限的系统上也能够运行大型模型服务。
  • 编程语言无关:你可以自由选择Python、JavaScript、Go等编程语言,或者任何具有HTTP功能的编程语言进行开发。

vLLM

在深度学习推理领域,vLLM框架凭借其卓越的性能表现脱颖而出。作为基于PyTorch构建的专用解决方案,该框架深度融合CUDA加速技术,通过创新性的连续批处理机制、智能内存分配策略以及分布式张量计算能力,为大规模语言模型部署提供了工业级的高效运行环境。

相较于Ollama这类简易工具,vLLM更适合采用容器化部署方案。Docker的标准化环境封装特性能够有效解决跨平台兼容性问题。部署前需确保满足以下技术要求:

  1. Docker运行环境已正确配置
  2. NVIDIA容器运行时支持已安装
  3. 16GB及以上物理内存容量
  4. 配备充足显存的NVIDIA显卡

下载模型

以下演示如何在容器环境中部署Qwen2.5-14B模型:

首先建立模型存储目录并获取量化模型:

mkdir -p model_repository/Qwen2.5-14B/
curl -L https://huggingface.co/lmstudio-community/Qwen2.5-14B-Instruct-GGUF/resolve/main/Qwen2.5-14B-Instruct-Q4_K_M.gguf \
-o model_repository/Qwen2.5-14B/model.gguf

除了使用curl 命令下载模型,也可以通过脚本下载:

export HF_ENDPOINT=https://hf-mirror.com

pip install modelscope

使用modelscope下载并缓存到/usr/local,模型地址可以改成你想要下载的

import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os

from modelscope.hub.api import HubApi
api = HubApi()
# 有的地方需要,key在 modelscope.cn/models 右上角个人那边
# api.login('xxx你的账号对应的key')

model_dir = snapshot_download('Qwen/Qwen2.5-72B-Instruct-AWQ', cache_dir='/usr/local',revision='master')
print(model_dir)

启动模型

我们还需要设置 generation_ config.son 文件, 为了测试方便,这里设置temperature = 0。

{
  "bos_token_id": 151643,
  "pad_token_id": 151643,
  "do_sample": true,
  "eos_token_id": [
    151645,
    151643
  ],
  "repetition_penalty": 1.05,
  "temperature": 0.0,
  "top_p": 0.8,
  "top_k": 20,
  "transformers_version": "4.37.0"
}

因此,需要创建一个文件夹,其中包含这个 JSON 文件,并确保它的名称为 generation_ config. json。然后,使用多个参数运行 docker 容器:

# 需要GPU支持
docker run -it \
    --runtime nvidia \
    --gpus all \
    --network="host" \
    --ipc=host \
    -v ./models:/vllm-workspace/models \
    -v ./config:/vllm-workspace/config \
    vllm/vllm-openai:latest \
    --model models/Qwen2.5-14B-Instruct/Qwen2.5-14B-Instruct-Q4_K_M.gguf \
    --tokenizer Qwen/Qwen2.5-14B-Instruct \
    --host "0.0.0.0" \
    --port 5000 \
    --gpu-memory-utilization 1.0 \
    --served-model-name "VLLMQwen2.5-14B" \
    --max-num-batched-tokens 8192 \
    --max-num-seqs 256 \
    --max-model-len 8192 \
    --generation-config config

这些参数的含义如下:

--runtime nvidia --gpus all: 启用对容器的 NVIDIA GPU 支持。
--network="host": 使用主机网络模式以获得更好的性能。
--ipc=host:  允许主机和容器之间共享内存。
- v ./model:/vllm-workspace/model: 将本地模型目录装入容器,目录包含了示例的Qwen2.5–14B模型
--model: 指定 GGUF 模型文件的路径。
--tokenizer: 定义要使用的 HuggingFace tokenizer。
--gpu-memory-utilization 1: 将 GPU 内存使用率设置为 100% 。
--served-model-name: 通过 API 提供服务时模型的自定义名称,可以指定所需的名称。
--max-num-batched-tokens: 批处理中的最大token数量。
--max-num-seqs: 同时处理的序列的最大数目。
--max-model-len: 模型的最大上下文长度。

交互方式

  1. 原生API接口调用示例:
import requests

response = requests.post('http://192.168.123.23:5000/v1/chat/completions', 
    json={
        'model': 'VLLMQwen2.5-14B',
        'messages': [
            {
                'role': 'system',
                'content': 'You are a helpful AI assistant.'
            },
            {
                'role': 'user',
                'content': 'What is artificial intelligence?'
            }
        ],
        'stream': False
    }
)
print(response.json()['choices'][0]['message']['content'])

  1. 兼容OpenAI接口的Python实现:
from openai import OpenAI

client = OpenAI(
    base_url="http://<my_vLLM_server_ip>:5000/v1",
    api_key="xx"
)

response = client.chat.completions.create(
    model="VLLMQwen2.5-14B",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is AI Agent?"}
        ]
)
print(response.choices[0].message.content)

核心功能亮点

vLLM被专门设计用于高性能推理和生产环境,其主要特点包括:

  • 优化的GPU效能:通过CUDA和PyTorch的配合使用,我们充分发挥了GPU的潜力,从而实现更迅速的推理过程。
  • 批处理功能:我们实现了连续的批处理和高效的内存管理,以此来提升多个并行请求的吞吐量。
  • 安全性:内建API密钥支持和正确的请求验证机制,而不是直接忽视身份验证。
  • 灵活的部署方式:全面支持Docker,可以对GPU内存使用和模型参数进行精细控制。

Ollama vs vLLM

  1. 性能表现:基准测试显示vLLM具有明显的速度优势,单请求处理时token生成速率较Ollama提升超过15%(实测数据:vLLM 29 token/s vs Ollama 25 token/s)

  2. 并发处理能力:vLLM采用先进的资源调度算法,可高效处理高并发请求;而Ollama在并行请求处理方面存在架构限制,即使少量并发请求(如4个)也会导致系统资源争用问题。

  3. 开发便捷性:Ollama凭借极简的交互设计脱颖而出,开发者通过单行命令即可实现模型交互;相较之下,vLLM需要掌握容器化部署技术,并需理解各类性能调优参数。

  4. 生产就绪度:vLLM的工业级特性使其成为企业级部署的首选,包括多家知名AI服务商在内的技术团队都采用其作为核心推理引擎。该框架支持细粒度的资源分配和弹性扩展,完美适配云原生环境。

  5. 安全机制:vLLM内置完善的认证体系,支持基于token的访问控制;而Ollama默认采用开放式访问模式,需要额外配置网络层防护措施来保证服务安全。

  6. 技术支持体系:Ollama的文档注重快速上手体验,但技术实现细节相对匮乏,社区论坛中的关键技术问题经常得不到有效解答。vLLM则建立了立体化的技术支持体系,包括:

  • 详尽的API规范文档
  • 性能调优白皮书
  • 活跃的开发者社区
  • 专门的技术门户网站
对比维度OllamavLLM
核心定位轻量级本地大模型运行工具(适合个人开发/实验)生产级大模型推理框架(适合企业/高并发场景)
部署难度简单:一键安装,支持 Mac/Linux/Windows(WSL)较复杂:依赖 Python 环境,需手动配置 GPU 驱动和 CUDA
硬件要求低:CPU 可用(推荐 16GB+ 内存),可选 GPU 加速高:必须 NVIDIA GPU(显存越大越好),依赖 CUDA 计算
模型支持内置主流开源模型(Llama2、Mistral、DeepSeek 等),自动下载预训练模型支持 HuggingFace 格式模型,需手动下载和转换模型文件
运行性能中等:适合单次问答、小规模交互极高:优化了显存管理和批处理,支持千级别并发请求
使用场景个人学习、本地测试、快速原型开发企业级 API 服务、高并发推理、云端部署
交互方式命令行直接对话,支持类似 ChatGPT 的交互界面需通过 API 调用(OpenAI 兼容接口),无内置对话界面
资源占用灵活:可调整 CPU/内存占用,适合低配电脑固定:显存占用量大,需预留资源应对峰值负载
扩展性有限:专注于单机本地化运行强:支持分布式部署、动态批处理、多 GPU 并行
新手友好度极高:开箱即用,无需代码基础中等:需了解 Python 和 API 开发基础
社区支持活跃的开发者社区,文档清晰学术团队维护,更新频繁但偏向技术文档
典型用途写代码、翻译、文案生成等个人任务构建智能客服、批量文档处理、AI 赋能业务系统

总结

如果你想在本地或远程服务器上快速试验大模型,Ollama是理想之选,其易用性让初次使用大型语言模型的开发者能平滑入门。而对于注重性能、可扩展性和资源优化的生产环境,vLLM表现出色,高效处理并行请求和优化GPU利用,且文档完备,使其成为生产环境大规模部署的强力候选者,尤其在充分挖掘硬件性能方面。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值