Passer au contenu

Acquisition de Neptune et dépréciation du SaaS

Neptune a conclu un accord pour être acquise par OpenAI et mettra fin à son service hébergé (SaaS) après une période de transition se terminant le 4 mars 2026. Consultez l'annonce officielle et planifiez les migrations ou les exportations en conséquence.

Suivi des expériences avec Neptune

Neptune est un magasin de métadonnées pour le MLOps, conçu pour les équipes qui mènent de nombreuses expériences. Il offre un emplacement unique pour journaliser, stocker, afficher, organiser, comparer et interroger toutes vos métadonnées de construction de modèles.

Ultralytics YOLO26 s'intègre à Neptune pour simplifier le suivi des expériences. Cette intégration vous permet d'enregistrer automatiquement les métriques d'entraînement, de visualiser les prédictions du modèle et de stocker les artefacts du modèle sans écrire de code de journalisation personnalisé.

Aperçu du tableau de bord Neptune.ai

Principales caractéristiques

  • Journalisation automatisée : Enregistrez automatiquement les métriques d'entraînement clés telles que la perte de boîte (box loss), la perte de classification (classification loss) et le mAP.
  • Visualisation d'images : Affichez les mosaïques d'entraînement et les prédictions de validation directement dans le tableau de bord Neptune.
  • Sauvegarde des points de contrôle du modèle: Téléchargez et gérez les versions de vos poids de modèle entraînés (best.pt) automatiquement à la fin de l'entraînement.
  • Suivi des hyperparamètres : Enregistrez tous les paramètres de configuration pour assurer une reproductibilité complète de vos expériences.
  • Tracés interactifs : Visualisez les matrices de confusion et les courbes précision-rappel pour analyser les performances du modèle.

Installation

Pour utiliser Neptune avec Ultralytics, vous devrez installer le neptune package client ainsi que ultralytics.

Installation

# Install the required packages
pip install ultralytics neptune

# Enable Neptune integration in Ultralytics settings
yolo settings neptune=True

Configuration

Avant de commencer l'entraînement, vous devez connecter votre environnement local à votre projet Neptune. Vous aurez besoin de votre Jeton API et de votre Nom de Projet depuis votre tableau de bord Neptune.

1. Obtenez vos identifiants

  1. Connectez-vous à Neptune.ai.
  2. Créez un nouveau projet (ou sélectionnez-en un existant).
  3. Accédez à votre menu utilisateur et récupérez votre Jeton API.

2. Définissez les variables d'environnement

La manière la plus sécurisée de gérer les identifiants est via des variables d'environnement. Notez que le callback Neptune d'Ultralytics lit l'argument YOLO project et n'utilise pas NEPTUNE_PROJECT. Passez le slug Neptune complet (par exemple, workspace/name) via project= dans votre commande d'entraînement ; sinon Neptune tentera d'utiliser la valeur par défaut littérale "Ultralytics" et l'exécution échouera.

export NEPTUNE_API_TOKEN="your_long_api_token_here" # required
$Env:NEPTUNE_API_TOKEN = "your_long_api_token_here"  # required
import os

os.environ["NEPTUNE_API_TOKEN"] = "your_long_api_token_here"
os.environ["NEPTUNE_PROJECT"] = "your_workspace/your_project"

Utilisation

Une fois configuré, vous pouvez commencer à entraîner vos modèles YOLO26. L'intégration de Neptune fonctionne automatiquement lorsque le neptune package est installé et que l'intégration est activée dans les paramètres.

Exemple d'entraînement

Entraîner YOLO26 avec la journalisation Neptune

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Train the model
# Pass the Neptune project slug as the 'project' argument (workspace/name)
results = model.train(data="coco8.yaml", epochs=10, project="my-workspace/my-project", name="experiment-1")
# Train via CLI
# project must be the Neptune slug (workspace/name); otherwise run creation will fail
yolo train data=coco8.yaml epochs=10 project=my-workspace/my-project name=experiment-1

Comprendre l'intégration

Le diagramme suivant illustre comment le pipeline d'entraînement Ultralytics interagit avec Neptune pour journaliser divers artefacts et métriques.

graph LR
    A[YOLO Training Loop] --> B{Neptune Callback}
    B -->|Log Scalars| C[Loss, mAP, LR]
    B -->|Log Images| D[Mosaics, Preds]
    B -->|Log Artifacts| E[Model Weights]
    B -->|Log Metadata| F[Hyperparameters]

    C --> G[Neptune Server]
    D --> G
    E --> G
    F --> G

    G --> H[Neptune Web Dashboard]

Qu'est-ce qui est journalisé ?

Lorsque vous exécutez la commande d'entraînement, l'intégration Neptune capture automatiquement la structure de données suivante dans votre exécution :

  1. Configuration/Hyperparamètres : Tous les arguments d'entraînement (époques, lr0, optimiseur, etc.) sont journalisés sous la section Configuration.
  2. Configuration/Modèle : L'architecture et la définition du modèle.
  3. Métriques:
    • Entraîner: box_loss, cls_loss, dfl_loss, lr (taux d'apprentissage).
    • Métriques: precision, recall, mAP50, mAP50-95.
  4. Images:
    • Mosaic: Lots d'entraînement montrant l'augmentation des données.
    • Validation: Étiquettes de vérité terrain et prédictions du modèle sur les données de validation.
    • Plots: Matrices de confusion, courbes Précision-Rappel.
  5. Poids: Le modèle final entraîné (best.pt) est téléversé dans le weights dossier de l'exécution Neptune.

Utilisation avancée

Organisation des exécutions

Vous pouvez utiliser les arguments standard Ultralytics project et name pour organiser vos exécutions dans Neptune.

  • project: Doit être le slug du projet Neptune workspace/name; c'est ce que le callback transmet à neptune.init_run.
  • name: Sert d'identifiant pour l'exécution spécifique.

Journalisation personnalisée

Si vous avez besoin de journaliser des métriques personnalisées supplémentaires en plus de la journalisation automatique, vous pouvez accéder à l'instance d'exécution Neptune. Notez que vous devrez modifier la logique de l'entraîneur ou créer un callback personnalisé pour accéder à l'objet d'exécution spécifique, car l'intégration Ultralytics gère le cycle de vie de l'exécution en interne.

FAQ

Comment désactiver la journalisation Neptune ?

Si vous avez installé neptune mais souhaitez désactiver la journalisation pour une session spécifique ou globalement, vous pouvez modifier les paramètres YOLO.

# Disable Neptune integration
yolo settings neptune=False

Mes images ne sont pas téléchargées. Quel est le problème ?

Assurez-vous que votre réseau autorise les connexions aux serveurs de Neptune. De plus, la journalisation des images se produit généralement à des intervalles spécifiques (par exemple, fin d'époque ou fin d'entraînement). Si vous interrompez l'entraînement prématurément en utilisant Ctrl+C, certains artefacts finaux comme les matrices de confusion ou les meilleurs poids du modèle pourraient ne pas être téléversés.

Puis-je journaliser vers un ID d'exécution Neptune spécifique ?

L'intégration actuelle crée automatiquement une nouvelle exécution pour chaque session d'entraînement. Pour reprendre la journalisation sur une exécution existante, vous devriez généralement gérer l'initialisation de Neptune manuellement dans le code Python, ce qui dépasse le cadre de l'intégration automatique. Cependant, Ultralytics prend en charge la reprise de l'entraînement localement, ce qui créera une nouvelle exécution dans Neptune pour suivre les époques reprises.

Où puis-je trouver les poids du modèle dans Neptune ?

Dans votre tableau de bord Neptune, naviguez vers la section Artefacts ou Toutes les métadonnées section. Vous trouverez un weights dossier contenant votre best.pt fichier, que vous pouvez télécharger pour le déploiement.



📅 Créé il y a 1 mois ✏️ Mis à jour il y a 4 jours
glenn-jocher

Commentaires