NVIDIA 技术博客:NVIDIA Jetson 让生成式人工智能栩栩如生

nvdev 2024-01-02 15:03:13

这篇文章最初发表在 NVIDIA 技术博客上。有关此类的更多内容,请参阅最新的 边缘计算 新闻和教程。

近日,NVIDIA 发布了 Jetson 生成式人工智能实验室,使开发人员能够使用 NVIDIA Jetson 边缘设备在现实世界中探索生成式人工智能的无限可能性。与其他嵌入式平台不同,Jetson 能够运行大型语言模型(LLM)、视觉转换器和稳定的本地扩散。其中包括在 Jetson AGX Orin 上运行的最大的 Llama-2-70B 型号,以交互速率运行。

Four vertical bar graphs for large language models, vision language models, vision transformers, and stable diffusion.图 1。领先的 Generative AI 模型在 Jetson AGX Orin 上的推断性能

要在 Jetson 上快速测试最新的模型和应用程序,请使用 Jetson Generative AI 实验室提供的教程和资源。现在,您可以专注于揭示生成 AI 在物理世界中尚未开发的潜力。

在这篇文章中,我们将探讨您可以在 Jetson 设备上运行和体验的令人兴奋的生成人工智能应用程序,所有这些都在实验室教程中全面介绍。

处于边缘的生成型人工智能

在人工智能快速发展的环境中,聚光灯明亮地照射在生成模型上,尤其是以下方面:

  • LLM 能够进行类似人类的对话。
  • 视觉语言模型(VLM),为大语言模型 (LLM) 提供通过相机感知和理解真实世界的能力。
  • 扩散模型能够将简单的文本提示转化为令人惊叹的视觉作品。

这些非凡的人工智能进步吸引了许多人的想象力。然而,如果你深入研究支持这种尖端模型推断的基础设施,你会发现它们通常与云相连,依赖数据中心的处理能力。这种以云为中心的方法使某些需要高带宽低延迟数据处理的边缘应用程序在很大程度上未被探索。

视频 1。 NVIDIA Jetson Orin 将强大的世代人工智能模型推向边缘

在本地环境中运行大语言模型 (LLM) 和其他生成模型的新兴趋势正在开发人员社区中获得势头。如在 Reddit 上的r/LocalLlama等蓬勃发展的在线社区,为爱好者提供了一个平台,讨论生成人工智能技术的最新发展及其在现实世界中的应用。在 Medium 等平台上发表的大量技术文章深入探讨了在本地环境中运行开源 LLM 的复杂性,其中一些文章利用了 NVIDIA Jetson。

Jetson Generative AI 实验室是发现最新生成人工智能模型和应用程序并学习如何在 Jetson 设备上运行它们的中心。随着该领域的快速发展,几乎每天都有新的 LLM 出现,量化库的进步一夜之间重塑了基准, NVIDIA 认识到提供最新信息和有效工具的重要性。我们提供易于遵循的教程和预构建的容器。

赋能力量是 jetson-containers,这是一个经过深思熟虑的设计和精心维护的开源项目,旨在为 Jetson 设备构建容器。使用 GitHub Actions,它正在以 CI/CD 的方式构建 100 个容器。这些功能使您能够在 Jetson 上快速测试最新的人工智能模型、库和应用程序,而无需配置底层工具和库。

Jetson Generative AI 实验室和 Jetson 容器使您能够与 Jetson 一起专注于探索生成 AI 在现实世界中的无限可能性。

演练

以下是 Jetson generative AI 实验室中 NVIDIA Jetson 设备上运行的一些令人兴奋的生成 AI 应用程序。

稳定扩散 webui

GIF of Stable Diffusion interface working in a web browser to generate images from user prompts on Jetson图 2:稳定扩散界面

A1111 的 stable-diffusion-webui 为 Stable Diffusion 提供了一个用户友好的界面。它使您能够执行许多任务,包括以下任务:

  • txt2img :基于文本提示生成图像。
  • img2img根据输入的图像和相应的文本提示生成图像。
  • inpainting:填充输入图像中缺失或被屏蔽的部分。
  • outpainting:将输入图像扩展到其原始边界之外。

该网络应用程序在第一次启动时自动下载 Stable Diffusion v1.5 模型,因此您可以立即开始生成图像。如果您有一个 Jetson-Orin 设备,它就像执行以下命令一样简单,如教程中所述。

git clone https://github.com/dusty-nv/jetson-containers cd jetson-containers ./run.sh $(./autotag stable-diffusion-webui)

有关运行 Stable Diffusion webui 的更多信息,请参阅 Jetson Generative AI 实验室教程。Jetson AGX Orin 还能够运行更新的 Stable Diffusion XL(SDXL)型号,该型号生成了本文顶部的特色图像。

文本生成 webui

GIF of text-generation-webui working in a web browser, showing a conversation with robot assistant about the comparison between UC Berkeley and Stanford University.图 3。与 Llama-2-13B 在 Jetson AGX Orin 上的互动聊天

Oobaboogatext-generation-webui 是另一个基于 Gradio 的 web 界面,用于在本地环境中运行 LLM。官方存储库为平台提供了一键安装程序,但 jetson 容器提供了一种更简单的方法。

使用该界面,您可以从 HuggingFace模型库 中选择模型。对于 4 位量化,经验法则是 Jetson Orin Nano 通常可以容纳 7B 参数模型,Jetson Orin NX 16GB 可以运行 13B 参数模型,而 Jetson AGX Orin 64GB 可以运行高达 70B 参数的模型。

许多人现在正在努力研究 Llama-2,这是 Meta 的开源大型语言模型,可免费用于研究和商业用途。还有一些基于 Llama-2 的模型使用了监督精细转弯(SFT)和来自人类反馈的强化学习(RLHF)等技术进行训练。有些人甚至声称,它在某些基准测试中超过了 GPT-4。

文本生成 webui 提供扩展,并使您能够开发自己的扩展。这可以用于集成您的应用程序,正如您稍后在 llamaspeak 示例中看到的那样。它还支持多模式 VLM,如 Llava 和图像聊天。

GIF shows quantized Llama model responding to a query about the NASA logo.图 4。量化 Llava-13B VLM 对图像查询的响应

想要获取更多关于运行文本生成 webui 的信息,请参阅 Jetson Generative AI 实验室教程

骆驼峰

Screenshot of llamaspeak interface running in a web browser, showing voice conversation between the author and Llama, the AI assistant.图 5。使用 Riva ASR/TTS 与 LLM 进行 llamaspeak 语音对话

Llamaspeak 是一款交互式聊天应用程序,采用 NVIDIA Riva ASR / TTS 实时聊天,使您能够与本地运行的 LLM 进行口头对话。它目前是作为 Jetson 集装箱的一部分提供的。

为了进行流畅无缝的语音对话,最大限度地缩短 LLM 的第一个输出令牌的时间至关重要。最重要的是,llamaspeak 被设计用于处理会话中断,这样您就可以在 llamaspeag 仍在 TTS 生成响应时开始交谈。容器微服务用于 Riva、LLM 和聊天服务器。

Block diagram shows the conversation flow with live speech recognition, large language model, and speech synthesis图 6。具有流式 ASR/LLM/TTS 管道到 web 客户端的实时会话控制流

llamaspeak 具有响应式接口,可从浏览器麦克风或连接到 Jetson 设备的麦克风获得低延迟音频流。有关自己运行它的更多信息,请参阅 jetson 容器文件

NanoOWL

A video of two people high-fiving while body parts are interactively detected and highlighted.图 7。NanoOWL 可以实时进行物体检测

使用视觉转换器的开放世界本地化(OWL-ViT)是由 Google Research 开发的一种用于开放词汇检测的方法。此模型使您能够通过为对象提供文本提示来检测对象。

例如,要检测人员和汽车,请使用描述类的文本提示系统:

prompt = “a person, a car”

这对于快速开发新应用程序非常有价值,无需训练新模型。为了在边缘解锁应用程序,我们的团队开发了一个项目,NanoOWL,使用 NVIDIA TensorRT 对该模型进行了优化,以在 NVIDIA Jetson Orin 平台上获得实时性能(在 Jetson AGX Orin 上的编码速度约为 95FPS)。这种性能意味着您可以运行远高于普通相机帧速率的 OWL-ViT。

该项目还包含一个新的树检测管道,使您能够将加速 OWL-ViT 模型与 CLIP 相结合,以实现任何级别的零样本检测和分类。例如,要检测人脸并将其分类为快乐或悲伤,请使用以下提示:

prompt = “[a face (happy, sad)]”

要检测人脸,然后检测每个感兴趣区域中的人脸特征,请使用以下提示:

prompt = “[a face [an eye, a nose, a mouth]]”

将它们组合起来:

prompt = “[a face (happy, sad)[an eye, a nose, a mouth]]”

这个列表还在继续。虽然这个模型对某些对象或类的准确性可能比其他对象或类更好,但开发的容易性意味着你可以快速尝试不同的提示,看看它是否适合你。我们期待着您开发出令人惊叹的应用程序!

分段任意模型

Screenshot of a Jupyter notebook running a SAM example.图 8。Segment Anything 模型的 Jupyter 笔记本 (SAM)

Meta 发布了一种先进的图像分割模型 – Segment Anything 模型(SAM),旨在精确识别和分割图像中的对象,无论其复杂性或上下文如何。

他们的官方存储库也有 Jupyter 笔记本,可以轻松检查模型的影响,jetson 容器提供了一个内置 Jupyter 实验室的方便容器。

NanoSAM

Handheld camera video footage showing objects on a desk with a computer mouse highlighted.图 9。NanoSAM 实时跟踪和分割电脑鼠标

Segment Anything(SAM)是一个令人难以置信的模型,能够将点转化为分割掩码。不幸的是,它不是实时运行的,这限制了它在边缘应用程序中的有用性。

为了克服这个限制,我们最近发布了一个新项目,NanoSAM,将 SAM 图像编码器提取为轻量级模型。同时,我们使用 NVIDIA TensorRT 对该模型进行了优化,以在 NVIDIA Jetson Orin 平台上实现实时性能。现在,您可以轻松地将现有的边界框或关键点检测器转换为实例分割模型,而无需任何培训。

跟踪任何模型

Track Anything Model(TAM)是一种模型,其团队论文解释为,“Segment Anything meet videos。”他们开源的、基于 Gradio 的界面让你能够点击输入视频的一帧,指定要跟踪和分割的任何内容。它甚至展示了通过修复来移除被跟踪对象的额外功能。

GIF of a web browser running the TAM interface to process a cat video.图 10。Track Anything 界面

NanoDB

视频 2。Hello AI World– NVIDIA Jetson 上的实时多模 VectorDB

除了在边缘有效地索引和搜索数据外,这些向量数据库还经常与 LLM 一起用于检索增强生成(RAG),以获得超出其内置上下文长度的长期内存(Llama-2 模型为 4096 个令牌)。视觉语言模型也使用相同的嵌入作为输入。

Multimodal agent architecture using retrieval-augmented generation (RAG) and plugins to interact with live and archived data at the edge for cyber-physical integration.图 11。以 LLM/VLM 为核心的体系结构图

有了所有来自边缘的实时数据和理解这些数据的能力,他们就能够与现实世界进行互动。如果您想在自己的图像和数据集上尝试使用 NanoDB,可以参考 实验室教程 获取更多信息。

结论

给你!许多令人兴奋的生成人工智能应用程序正在出现,您可以按照这些教程在 Jetson Orin 上轻松运行它们。要见证生成 AI 在本地运行的令人难以置信的能力,请探索 Jetson Generative AI 实验室

如果您在 Jetson 上构建自己的人工智能应用程序,并有兴趣分享您的想法,请务必访问 Jetson 项目论坛

Title screen for Bringing Generative AI to Life with NVIDIA Jetson webinar.

请于 2023 年 11 月 7 日星期二上午 9 点加入我们的在线研讨会,更深入地研究这篇文章中讨论的许多话题,并参与现场问答!

  • NVIDIA Jetson 上部署 LLM 和 VLM 的加速 API 和量化方法
  • 使用 NVIDIA TensorRT 优化视觉转换器
  • 多模式代理和矢量数据库
  • 与 NVIDIA Riva ASR/TTS 的实时对话

立即注册!

 

阅读原文

...全文
121 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,281

社区成员

发帖
与我相关
我的任务
社区描述
NVIDIA 开发者技术交流
人工智能 企业社区
社区管理员
  • nvdev
  • 活动通知
  • AI_CUDA_Training
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧