如何在Ollama中使用OpenVINO后端

描述

来源:OpenVINO 中文社区

为什么选择 Ollama + OpenVINO 组合?

双引擎驱动的技术优势

Ollama 和 OpenVINO 的结合为大型语言模型(LLM)的管理和推理提供了强大的双引擎驱动。Ollama 提供了极简的模型管理工具链,而 OpenVINO 则通过 Intel 硬件(CPU/GPU/NPU)为模型推理提供了高效的加速能力。这种组合不仅简化了模型的部署和调用流程,还显著提升了推理性能,特别适合需要高性能和易用性的场景。

项目地址: openvino_contrib

(https://github.com/openvinotoolkit/openvino_contrib/tree/master/modules/ollama_openvino)

Ollama 的核心价值

1.极简的 LLM 管理工具链:Ollama 提供了简单易用的命令行工具,用户可以轻松地下载、管理和运行各种 LLM 模型。

2.支持模型一键部署:通过简单的命令,用户可以快速部署和调用模型,无需复杂的配置。

3.提供统一的 API 接口Ollama 提供了统一的 API 接口,方便开发者集成到各种应用中。

4.活跃的开源社区生态:Ollama 拥有活跃的开源社区,用户可以获取丰富的资源和支持。

Ollama 局限性

Ollama 目前仅支持 llama.cpp 作为后端,这带来了一些不便:

1.硬件兼容性受限:llama.cpp 主要针对 CPU 以及NVIDIA GPU优化,无法充分利用 INTEL GPU 或 NPU 等硬件加速能力,导致在需要高性能计算的场景下表现不足。

2.性能瓶颈:对于大规模模型或高并发场景,llama.cpp 的性能可能无法满足需求,尤其是在处理复杂任务时,推理速度较慢。

OpenVINO 的突破性能力

1.为 Intel 硬件提供深度优化(CPU/iGPU/Arc dGPU/NPU):OpenVINO 针对 Intel 硬件进行了深度优化,能够充分发挥 CPU、集成 GPU、独立 GPU 和 NPU 的性能潜力。

2.支持跨平台异构计算:OpenVINO 支持跨平台异构计算,能够在不同硬件平台上实现高效的模型推理。

3.提供模型量化压缩工具链:OpenVINO 提供了丰富的模型量化压缩工具链,能够显著减少模型大小,提升推理速度。

4.实现推理性能显著提升:通过 OpenVINO 的优化,模型推理性能可以得到显著提升,特别是在大规模模型和高并发的场景。

5.可扩展性与灵活性支持: OpenVINO GenAI 为 Ollama-OV 提供了强大的可扩展性和灵活性,支持speculative decoding,Prompt-lookup decoding, pipeline parallel, continuous batching 等 pipeline 优化技术,为未来更多 pipeline serving 优化奠定了坚实基础。

集成带来的开发者红利

1.极简开发体验:保留 Ollama 的 CLI 交互特性,开发者可以继续使用熟悉的命令行工具进行模型管理和调用。

2.性能飞跃:通过 OpenVINO 获得硬件级加速,模型推理性能得到显著提升,特别是在大规模模型和高并发场景下。

3.多硬件适配,生态扩展:OpenVINO 的支持使得 Ollama 能够适配多种硬件平台,扩展了其应用生态,为开发者提供了更多的选择和灵活性。

三步开启加速体验

1. 下载预先编译好了 Linux、Windows 系统的可执行文件,文件下载地址:

下载链接参考: 

https://github.com/openvinotoolkit/openvino_contrib/tree/master/modules/ollama_openvino#%E7%99%BE%E5%BA%A6%E4%BA%91%E7%9B%98

源码编译参考: 

https://github.com/openvinotoolkit/openvino_contrib/tree/master/modules/ollama_openvino#building-from-source

2. 配置 OpenVINO GenAI 的环境

以 windows 系统为例,首先将下载的 OpenVINO GenAI 压缩包解压到目录 openvino_genai_windows_2025.2.0.0.dev20250320_x86_64 下。

然后执行以下命令:

 

cd openvino_genai_windows_2025.2.0.0.dev20250320_x86_64
setupvars.bat

 

3. 设置 cgocheck

Windows:

 

set GODEBUG=cgocheck=0

 

Linux:

 

export GODEGUG=cgocheck=0

 

到此,可执行文件已经下载完成、OpenVINO GenAI、OpenVINO、CGO环境也已经配置完成。

自定义模型实战 

因为 Ollama model library 不支持上传非 GGUF 格式的 IR,所以我们在本地基于 OpenVINO IR 制作 Ollama 支持的 OCI image;我们以 DeepSeek-R1-Distill-Qwen-7B 为例:

1. 下载 OpenVINO IR 模型,从 ModelScope 下载:

 

pip install modelscope
      modelscope download --model zhaohb/DeepSeek-R1-Distill-Qwen-7B-int4-ov --local_dir ./DeepSeek-R1-Distill-Qwen-7B-int4-ov

 

2. 把下载的 OpenVINO IR 的目录打包成 *tar.gz 的格式

 

tar -zcvf DeepSeek-R1-Distill-Qwen-7B-int4-ov.tar.gz DeepSeek-R1-Distill-Qwen-7B-int4-ov

 

3. 创建 Modelfile 文件

 

FROM  DeepSeek-R1-Distill-Qwen-7B-int4-ov.tar.gz
ModelType "OpenVINO"
InferDevice "GPU"
PARAMETER repeat_penalty 1.0
PARAMETER top_p 1.0
PARAMETER temperature 1.0

 

4. 创建 ollama 支持的模型

 

ollama create
DeepSeek-R1-Distill-Qwen-7B-int4-ov:v1 -f Modelfile

 

这样我们就创建了 DeepSeek-R1-Distill-Qwen-7B-int4-ov:v1 可以供 Ollama OpenVINO 后端使用的模型。

5. 使用该模型

 

ollama run DeepSeek-R1-Distill-Qwen-7B-int4-ov:v1 "请帮我推荐北京著名的景点"

 

至此,您已经掌握了如何在 Ollama 中使用 OpenVINO 后端。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分