作者黄明明 OpenVINO™社区开发专家1.关于APIOpenVINO™ Java API旨在推动 OpenVINO™在Java领域的应用。OpenVINO™ Java API 由于是基于 OpenVINO™ 开发所支持的平台与OpenVINO™ 一致具体信息可以参考 OpenVINO™。 目前开发者需要自行下载该项目将其源代码中的 src 文件夹复制到自己的代码当中以便更好地利用 OpenVINO™ Java API 所提供的丰富功能和强大特性为 Java 开发领域注入新的活力和创新元素。2.关于OpenVINO™ GenAIOpenVINO™ GenAI基于OpenVINO™工具和运行时提供C/Python API支持多种生成式AI模型包括文本生成、图像生成、语音转录与翻译以及图像处理等。以下是OpenVINO™ GenAI支持的主要用例文本生成模型文本摘要、重写、聊天机器人等。图像生成模型基于Diffuser架构。Whisper-based语音转录与翻译。视觉语言模型VLMs图像处理如LLaVa等。OpenVINO™ GenAI库https://mp.weixin.qq.com/s/1nwi3qJDqAkIXnrGQnP3RgOpenVINO™ 工具套件https://mp.weixin.qq.com/s/fORowUzzcPSVIO6AieoUKAGithub仓https://github.com/openvinotoolkit/openvino.genai3.环境搭建3.1 OpenVINO™ Java API 环境搭建首先你需要将项目代码从 GitHub 仓库克隆到本地环境。在终端中执行以下命令git clone https://github.com/Hmm466/OpenVINO-Java-API.git使用 IDEA 打开并运行项目,克隆完成后你可以使用 IntelliJ IDEA以下简称 IDEA专业版来打开该项目。具体步骤如下启动 IDEA选择 File - Open。在弹出的文件选择对话框中找到并选中刚才克隆下来的项目文件夹点击 OK。待 IDEA 完成项目的索引和加载后你就可以运行项目了。一般而言你可以通过点击 IDEA 工具栏上的运行按钮或者使用快捷键如 Shift F10来启动项目。3.2 GenAI环境搭建OpenVINO™ GenAI 支持通过 PyPI、Archive 归档包及 npm 发行版进行安装适配 Linux、Windows 和 macOS 三大主流操作系统平台。针对 Linux 平台PyPI 上的 GenAI、Tokenizers 及 OpenVINO™ 轮子包均经过编译优化以适配更广泛的 Linux 发行版而 Ubuntu 系统下的 C Archive 发行版则分别基于 _GLIBCXX_USE_CXX11_ABI0 和 _GLIBCXX_USE_CXX11_ABI1 两种应用二进制接口ABI编译。需要注意的是不同 ABI 版本不可混合使用否则会引发链接错误 —— 例如 C Archive 发行版中的 OpenVINO™ 库与 PyPI 渠道安装的 GenAI 组件搭配使用时就可能因 ABI 不兼容导致此类问题。如需获取适配的 Archive 版本库文件可访问官方文档地址根据自身操作系统及版本下载对应的归档包下载完成后将归档包解压至指定目录即可完成基础准备。若为 Linux 或 macOS 系统需进一步参考 OpenVINO™ Java API 部署文档中的指引完成后续部署操作。3.3 模型下载由于Java API并不能调用模型下载的API所以模型下载还是得通过HuggingFace Optimum进行模型下载。Optimum Intel 是 Transformers 和 Diffusers 库与 Intel 提供的各种工具和库之间的接口用于加速 Intel 架构上的端到端流水线。Optimum Intel 的众多用途之一是提供一个简单的接口来优化您的 Transformers 和 Diffusers 模型将其转换为 OpenVINO™ 中间表示 (IR) 格式并使用 OpenVINO™ Runtime 运行推理。optimum-cli 提供用于模型转换和优化的命令行界面。通用命令格式optimum-cli export openvino --model 模型 ID 或路径 --task 任务 输出目录其中task 是要导出模型的任务。如果未指定则将根据模型自动推断任务。您可以在 Optimum TaskManager 文档中找到任务和模型类之间的映射关系。此外您可以使用 --weight-format 参数指定权重压缩格式选项包括fp32、fp16、int8 和 int4。对于 int8 和 int4 格式权重压缩将使用 nncf 格式。有关模型导出的更多详细信息请参阅 Optimum Intel 文档。optimum-cli export openvino --model Qwen/Qwen2.5-VL-3B-Instruct Qwen2.5-VL-3B-Instruct/INT4 --weight-format int44.部署运行//Dll 所在路径Linux 或者 Mac 可以直接置空String libPath null;OvGenAI ovGenAI new OvGenAI(libPath);ovGenAI.init();//加载模型.模型需要通过optimum-cli 下载String modelPath qwen-7b-chat\\INT4_compressed_weights;ovGenAI.loadLLMModel(modelPath);ovGenAI.setTokens(1024);ovGenAI.setDevice(GPU);ovGenAI.setLLMCallback(new OvGenAILLMCallback() {Overridepublic void generation(OvGenAIStatus ovGenAIStatus, String s) {print(Status: ovGenAIStatus , s);}});print(output: ovGenAI.generation(什么是OpenVINO?,false));ovGenAI.releasePipeline();// ↑注意false 可以控制输出不从OvGenAILLMCallback 回调直接返回如果设置为True则强制OvGenAILLMCallback返回结果为NULL5.效果展示更多资源:OpenVINO™https://openvinotoolkit.github.io/OpenVINO™-GenAIhttps://openvinotoolkit.github.io/openvino.genai/OpenVINO™ Java APIhttps://github.com/Hmm466/OpenVINO-Java-API(注意:由于现在API设计还不完善待完善后将推送到Github)OpenVINO 小助手微信号OpenVINO-China如需咨询或交流相关信息欢迎添加OpenVINO小助手微信加入专属社群与技术专家实时沟通互动。