Neptune hat eine Vereinbarung zur Übernahme durch OpenAI getroffen und wird seinen gehosteten (SaaS) Dienst nach einer Übergangszeit bis zum 4. März 2026 einstellen. Lies die offizielle Ankündigung und plane Migrationen oder Exporte entsprechend.
Experiment-Tracking mit Neptune#
Neptune ist ein Metadatenspeicher für MLOps, der für Teams entwickelt wurde, die viele Experimente durchführen. Er bietet dir einen zentralen Ort zum Protokollieren, Speichern, Anzeigen, Organisieren, Vergleichen und Abfragen aller Metadaten deiner Modellentwicklung.
Ultralytics YOLO26 lässt sich in Neptune integrieren, um das Experiment Tracking zu optimieren. Diese Integration ermöglicht es dir, Trainingsmetriken automatisch zu protokollieren, Modellvorhersagen zu visualisieren und Modellartefakte zu speichern, ohne benutzerdefinierten Protokollierungscode schreiben zu müssen.
Hauptfunktionen#
- Automated Logging: Protokolliere wichtige Trainingsmetriken wie Box Loss, Classification Loss und mAP automatisch.
- Bildvisualisierung: Sieh dir Trainings-Mosaike und Validierungsvorhersagen direkt im Neptune-Dashboard an.
- Model Checkpointing: Lade deine trainierten Modellgewichte (
best.pt) am Ende des Trainings automatisch hoch und verwalte sie mit Versionskontrolle. - Hyperparameter-Tracking: Protokolliere alle Konfigurationsparameter, um die vollständige Reproduzierbarkeit deiner Experimente sicherzustellen.
- Interaktive Plots: Visualisiere Konfusionsmatrizen und Precision-Recall-Kurven, um die Modellleistung zu analysieren.
Installation#
Um Neptune mit Ultralytics zu verwenden, musst du das Client-Paket neptune zusammen mit ultralytics installieren.
# Install the required packages
pip install ultralytics neptune
# Enable Neptune integration in Ultralytics settings
yolo settings neptune=TrueKonfiguration#
Bevor du mit dem Training beginnst, musst du deine lokale Umgebung mit deinem Neptune-Projekt verbinden. Du benötigst dein API-Token und deinen Projektnamen aus deinem Neptune-Dashboard.
Deine Anmeldedaten abrufen#
- Melde dich bei Neptune.ai an.
- Erstelle ein neues Projekt (oder wähle ein bestehendes aus).
- Gehe in dein Benutzermenü und rufe dein API-Token ab.
Umgebungsvariablen festlegen#
Der sicherste Weg, mit Anmeldeinformationen umzugehen, sind Umgebungsvariablen. Beachte, dass der Ultralytics Neptune Callback das YOLO-Argument project liest und NEPTUNE_PROJECT nicht verwendet. Gib den vollständigen Neptune-Slug (z. B. workspace/name) über project= in deinem Trainingsbefehl an; andernfalls versucht Neptune, den wörtlichen Standardwert "Ultralytics" zu verwenden, und der Lauf schlägt fehl.
export NEPTUNE_API_TOKEN="your_long_api_token_here" # requiredVerwendung#
Sobald du alles konfiguriert hast, kannst du mit dem Training deiner YOLO26-Modelle beginnen. Die Neptune-Integration funktioniert automatisch, wenn das Paket neptune installiert und die Integration in den Einstellungen aktiviert ist.
Trainingsbeispiel#
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")Die Integration verstehen#
Das folgende Diagramm veranschaulicht, wie die Ultralytics-Trainingspipeline mit Neptune interagiert, um verschiedene Artefakte und Metriken zu protokollieren.
graph LR
A[YOLO Training Loop]:::start --> B{Neptune Callback}:::decide
B -->|Log Scalars| C[Loss, mAP, LR]:::proc
B -->|Log Images| D[Mosaics, Preds]:::proc
B -->|Log Artifacts| E[Model Weights]:::proc
B -->|Log Metadata| F[Hyperparameters]:::proc
C --> G[Neptune Server]:::extern
D --> G
E --> G
F --> G
G --> H[Neptune Web Dashboard]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef extern fill:#607D8B,color:#fffWas wird protokolliert?#
Wenn du den Trainingsbefehl ausführst, erfasst die Neptune-Integration automatisch die folgende Datenstruktur in deinem Lauf:
- Konfiguration/Hyperparameter: Alle Trainingsargumente (Epochen, lr0, Optimizer usw.) werden unter dem Abschnitt Konfiguration protokolliert.
- Konfiguration/Modell: Die Modellarchitektur und -definition.
- Metriken:
- Train:
box_loss,cls_loss,l1_loss(dfl_lossbei DFL-basierten Modellen),lr(Lernrate). - Metrics:
precision,recall,mAP50,mAP50-95.
- Train:
- Bilder:
Mosaic: Trainingsbatches mit Datenaugmentierung.Validation: Ground-Truth-Labels und Modellvorhersagen für Validierungsdaten.Plots: Konfusionsmatrizen, Precision-Recall-Kurven.
- Weights: Das final trainierte Modell (
best.pt) wird in den Ordnerweightsim Neptune-Lauf hochgeladen.
Fortgeschrittene Nutzung#
Läufe organisieren#
Du kannst die Standard-Argumente project und name von Ultralytics verwenden, um deine Läufe in Neptune zu organisieren.
project: Muss der Neptune-Projekt-Slugworkspace/namesein; dies übergibt der Callback anneptune.init_run.name: Dient als Kennung für den spezifischen Lauf.
Benutzerdefinierte Protokollierung#
Wenn du neben der automatischen Protokollierung weitere benutzerdefinierte Metriken protokollieren möchtest, kannst du auf die Neptune-Laufinstanz zugreifen. Beachte, dass du die Trainer-Logik ändern oder einen benutzerdefinierten Callback erstellen musst, um auf das spezifische Laufobjekt zuzugreifen, da die Ultralytics-Integration den Lebenszyklus des Laufs intern verwaltet.
FAQ#
Wenn du
neptuneinstalliert hast, aber die Protokollierung für eine bestimmte Sitzung oder global deaktivieren möchtest, kannst du die YOLO-Einstellungen anpassen.# Disable Neptune integration yolo settings neptune=FalseStelle sicher, dass dein Netzwerk Verbindungen zu den Servern von Neptune zulässt. Darüber hinaus erfolgt die Bildprotokollierung normalerweise in bestimmten Intervallen (z. B. am Ende von Epochen oder am Ende des Trainings). Wenn du das Training vorzeitig mit
Ctrl+Cunterbrichst, werden einige finale Artefakte wie Konfusionsmatrizen oder die besten Modellgewichte möglicherweise nicht hochgeladen.Die aktuelle Integration erstellt für jede Trainingssitzung automatisch einen neuen Lauf. Um die Protokollierung in einem bestehenden Lauf fortzusetzen, müsstest du die Neptune-Initialisierung normalerweise manuell im Python-Code handhaben, was den Rahmen der automatischen Integration sprengt. Ultralytics unterstützt jedoch das lokale Fortsetzen des Trainings, wodurch ein neuer Lauf in Neptune erstellt wird, um die fortgesetzten Epochen zu verfolgen.
Navigiere in deinem Neptune-Dashboard zum Bereich Artifacts oder All Metadata. Du findest dort einen Ordner
weights, der deinebest.pt-Datei enthält, die du für die Bereitstellung herunterladen kannst.