Dépôts et développement basé sur le tronc
De nombreux scientifiques des données préfèrent travailler avec Python ou R pour définir des charges de travail Machine Learning. Vous pouvez avoir des notebooks ou des scripts Jupyter pour préparer des données ou entraîner un modèle.
Travailler sur les éléments du code devient plus facile lorsque vous utilisez le contrôle de code source. Le contrôle de code source est la pratique de la gestion du code et du suivi des modifications apportées par votre équipe au code.
Si vous utilisez des outils DevOps comme Azure DevOps ou GitHub, le code est stocké dans un dépôt ou undépôt.
Référentiel
Lors de la configuration du framework MLOps, un ingénieur Machine Learning crée probablement le dépôt. Que vous choisissiez d’utiliser Azure Repos dans Azure DevOps ou gitHub repos, les deux utilisent des référentiels Git pour stocker votre code.
Il existe généralement deux façons de délimiter le dépôt :
- Monorepo : conservez toutes les charges de travail de Machine Learning dans un même dépôt.
- Plusieurs dépôts : créez un dépôt distinct pour chaque nouveau projet Machine Learning.
L’approche que votre équipe préférera dépend de qui accédera à quoi. Si vous souhaitez garantir un accès rapide à tous les éléments de code, les mono-dépôts devraient mieux répondre aux besoins de votre équipe. Si vous voulez seulement accorder aux personnes l’accès à un projet si celles-ci travaillent activement dessus, il est possible que votre équipe préfère travailler avec plusieurs dépôts. Gardez à l’esprit que la gestion du contrôle d’accès peut créer davantage de surcharge.
Structurer votre dépôt
Quelle que soit l’approche que vous choisissez, il est recommandé de se mettre d’accord sur la structure de dossiers de niveau supérieur standard pour vos projets. Par exemple, vous pouvez avoir les dossiers suivants dans tous vos dépôts :
.cloud: contient le code spécifique au cloud comme les modèles pour créer un espace de travail Azure Machine Learning..ad/.github: contient des artefacts Azure DevOps ou GitHub comme les pipelines YAML pour automatiser les workflows.src: contient tout le code (scripts Python ou R) utilisé pour les charges de travail Machine Learning telles que le prétraitement des données ou l’entraînement de modèles.docs: contient les fichiers Markdown ou autres documentations utilisés pour décrire le projet.pipelines: contient les définitions de pipelines Azure Machine Learning.tests: contient les tests unitaires et d’intégration utilisés pour détecter les bogues et les problèmes dans votre code.notebooks: contient les notebooks Jupyter, essentiellement utilisés pour les expérimentations.
Remarque
Les données d’apprentissage ne doivent pas être incluses dans votre dépôt. Les données doivent être stockées dans une base de données ou un lac de données. Azure Machine Learning peut avoir un accès direct à une base de données ou à un lac de données en stockant les informations de connexion en tant que magasin de données.
En ayant une structure standard que chaque projet utilise, les scientifiques des données et autres collaborateurs trouveront plus facilement le code sur lequel ils ont besoin de travailler.
Conseil
Découvrez d’autres meilleures pratiques pour structurer des projets de science des données.
Pour savoir comment travailler avec des dépôts en tant que scientifique des données, vous allez apprendre le développement basé sur le tronc.
Développement basé sur le tronc
La plupart des projets de développement logiciel utilisent Git comme système de contrôle de code source, utilisé à la fois par Azure DevOps et GitHub.
L’avantage principal de l’utilisation de Git est une collaboration facile sur le code tout en suivant également les changements qui sont apportés. En outre, vous pouvez ajouter des portes d’approbation pour vous assurer que seules les modifications qui ont été examinées et acceptées seront apportées au code de production.
Pour ce faire, Git utilise le développement basé sur des jonctions qui vous permet de créer des branches.
Le code de production est hébergé dans la branche principale . Chaque fois que quelqu’un veut apporter un changement :
- Vous créez une copie complète du code de production en créant une branche.
- Dans la branche que vous avez créée, vous apportez vos changements et vous les testez.
- Une fois que les changements de votre branche sont prêts, vous pouvez demander à quelqu’un de les réviser.
- Si les modifications sont approuvées, vous fusionnez la branche que vous avez créée avec le dépôt principal et le code de production sera mis à jour pour refléter vos modifications.
