近日,NVIDIA 发布了 Jetson 生成式人工智能实验室,使开发人员能够使用 NVIDIA Jetson 边缘设备在现实世界中探索生成式人工智能的无限可能性。与其他嵌入式平台不同,Jetson 能够运行大型语言模型(LLM)、视觉转换器和稳定的本地扩散。其中包括在 Jetson AGX Orin 上运行的最大的 Llama-2-70B 型号,以交互速率运行。
要在 Jetson 上快速测试最新的模型和应用程序,请使用 Jetson Generative AI 实验室提供的教程和资源。现在,您可以专注于揭示生成 AI 在物理世界中尚未开发的潜力。
在这篇文章中,我们将探讨您可以在 Jetson 设备上运行和体验的令人兴奋的生成人工智能应用程序,所有这些都在实验室教程中全面介绍。
处于边缘的生成型人工智能
在人工智能快速发展的环境中,聚光灯明亮地照射在生成模型上,尤其是以下方面:
- LLM 能够进行类似人类的对话。
- 视觉语言模型(VLM),为大语言模型 (LLM) 提供通过相机感知和理解真实世界的能力。
- 扩散模型能够将简单的文本提示转化为令人惊叹的视觉作品。
这些非凡的人工智能进步吸引了许多人的想象力。然而,如果你深入研究支持这种尖端模型推断的基础设施,你会发现它们通常与云相连,依赖数据中心的处理能力。这种以云为中心的方法使某些需要高带宽低延迟数据处理的边缘应用程序在很大程度上未被探索。
在本地环境中运行大语言模型 (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
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
Oobabooga 的 text-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 和图像聊天。
想要获取更多关于运行文本生成 webui 的信息,请参阅 Jetson Generative AI 实验室教程。
骆驼峰
Llamaspeak 是一款交互式聊天应用程序,采用 NVIDIA Riva ASR / TTS 实时聊天,使您能够与本地运行的 LLM 进行口头对话。它目前是作为 Jetson 集装箱的一部分提供的。
为了进行流畅无缝的语音对话,最大限度地缩短 LLM 的第一个输出令牌的时间至关重要。最重要的是,llamaspeak 被设计用于处理会话中断,这样您就可以在 llamaspeag 仍在 TTS 生成响应时开始交谈。容器微服务用于 Riva、LLM 和聊天服务器。
llamaspeak 具有响应式接口,可从浏览器麦克风或连接到 Jetson 设备的麦克风获得低延迟音频流。有关自己运行它的更多信息,请参阅 jetson 容器文件。
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]]”
这个列表还在继续。虽然这个模型对某些对象或类的准确性可能比其他对象或类更好,但开发的容易性意味着你可以快速尝试不同的提示,看看它是否适合你。我们期待着您开发出令人惊叹的应用程序!
分段任意模型
Meta 发布了一种先进的图像分割模型 – Segment Anything 模型(SAM),旨在精确识别和分割图像中的对象,无论其复杂性或上下文如何。
他们的官方存储库也有 Jupyter 笔记本,可以轻松检查模型的影响,jetson 容器提供了一个内置 Jupyter 实验室的方便容器。
NanoSAM
Segment Anything(SAM)是一个令人难以置信的模型,能够将点转化为分割掩码。不幸的是,它不是实时运行的,这限制了它在边缘应用程序中的有用性。
为了克服这个限制,我们最近发布了一个新项目,NanoSAM,将 SAM 图像编码器提取为轻量级模型。同时,我们使用 NVIDIA TensorRT 对该模型进行了优化,以在 NVIDIA Jetson Orin 平台上实现实时性能。现在,您可以轻松地将现有的边界框或关键点检测器转换为实例分割模型,而无需任何培训。
跟踪任何模型
Track Anything Model(TAM)是一种模型,其团队论文解释为,“Segment Anything meet videos。”他们开源的、基于 Gradio 的界面让你能够点击输入视频的一帧,指定要跟踪和分割的任何内容。它甚至展示了通过修复来移除被跟踪对象的额外功能。
NanoDB
除了在边缘有效地索引和搜索数据外,这些向量数据库还经常与 LLM 一起用于检索增强生成(RAG),以获得超出其内置上下文长度的长期内存(Llama-2 模型为 4096 个令牌)。视觉语言模型也使用相同的嵌入作为输入。
有了所有来自边缘的实时数据和理解这些数据的能力,他们就能够与现实世界进行互动。如果您想在自己的图像和数据集上尝试使用 NanoDB,可以参考 实验室教程 获取更多信息。
结论
给你!许多令人兴奋的生成人工智能应用程序正在出现,您可以按照这些教程在 Jetson Orin 上轻松运行它们。要见证生成 AI 在本地运行的令人难以置信的能力,请探索 Jetson Generative AI 实验室。
如果您在 Jetson 上构建自己的人工智能应用程序,并有兴趣分享您的想法,请务必访问 Jetson 项目论坛。
请于 2023 年 11 月 7 日星期二上午 9 点加入我们的在线研讨会,更深入地研究这篇文章中讨论的许多话题,并参与现场问答!
- NVIDIA Jetson 上部署 LLM 和 VLM 的加速 API 和量化方法
- 使用 NVIDIA TensorRT 优化视觉转换器
- 多模式代理和矢量数据库
- 与 NVIDIA Riva ASR/TTS 的实时对话