[ad_1]

Note de l’éditeur: Le message d’aujourd’hui est un article invité par Hoang Phan, ingénieur en solutions chez Determined AI, en collaboration avec Aslı Sabancı, ingénieur en apprentissage machine appliqué chez Algorithmia. Il a été initialement publié sur le blog Determined AI.

IA déterminée est une plate-forme de formation open-source d’apprentissage en profondeur qui rend la création de modèles rapide et facile, avec une formation distribuée transparente et un réglage efficace des hyperparamètres. En se concentrant sur la partie formation du développement de modèles, Determined travaille avec d’autres meilleurs outils de race pour servir les modèles après qu’ils ont été formés à Determined. Algorithmie, un leader opérations d’apprentissage automatique (MLOps), s’intègre parfaitement à Determined pour permettre aux utilisateurs des deux plates-formes de former leurs modèles et de les servir facilement à grande échelle, en apportant une valeur de l’IA à leurs entreprises.

Cet article de blog vous montrera comment utiliser Algorithmia et Determined AI ensemble dans un flux de travail rationalisé pour former un modèle d’apprentissage en profondeur, puis le mettre en production à grande échelle.

Introduction à l’algorithmie et à l’intégration d’IA déterminée

La pipeline d’apprentissage automatique se compose de nombreux composants, en particulier le développement de modèles et le service de modèles. Ces composants présentent généralement un défi pour les équipes de développeurs d’infrastructures et de modèles, car ils nécessitent un équilibre entre gérer du matériel complexe tout en permettant aux utilisateurs de développer et de servir des modèles. L’IA et l’algorithmie déterminées relèvent toutes deux ces défis en simplifiant la gestion de l’infrastructure sous-jacente des modèles de formation et de service, respectivement, tout en permettant aux utilisateurs de disposer de capacités avancées dans ces domaines.

Determined AI fournit une plate-forme pour gérer un cluster qui peut entraîner rapidement vos modèles avec une formation distribuée, l’ajuster avec une recherche avancée par hyperparamètres et gérer les points de contrôle les plus performants pour vos modèles entraînés. Bien que l’utilisation de ces points de contrôle localement soit simple, la plupart des utilisateurs voudront déployer leurs meilleurs modèles sur un point de terminaison plus évolutif. C’est ici que Algorithmie entre.

Algorithmia est un logiciel MLOps qui gère toutes les étapes du cycle de vie du ML au sein des processus opérationnels existants. Avec Algorithmia, les équipes et les entreprises peuvent mettre en production des modèles rapidement, en toute sécurité et à moindre coût. Algorithmia automatise le déploiement du ML, optimise la collaboration entre les opérations et le développement, exploite les systèmes SDLC et CI / CD existants, et fournit une sécurité et une gouvernance avancées, afin que les entreprises puissent sortir leurs modèles du laboratoire et les mettre en production, en apportant de la valeur de l’IA à leurs entreprises.

Algorithmia permet un déploiement rapide du code sans serveur, ce qui simplifie le déploiement de vos modèles d’apprentissage automatique à grande échelle. Étant donné qu’Algorithmia gère le matériel pour servir dans les coulisses, il vous suffit de fournir le code que vous souhaitez exécuter et Algorithmia peut adapter cette exécution sur du matériel compatible CPU et GPU.

L’intégration déterminée par l’algorithmie facilite l’interaction entre la détermination et l’algorithmie. Au lieu d’exécuter uniquement l’inférence localement ou de configurer manuellement un point de terminaison et de le maintenir, l’intégration déterminée par algorithme vous permet de déployer de manière transparente un modèle entraîné sur Déterminé vers un point de terminaison sur Algorithmia. Cela présente quelques avantages clés:

  • Réduisez la complexité: Les utilisateurs peuvent facilement créer un pipeline qui entraîne et ajuste un modèle dans Déterminé, puis le déployer sur un point de terminaison évolutif sans avoir besoin de maintenir une infrastructure complexe supplémentaire du côté serveur.
  • Gérez efficacement les modèles: La formation et le réglage des modèles se produisent de manière native dans Determined, où les utilisateurs peuvent facilement interroger les modèles les plus performants et les pousser manuellement ou automatiquement vers un point de terminaison de service.
  • Le code d’inférence peut être normalisé: Le code utilisé localement pour tester un point de contrôle pendant la formation peut être réutilisé pour le point de terminaison de diffusion une fois la formation terminée.

Le fonctionnement de l’intégration est simple: ULes sers continuent à former et à régler les modèles dans Determined comme ils le souhaitent. Puis, une fois le modèle est entraîné, le point de contrôle final du modèle est poussé vers Algorithmia, avec le code d’inférence, pour créer le point de terminaison de service.

Former sur Déterminé, déployer avec Algorithmia

Déterminé fournit la meilleure formation sur les modèles de classe—produire des artefacts de modèle qui peuvent être utilisés dans de nombreuses applications en aval. Associé à Algorithmia, vous pouvez entraîner un modèle d’apprentissage en profondeur et le servir à grande échelle en quelques étapes faciles.

Dans cet exemple, nous montrerons comment vous pouvez commencer à entraîner un modèle de détection d’objets sur Déterminé, puis créer un point de terminaison sur Algorithmia pour évoluer vers le modèle.

Aperçu de l’exemple

L’exemple examine d’abord comment déployer un cluster déterminé et entraîner votre premier modèle sur Determined. Une fois que vous avez formé un modèle, vous pouvez récupérer le meilleur point de contrôle pour le modèle avec l’API de point de contrôle de Determined:

checkpoint = Determined().get_experiment(experiment_id).top_checkpoint()
model = Determined().create_model(MODEL_NAME)
model.register_version(checkpoint.uuid)

Ensuite, c’est un processus simple pour exécuter la prédiction localement à l’aide de ce point de contrôle et de la fonction de prédiction de Determined:

model = Determined().get_model(MODEL_NAME)
trial = model.get_version().load()
inference_model = trial.model

from predict import predict
predict(inference_model, 'test.jpg', inference="local")

Cependant, ce que nous voulons vraiment faire, c’est élargir notre service. Pour ce faire, nous pouvons créer un nouvel algorithme sur Algorithmia:

algo_utility.create_algorithm("pytorch-1.5.x")

Ensuite, nous pouvons le cloner localement:

algo_utility.clone_algorithm_repo()

Avec le repo cloné, nous pouvons mettre à jour le code de service avec notre fonction de prédiction et le pousser pour finaliser le point de terminaison de service:

algo_utility.push_algo_script_with_dependencies(filenames=[
    f"{ALGORITHM_NAME}.py",
    "predict.py",
])

Une fois que le code de l’algorithme a été poussé, nous pouvons facilement faire une prédiction, le point final étant hébergé par Algorithmia sur le back-end:

algo_result = algo_utility.call_latest_algo_version({
    "img_path": TEST_IMG_PATH
})

Démarrez avec l’intégration déterminée par algorithme

Prêt à essayer sur Déterminé et Algorithmia pour vous-même? Commencez avec notre exemple le plus récent, qui vous guide tout au long de la formation d’un modèle de détection d’objet sur la plate-forme Déterminée et du service du modèle sur Algorithmia.

Si vous souhaitez en savoir plus sur Déterminé, consultez-nous sur Github ou rejoignez notre Mou communauté. Nous cherchons toujours à fournir plus d’exemples pour aider les utilisateurs à intégrer Déterminé à d’autres outils, donc si vous avez des demandes ou des suggestions, faites-le nous savoir!

Et pour en savoir plus sur Algorithmia, consultez ce tutoriel supplémentaire étape par étape pour déployer un modèle à partir d’un notebook Jupyter en production à grande échelle et explorer le produit plus en profondeur.