AI Workbench 系统#

AI Workbench 设计原则#

AI Workbench 是一款用户友好的工具,旨在促进 AI 和数据科学开发。它遵循几个关键原则,以帮助自动化繁琐的任务,让您可以开始工作

  • 可移植性和可重复性:AI Workbench 中的每个项目都在其自己的容器中运行,确保在不同环境中的结果一致。

  • 常用工具的自动化:AI Workbench 与 Git 和 Docker/Podman 等常用工具集成,自动化工作流程并简化开发流程。

  • 以文件为中心:AI Workbench 中的大多数元素都表示为文件,因此您可以根据需要操作、移动和导出它们。

  • 灵活性:如果您无法直接在 AI Workbench 中执行特定任务,您通常可以暂时“跳出”并使用常用工具或直接操作文件来手动执行任务。

通过遵守这些设计原则,AI Workbench 是一个多功能且高效的 AI 和数据科学开发平台,既满足技术娴熟的用户,也满足编程新手。

AI Workbench 组件#

服务#

AI Workbench 服务,也称为服务器,以单个二进制文件交付。此二进制文件是为各种操作系统和架构交叉编译的。它在您的主机系统上以登录用户身份运行,但在 Windows 上除外,在 Windows 上它在 WSL 发行版 NVIDIA-Workbench 中运行。

为了与您的 AI Workbench 项目交互,服务器公开了一个主要的 GraphQL API。默认情况下,服务器监听 https://127.0.0.1:10001。当安装在远程位置时,您可以从主系统通过 SSH 隧道访问服务器,服务器映射到不同的端口。

要探索 API,您可以访问 API 浏览器 https://127.0.0.1:10001/v1/voyager。这个用户友好的界面允许您查看可用的查询、mutation 和订阅。

为了获得更具交互性的体验,您可以使用 API playground,可通过 https://127.0.0.1:10001/v1/ 访问。此工具允许您直接测试 API 查询和 mutation。

要检查 AI Workbench 服务器的版本并确认它正在运行,请访问 https://127.0.0.1:10001/v1/version

CLI#

AI Workbench 命令行界面 (CLI) 是与 AI Workbench 环境交互的强大方式。无论您是经验丰富的开发人员还是刚刚入门,CLI 都被设计为用户友好且易于访问。有关更多信息,请参阅 AI Workbench 命令行界面 (CLI) 参考

交互式和非交互式模式#

您可以在交互模式或非交互模式下运行 CLI 命令。当您运行命令而未指定所有必需的变量时,CLI 会提示您提供缺失的信息,并引导您完成交互过程。但是,如果您显式指定所有必需的变量,则 CLI 会立即运行该命令。

富文本输出或 JSON 格式化输出#

CLI 提供多种输出格式以满足您的需求。如果您正在使用 shell,富文本输出会自动检测并适应您的 shell 的输出功能。如果您正在编写脚本或以编程方式与 CLI 交互,JSON 格式化输出是理想的选择。默认情况下,CLI 使用富文本输出,但您可以通过包含 -o 标志轻松切换到不同的格式。

调用 CLI#

CLI 通过 AI Workbench 安装的 wrapper bash 函数调用。wrapper 函数是 nvwb 命令,并使 CLI 能够修改您的 shell 提示符;例如,添加位置或项目名称。

如果您未使用 Bash 或 Zsh 作为默认 shell,请将 source ~/.local/share/nvwb/nvwb-wrapper.sh 添加到您的 shell 的配置文件脚本中。

工作流程#

通常,您以交互方式使用 CLI。

注意

在 CLI 中,位置 被称为上下文。

您可以使用 activate 命令将 shell 会话连接到上下文。所有后续命令都会自动引用此上下文。激活上下文后,您可以使用 open 命令打开项目。现在所有命令都会自动引用此上下文和项目。

当您完成工作后,close 您的项目,并使用 --shutdown 选项运行 deactivate 以停止 AI Workbench 服务器。

警告

如果您不 close 您的项目,而只是关闭终端,项目容器可能会保持运行并消耗系统资源。

桌面应用程序#

AI Workbench 桌面应用程序是一个图形用户界面 (GUI),允许您以用户友好的方式克隆、创建、操作和运行 AI 项目。

集成安装程序#

AI Workbench 安装程序确保您的系统始终配置正确。如果发生更新或更改(例如,您卸载了容器运行时),您可能会看到安装程序在 AI Workbench 启动时打开,以帮助您修复或更新系统配置。

窗口和位置约定#

每个 AI Workbench 窗口都连接到一个位置(本地或远程)。您可以打开连接到多个位置的多个窗口,也可以打开连接到同一位置的多个窗口。此外,您可以在给定的窗口中打开多个项目。但是,您不能在两个窗口中的同一位置打开同一个项目。

管理 AI Workbench 项目容器#

当您在窗口中打开一个项目时,它会在新选项卡中打开。要关闭项目选项卡,必须停止容器。如果项目正在运行并且您关闭了选项卡,系统会提示您停止项目。

当您关闭窗口时,任何打开的项目都必须先停止,然后才能关闭项目,然后才能关闭窗口。如果窗口是连接到位置的唯一窗口,则当它退出时,它会停止关联的 AI Workbench 服务器。

凭据管理器#

凭据管理器是一个小的二进制应用程序,用于创建和存储凭据。它与 macOS、Windows 和 Linux 上的系统密钥环(使用 dbus)集成。凭据管理器包含执行 OAuth2 登录流程的逻辑,并在适用时在后台自动刷新 OAuth 令牌。

在 Windows 上,此应用程序在原生 Windows 端运行,而服务和 CLI 在 WSL 发行版中运行。

连接到远程位置时,CLI 或桌面应用程序会自动从凭据管理器读取您的凭据,并将它们推送到远程服务器的内存中。

此外,凭据管理器还可以充当 Docker 凭据助手,以无缝地将存储在 AI Workbench 中的凭据提供给 Docker。

此功能帮助用户高效且安全地管理其凭据,只需登录一次,无论他们在哪个位置工作。

NVIDIA 依赖项#

NVIDIA GPU 驱动程序#

如果您有 NVIDIA GPU,您需要安装 NVIDIA GPU 驱动程序才能利用加速计算。

在 Windows 上,您需要自己安装驱动程序,就像通常所做的那样。我们建议使用 GeForce 或 RTX Experience 应用程序来自动更新您的驱动程序。

在 Linux 上,如果您在运行 AI Workbench 安装程序时未安装驱动程序,则可以为您安装驱动程序。但是,如果您已经安装了驱动程序,AI Workbench 不会更改它们。

CUDA#

您无需单独安装 CUDA,因为它预计会安装在项目容器中。这使得在不管理或更改任何内容的情况下使用不同的 CUDA 版本变得更容易。

您可能需要更新驱动程序才能使用某些项目,因为 CUDA 版本支持。每个驱动程序版本都有 CUDA 的最大支持版本。如果项目中的 CUDA 版本比您的驱动程序的最大支持版本新,您需要更新才能在该项目中使用 GPU 加速。

NVIDIA Container Toolkit#

NVIDIA Container Toolkit 使用户能够构建和运行 GPU 加速的容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以利用 NVIDIA GPU。

NVIDIA Container Toolkit 页面

  • AI workbench 使用 NVIDIA Container Toolkit 来配置 docker 以在 Linux 上使用 GPU

  • AI workbench 在使用 Podman 时使用 NVIDIA Container Toolkit 来配置 CDI

AI Workbench 利用 NVIDIA Container Toolkit 在 Linux 系统上配置 Docker 以启用 GPU 加速。AI Workbench 设置并使用 Docker 的 nvidia 运行时。

当使用 Podman 时,AI Workbench 使用 NVIDIA Container Toolkit 在 Linux 和 Windows/WSL 上生成 CDI 规范。

第三方依赖项#

Docker 由 AI Workbench 用于构建和运行容器。在 macOS 和 Windows 上,AI Workbench 需要 Docker Desktop,这受 Docker 许可要求约束。在 Ubuntu 上,AI Workbench 使用免费提供的 Docker Engine。

Podman 是 AI Workbench 使用的另一个用于构建和运行容器的工具。AI Workbench 在无根模式下运行 Podman,这提供了更好的隔离和安全性,尽管在某些情况下可能会带来轻微的性能损失。您可以选择使用 Docker 或 Podman。

Git 用于管理项目中的文件并进行版本控制。在 macOS 上,AI Workbench 使用通过 XCode 开发人员工具提供的 Git 二进制文件。

Git LFS 可用于管理和版本控制更大的数据文件和模型。Git LFS 有其局限性,但在大多数情况下,它可以帮助保持项目存储库的性能和可管理性,而无需任何额外的服务或配置。

Homebrew 在 macOS 上用于安装其他第三方依赖项。如果您已经安装了 Homebrew,AI Workbench 将使用它。如果未安装,则会为您安装 Homebrew。

工作目录#

AI Workbench 服务器使用工作目录,有时称为“workbench 目录”,用于存储内部文件。工作目录的默认路径是 $HOME/.nvwb

如果您想使用非标准工作目录,您可以在使用 CLI 时使用 --workbench-dir 标志指定此路径。您还可以在桌面应用程序中配置位置时指定非标准工作目录。

工作目录的结构如下

  • bin/:包含 AI Workbench 二进制文件的目录

  • install/:包含元数据文件的目录,用于跟踪安装/更新操作,并供卸载进程使用,仅删除 AI Workbench 已安装的依赖项

  • integrations/:包含集成的元数据文件的目录

  • logs/:包含服务器、CLI 和代理日志的目录

  • proc/:包含 AI Workbench 启动的后台进程(例如服务器、SSH 隧道)的 pid 文件和日志文件的目录

  • project-runtime-info:目录,包含 用于跟踪构建和配置阶段的进度和输出的文件 <reference-projects-spec-runtime-files-link>

  • traefik-configs:目录,其中 为反向代理写入动态配置文件 <reference-proxy-dynamic-config-link>

  • cli.yaml:CLI 配置文件

  • config.yaml:服务器配置文件

  • contexts.json:包含有关此主机上配置的位置(上下文)的元数据的文件

  • inventory.json:包含有关此主机上项目的元数据的文件

  • traefik.yaml:反向代理静态配置文件