Beta9 es una plataforma de código abierto para ejecutar contenedores remotos directamente desde Python. Admite aceleración GPU/CUDA, le permite escalar código Python arbitrario a cientos de máquinas, implementar fácilmente funciones y colas de tareas y distribuir cargas de trabajo entre varios proveedores de nube (incluidos proveedores bare metal).
Características:
- Amplíe las cargas de trabajo a cientos de máquinas (¡con soporte para GPU!)
- Ejecute contenedores remotos instantáneamente, directamente desde su intérprete de Python
- Distribuir cargas de trabajo entre múltiples proveedores de nube.
- Implemente fácilmente colas de tareas y funciones utilizando abstracciones simples de Python
Usamos beta9 internamente en Beam para ejecutar aplicaciones de IA para usuarios a escala.
La forma más rápida y confiable de comenzar a utilizar Beam es registrándose de forma gratuita en Beam Cloud. Tus primeras 10 horas de uso son gratuitas y luego pagas según el uso.
k3d se utiliza para el desarrollo local. Necesitará Docker y Make para comenzar.
Para utilizar nuestra configuración totalmente automatizada, ejecute setup
make target.
Note
Esto sobrescribirá algunas de las herramientas que quizás ya tengas instaladas. Revise setup.sh para obtener más información.
make setup
El SDK está escrito en Python. Necesitará Python 3.8 o superior. Utilice el objetivo setup-sdk
para comenzar.
Note
Esto instalará el administrador de paquetes de Poetry.
make setup-sdk
Después de haber configurado el servidor y el SDK, consulte el archivo Léame del SDK [aquí] (sdk/README.md).
from beta9 import function
@function(cpu=8)
def square(i: int):
return i**2
def main():
numbers = list(range(10))
squared = []
# Run a remote container for every item in list
for result in square.map(numbers):
squared.append(result)
Beta9 está diseñado para lanzar contenedores remotos sin servidor muy rápidamente. Hay algunas cosas que hacen esto posible:
- Un formato de imagen de carga diferida (CLIP) personalizado respaldado por S3/FUSE
- Un motor de programación de contenedores rápido basado en Redis
- Almacenamiento dirigido a contenido para almacenar en caché imágenes y archivos
- Un tiempo de ejecución de contenedor runc personalizado
¡Agradecemos las contribuciones, grandes o pequeñas! Estas son las cosas más útiles para nosotros:
- Clasificar funciones en nuestra hoja de ruta
- Abrir un PR
- Envíe una solicitud de función
Nuestra misión es simplificar la complejidad de la nube. Para hacer esto, hemos creado una abstracción basada en Python para lanzar contenedores sin servidor en GPU.
En nuestra opinión, los proveedores de nube existentes proporcionan herramientas que están demasiado infladas y complicadas para que los desarrolladores puedan iterar rápidamente.
Beam es la alternativa a configurar un clúster de Kubernetes o poner en marcha una máquina virtual en la nube.
Beam le brinda todas las herramientas que necesita para ejecutar código en GPU en la nube, exponer ese código detrás de una API e iterar rápidamente en su aplicación.
Si necesita ayuda, puede comunicarse con cualquiera de estos canales:
- Slack (Chatea en vivo con nuestro equipo de ingeniería)
- Problemas de GitHub (Informes de errores, solicitudes de funciones y cualquier hoja de ruta relacionada)
- Twitter (Actualizaciones sobre lanzamientos)