• 方案介绍
  • 相关推荐
申请入驻 产业图谱

【代码库】基于i.MX95的eIQ GenAI 流量演示器

10/03 13:01
382
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

eIQ GenAI 流量演示器

许可证徽章 董事会徽章 董事会徽章 语言徽章 类别徽章

eIQ GenAI Flow是一套软件流水线,用于在边缘设备上实现 AI 驱动的体验。目前,Flow 支持NXP i.MX 95和NXP i.MX 8MPLUS上的?对话式 AI?。


概述

eIQ GenAI Flow 集成了多种 AI 技术,打造无缝的 HMI 体验。对话式 AI 流程包含以下阶段:

  1. ?唤醒词检测?:VIT(语音智能技术)唤醒词触发ASR(自动语音识别)。
  2. ?语音转文本 (ASR)?:将语音输入转换为文本。
  3. ?检索增强生成 (RAG)?:利用相关外部知识增强大型语言模型 (LLM)。
  4. ?文本生成 (LLM)?:根据检索到的上下文生成响应。
  5. ?文本到语音 (TTS)?:将响应转换为语音输出。

管道图

此演示程序展示了 eIQ GenAI Flow 的一些核心功能。此英文演示程序旨在概述该项目的功能及其工作原理。它是完整项目eIQ GenAI Flow Pro的一个子集。

Flow 完整版提供了更多?模型?、?功能?、?定制?、RAG 微调选项以及更好的音频任务性能。

有关更多详细信息,请使用NXP 社区论坛生成 AI 和 LLM


目录

  1. 先决条件
  2. 安装
  3. 入门
  4. 软件组件
    1. 语音智能技术(VIT)
    2. 自动语音识别(ASR)
    3. 检索增强生成(RAG)
    4. 大型语言模型(LLM)
    5. 文本转语音 (TTS)
  5. 使用NPU加速
  6. 硬件
  7. 示例
  8. 常见问题解答
  9. 支持
  10. 发行说明

先决条件

该存储库使用Git 大文件存储 (LFS)来管理大文件(例如模型、数据集、二进制文件)。

?在克隆此存储库之前?,请确保您的机器上已安装并初始化 Git LFS。

安装 Git LFS

Ubuntu/Debian:

shell
sudo apt update
sudo apt install git-lfs

macOS(自制):

shell
brew install git-lfs

Windows:从https://git-lfs.github.com/ 下载并安装 Git LFS

初始化 Git LFS(运行一次)

shell
git lfs install

克隆项目

shell
git clone https://github.com/nxp-appcodehub/dm-eiq-genai-flow-demonstrator
cd dm-eiq-genai-flow-demonstrator

Git LFS 将在克隆期间或之后自动下载所有跟踪的大文件。如果需要,你可以运行:

shell
git lfs pull

手动获取任何缺失的 LFS 文件。

BSP 选择

此演示需要适用于i.MX 应用处理器的嵌入式 Linux中提供的 Linux BSP 。

对于 i.MX8MP EVK,NPU 加速不可用。LLM 流水线将在此平台的 CPU 上运行。因此,没有自定义 BSP,只能使用默认 BSP。

对于 i.MX95,虽然该演示可以在常规的 NXP Q1 2025 BSP (L6.12.3-1.0.0) 上运行,但它在使用软件包中提供的meta-eiq-genai-flow定制的 BSP 上运行效果最佳。此元层更新:

  • Linux 内核: matmul Neutron C-API
  • 设备树: Neutron 专用的连续内存分配 (CMA) 区域
  • ?Onnxruntime:?添加 Neutron 执行提供程序
  • ?Neutron 资产:?用于处理 matmul 操作的驱动程序固件

?注:?元层仅适用于 Q1 BSP (L6.12.3_1.0.0) 上的 EVK i.MX95 A1 版本。对于 i.MX95 B0 版本或 BSP > Q1 2025 的 EVK,则无需此元层。

?注意:?该软件包可在 Q2 BSP(L6.12.20_2.0.0)上运行,并带有用于 LLM 的 Neutron 加速,无需在带有 i.MX95 B0 修订版的 EVK 上使用元层

?注意:?该软件包可在 Q2 BSP (L6.12.20_2.0.0) 上运行,通过为 LLM 提供 Neutron 加速,将 /lib/firmware/NeutronFwllm.elf 替换为 i.MX95 A1 修订版 EVK 元层中的 /lib/firmware/NeutronFwllm.elf

有关构建详细信息,请参阅meta-eiq-genai-flow中的README 。

此项定制的优势在于显著降低 CPU 负载,并加快 LLM 操作的首个令牌时间 (TTFT)。详情请参阅 LLM 基准测试部分。

一旦 BSP 闪存到目标上,就必须将此包中的eiqgenaiflow文件夹复制到 linux 主文件夹中。


安装

要设置环境,请运行:

shell
cd eiq_genai_flow
./install.sh


入门

要运行演示,请使用以下命令:

shell
./eiq_genai_flow

?注意:?二进制文件必须始终从目录执行eiq_genai_flow

?注意?:试用期有 2 小时的超时时间。

注: i.MX 95 或 i.MX8MP 目前未启用缓存。每次执行此应用程序时,都需要预热时间(少于一分钟)。

运行./eiq_genai_flow --help以查看可用选项。

默认模式为键盘转语音,这意味着模块 VIT 和 ASR 被禁用。要启用语音转语音体验,请使用该 --input-mode vasr参数。

该应用程序支持各种输入/输出选项和模型选择,详见下面的软件组件部分。


软件组件

语音智能技术(VIT)

VIT 是 NXP 的语音 UI 技术,它利用深度学习实现始终在线的唤醒词检测。

?VIT 与“HEY NXP”?预定义的唤醒词集成。

? 启用 VIT

使用参数在唤醒词检测后-i vasr启用 ASR 。

其他选项包括:

  • -c(连续模式):允许连续对话,无需每次回应后发出唤醒词。

???

自动语音识别(ASR)

ASR 将口语转换为文本。

演示器使用 Whisper-small.en int8-quantized 针对具有 244M 参数的流式传输进行了优化。

? 启用 ASR

使用--input-mode具有下列值之一的参数:

  • -i vasr:检测到 VIT 唤醒词后启用 ASR。
  • -i kasr:通过键盘输入激活 ASR(按“Enter”开始转录)。
  • -i keyb:禁用 ASR,仅使用键盘输入。

要启用连续 ASR,请传递-c标志。在此模式下,ASR 会保持活动状态,直到用户按下“停止”键或因不活动而发生超时。

**

来源:恩智浦appcodehub

恩智浦

恩智浦

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。收起

查看更多

相关推荐