Ollama 企业级应用 并发 查询请求 处理实测

Ollama 在默认配置下会采用排队方式来处理查询情况,硬件利用率保持不变。

同时启动2段对话,程序执行后,第一个聊天对话还没结束之前,第二聊天对话一直处于等待状态。

set OLLAMA_NUM_PARALLEL=5

设置处理对话并发请求数量为5,系统环境参数 

并发请求会导致单个请求的响应时间变长。

Ollama 如何处理并发请求?
Ollama 支持两种级别的并发处理。如果您的系统有足够的可用内存(使用 CPU 推理时为系统内存,使用 GPU 推理时为 VRAM),则可以同时加载多个模型。对于给定的模型,如果加载模型时有足够的可用内存,则配置为允许并行请求处理。

如果在已加载一个或多个模型的情况下,可用内存不足以加载新模型请求,则所有新请求将排队,直到可以加载新模型为止。当先前的模型空闲时,将卸载一个或多个模型以腾出空间给新模型。排队的请求将按顺序处理。使用 GPU 推理时,新模型必须能够完全适合 VRAM,以允许并发模型加载。

给定模型的并行请求处理会导致上下文大小增加并行请求的数量。例如,具有 4 个并行请求的 2K 上下文将导致 8K 上下文和额外的内存分配。

以下服务器设置可用于调整 Ollama 在大多数平台上处理并发请求的方式:

OLLAMA_MAX_LOADED_MODELS- 可同时加载的最大模型数量(前提是它们适合可用内存)。默认值为 3 * GPU 数量或 3(用于 CPU 推理)。
OLLAMA_NUM_PARALLEL- 每个模型同时处理的最大并行请求数。默认将根据可用内存自动选择 4 或 1。
OLLAMA_MAX_QUEUE- Ollama 在繁忙时排队的最大请求数,在拒绝其他请求之前。默认值为 512


Ollama 如何在多 GPU 上加载模型?
安装同一品牌的多个 GPU 是增加可用 VRAM 以加载更大模型的好方法。加载新模型时,Ollama 会根据当前可用的 VRAM 评估模型所需的 VRAM。如果模型完全适合任何单个 GPU,Ollama 会将模型加载到该 GPU 上。这通常可以提供最佳性能,因为它减少了推理期间通过 PCI 总线传输的数据量。如果模型不能完全适合一个 GPU,那么它将分布在所有可用的 GPU 上。
多GPU并不是并行计算,采用轮流输出方式和CPU以前轮动。


测试结论:Ollama现在可以同时处理多个请求,每个请求只使用少量额外内存。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值