如何用 C++ 构建 OpenVINO™ 生成式 AI 应用

openlab_96bf3613 更新于 3小时前

作者 | 武卓  英特尔 AI 软件布道师


介绍
许多桌面应用程序是使用 C++ 开发的,而将生成式AI(GenAI)功能集成到这些应用程序中可能会很具有挑战性,尤其是因为使用像 Hugging Face 这样的 Python 库的复杂性。C++ 结合 OpenVINO™ Runtime 提供了一个更加简化、轻量且内存高效的解决方案,尤其适用于 Windows 环境。你可以在此找到详细的依赖项对比。

OpenVINO™ GenAI API 提供了一个原生的 C++ 接口,消除了对 Python 依赖的需求,使开发者可以用更高效的方式创建 AI 应用程序。下面是一个基于 Windows 操作系统的分步骤指南,手把手教你如何在 C++ 中构建 OpenVINO™ GenAI 应用程序。

目录
下载 OpenVINO™ 压缩包并安装依赖
构建项目
下载和转换LLM及分词器
运行模型
总结

第一步:下载并解压OpenVINO压缩包

访问 OpenVINO™ 下载页面,

https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html?PACKAGE=OPENVINO_BASE&VERSION=v_2024_4_0&OP_SYSTEM=WINDOWS&DISTRIBUTION=PIP

并点击“Download Archives with GenAI”选择最新版本。



下载完成后,解压该zip文件并将内容提取到

<your path >\openvino_genai_windows_2024.3.0.0_x86_64

第二步:构建项目


确保你的电脑上已安装以下软件组件:

CMake 3.23 或更高版本

Microsoft Visual Studio 2019 或更高版本,16.3或更新

Python 3.8 或更高版本

打开命令窗口,并在下载并解压后的 OpenVINO™ GenAI 文件夹中运行 setupvar***at 文件:

<your_path>\openvino_genai_windows_2024.3.0.0_x86_64\setupvar***at



在同一个命令窗口中,OpenVINO™ 环境初始化后,导航到 samples/cpp/ 文件夹,然后运行 build_sample***svc.bat。

当所有构建过程完成后,你可以在构建输出中指示的路径找到 chat_sample.exe 文件。





第三步:下载和转换LLM及分词器


你有两种选择来为AI推理准备模型:

1. 下载已转换的模型:从 Hugging Face 上的 OpenVINO™ LLMs **中直接下载模型:

pip install huggingface_hub
huggingface-cli download OpenVINO/TinyLlama-1.1B-Chat-v1.0-int4-ov --local-dir TinyLlama-1.1B-Chat-v1


请参阅此处的说明:


https://huggingface.co/OpenVINO/TinyLlama-1.1B-Chat-v1.0-int4-ov

在 Hugging Face 上的 OpenVINO™ LLMs **中还有其他可用模型,欢迎探索更多模型。

2. 本地转换模型:使用 optimum Intel 在你的设备上转换模型。请确保根据此处的详细要求安装所需的依赖项:

optimum-cli export openvino --model "TinyLlama/TinyLlama-1.1B-Chat-v1.0" --trust-remote-code "TinyLlama-1.1B-Chat-v1.0"

然后,你可以使用已构建的文件和LLM模型的路径开始对话,例如:

chat_sample TinyLlama-1.1B-Chat-v1.0


第四步:运行模型


现在开始享受与基于LLM的聊天机器人进行对话吧!

查看视频:https://blog.csdn.net/inteldevzone/article/details/142629310

注意,上述展示的是在CPU上运行LLM推理的示例,然而,只需在\openvino_genai_windows_2024.3.0.0_x86_64\samples\cpp\chat_sample.cpp

文件中的以下两行代码中将“CPU”替换为“GPU”,就可以轻松切换为在GPU上运行推理,并再次构建:

std::string device = "GPU"; // GPU can be used as well
ov::genai::LLMPipeline pipe(model_path, device);


结论:
使用 OpenVINO™ GenAI API 在 C++ 中构建 AI 应用程序只需几个步骤。探索并尝试这个 API,充分释放其潜力吧!

0个评论