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。
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:反向代理静态配置文件