Training: Experimente, Compute und Cloud-Maschinen
Jeden Run verfolgen. Auf eigenen GPUs trainieren.
Experiment-Tracking in der Tiefe eines spezialisierten Trackers und ein Scheduler, der denselben Code auf Ihrem Kubernetes-Cluster, einer einzelnen GPU-Workstation oder stundenweise gemieteten Maschinen ausführt. Jeder Job endet als Run mit Kosten und vollständigem Log.

Experiment-Tracking
euvyra.init() hält Konfiguration, Git-Commit samt Diff-Hash, Paketversionen und Systemlast fest. Alles Weitere loggen Sie dazu.
Runs und Metriken
Live-Metriken pro Schritt, GPU- und CPU-Last, Tags, Notizen, Gruppen und Job-Typen. Abgestürzte Runs werden als solche markiert, fortgesetzte Runs zählen die Schritte weiter.
Medien
Bilder, Audio, Video, HTML in einer Sandbox, Histogramme, Plots, Tabellen und Konfusionsmatrizen, außerdem 3D-Modelle, Punktwolken mit Boxen und Moleküle.
Diagramme über viele Runs
Beliebige Runs nebeneinander vergleichen und Diagramm-Layouts als Arbeitsbereiche speichern, für das Projekt oder nur für Sie. Eigene Vega-Lite-Diagramme können nichts von einer URL laden.
Berichte
Dokumente aus Markdown, Diagrammen, Run-Tabellen, Medien, Sweeps und Herkunftsgraphen, die beim Öffnen aktuelle Zahlen zeigen und von mehreren Personen gleichzeitig bearbeitet werden.
Sweeps
Raster-, Zufalls- und Bayes-Suche (Tree-structured Parzen Estimator) mit frühem Abbruch nach Hyperband-Art. Parameterdateien nutzen das W&B-Format, bestehende Sweeps laufen weiter.
Artefakte und Herkunft
Versionierte Artefakte mit Aliasen wie
bestoderproductionund ein Herkunftsgraph von der Datensatzversion über Run und Modellversion bis zum Release.Daten bleiben in Ihren Buckets
Verweise auf Dateien in S3, Google Cloud Storage, Azure, per HTTPS oder im Dateisystem. EUVYRA speichert das Manifest mit Prüfsummen und liest die Dateien nie.
Modellgraphen
Die Struktur von PyTorch-, Keras-3- und ONNX-Modellen oder eines safetensors-Checkpoints, nur aus dessen Header gelesen, mit dem Datenfluss zwischen den Schichten.
Offline und Integrationen
Auf einer Maschine ohne Netz loggen und später synchronisieren. Callbacks für Hugging Face, Lightning, Keras, XGBoost, LightGBM und scikit-learn.
Ihre GPUs holen sich die Arbeit. Niemand greift in Ihr Netz.
Ein Agent läuft direkt bei der Hardware: in einem eigenen Kubernetes-Namespace mit Rechten nur für diesen Namespace oder als systemd-Dienst auf einem einzelnen Docker-Host wie einer DGX Spark. Er meldet seine freie Kapazität, übernimmt passende Jobs aus der Warteschlange, startet sie und berichtet Zustand und Logs. Der Cluster braucht weder eingehenden Zugriff noch VPN.
- Warteschlangen und Kontingente. Prioritäten pro Job, GPU-Stunden pro Monat und parallele Jobs pro Projekt sowie die erlaubten Ziele.
- Kosten pro Run. Laufzeit mal Stunden- und GPU-Preis des Ziels, am Job und in der Run-Zusammenfassung.
- Training über mehrere Knoten. Ein Job mit
nodes: 4wird zu vier Pods mitNNODES,NODE_RANKundMASTER_ADDRfürtorchrun. - Sweeps als Jobs. Jeder Job holt sich seine Konfiguration erst beim Start, die Bayes-Suche lernt also laufend weiter.
- Eine Seite pro Cluster. Knoten, GPUs mit Auslastung, Speicher, Temperatur und Leistung, sieben Tage Verlauf, Wartungsmodus und ausgeschlossene Knoten.

Was beim Start eines Jobs passiert
Der Trainingscode bleibt derselbe wie auf dem Laptop. Der Agent gibt dem Container alles mit, was euvyra.init() braucht, um sich an den Run des Jobs zu hängen.
In die Warteschlange stellen
Über die CLI, das Python-SDK, die Konsole oder einen KI-Assistenten.
euvyra launch --project medical-ai \ --image registry.example.eu/ml/train:1.4 \ --gpus 1 --wait -- python train.pyEin Agent übernimmt
Der erste Agent mit genug freier Kapazität oder das Ziel, das Sie angegeben haben. Ein Job mit GPU-Typ geht nur an Ziele, die diesen Typ haben.
EUVYRA bereitet den Run vor
Es legt den Run mit der Konfiguration des Jobs an und erzeugt einen API-Schlüssel nur für dieses Projekt, der mit dem Timeout des Jobs abläuft und bei dessen Ende widerrufen wird.
Der Container trainiert
Auf Kubernetes als Job, dessen Schlüssel in einem Secret liegt, mit Requests gleich Limits, ohne Rechteausweitung und ohne Service-Account-Token. Auf Docker mit ganzen GPUs pro Job.
Der Datensatz ist vollständig
Status, Exit-Code, GPU-Stunden, Kosten und das vollständige Container-Log hängen am Run, und die Änderung steht im Audit-Log.
Cloud-Maschinen innerhalb eines Budgets
Sind die eigenen GPUs belegt, bestellt EUVYRA auf Wunsch selbst Maschinen. Eine bestellte Maschine installiert beim ersten Start Docker, den NVIDIA-Treiber und den Agenten und verhält sich danach wie jedes andere Ziel. Ein Pool bestellt Maschinen, solange ihm zugewiesene Jobs oder Endpunkte warten, und löscht sie, sobald sie leer laufen. Eine GPU kostet also nur Geld, solange es Arbeit für sie gibt.
| Anbieter | Standardregionen | GPUs |
|---|---|---|
| Hetzner Cloud | Falkenstein, Nürnberg, Helsinki | Über die Cloud-API nur CPU; dedizierte GPU-Server von Hetzner kommen per Installationsskript hinzu |
| Scaleway | Paris, Amsterdam, Warschau | L4, L40S, H100, RTX 6000 und weitere |
| OVHcloud | Gravelines, Straßburg, Frankfurt, Warschau | L4, L40S, A100, H100, V100 |
| AWS | Frankfurt, Irland, Paris, Stockholm, Mailand, Spanien | g4dn, g5, g6, g6e, p4d, p5 und neuer |
| Google Cloud | Niederlande, Belgien, Frankfurt, Paris, Finnland, Warschau | L4, A100, H100 |
Grenzen, die ein Mensch festlegt
- Ein Monatsbudget pro Cloud-Konto. Vor jeder Bestellung rechnet EUVYRA die Ausgaben des Monats zusammen und lehnt ab, was das Budget überschreiten würde. Ist das Budget aufgebraucht, laufen die Maschinen leer und werden gelöscht.
- Eine Höchstzahl an Maschinen pro Konto und pro Pool, eine Leerlaufzeit, nach der eine Maschine geht, und ein Höchstalter.
- Regionen außerhalb der EU lassen sich einem Konto hinzufügen, werden aber nie von sich aus angeboten.
- Maschinen bestellen, Konten verbinden und Pools vergrößern darf nur ein Organisations-Admin, KI-Assistenten nie.
Jede Maschine meldet sich mit einem Bootstrap-Token an, das einmal gilt und nach zwei Stunden verfällt. Was der Metadatendienst eines Anbieters von den Startdaten zeigt, ist danach wertlos. Zugangsdaten der Anbieter werden verschlüsselt gespeichert, nie von der API zurückgegeben und nie an eine Maschine geschickt.
Fragen zum Training
Muss unser Cluster von EUVYRA aus erreichbar sein?
Nein. Der Agent baut die Verbindung zu EUVYRA auf und holt sich die Arbeit. Erreichbar sein müssen nur Modell-Endpunkte, die das Gateway aufruft.
Müssen wir unseren Trainingscode ändern?
Nicht, um ihn als Job laufen zu lassen: Auch Container ohne SDK bekommen einen Run mit Status, Laufzeit, Exit-Code, Kosten und Log. Mit euvyra.init() kommen Metriken, Medien und Herkunft dazu.
Können wir unsere W&B-Sweep-Dateien weiter nutzen?
Ja. Sweep-Parameter folgen dem W&B-Format, einschließlich log_uniform_values und der Hyperband-Einstellungen, und euvyra sweep create sweep.yaml liest sie ein.
Auf welcher Hardware lief das schon?
Der Kubernetes-Weg lief vollständig auf einem k3s-Cluster, der Docker-Weg mit GPU-Jobs auf einer NVIDIA DGX Spark (GB10), während vLLM auf derselben Maschine Modelle bereitstellte. Agent-Images gibt es für amd64 und arm64.