Beta9 é uma plataforma de código aberto para executar contêineres remotos diretamente do Python. Ele oferece suporte à aceleração GPU/CUDA, permite dimensionar código Python arbitrário para centenas de máquinas, implantar facilmente funções e filas de tarefas e distribuir cargas de trabalho entre vários provedores de nuvem (incluindo provedores bare metal).
Características:
- Expanda cargas de trabalho para centenas de máquinas (com suporte de GPU!)
- Execute contêineres remotos instantaneamente, diretamente do seu interpretador Python
- Distribua cargas de trabalho entre vários provedores de nuvem
- Implante facilmente filas de tarefas e funções usando abstrações simples de Python
Usamos o beta9 internamente no Beam para executar aplicativos de IA para usuários em grande escala.
A maneira mais rápida e confiável de começar a usar o Beam é inscrevendo-se gratuitamente no Beam Cloud. Suas primeiras 10 horas de uso são gratuitas e depois você paga com base no uso.
k3d é usado para desenvolvimento local. Você precisará do Docker e do Make para começar.
Para usar nossa configuração totalmente automatizada, execute o make target setup
.
Note
Isso substituirá algumas das ferramentas que você já pode ter instaladas. Revise o setup.sh para saber mais.
make setup
O SDK é escrito em Python. Você precisará do Python 3.8 ou superior. Use o alvo setup-sdk
para começar.
Note
Isso instalará o gerenciador de pacotes Poetry.
make setup-sdk
Depois de configurar o servidor e o SDK, confira o leia-me do SDK aqui.
from beta9 import function
@function(cpu=8)
def square(i: int):
return i**2
def main():
numbers = list(range(10))
squared = []
# Executa um container remoto para cada item da lista
for result in square.map(numbers):
squared.append(result)
Beta9 foi projetado para lançar contêineres remotos sem servidor muito rapidamente. Existem algumas coisas que tornam isso possível:
- Um formato de imagem de carregamento lento (CLIP) personalizado, apoiado por S3/FUSE
- Um mecanismo rápido de agendamento de contêineres baseado em redis
- Armazenamento endereçado a conteúdo para armazenar imagens e arquivos em cache
- Um tempo de execução de contêiner runc personalizado
Aceitamos contribuições, grandes ou pequenas! Estas são as coisas mais úteis para nós:
- Classifique os recursos em nosso roteiro
- Abra um PR
- Envie uma solicitação de recurso
Nossa missão é simplificar a complexidade da nuvem. Para fazer isso, construímos uma abstração baseada em Python para lançar contêineres sem servidor em GPUs.
Em nossa opinião, os provedores de nuvem existentes fornecem ferramentas que são muito inchadas e complicadas para que os desenvolvedores possam iterar rapidamente.
O Beam é a alternativa para configurar um cluster Kubernetes ou ativar uma VM na nuvem.
O Beam oferece todas as ferramentas necessárias para executar código em GPUs em nuvem, expor esse código por trás de uma API e iterar rapidamente em seu aplicativo.
Se precisar de suporte, você pode entrar em contato por meio de qualquer um destes canais:
- Slack (Converse ao vivo com nossa equipe de engenharia)
- Problemas do GitHub (Relatórios de bugs, solicitações de recursos e qualquer coisa relacionada ao roteiro)
- Twitter (Atualizações sobre lançamentos)