?
Flyte es un orquestador de código abierto que facilita la creación de canales de aprendizaje automático y datos de nivel de producción. Está diseñado para ofrecer escalabilidad y reproducibilidad, aprovechando Kubernetes como plataforma subyacente. Con Flyte, los equipos de usuarios pueden construir canalizaciones utilizando el SDK de Python e implementarlas sin problemas en entornos locales y de nube, lo que permite el procesamiento distribuido y la utilización eficiente de los recursos.
Escriba código en Python o cualquier otro lenguaje y aproveche un motor de tipos robusto.
Ya sea localmente o en un clúster remoto, ejecute sus modelos con facilidad.
pip install flytekit
pyflyte run hello_world.py hello_world_wf
¿Listo para probar un clúster Flyte?
flytectl demo start
pyflyte run --remote hello_world.py hello_world_wf
¿Quieres ver más pero no quieres instalar nada?
Dirígete a https://sandbox.union.ai/. Le permite experimentar con las capacidades de Flyte desde una computadora portátil Jupyter alojada.
¿Listo para producir?
Vaya a la guía de implementación para obtener instrucciones para instalar Flyte en diferentes entornos.
Interfaces fuertemente tipadas : valide sus datos en cada paso del flujo de trabajo definiendo barreras de seguridad de datos utilizando tipos Flyte.
Cualquier idioma : escriba código en cualquier idioma utilizando contenedores sin formato o elija los SDK de Python, Java, Scala o JavaScript para desarrollar sus flujos de trabajo Flyte.
Inmutabilidad : las ejecuciones inmutables ayudan a garantizar la reproducibilidad al evitar cualquier cambio en el estado de una ejecución.
? Linaje de datos : realice un seguimiento del movimiento y la transformación de datos a lo largo del ciclo de vida de sus datos y flujos de trabajo de aprendizaje automático.
Tareas de mapa : Logre la ejecución de código paralelo con una configuración mínima utilizando tareas de mapa.
? Multiinquilino : varios usuarios pueden compartir la misma plataforma manteniendo sus propios datos y configuraciones distintos.
? Flujos de trabajo dinámicos : cree flujos de trabajo flexibles y adaptables que puedan cambiar y evolucionar según sea necesario, facilitando la respuesta a los requisitos cambiantes.
⏯️ Espere entradas externas antes de proceder con la ejecución.
? Ramificación : ejecute selectivamente ramas de su flujo de trabajo basadas en datos estáticos o dinámicos producidos por otras tareas o datos de entrada.
? Visualización de datos : visualice datos, supervise modelos y vea el historial de entrenamiento a través de gráficos.
FlyteFile y FlyteDirectory : transfiera archivos y directorios entre el almacenamiento local y en la nube.
?️ Conjunto de datos estructurados : convierta marcos de datos entre tipos y aplique la verificación de tipos a nivel de columna utilizando la representación 2D abstracta proporcionada por el conjunto de datos estructurados.
?️ Recuperarse de fallas : recupere solo las tareas fallidas.
? Vuelva a ejecutar una sola tarea : vuelva a ejecutar flujos de trabajo en el nivel más granular sin modificar el estado anterior de un flujo de trabajo de datos/ML.
? Salidas de caché : almacene en caché las salidas de las tareas pasando cache=True
al decorador de tareas.
Puntos de control dentro de la tarea : progreso del punto de control dentro de la ejecución de una tarea.
⏰ Tiempo de espera : defina un período de tiempo de espera, después del cual la tarea se marca como fallida.
? Dev to prod : Tan simple como cambiar su dominio de desarrollo o puesta en escena a producción.
? Instancias puntuales o interrumpibles : programe sus flujos de trabajo en instancias puntuales estableciendo interruptible
en True
en el decorador de tareas.
☁️ Implementación nativa de la nube : implemente Flyte en AWS, GCP, Azure y otros servicios en la nube.
? Programación : programe sus datos y flujos de trabajo de aprendizaje automático para que se ejecuten en un momento específico.
? Notificaciones : manténgase informado sobre los cambios en el estado de su flujo de trabajo configurando notificaciones a través de Slack, PagerDuty o correo electrónico.
⌛️ Vista de línea de tiempo : evalúe la duración de cada una de sus tareas de Flyte e identifique posibles cuellos de botella.
? Aceleración de GPU : habilite y controle las demandas de GPU de sus tareas solicitando recursos en el decorador de tareas.
? Aislamiento de dependencias a través de contenedores : mantenga conjuntos separados de dependencias para sus tareas para que no surjan conflictos de dependencia.
? Paralelismo : las tareas de Flyte son inherentemente paralelas para optimizar el consumo de recursos y mejorar el rendimiento.
? Asigne recursos dinámicamente a nivel de tarea.
Únase a empresas como LinkedIn, Spotify, Freenome, Pachama, Warner Bros. y muchas otras para adoptar Flyte en casos de uso de misión crítica. Para obtener una lista completa de adoptantes e información sobre cómo agregar su organización o proyecto, visite nuestra página ADOPTADORES.
Sincronización mensual de la comunidad: el primer martes de cada mes, aquí es donde el equipo de Flyte proporciona actualizaciones sobre el proyecto y los miembros de la comunidad pueden compartir su progreso y hacer preguntas.
Slack: únase a la comunidad Flyte en Slack para chatear con otros usuarios, hacer preguntas y obtener ayuda.
? Youtube: Sintonice paneles de discusión, historias de éxito de clientes, actualizaciones de la comunidad y análisis detallados de las características.
? Blog: aquí puede encontrar tutoriales y análisis detallados que le ayudarán a aprender más sobre Flyte.
RFC: los RFC se utilizan para proponer nuevas ideas y funciones para mejorar Flyte. Puede consultarlos para mantenerse actualizado sobre los últimos desarrollos y contribuir al crecimiento de la plataforma.
Hay muchas maneras de participar en Flyte, que incluyen:
help wanted
o good-first-issue
y seguir la guía CONTRIBUCIÓN para enviar cambios al código base.Flyte está disponible bajo la licencia Apache 2.0. Úselo sabiamente.