当Ollama遇上OpenVINO:解锁多硬件AI推理新范式
为什么选择 Ollama + OpenVINO 组合?双引擎驱动的技术优势Ollama 和 OpenVINO 的结合为大型语言模型(LLM)的管理和推理提供了强大的双引擎驱动。Ollama 提供了极简的模型管理工具链,而 OpenVINO 则通过 Intel 硬件(CPU/GPU/NPU)为模型推理提供了高效的加速能力。这种组合不仅简化了模型的部署和调用流程,还显著提升了推理性能,特别适合需要高性
作者:赵红博,赵桢
为什么选择 Ollama + OpenVINO 组合?
双引擎驱动的技术优势
Ollama 和 OpenVINO 的结合为大型语言模型(LLM)的管理和推理提供了强大的双引擎驱动。Ollama 提供了极简的模型管理工具链,而 OpenVINO 则通过 Intel 硬件(CPU/GPU/NPU)为模型推理提供了高效的加速能力。这种组合不仅简化了模型的部署和调用流程,还显著提升了推理性能,特别适合需要高性能和易用性的场景。
项目地址:openvino_contrib
当Ollama遇上OpenVINO:解锁多硬件AI推理新范式
Ollama 的核心价值
- 极简的 LLM 管理工具链:Ollama 提供了简单易用的命令行工具,用户可以轻松地下载、管理和运行各种 LLM 模型。
- 支持模型一键部署:通过简单的命令,用户可以快速部署和调用模型,无需复杂的配置。
- 提供统一的 API 接口:Ollama 提供了统一的 API 接口,方便开发者集成到各种应用中。
- 活跃的开源社区生态:Ollama 拥有活跃的开源社区,用户可以获取丰富的资源和支持。
Ollama局限性
Ollama 目前仅支持 llama.cpp 作为后端,这带来了一些不便:
- 硬件兼容性受限:llama.cpp 主要针对 CPU 以及NVIDIA GPU优化,无法充分利用 INTEL GPU 或 NPU 等硬件加速能力,导致在需要高性能计算的场景下表现不足。
- 性能瓶颈:对于大规模模型或高并发场景,llama.cpp 的性能可能无法满足需求,尤其是在处理复杂任务时,推理速度较慢。
OpenVINO 的突破性能力
- 为 Intel 硬件提供深度优化(CPU/iGPU/Arc dGPU/NPU):OpenVINO 针对 Intel 硬件进行了深度优化,能够充分发挥 CPU、集成 GPU、独立 GPU 和 NPU 的性能潜力。
- 支持跨平台异构计算:OpenVINO 支持跨平台异构计算,能够在不同硬件平台上实现高效的模型推理。
- 提供模型量化压缩工具链:OpenVINO 提供了丰富的模型量化压缩工具链,能够显著减少模型大小,提升推理速度。
- 实现推理性能显著提升:通过 OpenVINO 的优化,模型推理性能可以得到显著提升,特别是在大规模模型和高并发的场景。
- 可扩展性与灵活性支持: OpenVINO GenAI 为 Ollama-OV 提供了强大的可扩展性和灵活性,支持speculative decoding,Prompt-lookup decoding, pipeline parallel, continuous batching等pipeline优化技术,为未来更多pipeline serving优化奠定了坚实基础。
集成带来的开发者红利
- 极简开发体验:保留 Ollama 的 CLI 交互特性,开发者可以继续使用熟悉的命令行工具进行模型管理和调用。
- 性能飞跃:通过 OpenVINO 获得硬件级加速,模型推理性能得到显著提升,特别是在大规模模型和高并发场景下。
- 多硬件适配,生态扩展:OpenVINO 的支持使得 Ollama 能够适配多种硬件平台,扩展了其应用生态,为开发者提供了更多的选择和灵活性。
三步开启加速体验
1. 下载预先编译好了Linux、Windows系统的可执行文件,文件下载地址:
Windows:
Download exe + Download OpenVINO GenA
Linux(Ubuntu 22.04):
Download + Donwload OpenVINO GenAI
如果想源码编译,可以参考build 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 stop "<|end▁of▁sentence|>"
PARAMETER stop "<|User|>"
PARAMETER stop "</User|>"
PARAMETER stop "<|end_of_sentence|>"
PARAMETER stop "</|"
PARAMETER max_new_token 4096
PARAMETER stop_id 151643
PARAMETER stop_id 151647
PARAMETER repeat_penalty 1.5
PARAMETER top_p 0.95
PARAMETER top_k 50
PARAMETER temperature 0.8
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后端。
更多推荐
所有评论(0)