Backend.AI

backend.ai的元存储库。Backend.AI是一个简化的后端API服务器,托管异构编程语言和流行的AI框架。(Meta-repository for backend.ai. Backend.AI is a streamlined backend API server that hosts heterogeneous programming languages and popular AI frameworks.)

Github星跟蹤圖

Backend.AI

PyPI release version
Supported Python versions
Gitter

Backend.AI is a streamlined, container-based computing cluster orchestrator
that hosts diverse programming languages and popular computing/ML frameworks,
with pluggable heterogeneous accelerator support including CUDA and ROCM.
It allocates and isolates the underlying computing resources for multi-tenant
computation sessions on-demand or in batches with customizable job schedulers.
All its functions are exposed as REST/GraphQL/WebSocket APIs.

Server-side Components

If you want to run a Backend.AI cluster on your own, you need to install and
configure the following server-side components.
All server-side components are licensed under LGPLv3 to promote non-proprietary open
innovation in the open-source community.

There is no obligation to open your service/system codes if you just run the
server-side components as-is (e.g., just run as daemons or import the components
without modification in your codes).
Please contact us (contact-at-lablup-com) for commercial consulting and more
licensing details/options about individual use-cases.

For details about server installation and configuration, please visit our
documentation
.

Manager with API Gateway

It routes external API requests from front-end services to individual agents.
It also monitors and scales the cluster of multiple agents (a few tens to hundreds).

  • https://github.com/lablup/backend.ai-manager
    • Package namespace: ai.backend.gateway and ai.backend.manager
    • Plugin interfaces
      • backendai_scheduler_v10
      • backendai_hook_v10
      • backendai_webapp_v10
      • backendai_monitor_stats_v10
      • backendai_monitor_error_v10

Agent

It manages individual server instances and launches/destroys Docker containers where
REPL daemons (kernels) run.
Each agent on a new EC2 instance self-registers itself to the instance registry via
heartbeats.

Server-side common plugins (for both manager and agents)

Kernels

A set of small ZeroMQ-based REPL daemons in various programming languages and
configurations.

Jail

A programmable sandbox implemented using ptrace-based sytem call filtering written in
Go.

Hook

A set of libc overrides for resource control and web-based interactive stdin (paired
with agents).

Commons

A collection of utility modules commonly shared throughout Backend.AI projects.

Client-side Components

Client SDK Libraries

We offer client SDKs in popular programming languages.
These SDKs are freely available with MIT License to ease integration with both
commercial and non-commercial software products and services.

Media

The front-end support libraries to handle multi-media outputs (e.g., SVG plots,
animated vector graphics)

  • The Python package (lablup) is installed inside kernel containers.
  • To interpret and display media generated by the Python package, you need to load
    the Javascript part in the front-end.
  • https://github.com/lablup/backend.ai-media

Interacting with computation sessions

Backend.AI provides websocket tunneling into individual computation sessions (containers),
so that users can use their browsers and client CLI to access in-container applications directly
in a secure way.

  • Jupyter Kernel: data scientists' favorite tool
    • Most container sessions have intrinsic Jupyter and JupyterLab support.
  • Web-based terminal
    • All container sessions have intrinsic ttyd support.
  • SSH
    • All container sessions have intrinsic SSH/SFTP/SCP support with auto-generated per-user SSH keypair.
      PyCharm and other IDEs can use on-demand sessions using SSH remote interpreters.
  • VSCode (coming soon)
    • Most container sessions have intrinsic web-based VSCode support.

Integrations with IDEs and Editors

Storage management

Backend.AI provides an abstraction layer on top of existing network-based storages
(e.g., NFS/SMB), called vfolders (virtual folders).
Each vfolder works like a cloud storage that can be mounted into any computation
sessions and shared between users and user groups with differentiated privileges.

License

Refer to LICENSE file.

概覽

名稱與所有者lablup/backend.ai
主編程語言Python
編程語言Python (語言數: 13)
平台Docker, Linux, Mac, Windows
許可證GNU Lesser General Public License v3.0
發布數135
最新版本名稱24.03.3 (發布於 2024-05-01 01:39:01)
第一版名稱v0.7.0 (發布於 )
創建於2016-10-06 05:08:49
推送於2024-05-06 10:53:33
最后一次提交
星數469
關注者數24
派生數146
提交數1.8k
已啟用問題?
問題數712
打開的問題數246
拉請求數1149
打開的拉請求數89
關閉的拉請求數153
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?
去到頂部