作者:赵红博,赵桢

为什么选择 Ollama + OpenVINO 组合?

双引擎驱动的技术优势

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

          项目地址:openvino_contrib

当Ollama遇上OpenVINO:解锁多硬件AI推理新范式

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系统的可执行文件,文件下载地址:

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后端。

Logo

为开发者提供丰富的英特尔开发套件资源、创新技术、解决方案与行业活动。欢迎关注!

更多推荐