?
Flyte est un orchestrateur open source qui facilite la création de données de production et de pipelines ML. Il est conçu pour l'évolutivité et la reproductibilité, en tirant parti de Kubernetes comme plate-forme sous-jacente. Avec Flyte, les équipes d'utilisateurs peuvent créer des pipelines à l'aide du SDK Python et les déployer de manière transparente sur des environnements cloud et sur site, permettant un traitement distribué et une utilisation efficace des ressources.
Écrivez du code en Python ou dans tout autre langage et exploitez un moteur de type robuste.
Que ce soit localement ou sur un cluster distant, exécutez vos modèles en toute simplicité.
pip install flytekit
pyflyte run hello_world.py hello_world_wf
Prêt à essayer un cluster Flyte ?
flytectl demo start
pyflyte run --remote hello_world.py hello_world_wf
Vous souhaitez en voir plus mais ne souhaitez rien installer ?
Rendez-vous sur https://sandbox.union.ai/. Il vous permet d'expérimenter les capacités de Flyte à partir d'un notebook Jupyter hébergé.
Prêt à produire ?
Accédez au guide de déploiement pour obtenir des instructions pour installer Flyte sur différents environnements.
Interfaces fortement typées : Validez vos données à chaque étape du workflow en définissant des garde-fous de données à l'aide des types Flyte.
N'importe quel langage : écrivez du code dans n'importe quel langage à l'aide de conteneurs bruts, ou choisissez les SDK Python, Java, Scala ou JavaScript pour développer vos flux de travail Flyte.
Immuabilité : les exécutions immuables aident à garantir la reproductibilité en empêchant toute modification de l'état d'une exécution.
? Lignage des données : suivez le mouvement et la transformation des données tout au long du cycle de vie de vos flux de données et de ML.
Tâches de mappage : réalisez l'exécution de code parallèle avec une configuration minimale à l'aide de tâches de mappage.
? Multilocation : plusieurs utilisateurs peuvent partager la même plateforme tout en conservant leurs propres données et configurations distinctes.
? Flux de travail dynamiques : créez des flux de travail flexibles et adaptables qui peuvent changer et évoluer selon les besoins, facilitant ainsi la réponse aux exigences changeantes.
⏯️ Attendez les entrées externes avant de procéder à l'exécution.
? Branchement : exécutez sélectivement des branches de votre flux de travail en fonction de données statiques ou dynamiques produites par d'autres tâches ou données d'entrée.
? Visualisation des données : visualisez les données, surveillez les modèles et affichez l'historique de l'entraînement via des tracés.
FlyteFile & FlyteDirectory : Transférez des fichiers et des répertoires entre le stockage local et cloud.
?️ Ensemble de données structuré : convertissez les trames de données entre les types et appliquez la vérification de type au niveau des colonnes à l'aide de la représentation 2D abstraite fournie par Structured Dataset.
?️ Récupérer après les échecs : Récupérez uniquement les tâches ayant échoué.
? Réexécuter une seule tâche : réexécutez les workflows au niveau le plus granulaire sans modifier l'état précédent d'un workflow de données/ML.
? Sorties du cache : mettez en cache les sorties de la tâche en passant cache=True
au décorateur de tâche.
Point de contrôle intra-tâche : progression du point de contrôle au sein de l'exécution d'une tâche.
⏰ Timeout : Définissez un délai d'attente, après lequel la tâche est marquée comme échec.
? Du développement à la production : aussi simple que de changer votre domaine du développement ou de la préparation à la production.
? Instances ponctuelles ou préemptives : planifiez vos flux de travail sur des instances ponctuelles en définissant interruptible
sur True
dans le décorateur de tâches.
☁️ Déploiement cloud natif : déployez Flyte sur AWS, GCP, Azure et d'autres services cloud.
? Planification : planifiez l'exécution de vos flux de données et de ML à une heure précise.
? Notifications : restez informé des modifications apportées à l'état de votre flux de travail en configurant les notifications via Slack, PagerDuty ou par e-mail.
⌛️ Vue chronologique : Évaluez la durée de chacune de vos tâches Flyte et identifiez les goulots d'étranglement potentiels.
? Accélération GPU : activez et contrôlez les demandes GPU de vos tâches en demandant des ressources dans le décorateur de tâches.
? Isolation des dépendances via des conteneurs : conservez des ensembles de dépendances distincts pour vos tâches afin qu'aucun conflit de dépendance ne survienne.
? Parallélisme : les tâches Flyte sont intrinsèquement parallèles pour optimiser la consommation des ressources et améliorer les performances.
? Allouez les ressources de manière dynamique au niveau des tâches.
Rejoignez LinkedIn, Spotify, Freenome, Pachama, Warner Bros. et bien d'autres pour adopter Flyte pour les cas d'utilisation critiques. Pour une liste complète des adoptants et des informations sur la façon d’ajouter votre organisation ou projet, veuillez visiter notre page ADOPTEURS.
Synchronisation mensuelle de la communauté : le premier mardi de chaque mois, c'est ici que l'équipe Flyte fournit des mises à jour sur le projet et que les membres de la communauté peuvent partager leurs progrès et poser des questions.
Slack : rejoignez la communauté Flyte sur Slack pour discuter avec d'autres utilisateurs, poser des questions et obtenir de l'aide.
? Youtube : participez à des tables rondes, à des témoignages de clients, à des mises à jour de la communauté et à des analyses approfondies.
? Blog : ici, vous pouvez trouver des didacticiels et des présentations approfondies pour vous aider à en savoir plus sur Flyte.
RFC : les RFC sont utilisés pour proposer de nouvelles idées et fonctionnalités pour améliorer Flyte. Vous pouvez vous y référer pour rester informé des derniers développements et contribuer à la croissance de la plateforme.
Il existe de nombreuses façons de s'impliquer dans Flyte, notamment :
help wanted
ou good-first-issue
et suivre le guide CONTRIBUANT pour soumettre des modifications à la base de code.Flyte est disponible sous la licence Apache 2.0. Utilisez-le à bon escient.