借力 提示词检索解码与 OpenVINO™ GenAI 全面提升 LLM 推理

大语言模型(LLM)彻底改变了自然语言处理,推动了聊天机器人、摘要和内容生成等应用的发展。然而,推理效率依然是一个关键挑战,尤其在需要低延迟响应的场景下更为突出。

试想你在一家餐厅,经常点同样的菜。服务员不必每次都询问你的订单再传达给厨房,而是直接认出你常点的菜品并立即上菜,这样既缩短了等待时间,也加快了整个服务流程。

同样,在文本生成中,模型常常遇到输入提示中的重复模式。与每次都从零开始生成 token 不同,提示词检索解码技术能高效地识别并检索提示中的相关部分,从而加速推理过程。

传统的 LLM 解码技术是逐个 token 生成,这在实时应用中容易导致高延迟。比如,推测性解码技术通过利用草稿模型生成多个 token 候选项,再由一个更大、更准确的模型进行验证,从而显著提升推理速度,同时确保生成结果的准确性。

提示词检索解码在此基础上进一步优化:它省去了草稿模型,直接利用输入提示词中预先存在的内容,减少了重复计算。这种方法不仅降低了延迟,而且在面对重复或结构化查询时表现尤为高效。换句话说,模型无需每次都从头生成 token,而是能直接从提示词中提取已有的文本序列,从而大幅减少推理所需的时间。

提示词检索解码的优势:

  • 低延迟:通过减少冗余的 token 预测,加速文本生成过程。

  • 针对重复查询的优化:适用于输入提示词呈现可预测模式的应用场景(例如常见问题、基于文档的问答)。

  • 轻量级实现:无需额外的草稿模型,从而简化部署流程。

  • 通过将提示词检索解码集成到 OpenVINO™ GenAI API 中,开发者能够在保持准确性和效率的同时,实现文本生成任务的显著性能提升。

使用 OpenVINO 运行提示词检索解码的分步指南

下面,我们将演示如何使用 OpenVINO™ GenAI 一步步实现提示词检索解码。下面的指南将详细介绍必要的设置、模型准备和执行步骤,帮助你有效地利用这一优化技术。

步骤 1:获取用于基于提示词检索解码的 LLM 推理的 OpenVINO GenAI 样例代码

了解如何使用 OpenVINO™ GenAI 实现基于提示词检索解码的 LLM 推理的最简单方式是查看代码仓库中的示例源代码。

下面是一个用于提示词检索解码的 Python 脚本示例:

def main():    device = 'CPU'    pipe = openvino_genai.LLMPipeline(args.model_dir, device, prompt_lookup=True)    config = openvino_genai.GenerationConfig()    config.max_new_tokens = 100    # add parameter to enable prompt lookup decoding to generate `num_assistant_tokens` candidates per iteration    config.num_assistant_tokens = 5    # Define max_ngram_size    config.max_ngram_size = 3    # Since the streamer is set, the results will be printed    # every time a new token is generated and put into the streamer queue.    pipe.generate(args.prompt, config, streamer)    print()

可以看出,仅用极少量代码和一些额外配置,就能在 OpenVINO™ GenAI 的 LLM 流水线中启用提示词检索解码功能。

步骤 2:设置 OpenVINO GenAI

首先,开发者需要安装 OpenVINO™ GenAI,该工具为生成式 AI 模型提供了优化的运行流水线。

  • 克隆 OpenVINO™ GenAI 的 GitHub 仓库

图片

从 openvino.genai GitHub 仓库克隆 OpenVINO™ GenAI 的源代码。

  • 安装 OpenVINO™ GenAI

导航至提示词检索解码示例文件夹:

<your_path>\openvino.genai\samples\python\text_generation

准备一个 Python 虚拟环境并激活它,然后安装 ../../deployment-requirements.txt 以运行示例。

pip install --upgrade-strategy eager -r ../../export-requirements.txt

按照“快速入门样例”指南获取有关如何设置环境并使用 OpenVINO™ GenAI 进行推理的详细信息。一旦安装了 OpenVINO™ GenAI,下一步就是下载并转换模型以便进行推理。

步骤 3:下载和转换模型

在运行推理之前,必须先下载 LLM 模型,并将其转换为 OpenVINO™ 兼容的格式。例如,你可以使用以下命令下载并转换 Llama-3.1–8B 模型:

optimum-cli export openvino --model meta-llama/Llama-3.1-8B --weight-format int4 Llama-3.1-8B-ov

其中,“--weight-format int4” 表示将精度降低至 int4,以实现英特尔硬件上的优化性能。

  • 下载预优化的 OpenVINO™ 模型

另外,你也可以下载已经针对 OpenVINO™ 进行优化的模型,使用 CLI 可直接从此处下载:

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

如果开发者小伙伴不方便从HuggingFace的网站直接下载模型的,也可以利用以下命令,直接从魔搭社区OpenVINO™模型专区下载由OpenVINO™预优化后的模型

modelscope download --model OpenVINO/ TinyLlama-1.1B-Chat-v1.0-int4-ov

此时,模型已经准备好通过提示词检索解码进行 OpenVINO™ GenAI 推理。

步骤 4:运行提示词检索解码示例

模型设置完毕后,我们可以使用提示词检索解码方法进行推理。请运行来自 OpenVINO™ GenAI 仓库的示例脚本:

python prompt_lookup_decoding_lm.py --model_dir Llama-3.1-8B-ov --prompt

该命令将:

  • 加载提示词检索解码机制。

  • 从提示词中提取匹配的 token 以加速推理。

  • 执行低延迟的文本生成。

提供的代码默认在 CPU 上运行,但只需在 prompt_lookup_decoding_lm.py 文件中将设备名称替换为 “GPU”,即可在 GPU 上运行。

device = 'GPU'pipe = openvino_genai.LLMPipeline(args.model_dir, device, prompt_lookup=True)

你可以修改 “max_ngram_size” 和 “num_assistant_tokens” 的配置,来调整查找提示词匹配时使用的最大 n-gram 长度以及匹配成功后返回的候选序列长度。

小结

随着人工智能不断重塑各行各业,优化推理效率比以往任何时候都更加重要。提示词检索解码在降低延迟的同时还能保持高质量的文本生成,标志着一大飞跃。通过采用直接检索机制而非推测性解码的草稿模型,OpenVINO™ GenAI API 在性能和效率上均得到了提升,成为 AI PC、笔记本电脑以及边缘设备的理想选择。

这一创新使开发者能够构建更智能、更迅捷响应的 AI 应用,同时不影响生成结果的准确性。无论是实时聊天机器人、文档摘要还是企业级 AI 解决方案,将提示词检索解码整合到系统中都能在高需求环境中实现最佳性能。

OpenVINO™ 对 AI 效率的不断追求正在推动整个生态系统的进步,而提示词检索解码等新特性正预示着更大的发展潜力。我们鼓励开发者积极探索、实验,并为 OpenVINO™ 不断扩展的生成式 AI 工具套件贡献力量,共同驱动下一代 AI 应用的发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值