学习笔记|MaxKB对接本地大模型时,选择Ollma还是vLLM?

在使用MaxKB开源知识库问答系统的过程中,除了对接在线大模型,一些用户出于资源配置、长期使用成本、安全性等多方面考虑,还在积极尝试通过Ollama、vLLM等模型推理框架对接本地离线大模型。而在用户实践的过程中,经常会对候选的模型推理框架进行多个维度的考察和对比。

在本文中,我们针对Ollama和vLLM这两款目前比较常用的模型推理框架,尝试从安装配置复杂性、性能、资源占用、成本、扩展性、推理性能等维度进行对比总结,仅供广大社区用户参考。

一、常见维度对比

Ollama

1.安装和配置

■ 使用Docker容器部署,简化安装流程;

■ 支持多种操作系统(包括Windows、Mac和Linux),提供标准化的API接口。

■支持从huggingface/modelscope等平台下载的模型文件。

2.性能

■ 在GPU环境下,推理速度显著优于CPU,支持OneAPI接入提升性能;

■ 显存占用相对较低,例如Qwen2.5:7b模型仅需6GB显存。

3.资源占用

■ 在调用时加载模型,显存占用较低,适合在资源有限的环境中运行;

■ 支持多种大模型,包括Qwen2.5等。

4.成本

■ 本地部署,需要本地机器硬件支持,成本取决于硬件配置。

vLLM

1.安装和配置

■ 需要安装Python环境和相关依赖,对技术要求较高(也支持Docker);

■ 支持从huggingface/modelscope等平台下载的模型文件。

2.性能

■ 采用PagedAttention技术,提高内存利用率,支持高并发处理;

■ 在高用户负载下,vLLM官方给出的吞吐量比HuggingFace Transformers高出24倍,比Text Generation Inference高出3.5倍。

3.资源占用

■ 模型加载常驻显存,显存占用相对较高,例如单卡16GB显存可能不足以运行Qwen2.5:7b模型;

■ 需要较高的计算资源,适合在高性能硬件环境中运行。

4.成本

■ 本地部署,需要本地机器硬件支持,成本取决于硬件配置。

二、多机、多卡维度对比

在大模型多机、多卡的部署场景下,选择Ollama还是vLLM需要考虑以下两个关键因素:

1.分布式扩展支持

■ vLLM提供了原生的多机多卡分布式支持,可以轻松地在多台机器上部署大模型,并且每台机器可以使用多个GPU进行推理。vLLM通过PagedAttention技术有效管理内存,显著提升推理效率;

■ Ollama虽然也支持多GPU环境,但其分布式部署能力相对较弱,可能需要额外的配置和优化来实现多机、多卡的高效运行。

2.推理性能

■ vLLM在GPU上的推理速度显著提升,使用PagedAttention技术实现了比HuggingFace Transformers高14至24倍的吞吐量;

■ Ollama在GPU上的推理速度也非常快,但在多机、多卡环境下,vLLM的性能优势可能更加明显。

三、总结

总体而言,用户在使用MaxKB对接本地大模型时可以从以下三个维度进行重点考量:

■技术基础和资源:如果有较强的技术基础和硬件资源,可以选择vLLM以获得更高的性能和吞吐量。如果希望快速搭建和管理知识库,且对硬件资源要求不高,可以选择Ollama;

■ 成本考虑:如果硬件资源有限,尤其是在只有CPU或者单卡的情况下,选择Ollama进行本地部署是一个不错的选择,能够满足大部分的场景需要。如果有一定的硬件资源,且需要MaxKB具备高性能的问答能力,可以选择vLLM,或者通过类似Xinference平台进行部署;

■MaxKB应用场景:简单来说,对于需要高效实时响应和高并发处理的问答场景,vLLM更为适合。对于需要快速搭建和灵活管理知识库的应用场景,Ollama更为适合。

当然,如果在实际私有化部署MaxKB的场景中,除了高性能的推理大模型外,还需要向量模型和重排模型,这个时候推荐部署Xinference进行统一管理和运行模型。

为了方便广大社区用户使用MaxKB开源知识库问答系统对接本地大模型,我们特别总结了如下表格:
在这里插入图片描述

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

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

相关文章

Python 快速入门(上篇)❖ Python基础知识

Python 基础知识 Python安装**运行第一个程序:基本数据类型算术运算符变量赋值操作符转义符获取用户输入综合案例:简单计算器实现Python安装** Linux安装: yum install python36 -y或者编译安装指定版本:https://www.python.org/downloads/source/ wget https://www.pyt…

【1.2 Getting Started--->Installation Guide】

NVIDIA TensorRT DOCS 此 NVIDIA TensorRT 10.6.0 安装指南提供安装要求、TensorRT 包中包含的内容列表以及安装 TensorRT 的分步说明。 安装指南 摘要: 本 NVIDIA TensorRT 10.3.0 安装指南提供了安装要求、TensorRT 软件包中包含的内容列表以及安装 TensorRT 的…

RT_Thread内核源码分析(三)——线程

目录 1. 线程结构 2. 线程创建 2.1 静态线程创建 2.2 动态线程创建 2.3 源码分析 2.4 线程内存结构 3. 线程状态 3.1 线程状态分类 3.2 就绪状态和运行态 3.3 阻塞/挂起状态 3.3.1 阻塞工况 3.4 关闭状态 3.4.1 线程关闭接口 3.4.2 静态线程关闭 3.4.3 动态线程关…

Unity图形学之CubeMap立方体贴图

1.CubeMap:有六个面的贴图组成 2. 假反射:反射天空盒子 (1)正常UV采样: (2)Cube的采样:利用反射角采样,反射角X和Cube的交点采样 Shader "Custom/TestReflect"…

C语言基础学习:抽象数据类型(ADT)

基础概念 抽象数据类型(ADT)是一种数据类型,它定义了一组数据以及可以在这组数据上执行的操作,但隐藏了数据的具体存储方式和实现细节。在C语言中,抽象数据类型(ADT)是一种非常重要的概念&…

Qt-多元素控件

Qt中的多元素控件 Qt提供的多元素控件有: 这里的多元素控件都是两两一对的。 xxWidget和xxView的一个比较简单的理解就是: xxView是更底层的实现, xxWidget是基于xxView封装来的。 可以说,xxView使用起来比较麻烦,但…

2023年9月GESPC++一级真题解析

一、单选题(每题2分,共30分) 题号 123456789101112131415 答案 CDBCDBACACBBDDA 1. 我们通常说的 “ 内存 ” 属于计算机中的()。 A. 输出设备 B. 输 ⼊ 设备 C. 存储设备 D. 打印设备 【答案】 C 【考纲知识点】…

wend看源码-APISJON

项目地址 腾讯APIJSON官方网站 定义 APIJSON 可以定义为一个面向HTTP 协议的JSON 规范,一个面向数据访问层的ORM 框架。其主要工作流程包括:前端按照既定格式组装 JSON 请求报文,通过 APIJSON-ORM 将这些报文直接转换为 SQL 语句&#xff0c…

VMware虚拟机Ubuntu桥接模式突然连接不上网络解决办法

在Linux环境进行开发时突然发现虚拟机中的Ubuntu突然连接不上网络,图形化界面也找不到有线连接选项。在此记录解决办法。 解决办法 1. 在终端命令行输入以下命令: sudo service network-manager stop2. 然后编辑以下文件将其中NetworkingEnable fals…

丹摩征文活动|摩智算平台深度解析:Faster R-CNN模型的训练与测试实战

目录 文章前言Faster R-CNN的简介Faster RCNN的训练与测试提前准备1.1 mobaxterm(远程连接服务器)1.2 本文的源码下载 目标检测模型 Faster-Rcnn2.1云服务器平台 数据上传内置JupyterLab的使用本地连接使用DAMODEL实例获取实例的SSH访问信息通过SSH连接通…

【数据结构】归并排序 —— 递归及非递归解决归并排序

归并排序 一、归并排序1、归并排序的思想2、归并排序代码实现&#xff08;递归&#xff09;<1> 归并排序的递归区间<2> 归并排序的稳定性<3> 拷贝 3、归并排序代码实现&#xff08;非递归&#xff09;<1> 循环区间溢出问题 二、总结 一、归并排序 1、…

调大Vscode资源管理器字体

对于调整资源管理器字体大小&#xff08;也就是下图红框&#xff09;&#xff0c;查找了网上很多方法。要么介绍的方法是调整了代码字体&#xff0c;要么是调节了终端字体&#xff0c;要么是通过整体放缩实现的调整&#xff0c;总之都不合适。 唯一的调整方法是在几篇CSDN里看到…

【Linux】-学习笔记04

第十二章、磁盘管理 1.查看磁盘空间使用量 1.1df命令 作用&#xff1a; 列出文件系统的磁盘空间占用情况 df&#xff0c;disk free&#xff0c;通过文件系统来快速获取空间大小的信息&#xff0c;当我们删除一个文件的时候&#xff0c;这个文件 不是马上就在文件系统当中消…

centos 服务器 docker 使用代理

宿主机使用代理 在宿主机的全局配置文件中添加代理信息 vim /etc/profile export http_proxyhttp://127.0.0.1:7897 export https_proxyhttp://127.0.0.1:7897 export no_proxy"localhost,127.0.0.1,::1,172.171.0.0" docker 命令使用代理 例如我想在使用使用 do…

Vue中Select选择器el-option实现动态多选

效果如图&#xff1a; 前端列表块显示部分&#xff1a; <el-table :data"tableData" border stripe :header-cell-class-name"headerBg" selection-change"handleSelectionChange"><el-table-column type"selection" width…

【ubuntu24.04.1最简洁安装方案】

我的电脑配置&#xff1a; 128GB固态硬盘&#xff0c;1TB 机械硬盘&#xff0c;我把整个 windows 系统全噶掉了&#xff0c;只安装ubuntu24.04.1一个Linux系统噶windows系统&#xff0c; 推荐使用 DiskGenius这个工具&#xff0c;好用&#xff0c;但是也要弄明白了再用啊&#…

k8s集群加入node节点为ubuntu 22.04

文章目录 1.环境准备1.1 关闭无用服务1.2 环境和网络1.3 apt源1.4 系统优化 2. 装containerd3. 接入k8s集群3.1 kubelet、kubeadm、kubectl安装3.2 缺少一个镜像3.3 接入k8s集群 4. 一些相关问题 1.环境准备 rootcto-gpu-pro-n01:~# lsb_release -a No LSB modules are availa…

C#桌面应用制作计算器进阶版01

基于C#桌面应用制作计算器做出了少量改动&#xff0c;其主要改动为新增加了一个label控件&#xff0c;使其每一步运算结果由label2展示出来&#xff0c;而当点击“”时&#xff0c;最终运算结果将由label1展示出来&#xff0c;此时label清空。 修改后运行效果 修改后全篇代码 …

如何构建高效的接口自动化测试框架?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在选择接口测试自动化框架时&#xff0c;需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说&#xff0c;使用Python相关的测试框架更为便捷。无论选…

数据结构-8.Java. 七大排序算法(上篇)

本篇博客给大家带来的是排序的知识点, 由于时间有限, 分两天来写, 上篇主要实现 前四种排序算法: 直接插入, 希尔, 选择, 堆排。 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 …