backend.ai

GitHub
629 172 较难 1 次阅读 今天LGPL-3.0插件数据工具
AI 解读 由 AI 自动生成,仅供参考

Backend.AI 是一个基于容器的高效计算集群平台,旨在为人工智能和科学计算提供灵活的资源管理方案。它解决了在多用户环境下,如何统一调度异构硬件资源(如 NVIDIA/AMD GPU、Google TPU 及各种国产 NPU)并隔离运行环境的难题,让用户能够按需或批量启动包含各类主流框架和编程语言的计算会话。

该平台特别适合需要高性能算力的开发者、数据科学家及研究人员使用。无论是进行模型训练、数据分析还是算法验证,用户都能通过 Backend.AI 轻松获取所需的计算资源,而无需关心底层基础设施的复杂配置。

Backend.AI 的核心亮点在于其自研的"Sokovan"编排器,能够智能分配和隔离底层资源,支持高度定制化的作业调度。同时,它提供了完善的 REST 和 GraphQL API 接口,便于系统集成与自动化管理。在访问体验上,Backend.AI 支持通过浏览器直接连接容器内的 Jupyter、Web 终端,甚至允许通过 SSH 或 VSCode 远程开发,实现了安全便捷的“云端本地化”操作体验。对于希望构建私有 AI 算力池或优化现有集群效率的团队来说,这是一个功能强大且扩展性极佳的选择。

使用场景

某生物科技公司算法团队需在混合了 NVIDIA GPU 和 Google TPU 的集群上,为多名数据科学家并发运行基因测序分析任务。

没有 backend.ai 时

  • 资源调度混乱:人工分配硬件导致高端算力闲置与低效争抢并存,无法根据任务自动匹配 CUDA GPU 或 TPU。
  • 环境配置繁琐:每位成员需手动在服务器上安装依赖、配置 Docker,不同项目间的库版本冲突频发,排查耗时。
  • 多租户隔离缺失:团队成员共用服务器权限,误操作易导致他人任务中断,且难以精确统计个人算力消耗。
  • 远程开发受阻:缺乏统一入口,开发者无法直接通过 VSCode 或 Jupyter 安全地接入容器内部进行调试。

使用 backend.ai 后

  • 智能异构调度:backend.ai 自动识别任务需求,将深度学习模型分发至 GPU,将大规模并行计算调度至 TPU,资源利用率提升 40%。
  • 一键环境就绪:基于预置容器镜像,开发者秒级启动包含特定框架的计算会话,彻底消除环境配置差异带来的“在我机器上能跑”问题。
  • 精细化隔离与计量:为每位研究员提供独立的沙箱会话,互不干扰,并自动生成详细的算力使用报表,便于成本分摊。
  • 无缝开发体验:通过内置的 WebSocket 隧道,团队成员可直接在本地 IDE 中 SSH 连接远程容器,或在浏览器中打开 JupyterLab 即时编码。

backend.ai 将复杂的异构集群转化为按需取用的标准化算力服务,让算法团队专注于核心科研而非运维琐事。

运行环境要求

操作系统
  • Linux (Debian/RHEL-based)
  • macOS
GPU
  • 非必需(支持插件化异构加速器)
  • 可选支持:NVIDIA CUDA GPU, AMD ROCm GPU, Rebellions, FuriosaAI, HyperAccel, Google TPU, Graphcore IPU 等
  • 开发环境可使用 CUDA Mock 插件在无实体 GPU 下运行
内存

最低:未说明;推荐:8GB+ (开发环境)

依赖
notes1. 安装需要 sudo 权限。2. 核心编排器名为 'Sokovan'。3. 开发环境建议使用提供的 install-dev.sh 脚本一键搭建包含数据库和监控组件的半栈基础设施。4. 生产环境或多节点测试需参考官方文档。5. 服务端组件基于 LGPLv3 协议,客户端 SDK 基于 MIT 协议。
python3.13.x (主分支要求 CPython 3.13.7)
Docker 20.10+ (含 Compose v2)
PostgreSQL 16+
Redis 7.2+
etcd 3.5+
Prometheus 3.x
Pantsbuild 2.27.x
Grafana 11.x (推荐)
Loki 3.x (推荐)
Tempo 2.x (推荐)
backend.ai hero image

快速开始

Backend.AI

PyPI 发布版本 支持的 Python 版本 轮子包 Gitter

Backend.AI 是一个精简的、基于容器的计算集群平台,支持主流的计算和机器学习框架以及多种编程语言,并且能够插拔式地接入异构加速器,包括 CUDA GPU、ROCm GPU、Rebellions、FuriosaAI、HyperAccel、Google TPU、Graphcore IPU 等 NPU。

它通过名为“Sokovan”的编排器,利用自定义的任务调度器,按需或批量为多租户计算会话分配并隔离底层计算资源。

其所有功能均以 REST 和 GraphQL API 的形式对外暴露。

要求

Python 及构建工具

基础设施

必需

  • Docker 20.10+(带 Compose v2)
  • PostgreSQL 16+(已测试 16.3)
  • Redis 7.2+(已测试 7.2.11)
  • etcd 3.5+(已测试 3.5.14)
  • Prometheus 3.x(已测试 3.1.0)

推荐(用于可观测性):

  • Grafana 11.x(已测试 11.4.0)
  • Loki 3.x(已测试 3.5.0)
  • Tempo 2.x(已测试 2.7.2)
  • OpenTelemetry 收集器

→ 详细的基础设施设置:基础设施文档

系统

  • 操作系统:Linux(基于 Debian/RHEL)或 macOS
  • 权限:安装时需具有 sudo 权限
  • 资源:建议开发环境至少配备 4 核 CPU 和 8GB 内存

快速入门

快速入门(开发)

1. 克隆并安装

git clone https://github.com/lablup/backend.ai.git
cd backend.ai
./scripts/install-dev.sh

该脚本将执行以下操作:

  • 检查所需的依赖项(Docker、Python 等)
  • 使用 Pantsbuild 设置 Python 虚拟环境
  • 启动半堆栈基础设施(PostgreSQL、Redis、etcd、Grafana 等)
  • 初始化数据库模式
  • 创建默认的 API 密钥对和用户账户

2. 启动 Backend.AI 服务

在不同的终端中分别启动各个组件:

管理器(终端 1):

./backend.ai mgr start-server --debug

代理(终端 2):

./backend.ai ag start-server --debug

存储代理(终端 3):

./py -m ai.backend.storage.server

Web 服务器(终端 4):

./py -m ai.backend.web.server

应用代理(终端 5-6,可选,用于容器内服务访问):

./backend.ai app-proxy-coordinator start-server --debug
./backend.ai app-proxy-worker start-server --debug

3. 运行您的第一个会话

设置客户端环境:

source env-local-user-session.sh
# 该脚本会打印您的默认用户 ID 和密码;
./backend.ai login
# 在提示时输入上述显示的用户 ID 和密码。

运行一个简单的 Python 会话:

./backend.ai run python -c "print('Hello Backend.AI!')"

或者使用 env-local-*.sh 文件中的凭据,访问 Web UI:http://localhost:8090

访问计算会话(即内核)

Backend.AI 提供了到各个计算会话(容器)的 WebSocket 隧道,使用户能够通过浏览器和客户端 CLI 安全地直接访问容器内的应用程序。

  • Jupyter:数据科学家最喜爱的工具
    • 大多数容器镜像都内置了 Jupyter 和 JupyterLab 支持。
  • 基于 Web 的终端
    • 所有容器会话都内置了 ttyd 支持。
  • SSH
    • 所有容器会话都内置了 SSH/SFTP/SCP 支持,并自动生成每个用户的 SSH 密钥对。 PyCharm 和其他 IDE 可以使用 SSH 远程解释器来创建按需会话。
  • VSCode
    • 大多数容器会话都内置了基于 Web 的 VSCode 支持。

存储操作

Backend.AI 在现有的网络存储(如 NFS/SMB)之上提供了一个抽象层,称为 vfolder(虚拟文件夹)。 每个 vfolder 就像一个云存储,可以挂载到任何计算会话中,并可在用户和用户组之间共享,同时赋予不同的权限。

多节点测试及生产环境的安装

请参阅我们的 文档,获取社区支持的相关资料。 如需专业的付费支持和部署方案,请联系销售团队(contact@lablup.com)。

架构

有关完整的系统架构、组件交互及基础设施细节,请参阅:

组件架构文档

本文档涵盖:

  • 系统架构图和组件流程
  • 端口号和基础设施设置
  • 组件依赖关系和通信协议
  • 开发与生产环境配置

本仓库内容

本仓库包含所有开源的服务器端组件以及 Python 客户端 SDK, 作为 API 客户端的参考实现。

目录结构

  • src/ai/backend/: 源代码
    • manager/: 管理器作为集群控制平面
    • manager/api: 管理器的 API 处理程序
    • account_manager/: 统一的用户档案和 SSO 管理
    • agent/: 代理作为每个节点的控制器
    • agent/docker/: 代理的 Docker 后端
    • agent/k8s/: 代理的 Kubernetes 后端
    • agent/dummy/: 代理的虚拟后端
    • kernel/: 代理的内核运行时对应组件
    • runner/: 代理在内核中预编译的二进制文件
    • helpers/: 代理在内核中的辅助工具包
    • common/: 共享工具
    • client/: 客户端 SDK
    • cli/: 所有组件的统一命令行界面
    • install/: 基于 SCIE 的 TUI 安装程序
    • storage/: 存储代理,用于卸载存储操作
    • storage/api: 存储代理面向管理器和客户端的 API
    • appproxy/: 应用代理,用于从外部访问容器应用
    • appproxy/coordinator: 应用代理协调器,负责配置路由电路
    • appproxy/worker: 应用代理工作节点,负责转发流量
    • web/: Web UI 服务器
      • static/: Backend.AI WebUI 发布产物
    • logging/: 日志子系统
    • plugin/: 插件子系统
    • test/: 集成测试套件
    • testutils/: 单元测试中使用的共享工具
    • meta/: 旧版元数据包
    • accelerator/: 内置加速器插件
  • docs/: 统一日志文档
  • tests/
    • manager/, agent/, ...: 各组件的单元测试
  • configs/
    • manager/, agent/, ...: 各组件的示例配置
  • docker/: 辅助容器的 Dockerfile
  • fixtures/
    • manager/, ...: 各组件的开发环境和测试用例
  • plugins/: 用于放置加速器、监控器等插件的目录
  • scripts/: 用于辅助开发流程的脚本
    • install-dev.sh: 从工作副本进行单节点开发环境搭建的脚本
  • stubs/: 我们编写的类型注解存根包
  • tools/: 用于存放与 Pants 工具相关的文件的目录
  • dist/: 用于存放构建产物(.whl 文件)和由 Pants 导出的虚拟环境的目录
  • changes/: 用于 towncrier 的新闻片段
  • pants.toml: Pants 构建工具的配置文件
  • pyproject.toml: 工具配置文件(towncrier、pytest、mypy)
  • BUILD: 根级构建配置文件
  • **/BUILD: 各目录的构建配置文件
  • BUILD_ROOT: 用于标记 Pants 构建根目录的标识符
  • CLAUDE.md: 代理辅助开发的指导手册
  • requirements.txt: 统一的依赖清单
  • *.lock, tools/*.lock: 依赖锁定文件
  • docker-compose.*.yml: 各版本推荐的半栈容器配置
  • README.md: 当前文件
  • MIGRATION.md: 主要版本间升级的迁移指南
  • VERSION: 统一的版本声明

服务器端组件采用 LGPLv3 许可证,旨在促进开源社区中的非专有开放创新;而其他共享库和客户端 SDK 则采用 MIT 许可证。

如果您仅按原样运行服务器端组件(例如,直接以守护进程方式运行,或在您的代码中不加修改地导入这些组件),则没有义务公开您的服务或系统源代码。 如需商业咨询及针对具体使用场景的更多许可细节和选项,请联系我们(contact-at-lablup-com)。

主要组件

Backend.AI 由以下核心组件组成:

服务器端组件

管理器 - 中央 API 网关和编排器

  • 路由 REST/GraphQL 请求并编排集群操作
  • 通过 Sokovan 编排器进行会话调度
  • 用户身份验证和 RBAC 授权
  • 插件接口:backendai_scheduler_v10backendai_agentselector_v10backendai_hook_v20backendai_webapp_v20backendai_monitor_stats_v10backendai_monitor_error_v10
  • 旧版仓库:https://github.com/lablup/backend.ai-manager

代理 - 计算节点上的内核生命周期管理

  • 管理各个节点上的 Docker 容器(内核)
  • 通过心跳机制自动注册到集群
  • 插件接口:backendai_accelerator_v21backendai_monitor_stats_v10backendai_monitor_error_v10
  • 旧版仓库:https://github.com/lablup/backend.ai-agent

存储代理 - 虚拟文件夹和存储后端抽象

Web 服务器 - Web UI 托管和会话管理

同步静态 Backend.AI WebUI 版本:

$ scripts/download-webui-release.sh <要下载的目标版本>

应用代理 - 服务路由和负载均衡

  • 将流量路由到容器内的服务(Jupyter、VSCode 等)
  • 动态电路配置和健康监测

容器运行时组件

内核 - 容器镜像配方

  • 基于 Dockerfile 的计算环境配方
  • 支持流行的机器学习框架和编程语言

Jail - 可编程沙盒(Rust)

  • 基于 ptrace 的系统调用过滤
  • 资源控制和安全强化

Hook - 容器内运行时库

  • libc 替换以实现资源控制
  • 基于 Web 的交互式 stdin 支持

客户端 SDK 库

我们提供多种流行编程语言的客户端 SDK(MIT 许可证):

  • Python - pip install backend.ai-client | GitHub | 包含 CLI
  • Java - 发布页面
  • Javascript - npm install backend.ai-client | GitHub
  • PHP - (准备中)composer require lablup/backend.ai-client | GitHub

插件

Backend.AI 通过 Python 包的入口点支持基于插件的扩展性:

加速器插件 (backendai_accelerator_v21)

  • CUDA - NVIDIA GPU 支持
  • CUDA Mock - 无需实际 GPU 的开发环境
  • ROCm - AMD GPU 支持
  • Furiosa - Furiosa NPU(Warboy / RNGD)支持
  • Hyperaccel - Hyperaccel LPU 支持
  • IPU - Graphcore IPU 支持
  • Rebellions - Rebellions NPU(ATOM、ATOM+、ATOM Max)支持
  • Tenstorrent - Tenstorrent NPU(Wormhole、Blackhole)支持
  • TPU - Google TPU(v2、v3)支持

监控插件

遗留组件

媒体库 - 多媒体输出支持(已不再维护)

IDE 扩展 - (已弃用:请改用内核中的 Jupyter Lab、VSCode Server 或 SSH)

开发

构建软件包

构建 Python 的 wheel 文件或 SCIE(自包含可安装执行文件):

./scripts/build-wheels.sh  # 构建 .whl 包
./scripts/build-scies.sh   # 构建 SCIE 包

生成的包会放置在 dist/ 目录下。

代码质量钩子

Backend.AI 使用 Git 的 pre-commit 钩子来保持代码质量:

# 每次提交时自动运行:
# - 自动格式化(pants fmt)
# - 代码检查(pants lint)

# 如有需要可绕过钩子(请谨慎使用)
git commit --no-verify

pre-commit 钩子会验证:

  • 代码风格和格式

类型检查和测试则在 CI 中运行,以确保全面覆盖。

详细钩子系统文档请参阅 CLAUDE.md

开发指南

有关详细的开发环境搭建、构建系统使用以及贡献指南:

开发时启用 CLI Tab 补全功能

在开发过程中为 Backend.AI CLI 启用 Shell Tab 补全功能:

# 对于 bash/zsh(从仓库根目录) - 必须使用 'source',不能直接执行
source scripts/setup-dev-completion.sh

# 对于 fish shell
source scripts/setup-dev-completion.fish

# 或者创建永久别名
# bash/zsh:
echo 'alias bai-dev="cd /path/to/backend.ai && source scripts/setup-dev-completion.sh"' >> ~/.zshrc
# fish:
echo 'alias bai-dev="cd /path/to/backend.ai; and source scripts/setup-dev-completion.fish"' >> ~/.config/fish/config.fish

这将启用以下 Tab 补全功能:

  • backend.ai <tab> - 显示所有命令
  • backend.ai session <tab> - 会话管理
  • backend.ai admin <tab> - 管理操作
  • backend.ai --<tab> - 全局选项

支持 bashzshfish shell。

许可证

请参阅 LICENSE 文件

版本历史

26.3.32026/03/24
26.3.22026/03/24
26.2.22026/02/23
26.2.12026/02/22
25.15.102026/02/20
26.3.12026/03/24
25.11.42026/03/20
25.15.122026/03/16
26.3.02026/03/16
26.3.0rc22026/03/12
25.15.92026/02/20
26.2.52026/03/12
26.3.0rc12026/03/11
26.2.42026/02/27
26.2.32026/02/25
25.15.112026/02/23
26.2.02026/02/13
26.2.0rc12026/02/12
25.15.82026/01/26
26.1.02026/01/26

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|昨天
插件开发框架

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|2天前
图像数据工具视频

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.8k|★★★☆☆|今天
语言模型Agent开发框架

gstack

gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。

67k|★★☆☆☆|今天
Agent插件

gpt4free

gpt4free 是一个由社区驱动的开源项目,旨在聚合多种可访问的大型语言模型(LLM)和媒体生成接口,让用户能更灵活、便捷地使用前沿 AI 能力。它解决了直接调用各类模型时面临的接口分散、门槛高或成本昂贵等痛点,通过统一的标准将不同提供商的资源整合在一起。 无论是希望快速集成 AI 功能的开发者、需要多模型对比测试的研究人员,还是想免费体验最新技术的普通用户,都能从中受益。gpt4free 提供了丰富的使用方式:既包含易于上手的 Python 和 JavaScript 客户端库,也支持部署本地图形界面(GUI),更提供了兼容 OpenAI 标准的 REST API,方便无缝替换现有应用后端。 其技术亮点在于强大的多提供商支持架构,能够动态调度包括 Opus、Gemini、DeepSeek 等多种主流模型资源,并支持 Docker 一键部署及本地推理。项目秉持社区优先原则,在降低使用门槛的同时,也为贡献者提供了扩展新接口的便利框架,是探索和利用多样化 AI 资源的实用工具。

66k|★★☆☆☆|4天前
插件语言模型Agent