Comment intégrer le Picsellia dans un flux de travail de formation au visage étreint ?

Comment intégrer le Picsellia dans un flux de travail de formation au visage étreint ?

La mise en œuvre à grande échelle de la formation aux modèles de vision par ordinateur nécessite un flux de travail robuste pour les opérations de vision par ordinateur . La mise à l'échelle de la formation avec un flux de travail personnalisé peut créer un goulot d'étranglement au niveau de la traçabilité et de la répétabilité. L'adaptation de ce processus à votre flux de travail de formation personnalisé peut s'avérer coûteuse en termes de temps et de ressources.



Une plateforme CVOps comme Picsellia possède des flux de travail architecturaux robustes qui offrent suffisamment de fonctionnalités pour gérer le développement de modèles basés sur la vision par ordinateur à grande échelle (formation). Elle dispose des outils nécessaires pour gérer l'ensemble du cycle de vie du développement de CV. Deux options s'offrent à vous lorsque vous utilisez Picsellia pour la formation. Vous pouvez redévelopper l'ensemble de votre flux de travail de formation pour utiliser les flux de travail et l'infrastructure de Picsellia. Ou intégrer Picsellia dans votre processus de formation existant tout en continuant à utiliser votre infrastructure. L'option d'intégration vous offre le meilleur des deux mondes sans verrouiller la plate-forme ou sans avoir à migrer vos flux de formation existants vers la plate-forme. Elle crée également deux points de défaillance pour les flux de formation et plusieurs emplacements de données puisque les informations de formation générées dans votre environnement de formation local (sur l'infrastructure) existent également sur la plate-forme de Picsellia.



En général, l'intégration d'un programme à une plateforme nécessite un pipelining de précision pour gérer l'ensemble du flux de travail en raison d'exigences spécifiques dont le programme dépend. Dans ce cas, vous prendrez en compte l'enregistrement des mesures, les artefacts de formation associés, les paramètres du modèle, le cadre de formation, etc.

Conditions préalables

Pour suivre confortablement la démonstration de cet article, vous devez disposer des éléments suivants :

  • Un compte Picsellia actif.
  • Le SDK Picsellia est installé sur votre machine ; voir comment l'installer ici.
  • HuggingFace est installé sur votre machine ; voir comment l'installer ici.
  • Les exigences de Picsellia pour une intégration ; voir les exigences ici.
  • Compréhension de base à intermédiaire du suivi des expériences.



Ce tutoriel explique l'intégration de Picsellia dans un script de formation de transformateur DETR qui utilise le framework HuggingFace.



Dans ce tutoriel, vous allez :

  • Lancer une expérience avec Picsellia.
  • Extraire de Picsellia les ensembles de données associés à l'expérience.
  • Entraînez le modèle et enregistrez les résultats dans Picsellia.
  • Envoyer les évaluations à la plateforme d'évaluation de Picsellia.
  • Stocker les artefacts dans le magasin d'artefacts de Picsellia.
  • Stocker le modèle réentraîné dans le registre de modèles de Picsellia.
  • Dockeriser le code.



Vous pouvez trouver tous les codes liés à ce tutoriel ici.



Avant d'entrer dans les détails de l'intégration, donnons un bref aperçu du modèle et du cadre de cette tâche.



Le modèle DETR, également appelé DEtection TRansformer, est un modèle de détection d'objets qui utilise une architecture à base de transformateurs développée à l'aide de PyTorch. Il comprend un processeur d'images et un modèle de détection d'objets. Le processeur d'image encode les données en convertissant les annotations au format DETR, puis redimensionne et normalise les images et les annotations. Le modèle de détection d'objets effectue ensuite la détection en décodant les données encodées. Il peut être entraîné (ajusté) à l'aide des logiciels natifs PyTorch, HuggingFace

Trainer 🤗 API, HuggingFace Accelerate, ou tout autre framework que vous préférez. Pour ce tutoriel, vous utiliserez le modèle DETR directement à partir de la bibliothèque HuggingFace Transformers, puis vous le ré-entraînerez en utilisant l'API HuggingFace Trainer.



Il est temps de recycler le modèle DETR et d'intégrer Picsellia dans votre processus de formation.



Lancer une expérience de formation chez Picsellia

Pour commencer, vous allez créer une expérience sur Picsellia pour gérer votre parcours de formation. Une expérience peut être créée directement sur la plateforme Picsellia via l'interface utilisateur ou avec le SDK. Pour ce faire, dans l'interface utilisateur, allez dans Projets et sélectionnez un projet. Dans ce projet, passez à l'onglet Expérience et cliquez sur le bouton Nouvelle expérience dans le coin supérieur droit pour ajouter une nouvelle expérience. Une nouvelle fenêtre contenant quatre sections d'information s'affiche. Dans la section General Information, donnez un nom à l'expérience (train_dataV_experiment) et une description. Les trois autres sections sont facultatives. N'ajoutez que les jeux de données que vous souhaitez utiliser dans la section Datasets Versions et donnez-leur des alias. Il n'est pas nécessaire de remplir la section Architecture de base et hyperparamètres puisque le modèle que vous allez entraîner n'est pas disponible sur Picsellia. Cliquez simplement sur le bouton Créer pour créer l'expérience.



Extraire de Picsellia les ensembles de données associés à l'expérience

Dans votre environnement local, initialisez une connexion à Picsellia à partir du script de formation en utilisant le SDK Picsellia et obtenez l'expérience Picsellia que vous avez créée.




Les versions des jeux de données (jeux de données d'entraînement et d'évaluation) que vous avez jointes plus tôt à l'expérience font partie des jeux de données d'échantillons sur Picsellia. Comme il s'agit d'ensembles de données de détection d'objets, ils sont bien adaptés à la tâche. Téléchargez les versions des jeux de données d'entraînement jointes à votre expérience.




Obtenir les noms des étiquettes pour la version de l'ensemble de données d'apprentissage à partir de ses objets d'étiquettes.


Ensuite, vous devrez également obtenir les annotations pour la version du jeu de données d'entraînement (images) à partir de Picsellia. Pour les jeux de données de détection d'objets, Picsellia offre la possibilité de télécharger les annotations des jeux de données dans les trois formats d'annotation les plus utilisés : COCO , PASCAL VOC et YOLO.



Avec la fonction ci-dessous, construisez les annotations pour les images d'entraînement au format COCO en utilisant l'objet version du jeu de données d'entraînement et les noms d'étiquettes extraits. Écrivez les annotations construites dans un fichier json dans votre répertoire local et lisez le fichier json en tant que fichier COCO à l'aide de la bibliothèque COCO.





Créer une carte des étiquettes et de leurs "ids" respectifs à partir des catégories d'annotations COCO.



Enregistrez les cartes d'étiquettes dans votre expérience Picsellia.




Entraînez le modèle et enregistrez les résultats dans Picsellia.

Puisque vous disposez maintenant de toutes les images, étiquettes et annotations nécessaires à l'entraînement dans votre environnement local, vous pouvez ensuite entraîner le modèle sur votre infrastructure et enregistrer les résultats de l'entraînement dans Picsellia à des fins de traçabilité.



DETR's image processor expects the dataset annotations to be in this format: {'image_id': int, 'annotations': List[Dict]}, where each dictionary is a COCO object annotation. Therefore, reformat annotations for each image before passing it to the image processor to enable successful training.



Charger le processeur d'images du DETR, puis encoder les images et reformater les annotations avec le processeur d'images.




Chargez le modèle de détection d'objets de DETR et spécifiez vos hyperparamètres pour l'apprentissage du modèle.


Enregistrez les hyperparamètres d'apprentissage pour votre expérience Picsellia.




Créez un callback de formation personnalisé pour enregistrer les activités de formation dans votre expérience Picsellia à partir de la classe API Formateur. La classe API donne accès à toutes les activités qui se déroulent pendant la formation. Dans le callback, les journaux de perte et de décroissance du taux d'apprentissage se produisant pendant la formation sont enregistrés directement dans votre expérience dans Picsellia à la fin de la formation.




Initialiser le callback de formation et former le modèle.


Après la formation, enregistrez le modèle dans votre répertoire local.


Stockez tous les fichiers de modèle dans votre artefact d'expérience Picsellia.


Envoyer les évaluations à la plateforme d'évaluation Picsellia.

Avant d'effectuer des prédictions avec le modèle affiné, vous devez charger son processeur d'images (encodeur) et son détecteur d'objets (décodeur).




Ensuite, récupérez les images et les étiquettes de la version du jeu de données d'évaluation de votre expérience Picsellia.




Remarque : la récupération de la version du jeu de données d'évaluation n'entraîne pas un nouveau téléchargement des images ; il s'agit uniquement d'un objet Picsellia qui sert de placeholder pour vous permettre de faire correspondre les images exactes que vous avez localement à celles de Picsellia.

Pour évaluer le modèle, faites des prédictions sur toutes les images d'évaluation que vous avez téléchargées dans votre répertoire local à partir de votre expérience Picsellia lorsque vous avez tiré les versions de l'ensemble de données initialement. Faites correspondre la copie locale des images à celles de Picsellia et envoyez les prédictions des images correspondantes sur votre tableau de bord d'évaluation de l'expérience.


Il est essentiel de pouvoir voir la performance progressive de votre modèle affiné au fil du temps. Ainsi, chaque fois que vous faites des prédictions après l'entraînement et que vous envoyez les évaluations à Picsellia, vous obtenez une évaluation visuelle et empirique de votre modèle.



Les annotations en rouge sont des prédictions, et celles en vert sont des vérités de base. Enfin, lancez une tâche sur Picsellia pour calculer les métriques d'évaluation pour toutes les prédictions que vous venez d'ajouter.




Stocker le modèle réentraîné dans le registre de modèles de Picsellia.

Pour compléter le pipeline d'intégration pour la traçabilité, vous devez stocker toutes les versions de modèle affinées de votre expérience dans le registre de modèles Picsellia et empaqueter votre code dans un conteneur Docker.

Créez un dossier de modèle personnalisé pour les différentes versions de votre modèle dans le registre de modèles de Picsellia. Cela vous permettra de stocker la version du modèle affiné de notre expérience.






Créez une version de modèle dans le dossier de modèle personnalisé pour stocker le modèle affiné issu de vos expériences d'entraînement dans le registre de modèles.








Dockeriser le code

Préparez le flux de travail pour vous permettre de mettre à l'échelle la formation avec une répétabilité transparente lors de l'exécution de vos expériences avec le modèle. Créez une structure d'image Docker personnalisée à l'aide d'un fichier Docker.



Construisez l'image, et votre mission est terminée.

docker build . -f Dockerfile -t picsellia-hf-train_image:1.0



Vous pouvez déployer cette image de conteneur Docker sur votre infrastructure et disposer d'un pipeline de formation intégré CVOps avec Picsellia. Considérez chaque conteneur Docker que vous exécutez comme un pipeline de formation pour lancer une expérience avec le modèle DETR.

Pour lancer une expérience, spécifiez vos variables d'environnement pour le conteneur Docker avec le nom de l'expérience et le répertoire de sortie du modèle réentraîné de chaque expérience.





---------------------------------------------------------------------------------------------------------------------

Conclusion

Dans cet article, vous avez appris comment former avec un workflow CVOps à l'échelle et comment intégrer Picsellia dans la formation d'un transformateur de détection d'objets HuggingFace pour mettre en œuvre un workflow de formation CVOps robuste. Il y a encore beaucoup à apprendre sur Picsellia, HuggingFace et la formation à l'échelle ; consultez les ressources suivantes :





Commencez à gérer vos données d'IA de la bonne façon.

Demander une démonstration

Recommandé pour vous :