


Apache Submarine (Submarine for Short) est une plate-forme d'apprentissage automatique de bout en bout pour permettre aux scientifiques des données de créer des flux de travail d'apprentissage de bout en bout. Sur le sous-marin , les scientifiques des données peuvent terminer chaque étape du cycle de vie du modèle ML, y compris l'exploration des données, la création de pipelines de données, la formation, la formation et la surveillance des modèles.
Certains projets open-source et commerciaux tentent de créer une plate-forme ML de bout en bout. Quelle est la vision du sous-marin?
Theodore Levitt a dit un jour:
“People don’t want to buy a quarter-inch drill. They want a quarter-inch hole.”
experiment de formation distribuée sur Prem ou Cloud via l'interface utilisateur / API / SDK facile à utiliser.experiment et des dépendances de environment .Comme mentionné ci-dessus, Submarine tente de fournir une interface utilisateur adaptée aux données-scientifiques pour que les scientifiques des données aient une bonne expérience utilisateur. Voici quelques exemples.
# New a submarine client of the submarine server
submarine_client = submarine . ExperimentClient ( host = 'http://localhost:8080' )
# The experiment's environment, could be Docker image or Conda environment based
environment = EnvironmentSpec ( image = 'apache/submarine:tf-dist-mnist-test-1.0' )
# Specify the experiment's name, framework it's using, namespace it will run in,
# the entry point. It can also accept environment variables. etc.
# For PyTorch job, the framework should be 'Pytorch'.
experiment_meta = ExperimentMeta ( name = 'mnist-dist' ,
namespace = 'default' ,
framework = 'Tensorflow' ,
cmd = 'python /var/tf_dist_mnist/dist_mnist.py --train_steps=100' )
# 1 PS task of 2 cpu, 1GB
ps_spec = ExperimentTaskSpec ( resources = 'cpu=2,memory=1024M' ,
replicas = 1 )
# 1 Worker task
worker_spec = ExperimentTaskSpec ( resources = 'cpu=2,memory=1024M' ,
replicas = 1 )
# Wrap up the meta, environment and task specs into an experiment.
# For PyTorch job, the specs would be "Master" and "Worker".
experiment_spec = ExperimentSpec ( meta = experiment_meta ,
environment = environment ,
spec = { 'Ps' : ps_spec , 'Worker' : worker_spec })
# Submit the experiment to submarine server
experiment = submarine_client . create_experiment ( experiment_spec = experiment_spec )
# Get the experiment ID
id = experiment [ 'experimentId' ] submarine_client . get_experiment ( id ) submarine_client . wait_for_finish ( id ) submarine_client . get_log ( id ) submarine_client . list_experiments ( status = 'running' )Pour un démarrage rapide, voir sous-marin sur K8S
(Disponible sur 0.5.0, voir la feuille de route)
Si vous voulez en savoir plus sur l'architecture, les composants, les exigences et les documents de la sous-marin, ils peuvent être trouvés sur l'architecture et la demande
Documentation détaillée de conception, les notes de mise en œuvre peuvent être trouvées sur: Notes d'implémentation
Lisez le guide communautaire sous-marin Apache
Comment contribuer le guide contributif
Connexion sous-marin Slack Channel: https://join.slack.com/t/asf-submarine/shared_invite
Suivi des problèmes: https://issues.apache.org/jira/projects/submarine
Voir la page d'accueil du guide de l'utilisateur
Voir la page d'accueil du Guide du développeur
Que savoir le plus sur ce qui arrive pour le sous-marin? Veuillez vérifier la feuille de route: https://cwiki.apache.org/confluence/display/submarine/roadmap
De là, vous pouvez connaître le Changelog et le tracker de problème de la version différente d'Apache Submarine.
Submarine Apache: une plate-forme d'apprentissage automatique unifiée est simple à Euromlsys '22
Le projet Submarine Apache est sous licence sous la licence Apache 2.0. Voir le fichier de licence pour plus de détails.