NVIDIA AI Workbench 是一款免费的开发环境管理器,可简化所选系统上的数据科学、AI 和机器学习(ML)项目。其目标是提供一种无缝的方式,以便在 PC、工作站、数据中心和云上以及跨 PC、工作站、数据中心和云进行创建、计算和协作。基本用户体验非常简单:
- 在单个系统上轻松设置 :只需几分钟即可在 Windows、Ubuntu 和 macOS 上单击完成安装,并在远程系统上进行单行安装。
- 适用于去中心化部署的 托管体验 :真正混合环境中的免费 PaaS/SaaS 类型 UX,无需基于服务的集中式平台。
- 面向专家和初学者的无缝协作: 在不限制高级用户定制的情况下,实现友好的 Git、容器和应用管理。
- 跨用户和系统保持一致 :在不同系统中迁移工作负载和应用程序,同时保持功能和用户体验。
- 简化的 GPU 处理 :处理系统依赖项,如 NVIDIA 驱动程序 和 NVIDIA 容器工具包 ,以及 支持 GPU 的容器 运行时配置。
本文将探讨 10 月发布的 NVIDIA AI Workbench 的亮点,这是自 GTC 2024 大会上推出产品以来最重要的一次发布,也是朝着完整产品愿景迈出的一大步。
版本亮点
本节将详细介绍最新版本中的主要新功能和用户请求的更新。
主要的新功能包括:
- 通过扩展的 Git 支持 (例如分支、合并、差异以及对提交和 gitignore 的细粒度控制) 来增强协作。
- 通过 Docker Compose 支持,在多容器环境中创建复杂的应用和工作流程。
- 通过单用户 URL 共享应用程序,实现简单、快速且安全的快速原型设计
用户请求的更新:
- 桌面应用程序的深色模式
- 改进了在本地化版本的 Windows 上安装 PyTorch
扩展的 Git 支持
以前,AI Workbench 只支持主分支上的单个整体式提交。用户必须手动管理分支和合并,这就造成了各种类型的混淆,尤其是在解决合并冲突方面。现在,用户可以直接在 Desktop App 和 CLI 中管理分支、合并和冲突。此外,他们可以查看和会诊提交的单个文件差异。UI 旨在与手动 Git 操作无缝协作,并将更新以反映相关更改。
这些功能可在桌面应用程序的两个新选项卡中找到:更改和分支。
- 更改 :逐行提供工作树与之前提交之间差异的视图。用户现在可以根据可见文件差异跟踪的更改(添加、修改或删除)单独或批量选择和提交文件更改,并且能够单独拒绝或向 git-ignore 添加文件。视图还会动态更新以反映手动 Git 操作,例如手动暂存文件,然后在工作树中对文件进行后续更改。
- 分支 :提供分支管理(包括创建、切换和合并),以及 Git 服务器上远程分支的可见性。合并有冲突的分支会启动冲突解决流程,用户可以在 UI 中执行此流程,也可以转移到自己选择的终端或文件编辑器。
通过 Docker Compose 堆栈提供多容器支持
AI Workbench 现在支持 Docker Compose 。用户可以使用多容器应用程序和工作流,并且拥有与 AI Workbench 为单容器环境提供的配置、再现性和可移植性相同的易用性。
基本思路是添加一个基于 Docker Compose 的“堆栈”,该堆栈由 AI Workbench 管理并连接到主开发容器。要添加堆栈,用户只需将适当的 Docker Compose 文件添加到项目仓库,并在桌面应用程序或 CLI 中执行一些配置。
我们使用 Docker Compose 的原因有几个。首先,我们不想在真空中进行开发,这就是我们 与 Docker 团队合作 开发 托管式 Docker Desktop 安装 等功能的原因。
其次,我们希望用户能够在 AI Workbench 之外使用多容器应用程序,而 Docker Compose 是做到这一点的最简单方法。此功能的愿景是在 AI Workbench 内实现多容器应用程序的简化和强大的开发及计算,然后可以使用简单的 docker-compose
up 命令在 AI Workbench 之外设置。
这项多容器功能是一项新功能,并将继续发展。我们很乐意通过 NVIDIA AI Workbench 开发者论坛 获得反馈,并帮助您解决任何问题。
通过安全 URL 共享 Web 应用程序
借助 AI Workbench,用户可以轻松启动内置于项目中的托管 Web 应用程序。该过程相当简单:使用已安装的 Web 应用程序创建或克隆项目,启动项目,然后启动应用程序,应用程序就会显示在浏览器中。
这种方法对开发者 UX 很有好处,但对快速进行 UX 原型设计和协作并不好。如果您想让其他用户访问和测试您的应用,您要么要求他们安装 AI Workbench,克隆并运行项目,要么您必须完全提取应用以运行它并使其可供用户使用。第一个是用户的速度障碍,第二个是开发者的速度障碍。
我们通过一项简单的功能消除了这些速度障碍,该功能允许您设置远程 AI Workbench 以启用外部访问,并创建一次性、安全的 URL,以便在远程项目中运行 Web 应用程序。您只需确保用户可以访问远程的 10000 端口,应用程序就会直接可访问。他们只需单击链接并转至应用程序即可。
启用这种访问对于快速原型设计和协作非常有用。这就是各种 SaaS 产品将其作为托管服务提供的原因。与 AI Workbench 的区别在于,您可以在自己的资源和网络(例如数据中心资源或共享服务器)上提供这种访问。它不必位于云端。
AI Workbench 通过限制对单个浏览器和项目中运行的单个应用程序的访问来确保安全。这意味着用户无法与其他人共享 URL,并且只能使用您与他们共享的 Web 应用程序。
暗色模式和本地化 Windows 安装
许多用户请求使用深色模式选项,因为它更易于眼睛。该选项现已推出,您可以通过桌面应用程序中直接提供的“Settings”(设置)窗口进行选择。 详细了解深色模式的工作原理 。
到目前为止,Windows 用户是我们本地安装的主要受众,并非所有 Windows 用户都在使用英语语言包,由于我们如何处理一些 WSL 命令,因此 AI Workbench 安装受到阻碍。特别是,我们在 Windows 上阻止了使用西里尔文或中文的用户。我们调整了处理非英语语言包的方式,现在应该可以正常工作了。如果您之前受到阻碍,请立即尝试。如果它仍然不适合您,请在 NVIDIA AI Workbench 开发者论坛 中告知我们,以便我们可以继续改进此功能。
新的 AI Workbench 项目
此版本介绍了旨在快速开启您的 AI 开发之旅的新示例项目,详情如下。 AI Workbench 项目 是一个结构化 Git 库,可在 AI Workbench 中定义容器化开发环境。AI Workbench 项目提供:
- 轻松设置和 GPU 配置:只需从 GitHub 或 GitLab 克隆一个项目,AI Workbench 即可使用自动 GPU 配置处理其余工作。
- 开发集成: 无缝支持热门开发环境(例如 Jupyter 和 VS Code),并支持用户配置的 Web 应用。
- 容器化和可定制环境:项目是容器化、隔离且易于修改的。调整示例项目以满足您的特定需求,同时确保一致性和可再现性。
多模态虚拟助理 示例项目
该项目使用户能够使用回退到 Web 搜索的 多模态检索增强生成(RAG) 工作流构建自己的虚拟助理。用户可以与两个基于 RAG 的应用程序交互,详细了解 AI Workbench、与用户文档进行交谈、对自己的安装进行故障排除,甚至可以将 RAG 工作流重点用于自己的定制产品。
- 控制面板: 用于处理产品文档的可自定义 Gradio 应用允许将网页、PDF、图像和视频上传至持久性向量存储并进行查询。对于推理,用户可以在 NVIDIA API Catalog 等云端点之间进行选择,也可以使用自行托管的端点运行自己的推理。
- 公共聊天: 在加载产品文档后,Gradio 应用程序变成一个简化的“只读”聊天机器人,您可以通过新的 AI Workbench 应用程序共享功能与最终用户共享。
“Competition-Kernel”(竞争内核) 示例项目
在参与 Kaggle 竞赛时,此项目可提供轻松的本地体验。您可以轻松利用本地机器或云实例处理竞赛数据集、编写代码、构建模型和提交结果,所有这些操作均通过 AI Workbench 完成。Competition Kernel 项目提供:
- 托管式体验,可在您自己的 GPU 上进行开发和测试,并在几分钟内完成设置和定制。
- 通过 GitHub 或 GitLab 进行版本控制和代码跟踪非常方便,也非常适合协作开发。
- 使用本地专用 IDE 的强大功能:强大的调试、智能代码完成、广泛的自定义选项。
- 轻松插入现有数据源(外部数据源或您自己的数据源)。
- 没有互联网?没问题。离线开发。
开始使用
此版本的 NVIDIA AI Workbench 标志着在跨 GPU 系统提供无缝的 AI 开发体验方面向前迈出了重要一步。此版本的新功能 (包括扩展的 Git 支持、对多容器环境的支持以及安全的 Web 应用程序共享) 简化了 AI 工作负载的开发和协作。在此版本提供的三个新示例项目中探索这些功能,或创建您自己的项目。
要开始使用 AI Workbench,请 从网页中安装应用程序 。有关安装和更新的更多信息,请参阅 NVIDIA AI Workbench 文档 。
探索从数据科学到 RAG 的一系列 NVIDIA AI Workbench 示例项目 。
访问 NVIDIA AI Workbench 开发者论坛,报告问题并了解其他开发者如何使用 AI Workbench。