SwanLab
Valeur ajoutée gratuite
Guide complet des outils d’IA Modèle d’entraînement d’IA

SwanLab

Plateforme MLOps nationale pour le suivi expérimental, l’analyse visuelle et la collaboration d’équipe

Étiquettes :

Qu’est-ce que SwanLab ?

SwanLab est une plateforme de suivi, de visualisation et de collaboration pour l’entraînement de l’IA, développée par Emotional Machine (Beijing) Technology Co., Ltd. Elle intègre des scripts d’entraînement via un SDK Python pour enregistrer en continu la perte, la précision, le taux d’apprentissage, les hyperparamètres, les journaux, l’état du matériel et les résultats multimédias, qui peuvent ensuite être consultés et comparés dans un tableau de bord web.

Le produit prend en charge à la fois le cloud officiel, l’enregistrement hors ligne et le déploiement privé. Il se positionne comme une alternative à Weights & Biases et TensorBoard, mais met davantage l’accent sur l’expérience en chinois, le suivi du matériel domestique, des SDK open source et le déploiement local. Il est adapté aux expériences de apprentissage profond, d’ajustement de grands modèles, d’apprentissage par renforcement, ainsi qu’au machine learning visuel et traditionnel.

Version actuelle et statut open source

Forfait ou versionPrix, plafonds et avantages clés
ProLa page des prix pour les forfaits Pro et d’équipe indique actuellement que le forfait Pro coûte 59 yuans par personne et par mois, incluant 100 GB de stockage et une vitesse de transmission de données d’environ 5 millions par 10 minutes, destiné aux utilisateurs individuels professionnels.
FreeLa page des prix actuellement publiée pour le plan gratuit Cloud Free indique un tarif de 0 yuan par mois, adapté à la recherche personnelle et aux expériences à petite échelle, et inclut 10 GB de stockage. Cloud Free est donc gratuit avec 10 GB.
Version gratuiteLa version gratuite permet de télécharger environ 500 000 points de données toutes les 10 minutes ; le débit est limité en cas de dépassement.
Édition communautaireLes particuliers peuvent demander gratuitement une licence version communautaire sur le site officiel, à renouveler chaque année, avec une utilisation réservée à des fins non commerciales.

À la date de cette vérification, le SDK Python SwanLab officiel de GitHub est arrivé à la version 0.8.x, avec la dernière version publiée étant 0.8.2. Le SDK et le répertoire du client principal sont soumis à la licence Apache License 2.0, permettant leur utilisation, modification et distribution conformément à cette licence.

Il est nécessaire de distinguer les SDK, les services cloud et les serveurs gérés en interne : le dépôt principal de GitHub met principalement à disposition l’SDK pour l’entraînement et les fonctionnalités locales, et la documentation officielle indique également que la partie cloud est fermée source ; les solutions gérées en interne sont fournies via des images indépendantes et des dépôts de déploiement, et nécessitent une licence pour être activées.

Par conséquent, l’ensemble de la plateforme cloud SwanLab ne peut pas être considéré comme entièrement open source.

Initialisation de l’expérience et enregistrement des indicateurs

Après l’installation, créez un Run avec swanlab.init, en définissant le Projet, le nom de l’expérience, la description et les Paramètres ; utilisez swanlab.log pour enregistrer les indicateurs pendant le cycle d’entraînement, et appelez finish à la fin.

Le SDK enverra les étapes temporelles, les métriques, les hyperparamètres et l’état de fonctionnement vers le cloud ou un hôte privé spécifié.

L’indicateur Key doit rester stable, et Step doit avoir une signification claire. Mélanger des données de fréquences et d’unités différentes sur la même courbe peut induire en erreur ;

L’entraînement distribué ne permet généralement que le processus principal de communiquer les indicateurs globaux, afin d’éviter les redondances et la consommation de bande passante.

Visualisation de l’entraînement

La version web prend en charge les graphiques en ligne, les barres, les points de dispersion, les boxplots, les cartes thermiques, les diagrammes circulaires, les graphiques radars et ECharts personnalisés. Les utilisateurs peuvent rechercher, filtrer et regrouper des expériences, superposer plusieurs courbes, et comparer les hyperparamètres avec les résultats finaux.

L’affinement des courbes sert uniquement à observer les tendances et ne peut pas remplacer les données brutes. Lors de comparaisons expérimentales, il convient d’aligner les ensembles de données, les seeds aléatoires, le nombre d’étapes d’entraînement et les critères d’évaluation, tout en conservant les valeurs non affinées, afin d’éviter de confondre l’apparence visuelle avec une amélioration réelle.

Multimédia et contenu de grands modèles

SwanLab peut enregistrer des images, de l’audio, de la vidéo, du texte, des nuages de points 3D et des molécules biochimiques, et offre une visualisation en format Markdown pour le contenu généré par les LLM. Les tâches visuelles peuvent afficher des boîtes de prédiction et des échantillons, tandis que l’entraînement des grands modèles permet de vérifier aléatoirement les Prompt, les Response et les Reward.

Les fichiers multimédias consomment rapidement de l’espace de stockage et de la bande passante pour le téléchargement. Il convient de prélever des échantillons à intervalles réguliers, en limitant la taille, la durée et le nombre ;

Il faut masquer les échantillons d’entraînement, les prompts des utilisateurs et les sorties du modèle avant le téléchargement.

Journalisation automatique et environnement de exécution

Le SDK peut enregistrer automatiquement les journaux Python, l’environnement matériel, les informations du dépôt Git, la version de Python, la liste des dépendances et le répertoire d’exécution du projet, fournissant ainsi un contexte pour la reconstitution des expériences. Après la reprise de l’entraînement à partir d’un point d’arrêt, il est également possible d’ajouter des indicateurs au Run initial.

La collecte automatique peut inclure des noms de branches, des paramètres de commande, des chemins de fichiers et des informations sur les dépendances. Les entreprises doivent vérifier la portée des enregistrements et s’abstenir d’inscrire des clés API, des adresses internes et des données clients dans Config ou les journaux.

Surveillance du matériel

SwanLab permet de surveiller le CPU, la mémoire ainsi que divers accélérateurs, y compris les GPU NVIDIA, les NPU Ascend, les MLU Cambricon, les XPU Kunlun, les dispositifs Muxi et Moore Threads. Il est possible d’observer l’utilisation, la mémoire vidéo, la température, la consommation d’énergie et les indicateurs liés aux processus, afin d’aider à identifier les goulets d’étranglement et les problèmes de type OOM.

La collecte des indicateurs matériels dépend des pilotes et outils du fabricant, et les champs pris en charge varient d’un appareil à l’autre. Une fréquence d’échantillonnage élevée augmente la consommation de ressources, et il est nécessaire d’assurer la synchronisation temporelle entre les machines.

Comparaisons expérimentales et tableaux

La vue de projet permet de gérer en masse un grand nombre d’exécutions, en filtrant par tableau l’état, le créateur, les paramètres et les indicateurs finaux, puis en sélectionnant des expériences pour afficher des graphiques comparatifs. Elle est adaptée à la recherche de hyperparamètres, aux expériences d’ablation, au choix des versions de modèles et à l’analyse des causes d’échec.

Le nom de l’expérience doit contenir des informations clés telles que le modèle, les données, la méthode et la date ; les tags et les groupes doivent suivre une norme uniforme. Se fier uniquement aux IDs générés automatiquement rendra difficile pour l’équipe de reconstituer le contexte de la recherche parmi des milliers d’exécutions.

Intégration de cadre

La documentation officielle énumère plus de 40 intégrations de frameworks et d’outils, dont PyTorch, Transformers, PyTorch Lightning, Keras, LLaMA Factory, ms-swift, XTuner, MMEngine, Ultralytics, PaddleDetection, LightGBM, XGBoost.

Stable Baselines3, veRL, TRL, EasyR1, TensorBoard, Wandb, MLflow, Hydra et Accelerate.

L’intégration s’effectue généralement au moyen de Callback, du paramètre report_to ou d’un Logger. Une mise à niveau du framework peut modifier l’interface de callback et les noms des indicateurs ; il convient donc de fixer une version compatible et de la valider d’abord avec des tâches courtes.

LLaMA Factory et ms-swift

LLaMA Factory peut choisir SwanLab comme backend de rapport, pour enregistrer l’entraînement SFT, LoRA et l’alignement des préférences ; ms-swift s’intègre via les paramètres report_to, Project, Workspace et nom de l’expérience, et la CLI ainsi que la WebUI peuvent être activées.

SwanLab se charge uniquement de l’observation et ne fournit pas de ressources de calcul pour l’entraînement ni de garantie automatique de la qualité du fine-tuning. Les coûts des GPU, les poids du modèle, les données et les checkpoints restent gérés par la plateforme d’entraînement ou par l’utilisateur lui-même.

Entraînement par apprentissage renforcé

La plateforme intègre des frameworks tels que veRL, TRL, EasyR1, AReaL, ROLL, NVIDIA NeMo RL et MindSpeed-RL, permettant de suivre les indicateurs de Reward, KL, Entropie, Policy Loss, longueur de génération et paramètres matériels.

Le nombre d’indicateurs d’apprentissage renforcé est élevé et leur fréquence de mise à jour importante, ce qui peut facilement déclencher des limitations de vitesse pour les points de données. Il convient de consigner en niveaux distincts les indicateurs en ligne essentiels et les échantillons diagnostiques à faible fréquence, sans synchroniser toutes les données de chaque token vers le cloud.

Migration depuis Wandb et TensorBoard

SwanLab offre une capacité de synchronisation avec Wandb, permettant d’importer les métriques de Wandb vers SwanLab ; il prend également en charge la lecture des journaux de TensorBoard ou peut servir de logger de remplacement pour les frameworks d’entraînement.

La migration permet de centraliser les expériences historiques et d’en utiliser l’ensemble dans un environnement réseau national.

Les types de données des journaux de tiers, les étapes et les formats médias ne correspondent pas nécessairement un par un. Avant la migration officielle, il convient de sélectionner des projets représentatifs pour vérifier que le nombre de points de courbe, les paramètres, les résumés et les fichiers sont complets.

Solution gratuite Cloud Free

La page des prix actuellement affichée indique que Free dans le cloud coûte 0 yuan par mois, idéal pour la recherche personnelle et les expériences à petite échelle, avec 10 GB de stockage. La version gratuite permet de télécharger environ 500 000 points de données toutes les 10 minutes ; au-delà de ce débit, des restrictions s’appliquent.

Après épuisement de l’espace de stockage, il n’est pas possible de créer de nouveaux essais, mais les essais en cours seront poursuivis autant que possible. Avant de lancer des tâches longues, il convient de vérifier l’espace restant et de supprimer ou d’exporter en temps voulu les médias volumineux qui ne sont plus nécessaires.

Forfaits Pro et équipes

La page des prix indique actuellement que Pro coûte 59 yuans par personne et par mois, avec 100 GB de stockage, et une vitesse de transmission des données portée à environ 5 millions par 10 minutes, destiné aux utilisateurs professionnels individuels ; cependant, le bouton d’achat affiche en même temps « Bientôt disponible », ce qui signifie qu’il n’est pas encore accessible à tous.

La page du groupe est également affichée sur la page des prix, mais y est également indiquée comme bientôt disponible. Le prix exact, les places, les collaborateurs, l’espace du groupe et la date de mise en ligne officielle peuvent encore changer ; il convient de se référer à la page de règlement du compte avant d’acheter.

Solution d’entreprise Enterprise

Enterprise propose des tarifs sur mesure, destinés aux entreprises ayant besoin de collaboration d’équipe, d’un plus grand volume d’entrées/sorties et de capacités de gouvernance. Il offre un stockage personnalisé, une plus grande vitesse de traitement des données, des droits d’accès par équipe, SSO, des connexions sécurisées, un panneau de gestion d’entreprise et un support dédié.

Selon les spécifications officielles, une entreprise peut gérer 100 millions de points de données ou plus tous les 10 minutes, en fonction des besoins. Le contrat doit préciser les ressources allouées, la concurrence simultanée, le stockage, la conservation, les sauvegardes, les SLA, la migration des données et le support technique.

Mode hors ligne

Le SDK prend en charge des modes tels que En ligne, Local, hors ligne et Désactivé. Lorsque le réseau est limité, il est possible de sauvegarder d’abord les résultats des expériences localement, puis de les consulter à l’aide d’un outil ou de les synchroniser une fois la connexion rétablie, ce qui convient aux réseaux intranet en laboratoire, aux nœuds de formation cloud et aux environnements sans connexion temporaire.

Les catalogues hors ligne font partie des actifs expérimentaux et doivent faire l’objet de sauvegardes ainsi que de contrôles d’accès. Lors du nettoyage des résultats d’entraînement, veillez à ne pas supprimer par erreur les journaux non synchronisés ;

Évitez également de lancer à nouveau avant de ré-syncroniser.

Déploiement privatisé de la version communautaire

La version communautaire peut être déployée à l’aide de Docker Compose ou du chart Helm officiel, en utilisant des services tels que PostgreSQL, Redis, ClickHouse, MinIO et un gateway. Pour Docker, il est recommandé au minimum 2 cœurs CPU, 4 GB de mémoire et 20 GB d’espace de stockage ; pour une utilisation à long terme, il convient de disposer de ressources plus élevées ainsi que de sauvegardes.

Les particuliers peuvent demander gratuitement une licence version communautaire sur le site officiel, qui doit être renouvelée chaque année et est réservée à un usage non commercial. La version communautaire est destinée uniquement à un usage personnel et ne prend pas en charge la collaboration entre plusieurs personnes, les équipes, les droits par rôle, SSO ni l’interface d’administration.

Docker et Kubernetes

La déploiement avec Docker convient aux serveurs personnels, avec un port de passerelle par défaut de 8000 et un port de signature MinIO de 9000. La déploiement avec Kubernetes exige Kubernetes 1.24 ou ultérieur, Helm 3.9 ou ultérieur, et permet d’ajouter des bases de données hautement disponibles, des caches et des systèmes de stockage d’objets en externe.

Par défaut, les composants de base de Kubernetes sont basés sur une seule instance, ce qui ne correspond pas à une haute disponibilité au niveau entreprise. Dans un environnement de production, il est nécessaire de planifier des PVC, des sauvegardes, une reprise après sinistre, Ingress, TLS, Secret, ainsi que la surveillance et les mises à jour progressives.

Version de privatisation d’entreprise

La version entreprise ajoute, sur la base d’un déploiement hors ligne, la collaboration en équipe, les équipes, le contrôle des droits, SSO, un panneau de gestion et un support officiel, tout en prenant en charge les solutions Docker ou Kubernetes. Les prix doivent être demandés auprès du fournisseur officiel.

Même lorsqu’ils sont déployés sur le réseau privé, une activation par licence ou une vérification hors ligne peuvent encore être nécessaires. Avant l’achat, il convient de s’assurer des conditions de déconnexion complète du réseau, des modalités de mise à jour des licences, de la livraison des images, de la correction des vulnérabilités et de l’exportation des données.

Notifications et plugins

L’extension peut envoyer l’état d’entraînement à Feishu, DingTalk, WeCom, Slack ou par e-mail, et permet également de générer des fichiers CSV, des Webhooks ainsi que du traitement étendu des données. Elle est idéale pour envoyer des alertes en cas d’anomalie de perte, de fin de tâche ou de panne.

Le contenu de la notification peut inclure le nom de l’expérience, les indicateurs et l’adresse de la page ; pour les projets sensibles, il convient d’utiliser des robots internes et de limiter le périmètre du groupe ; les Webhook nécessitent une vérification de l’origine ainsi que une protection contre la répétition.

Clé API et sécurité des données

Les services cloud ou privés sont tous authentifiés à l’aide d’une clé API. La clé doit être stockée dans des variables d’environnement ou des secrets, et ne doit pas être soumise à Git, aux sorties de notebooks ou partagée dans des scripts.

Chaque utilisateur et chaque environnement doit utiliser une clé indépendante.

Les données expérimentales peuvent contenir le comportement du modèle, la version du code et des indicateurs non divulgués. L’organisation doit définir des droits d’accès, une durée de conservation, une classification des données et des procédures de suppression, ainsi que vérifier les médias et la Config avant de les partager publiquement.

Guide d'utilisation de SwanLab

Terminer une tâche de base

  1. Installer et configurer SwanLab pour créer des projets et des noms d’exécution indépendants pour les expériences ;
  2. Enregistrer les hyperparamètres, la version des données, la version du code et la graine aléatoire dans le script d’entraînement ;
  3. Initialiser les tâches d’initialisation expérimentale et d’enregistrement des indicateurs, puis se connecter au service cloud ou privé approprié ;
  4. Utiliser la visualisation d’entraînement pour enregistrer en continu la perte, les métriques, les journaux et l’état du matériel ;
  5. Exécuter un entraînement à petite échelle pour vérifier que le nombre d’itérations, les unités, les courbes et les échantillons multimédias sont corrects ;
  6. Après achèvement, enregistrer le modèle, les paramètres, les résultats ainsi que la description de l’expérience reproductible ;

Créer des flux de travail professionnels réutilisables

  1. Unifier les normes de nommage des projets, des expériences, des indicateurs et des étiquettes ;
  2. Intégrer l’initialisation de l’expérience, l’enregistrement des indicateurs, la visualisation de l’entraînement, ainsi que le multimédia et le contenu des grands modèles dans le modèle d’entraînement ;
  3. Établir des liens de version pour les ensembles de données, le code, l’environnement et les modèles ;
  4. Utiliser le même ensemble d’évaluation et les mêmes conditions expérimentales pour comparer, afin d’éviter de ne se baser que sur des courbes lissées ;
  5. Restreindre la portée du téléchargement des échantillons sensibles, des prompts et des sorties du modèle ;
  6. Définir les alertes d’anomalies, les stratégies de conservation et la révision manuelle avant de les déployer à l’équipe ;

À qui s’adresse-t-il ?

  • Les entraîneurs individuels qui ont besoin de consulter en même temps la perte, les indicateurs et les hyperparamètres ;
  • Équipe chargée du fine-tuning de grands modèles, de l’apprentissage par renforcement et de l’entraînement multimodal ;
  • Utilisateurs qui souhaitent remplacer ou migrer Wandb et améliorer les capacités de collaboration de TensorBoard ;
  • Laboratoires utilisant des accélérateurs nationaux tels que Ascend, Cambricon, Kunlun et Muxi ;
  • Les entreprises qui demandent que les données expérimentales soient stockées hors ligne ou de manière privée.

Avantages du produit

  • L’intégration avec Python est simple, et il prend en charge plus de 40 frameworks d’entraînement ;
  • Il existe une grande variété de types de surveillance : indicateurs, médias, journaux, environnement et matériel ;
  • Prend en charge le cloud, hors ligne, Docker et Kubernetes ;
  • Compatibilité avec les accélérateurs nationaux et documentation en chinois fournie ;
  • Permet de migrer les données historiques de Wandb et TensorBoard ;
  • Le SDK est open source sous licence Apache 2.0.

Restrictions et précautions

  • Le stockage cloud et la vitesse des points de données ont des limites, et les journaux médias occupent rapidement de l’espace.
  • Les abonnements Pro et les plans d’équipe indiquent toujours qu’ils seront bientôt disponibles.
  • La licence gratuite d’autogestion communautaire est limitée à un usage personnel et non commercial, et ne prévoit pas de gouvernance d’équipe.
  • Le serveur et le cloud ne sont pas entièrement open source, l’édition entreprise nécessite une licence personnalisée ;
  • Le suivi expérimental ne peut pas remplacer le répertoire de modèles, les versions des données, le registre de déploiement et un processus MLOps complet ;
  • Pour les projets importants, il convient toujours de conserver des points de contrôle, des hachages de données et des versions du code ;

Questions fréquentes

SwanLab est-il gratuit ?

Free dans le cloud est gratuit et inclut 10 GB. Les particuliers peuvent demander gratuitement une licence auto-hébergée par la communauté, mais elle est réservée à un usage personnel et doit être renouvelée chaque année ;

Des solutions payantes sont nécessaires pour la collaboration d’entreprise.

Combien coûte SwanLab Pro ?

La page des prix affiche actuellement 59 yuans par personne et par mois, avec 100 GB de stockage, mais indique néanmoins que cela sera bientôt disponible en ligne ; les prix officiels et la date d’achat seront indiqués sur la page du compte.

SwanLab peut-il être utilisé entièrement hors ligne ?

Prend en charge l’enregistrement hors ligne et l’hébergement auto-géré. La nouvelle version auto-gérée permet la vérification hors ligne de la licence, mais il convient de vérifier les conditions de demande, de mise à jour et de déconnexion avant le déploiement.

SwanLab prend-il en charge LLaMA Factory ?

Il prend en charge et intègre également de nombreux frameworks d’entraînement tels que ms-swift, Transformers, veRL, TRL, etc., qui peuvent être activés via des callbacks ou le paramètre report_to.

SwanLab est-il open source ?

Le SDK Python est open source sous Apache 2.0, mais la partie cloud est fermée source ; les services self-hébergés sont fournis via des images et des licences indépendantes, ce qui ne permet pas de le qualifier de plateforme cloud entièrement open source.

©️Droit d’auteur : Sauf indication contraire, tous les articles de ce site sont protégés par le droit d’auteur.Partage d’outils d’IATous les droits d’auteur sont réservés. Sans autorisation, aucune personne, média, site web ou groupe ne peut reproduire, copier ou diffuser de quelque manière que ce soit le contenu de ce site, ni créer de mirror sur des serveurs qui ne lui appartiennent pas. Dans le cas contraire, notre site se réserve le droit de poursuivre en justice les responsables conformément à la loi.

Outils similaires à SwanLab