Ollama vs VLLM:大模型推理性能全面测评!

最近在用本地大模型跑实验,一开始选择了ollama,分别部署了Qwen2.5-14B和Qwen2.5-32B,发现最后跑出来的实验效果很差,一开始一直以为prompt的问题,尝试了不同的prompt,最后效果还是一直不好。随后尝试了vllm部署Qwen2.5-14B,竟然发现指标提升了好多【不太清楚为什么最终效果能差这么多】…也有点迷惑,所以这篇文章就分析一下ollama和vllm有什么不同

Ollama

基本介绍

Ollama是一个支持在Windows、Linux和MacOS上本地运行大语言模型的工具。它允许用户非常方便地运行和使用各种大语言模型,比如Qwen模型等。用户只需一行命令就可以启动模型。

主要特点

  1. 跨平台支持Windows、Linux、MacOS系统。
  2. 提供了丰富的模型库,包括Qwen、Llama等1700+大语言模型,可以在官网model library中直接下载使用。
  3. 支持用户上传自己的模型。用户可以将huggingface等地方的ggml格式模型导入到ollama中使用。也可以将基于pytorch等格式的模型转换为ggml格式后导入。
  4. 允许用户通过编写modelfile配置文件来自定义模型的推理参数,如temperature、top_p等,从而调节模型生成效果。
  5. 支持多GPU并行推理加速。在多卡环境下,可以设置环境变量来指定特定GPU。

总的来说Ollama降低了普通开发者使用大语言模型的门槛,使得本地部署体验大模型变得简单易行。对于想要搭建自己的AI应用,或者针对特定任务调优模型的开发者来说,是一个非常有用的工具。它的一些特性,如允许用户自定义模型参数,对模型进行个性化适配提供了支持。

官网

  • Ollama 下载:https://ollama.com/download

  • Ollama 官方主页:https://ollama.com

  • Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/

安装

安装方法官网已经说的很详细了

  • Linux 安装

Ollama提供了一键安装脚本,可以快速在Linux系统上安装Ollama。
安装步骤如下:

打开终端,执行以下命令下载安装脚本:

curl -fsSL https://ollama.com/install.sh | sh   

等待安装完成。安装脚本会自动下载所需的组件,并完成Ollama的安装与配置。

安装完成后,可以通过以下命令启动Ollama:

ollama serve   

下载模型

ollama下载模型很简单,直接一行命令完成了,比如我下载qwen:14b,直接运行

ollama run qwen2.5:14b

Vllm

vLLM(virtual Large Language Model)是一个专门为大规模语言模型设计的高效推理框架,它通过多种技术手段显著提高了推理性能和可扩展性。vLLM对Linux系统兼容性相对来说更好一点。

基本介绍

主要特点

  1. 效内存管理:采用了高效的内存管理策略,能够在有限的硬件资源上运行更大规模的模型。利用分布式内存管理技术和优化的数据流处理,有效降低了内存占用。
  2. 并行计算:借助并行计算技术,vLLM 可以在多 GPU、多节点的环境下进行高效的模型推理,大幅提高了处理大规模数据集的速度。
  3. 动态批处理:支持动态批处理,能够根据输入数据的不同自动调整批处理大小和计算资源的分配,从而优化推理效率。
  4. 模型压缩:为进一步提高效率,vLLM 还支持多种模型压缩技术,如量化、剪枝等。这些技术在不显著降低模型性能的前提下,减少了模型的计算复杂度和内存占用。

官网

  • vLLM 官方主页:https://docs.vllm.ai/en/latest/
  • vLLM 源码地址:https://github.com/vllm-project/vllm/stargazers

安装

# (Recommended) Create a new conda environment.
conda create -n myenv python=3.10 -y
conda activate myenv# Install vLLM with CUDA 12.1.
pip install vllm

ollama vs vllm

特性OllamaVLLM
安装配置使用 Docker 容器进行部署,简化安装流程。推荐 Python 安装,需要安装 Python 环境和相关依赖,对技术要求较高。
模型支持支持多种大模型,包括 Qwen2.5 等,支持从 huggingface/modelscope 等平台下载的模型文件。
性能GPU 环境下推理速度优于 CPU,支持接入 OneAPI 提升性能。采用 PagedAttention 技术,提高内存利用率,支持高并发处理。
资源占用显存占用相对较低,例如 Qwen2.5:7b 模型仅需 6GB 显存。显存占用相对较高,例如单卡 16GB 显存可能不足以运行 Qwen2.5:7b 模型。
成本本地部署,需要本地硬件支持,成本取决于硬件配置。
应用场景更适合高并发、多检索点的复杂企业场景,在需要大量推理、并发任务处理以及复杂模型适配的场景中表现更为突出。采用的是一种高效的 Token-Level 并行(Token Swapping)机制,使其在处理生成任务时达到更低的延迟,尤其是在需要处理较长文本生成的 RAG 场景中具有明显优势。
易用性提供统一的 API 接口,支持多种编程语言 SDK,易于集成至业务应用。需要一定的 Python 编程基础
扩展性设计上考虑了未来模型的扩展性,易于添加新模型或更新现有模型。支持多种并行推理方式和多种硬件平台。

显存占用对比

ollama

  • ollama qwen2.5:14b 模型权重大小 9GB,运行需要 11G 显存。

vllm

vllm我运行使用的命令是

CUDA_VISIBLE_DEVICES=1 nohup python -m vllm.entrypoints.openai.api_server --model Qwen2.5-14B --max-model-len 20000 --trust-remote-code --api-key tcc123 > output.log 2>&1 &
  • vllm qwen2.5:14b 模型权重大小 9GB,运行竟然需要 39G 显存。竟然差别这么大!

推理速度对比

我们来看下ollama和vllm部署的qwen2.5:14b在执行相同代码下的推理速度的差异

vllm 第0次的执行时间为:6.737669229507446s
vllm 第1次的执行时间为:2.704115152359009s
vllm 第2次的执行时间为:6.883824110031128s
vllm 第3次的执行时间为:6.743424654006958s
vllm 第4次的执行时间为:6.750691890716553s
ollma 第0次的执行时间为:3.759061336517334s
ollma 第1次的执行时间为:3.660386323928833s
ollma 第2次的执行时间为:3.1638340950012207s
ollma 第3次的执行时间为:3.298168420791626s
ollma 第4次的执行时间为:3.5439224243164062s

ollama相对来说更快一点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码

文章目录 基于深度学习算法的花卉分类识别系统一、项目摘要二、项目运行效果三、项目文件介绍四、项目环境配置1、项目环境库2、环境配置视频教程 五、项目系统架构六、项目构建流程1、数据集2、算法网络Mobilenet3、网络模型训练4、训练好的模型预测5、UI界面设计-pyqt56、项目…

【PCIE常见面试问题-1】

PCIE常见面试问题-1 1 PCIE概述1.1 PCI为何发展开PCIE?1.2 什么是Root Complex(RC)1.3 什么是EP?1.4 什么是Swith1.5 PCIE协议如何组织通信的?1.6 简要介绍一下PCIE的分层结构,为什么需要分层?1.7 PCIE的事务类型有哪些…

解决 Docker Desktop 启动报错:Docker Desktop is unable to detect a Hypervisor

在使用 Docker Desktop 时,有时会遇到启动报错:“Docker Desktop is unable to detect a Hypervisor.” 这是由于系统的虚拟化功能未正确启用或配置导致的。本文将分步骤指导如何解决该问题。 一、检查虚拟化是否已启用 打开任务管理器 按下 Ctrl Shift…

订单日记为“惠采科技”提供全方位的进销存管理支持

感谢温州惠采科技有限责任公司选择使用订单日记! 温州惠采科技有限责任公司,成立于2024年,位于浙江省温州市,是一家以从事销售电气辅材为主的企业。 在业务不断壮大的过程中,想使用一种既能提升运营效率又能节省成本…

rust中解决DPI-1047: Cannot locate a 64-bit Oracle Client library问题

我们在使用rust-oracle crate连接oracle进行测试的过程中,会发现无法连接oracle,测试运行过程中抛出“DPI-1047: Cannot locate a 64-bit Oracle Client library”错误。该问题是由于rust-oracle需要用到oracle的动态连接库,我们通过安装orac…

东方通重置管理员密码

百度给出的回答 注意,箭头所指的密码是举例,不是自己的默认密码 自己的默认密码存储在下图位置 原文地址

spark 写入mysql 中文数据 显示?? 或者 乱码

目录 前言 Spark报错: 解决办法: 总结一下: 报错: 解决: 前言 用spark写入mysql中,查看中文数据 显示?? 或者 乱码 Spark报错: Sat Nov 23 19:15:59 CST 2024 WARN: Establishing SSL…

电子应用设计方案-20:智能电冰箱系统方案设计

智能电冰箱系统方案设计 一、系统概述 本智能电冰箱系统旨在提供更便捷、高效、智能化的食品存储和管理解决方案,通过集成多种传感器、智能控制技术和联网功能,实现对冰箱内部环境的精确监测和控制,以及与用户的互动和远程管理。 二、系统组成…

实验四:构建园区网(OSPF 动态路由)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、在 eNSP 中部署网络 2、设计全网 IP 地址 3、配置二层交换机 4、配置路由交换机并测试通信 5、配置路由接口地址 6、配置 OSPF 动态路由,实现全网互通 一、实验简介 使用路由…

【大数据学习 | Spark-Core】yarn-client与yarn-cluster的区别

1. yarn的提交命令 # yarn的提交命令参数 --master yarn #执行集群 --deploy-mode # 部署模式 --class #指定运行的类 --executor-memory #指定executor的内存 --executor-cores # 指定核数 --num-executors # 直接指定executor的数量 --queue # 指定队列 2. yarn-client模式…

WEB攻防-通用漏洞文件上传二次渲染.htaccess变异免杀

知识点: 1、文件上传-二次渲染 2、文件上传-简单免杀变异 3、文件上传-.htaccess妙用 4、文件上传-PHP语言特性 1、上传后门时,文件内容带.就不行 这时可以上传一个转换后的ip地址,ip地址对应网站包含后门代码 转换后的int会在访问的时候…

【汽车制动】汽车制动相关控制系统

目录 1.ABS (Anti-lock Brake System,防抱死制动系统) 2.EBD(Electronic Brake-force Distribution,电子制动力分配系统) 3.TCS(Traction Control System,牵引力控制系统) 4.VDC&#xff08…

Tri Mode Ethernet MAC IP核详解

本文对 Vivado 的三速 MAC IP 核(Tri Mode Ethernet MAC,TEMAC)进行介绍。 在自行实现三速以太网 MAC 控制器时,GMII/RGMII 接口可以通过 IDDR、ODDR 原语实现,然而实际使用中自己实现的模块性能不是很稳定&#xff08…

项目实战:基于Vue3实现一个小相册

相册的示例效果图 注意看注释... CSS部分&#xff1a; <style>/* 伪元素选择器&#xff0c;用于在具有clear_ele类的元素内部的末尾添加一个新的元素 */.clear_ele::after{ content: ""; /* 这个伪元素的内容属性必须有 *//* 块级元素&#xff0c;便于占据一…

HTMLCSS:比赛记分卡

效果演示 这段 HTML 和 CSS 代码创建了一个卡片式的体育比赛信息展示组件&#xff0c;用于显示篮球比赛的两个队伍名称、比赛时间、比分以及一些装饰性的视觉元素。 HTML <div class"card"><div data-status"inprogress" class"teams"…

Paper -- 3D建筑模型生成 -- GABLE: 基于高分辨率卫星影像的全国尺度精细3D建筑模型

基本信息 论文题目: GABLE: A first fine-grained 3D building model of China on a national scale from very high resolution satellite imagery 中文题目: GABLE: 基于高分辨率卫星影像的全国尺度精细3D建筑模型 作者及单位: – 多数作者来自中国科学院空间信息研究所&…

蓝桥杯嵌入式再学习(2)基础框架的构建

1&#xff1a;打开工程以后我们需要进行一些配置如图&#xff1a; 第一步&#xff1a;将core里面的对勾取消掉 勾选Microlib 优化等级选择level 0 将我们自己的文件夹添加到路径里面去 这个样子我们就基本将框架搭建好了我们然后需要编写各个底层的驱动了

矩阵/矩阵乘法/特征征/特征向量的讲解

线性代数里有很多的概念&#xff0c;很多概念是有几何意义的&#xff0c;了解了几何意义可能会更好的理解各种概念及其相互之间的关系。 矩阵&#xff1a; 矩阵是一个变换&#xff0c;一个坐标系到另一个坐标第的变换。矩阵里的各个参数&#xff0c;代表了如何进行变换。 矩阵…

Easyexcel(5-自定义列宽)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09;Easyexcel&#xff08;5-自定义列宽&#xff09; 注解 ColumnWidth Data…

1+X应急响应(网络)文件包含漏洞:

常见网络攻击-文件包含漏洞&命令执行漏洞&#xff1a; 文件包含漏洞简介&#xff1a; 分析漏洞产生的原因&#xff1a; 四个函数&#xff1a; 产生漏洞的原因&#xff1a; 漏洞利用条件&#xff1a; 文件包含&#xff1a; 漏洞分类&#xff1a; 本地文件包含&#xff1a; …