- Krea 2 ist ein Foundation Model zur Bildgenerierung, das statt eines einzigen polished Defaults kreative Exploration in den Mittelpunkt stellt; Modellgewichte und Inferenz werden unter einer permissive License veröffentlicht
- Der Trainingsprozess verläuft über Pretraining → Midtraining → SFT → Preference Optimization → RL; Datenkuratierung, Captions, Prompt-Erweiterung und Stilreferenzen verfeinern schrittweise die Ausgabeverteilung
- Die Architektur basiert auf einer einfachen DiT-Familie und kombiniert GQA, gated sigmoid attention, SwiGLU, Qwen 3 VL, Qwen Image VAE und FLUX 2 VAE, um Stabilität und Effizienz auszubalancieren
- Krea 2 erreichte in der Kategorie Text-to-Image die Top 10 des Artificial Analysis leaderboard und Platz 2 unter den Modellen unabhängiger Labs
- Für das Training in großem Maßstab wurde ein System auf Basis von PyTorch, FSDP2, Tensor-Parallelisierung, Kubernetes, Virtual Kubelet, Weka und PostgreSQL aufgebaut; als nächste Schritte werden MoE, sparse attention, native 2K–4K, NVFP4 und Muon scaling geprüft
Ein Image-Foundation-Model für kreative Exploration
- Krea 2 ist eine Reihe von Foundation Models zur Bildgenerierung, die auf breite ästhetische Vielfalt und kreative Kontrolle durch Nutzer ausgerichtet ist
- Die öffentlichen Materialien sind über die Release page, Hugging Face weights/license, GitHub code/license und das Krea Image tool verfügbar
- Modellgewichte und Inferenz werden unter einer permissive license veröffentlicht
- Krea sieht, dass auf Diffusion und Flow Matching basierende Bildmodelle bei hochauflösenden Bildern, Photorealismus, stabiler Struktur, dichtem Text-Rendering, breitem Weltwissen und genauer Prompt-Befolgung Fortschritte gemacht haben, viele Systeme jedoch zu einer engen Standardästhetik konvergieren
- Krea 2 zielt nicht darauf ab, einen einzelnen polished Default zu optimieren, sondern versteht sich als generatives Medium, mit dem sich verschiedene Stile, Stimmungen, Kompositionen und visuelle Richtungen erkunden lassen
- In der Kategorie Text-to-Image erreichte es die Top 10 des Artificial Analysis leaderboard und Platz 2 unter den Modellen unabhängiger Labs
Datenkuratierung und Caption-Strategie
- Das Krea-Team baute von Grund auf eine groß angelegte Dateninfrastruktur und ein Framework für verteiltes Training auf, um ein Pretraining-Dataset mit broad world knowledge und style coverage zu erstellen
- Ein „guter data mix“ erfordert aus ihrer Sicht nicht nur hochwertige Bilder, sondern auch Vielfalt und breite domain coverage
- Filtering auf Basis von aesthetic score und image quality assessment kann implicit bias erzeugen
- Motion Blur oder softness können eine bewusste künstlerische Entscheidung sein, aber als blurry image niedrig bewertet werden
- Wenn die Caption ein Bild präzise beschreibt, können auch unerwünschte Bilder für das Downstream-Training hilfreich sein
- Im Pretraining-Dataset wurden duplicated samples, over-represented concepts, Samples, bei denen das VLM wichtige Elemente nicht erfasst, Samples, die undesired biases und artifacts verursachen, Samples mit hoher visueller Komplexität, die sich bei low resolution nur schwer stabil modellieren lassen, sowie AI-generated samples herausgefiltert
- Im Pretraining-Mix von Krea 2 werden keine AI-generated images verwendet
- Synthetic data und Distillation können ein Shortcut zum Erwerb von capabilities sein
- Schon kleine Mengen AI-generated images können Bias in die Ausgabeverteilung des Modells einführen und praktisch die obere Grenze der model quality festlegen
- Um sie herauszufiltern, wurden in-house classifiers entwickelt
- Die Captions sind als multi-stage Ansatz aufgebaut
- Auf dem target image wird ein OCR model ausgeführt, um visible text zu extrahieren
- OCR-Ergebnisse und metadata werden an ein captioning model übergeben, das eine enriched caption mit extracted text und world knowledge erzeugt
- Die context-rich long-form caption wird mit einem günstigeren LLM in verschiedene Längen und Formate umgearbeitet, um das Modell unterschiedlichen prompt styles auszusetzen
- Long prompts lieferten dense supervision, führten zu schnellerer Konvergenz und geringerem training loss; für die Downstream-Nutzung wurde zugleich die Exposition gegenüber short/medium prompts beibehalten
Trainingsdaten nach Auflösung und Midtraining
- Die Pretraining-Daten durchlaufen Auflösungsstufen von 256px, 512px und 1024px
- Der Großteil der FLOPs wird der Low-Resolution-Stufe zugewiesen, um die Kernfähigkeiten effizient zu erlernen
- Anschließend wird die Auflösung erhöht, um die Fähigkeit zur High-Fidelity-Generierung zu vermitteln
- Low-Resolution-Pretraining lernt grundlegendes Text-Bild-Alignment und Struktur
- Das Low-Resolution-Dataset umfasst Milliarden von Bildern und stützt sich daher stark auf kostengünstige CPU-based filters
- Broken-file-, Resolution- und Aspect-ratio-Filter entfernen ungeeignete Bilder
- Laplacian filters entfernen Bilder mit extremen Texturen und Noise Patterns
- RGB entropy, White/Black Pixel Ratios, custom heuristics und In-house Classifiers reduzieren Flat-Color Backgrounds und Border Artifacts
- Der In-house Classifier wird aufgebaut, indem mit einem large VLM ein System Prompt für die Filtering Task erstellt und ein pseudo-labeled Dataset erzeugt wird; anschließend wird ein kleiner Classifier auf Basis von DINOv3 oder SigLIP-2 trainiert
- Filtering Models, die in der Low-Resolution-Phase GPU-Compute benötigen, werden aus Effizienzgründen unter 1B Parameters gehalten
- Low-Resolution-Deduplication nutzt hauptsächlich hash-based Methods, die md5, phash und colorhash kombinieren
- Der einfache 8x8 phash berücksichtigt Farbe nicht und hatte daher eine hohe False-positive Rate
- Für robustere Deduplication werden 12x12 phash und colorhash kombiniert
- Mit steigender Trainingsauflösung werden Image-Quality- und Aesthetic Filters eingeführt
- Der Quality Score wird nur zum Entfernen von Bildern mit sehr schlechter Qualität verwendet und nicht für score-basiertes Oversampling
- Ein OCR-basierter Image-Complexity Score und Text Density schließen Bilder aus, bei denen Text und Inhalt in niedriger Auflösung schwer sinnvoll darstellbar sind
- Auf SigLIP-2 Embeddings wurde ein sparse autoencoder trainiert, um ein SAE-basiertes Tagging-System zu erstellen; es wird genutzt, um klare visuelle Artefakte ohne expliziten Classifier zu filtern
- Midtraining wählt, anders als Pretraining, explizit Image Sources aus, die in bestimmten visuellen Domains gute stylistic coverage und hochwertige Bilder bieten
- Pretraining ist ein Bottom-up-Prozess, der mit einem general pool beginnt
- Midtraining ist eine Top-down-Kuratierung, bei der zuerst Domains und Sources ausgewählt werden
- Es ist eine Stufe, die die allgemeine Pretraining Distribution sanft mit der hochwertigen SFT Distribution verbindet
- Semantic Clustering und retrieval-based strategies stärken die World-Knowledge Coverage
- Mit FAISS wird hierarchical k-means clustering durchgeführt
- Ein VLM prüft Bilder nahe am Cluster Centroid, benennt den Cluster und flaggt ihn bei Bedarf
- Geflaggte Cluster durchlaufen ein Human Review, um Low-Quality- oder problematische Cluster zu entfernen
- Innerhalb der verbleibenden Leaf Cluster wird semantic deduplication per SigLIP similarity durchgeführt
- Für Named-Entity Coverage wird mit Danker PageRank auf der englischen Wikipedia ausgeführt und die nach Rank obersten 90% der Artikel werden beibehalten
- Mit Wikidata Metadata werden nicht darstellbare Subjects entfernt
- Für die verbleibenden rund 5 million concepts wird eine Full-text Search über alle Captions des Datasets durchgeführt
- Beim Sampling werden Bilder mit Captions priorisiert, die rare concepts erwähnen
Architekturentscheidungen und Ablation
- Krea 2 entwickelte durch Ablation eine einfache, aber leistungsstarke Diffusion-Transformer(DiT)-Architektur
- Die Architektur-Ablation wurde anhand von vier Kategorien bewertet: Stability, Performance, Efficiency und Simplicity
- Stability betrachtet die Reduktion von Loss-/Gradient-Spikes und die Trainingsstabilität
- Performance betrachtet die Konvergenzgeschwindigkeit sowie die Frage, ob die Leistung bei hoher Auflösung und über lange Horizonte erhalten bleibt
- Efficiency betrachtet, ob Parameteranzahl, FLOPs, Speicherbedarf und Kommunikation ohne Qualitätsverlust reduziert werden können
- Simplicity prüft, ob das Modell vereinfacht werden kann, ohne die anderen Kategorien zu beeinträchtigen
- Viele Architekturentscheidungen wurden von den Adoptionsmustern im LLM-Bereich beeinflusst; die Autoren gehen davon aus, dass sich Kernel und Optimierungen aus dem LLM-Ökosystem auch für Diffusion Models nutzen lassen
- Die wichtigsten Entscheidungen der finalen Architektur sind folgende
- Attention verwendet GQA with gated sigmoid attention
- Das MLP wurde von einem GeLU-MLP auf SwiGLU-Layer mit 4x Expansion Factor umgestellt
- Bei Residuals bleibt es bei Standard-Residuals
- Als Text Encoder wird Qwen 3 VL verwendet
- Modulation wurde von per-block MLP modulation auf light modulation with bias umgestellt
- Als Autoencoder werden Qwen Image VAE und FLUX 2 VAE verwendet
- Das Block-Design verwendet einen Single-Stream-Transformer-Block
- Als Norm werden zero-center RMSNorm und QKNorm verwendet
- Beim Positional Encoding bleibt es bei 3D Axial RoPE
- GQA verbessert die rechnerische Effizienz bei nur minimaler Verschlechterung
- MLA zeigte gegenüber GQA leichte Gains, wurde wegen zusätzlichen Rechen-Overheads aber nicht übernommen
- Gated Sigmoid Attention brachte zwar keinen großen Performance-Gewinn, zeigte in Loss- und Gradient-Norm-Kurven aber stabilere Dynamiken
- Zwischen Single-Stream-, Dual-Stream- und Hybrid-Stream-Design gab es keine großen Performance-Unterschiede; Hybrid-Stream war leicht besser, aus Gründen der Einfachheit wurden jedoch Single-Stream-Blocks verwendet
- Die per-block MLP modulation von MMDiT kann 20–30 % der gesamten Parameteranzahl ausmachen; Krea 2 ersetzt sie daher durch einen pro Block abstimmbaren Bias-Term
- In Experimenten zum Timestep Conditioning reichten bei 256 px 4–16 Timestep-Tokens aus, um AdaLN zu ersetzen, bei 512 px und 1024 px war die Leistung jedoch schlechter als bei der AdaLN-Baseline
- Das finale Positional Encoding ist 3D axial RoPE, bei dem Head-Dimensionen Frame, Height und Width zugewiesen werden
- Die RoPE-Indizes der Text-Tokens werden auf null gesetzt
- Partial RoPE lieferte beim Skalieren von 256 px auf 512 px gute Zero-Shot-Inference-Ergebnisse, nach High-Resolution-Training lag die finale Leistung jedoch unter der Baseline
- Beim Autoencoder begann man mit dem FLUX.1-dev-Autoencoder als Baseline und verglich ihn mit Qwen Image VAE, DC-AE, FLUX 2 VAE und einem internen Autoencoder
- DC-AE setzt wegen Reconstruction Error aus Sicht der Autoren eine harte Obergrenze für die Auflösung feiner Details
- Qwen Image VAE und FLUX 2 VAE behalten eine exzellente Reconstruction Quality bei, während ihr Latent Space eine deutlich schnellere Konvergenz ermöglicht
- Für frühe Modelle wurde der Qwen-Image-Autoencoder genutzt, für größere Modelle wurde FLUX 2 VAE übernommen
- Als Text Encoder wurden T5-XXL, T5Gemma, umT5, Qwen 2.5 VL und Qwen 3 VL verglichen; als finaler Text Encoder wird Qwen 3 VL verwendet
- VLMs bieten einen reicheren Input Space mit Text und Bild sowie stärkere mehrsprachige Generalisierung
- Statt nur die letzte Schicht der VLM-Features zu nutzen, wurde eine flache Attention-Schicht eingeführt, die Hidden Features über alle Layer hinweg aggregiert
- Entlang der Token-Achse wurden leichtgewichtige bidirektionale Transformer-Layer hinzugefügt, um den autoregressiven Bias zu reduzieren
Trainingspipeline, Präferenzoptimierung, RL
- Die Trainingspipeline ist eine mehrstufige Struktur, inspiriert von modernen LLM-Trainingspipelines.
- Das Pretraining etabliert grundlegende Fähigkeiten wie Text-Bild-Ausrichtung, Text-Rendering, stilistische Abdeckung und strukturelle Konsistenz.
- Das finale Modell wird mit standardmäßigem Rectified-Flow-Loss und v-Parameterisierung trainiert.
- In der ersten Epoche der 256px-Stage wird iREPA verwendet, um die Konvergenz in der frühen Phase deutlich zu beschleunigen, und anschließend wieder entfernt.
- In den 256px- und 512px-Stages wurde mit 8-Bit-Training gegenüber der bf16-Baseline ein Trainingsgeschwindigkeitsgewinn von 15–20 % beobachtet.
- Ab 1024px bis zur finalen RL-Stage wird standardmäßiges bf16-Training verwendet.
- Beim hochauflösenden Pretraining ist die Anpassung des auflösungsabhängigen Timeshift-Schedules wichtig.
- Sowohl beim Training als auch bei der Inferenz wird ein verschobener Logit-Normal-Sampling-Schedule verwendet.
- Mit steigender Auflösung wird der Shift schrittweise erhöht.
- Sweeps werden nur auf den Training-Shift angewendet; der Inference-Shift-Schedule bleibt konstant.
- Während des Pretrainings wird ein Warmup-Stable-Decay-Learning-Rate-Schedule verwendet und PMA angewendet.
- PMA erreicht eine mit EMA vergleichbare Performance und vermeidet zugleich den erheblichen Speicher-Overhead von EMA.
- Als Optimizer wird über die gesamte Pipeline hinweg primär AdamW verwendet.
- Muon konvergierte in den initialen Schritten schneller als AdamW, zeigte über längere Horizonte jedoch geringere Leistung und Stabilitätsprobleme.
- Nachdem die ersten und letzten linearen Layer von MMDiT aus den Muon-Parametern ausgeschlossen und Nesterov Momentum hinzugefügt wurden, übertraf es die AdamW-Baseline sowohl bei niedriger als auch bei hoher Auflösung konsistent.
- Im neuesten Pretraining-Run wurde Muon aus Zeitgründen nicht eingesetzt; die Einführung ist für den nächsten Pretraining-Zyklus geplant.
- In der SFT-Stage wird ein kleines, dediziertes Set hochästhetischer Bilder kuratiert.
- Ziel ist es, das Modell stärker in ästhetisch gewünschte Richtungen zu biasen.
- Dies hilft insbesondere dabei, bei früheren Checkpoints häufige Probleme mit hoher Sättigung und Texturen zu beheben.
- Nach dem Training domänenspezifischer SFT-Checkpoints wird per Model Merging ein generalistischer SFT-Checkpoint erstellt.
- Die Präferenzoptimierung ist der erste Schritt des Post-Training-Stacks und besteht aus einer zweistufigen Pipeline.
- Stufe 1 führt eine initiale Verfeinerung über eine großskalige Pipeline zur Erzeugung synthetischer Präferenzpaare durch.
- Die Mehrheit der Präferenzpaare enthält mindestens ein On-Policy-Sample.
- Stufe 2 ist eine Kalibrierungsphase, die ausschließlich menschliche Annotationen verwendet.
- Die menschlichen Annotationen werden von internen Mitarbeitenden gesammelt, die mit den Stärken, Schwächen und Eigenheiten des Modells vertraut sind.
- Bei PO tritt Policy Divergence als häufiges Phänomen auf.
- DPO-artige Methoden fördern eine Vergrößerung des Abstands zwischen der Likelihood bevorzugter Samples und der Likelihood abgelehnter Samples.
- Bei mehreren Mischungen von Präferenzdatensätzen wurde beobachtet, dass das Modell das Objective dadurch erreicht, dass es die Generierungs-Likelihood beider Samples senkt, jedoch mit unterschiedlichen Raten.
- Divergence entfernt das Modell von der allgemeinen Pretraining-Distribution und zeigt sich in späteren Trainingsphasen als hochfrequente Artefakte.
- Zur Abschwächung wurde eine DPO-Variante namens STPO entwickelt.
- RL ist die finale Stage der Trainingspipeline.
- Es wird eine Multi-Reward-Methode im GRPO-Stil verwendet.
- Die Reward Models bestehen aus einem allgemeinen ästhetischen Modell, einem Prompt-Following-Reward, einem Text-Rendering-Reward sowie einem Artifact-and-Structure-Reward.
- Das allgemeine ästhetische Modell entsteht durch Finetuning eines Open-Source-VLM mit den in der PO-Stage gesammelten Präferenzdaten.
- Ein prompt-spezifischer Rubric Reward zerlegt den Prompt in verifizierbare Anforderungen und bewertet, ob das generierte Bild diese erfüllt.
- Prompt Following wird nicht auf generische Bildqualität reduziert, sondern soll feingranulare Prompt-Constraints erfüllen.
- Um strukturelle Artefakte zu reduzieren, wird ein dediziertes Artifact Reward Model trainiert.
- Fehler wie zusätzliche Finger, missgebildete Gliedmaßen oder verzerrter Text sind für Menschen offensichtlich, werden von general-purpose VLM Judges jedoch häufig übersehen.
- Die gesamte RL-Stage wird ohne CFG trainiert.
- Dadurch verbessert sich die conditional Model Distribution schnell, sodass no-CFG Samples zu Beginn des Trainings deutlich näher an guided Samples heranrücken.
- Zur Inferenzzeit kann CFG weiterhin als zusätzlicher Control Knob aktiviert werden.
- Nach der RL-Stage ist eine optionale Timestep-Distillation-Stage enthalten.
- DMD, DMD2, Decoupled DMD, piFlow und APT wurden geprüft, übernommen wurde jedoch Trajectory Distribution Matching (TDM).
- TDM wendet DMD über Timesteps hinweg an und führt Distribution Matching auf Trajectory-Ebene durch.
Prompt-Erweiterung und Stilreferenz
- Beim Training verwendet das Modell reichhaltige Captions, die die dichten visuellen Details eines Bildes beschreiben; reale Nutzereingaben sind jedoch kurz und mehrdeutig, und auch die Ausdrucksgewohnheiten variieren stark
- Der Prompt Expander wandelt einfache oder unzureichende User Prompts in eine reichhaltigere visuelle Richtung um, ohne die Absicht der Nutzer zu überschreiben
- Er wird auf einem bestehenden Open-Source-LLM mit einer zweistufigen SFT- und RL-Pipeline trainiert
- Zu den Zielen gehören nicht nur die Verbesserung der Bildqualität, sondern auch creative variation und controllable exploration
- Die SFT-Daten werden erzeugt, indem aus langen Captions synthetische „User Captions“ generiert werden
- Synthetische User Captions sind kurze, konversationelle und semi-instruktionale Prompts, die viele visuelle Details der Target Caption absichtlich auslassen
- Daraus entstehen gepaarte Daten der Form underspecified user prompt → expanded model-friendly caption
- Um die reasoning ability zu erhalten, werden außerdem synthetische Thinking Traces erzeugt
- In geringem Umfang wird auch targeted distribution shaping angewendet
- Visually rich and artistic imagery wird oversampled
- Bei Prompts, die zu photorealistischen Beschreibungen erweitert werden sollen, wird ein leichter Bias in Richtung photographic medium hinzugefügt
- Ziel ist nicht das Erzwingen eines House Style, sondern sowohl expressive art-directed imagery als auch straightforward photorealistic requests abzudecken
- Das RL des Prompt Expanders zielt darauf ab, sich von der Imitation der Target Caption zu lösen und Expansions zu erzeugen, die die Bildqualität verbessern und zugleich die Nutzerabsicht bewahren
- Trainiert wird mit GDPO und einem Multi-Reward Objective
- Image-level Rewards messen Qualität und Präferenz der resulting generations
- Prompt-level verifiable Rewards prüfen, ob die Expansion der original request treu bleibt
- Safety- und Constraint-Checks werden als Gates für den overall reward verwendet
- Einer der Failure Modes des Prompt Expanders ist Diversity Collapse
- Wenn Image Rewards dominieren, kann das Modell einen einzelnen sicheren, hoch bewerteten House Style lernen
- Über Prompt-Gruppen hinweg wird ein DINOv3-Embedding-Diversity-Score hinzugefügt, um neben Qualität und Alignment auch die visuelle Vielfalt innerhalb der Gruppe zu belohnen
- Um Variation zu erhalten, muss der Diversity Reward während des gesamten Trainings aktiv bleiben
- Das Style-Reference-System wird auf dem Base Model aufgebaut
- Nutzer können Bilder per Text erzeugen und dabei den Output-Stil mit einem oder mehreren Reference Images steuern
- Smooth semantic mixing mehrerer Stile, kontinuierliche Kontrolle der Stärke jeder Style Reference und State-of-the-Art-Adherence bei komplexen Stilen sind Designziele
- Ein häufiger Failure Mode war, dass Content und Subject Matter des Style Image in das finale Bild leaken
- Für das Training des Style-Reference-Moduls wurde eine Self-Supervised Technique entwickelt; anschließend werden die Outputs in einem Preference-Optimization-Step zusätzlich aligniert
Infrastruktur und Betrieb für verteiltes Training
- Kreas Framework für verteiltes Training wurde von Grund auf auf Basis von PyTorch aufgebaut und nutzt vor allem native
torch-Funktionen, die von derDTensor-Abstraktion und dem Projekttorchtitanunterstützt werden- Für die meisten Pretraining- und Post-Training-Läufe werden FSDP2 und Tensor-Parallelisierung im Stil von Megatron-LM kombiniert
- Bei Konfigurationen mit TP-Größen über 2 wird async-TP per
torch.compile-Flag aktiviert, was gegenüber naivem TP einen moderaten Geschwindigkeitsgewinn bringt - Die Parameter des Autoencoders werden auf allen Geräten repliziert; nur der Text-Encoder und das zentrale MMDiT-Backbone werden geshardet
- Für Verbindungen innerhalb eines Knotens kommt NVLinkSharp zum Einsatz, für Verbindungen zwischen Knoten InfiniBand
- Für eine höhere Trainingseffizienz wird ein etwas breiteres Modell mit größerer Hidden Dimension verwendet
- Mit größerer Hidden Size steigt die Rechenintensität jeder Schicht, wodurch sich Latenzen durch FSDP2-Prefetching leichter verbergen lassen
- Weniger Schichten reduzieren die Anzahl der All-Gather- und Reduce-Scatter-Operationen
- Durch diese Änderung gingen NCCL-bezogene Fehler über die gesamten Pretraining-Läufe hinweg deutlich zurück
- Größere Matrixmultiplikationen helfen, den Overhead der Quantisierung/Dequantisierung beim 8-Bit-Training auszugleichen
- Im Zentrum der Optimierungsstrategie steht
torch.compile- Für Attention werden standardmäßig die neuesten cuDNN-Kernel genutzt, bei Bedarf FlexAttention oder FlashAttention 3
- Bei niedrigen Auflösungen wird selective activation checkpointing verwendet
- Bei hohen Auflösungen beginnt der Speicherbedarf der Activations zu dominieren, daher wird full activation checkpointing eingesetzt
- Das Standardformat für das Datenladen ist Parquet
- Jede Row speichert eine Bildreferenz, Crop-/Resize-Größe, Caption und weitere Metadaten
- Bei großen Läufen werden Rows vorab geshuffelt und gepackt, damit Batches mit Bildern desselben Aspect Ratios geladen werden
- Durch das Packing können Latents in einem einzigen Autoencoder-Pass encodiert werden
- Bei groß angelegtem verteiltem Training kann ein einzelner GPU-Ausfall oder Straggler den gesamten Lauf stoppen
- In Kreas Größenordnung reichte es aus, MTBF und MTTR durch schnelles, häufiges Checkpointing und bessere Startup Times zu optimieren
- Die Forschung läuft auf einem einzelnen Kubernetes-Cluster, der sich GPUs mit Production Inference teilt
- Das System ist so ausgelegt, dass bei Forschungsbedarf der gesamte GPU-Pool belegt werden kann
- Wenn alle GPUs des Clusters einem Trainingslauf zugewiesen sind, wird Kreas Inference-Workload automatisch an einen anderen Ort migriert
- Das System übernimmt den Traffic-Failover und erhält so die Responsiveness der Production-Umgebung, auch wenn lokal keine GPUs mehr verfügbar sind
- Kueue war ein zentrales Element des Workload-Schedulings
- Kueue bietet ein zweistufiges Prioritätssystem, das Workload Priority und Kubernetes Pod Priority kombiniert
- Es ermöglicht das für Multi-Node-Training nötige Gang-Scheduling
- Die Queueing-Primitives „borrowing“, „lending“ und „reclamation“ helfen, die Auslastung zu maximieren
- Für die Komponenten, die Inference andernorts skalieren, wenn alle GPUs der Forschung zugewiesen sind, wird Virtual Kubelet verwendet
- Wenn ein Pod auf einen virtuellen Kubernetes-Node geschedult wird, wandelt Krea-Code die Pod Specification in eine mit dem Ziel-Provider kompatible Form um
- Bei providerseitigen Fehlern werden die Zustände auf beiden Seiten abgeglichen
- Recovery wird an Kubernetes delegiert; das System erkennt Fehler und propagiert sie an Kubernetes
- Observability war der Bereich, in dem beim groß angelegten Pretraining am meisten gelernt wurde
- Ohne Subsystem-Metriken zu GPU, PCIe, NVLink und InfiniBand wäre Training in dieser Größenordnung nicht möglich gewesen
- Die Metriken werden mit einer Kombination aus DCGM und einem Custom DaemonSet gesammelt
- Wenn GPUs 75–78 °C überschreiten, setzt Throttling ein, der Gesamtdurchsatz sinkt und die Training Instability nimmt zu
DCGM_FI_PROF_PIPE_TENSOR_ACTIVEwar der bevorzugte Indikator dafür, ob das Training wie erwartet läuft- InfiniBand-Metriken waren essenziell für die Diagnose von Fabric Instability, Link Flapping, Packet Errors, Congestion, Symbol Errors und Throughput Disparity
- Die Skalierung der GPU-Anzahl war schwierig
- Runs mit weniger als 128 GPUs waren sehr stabil und liefen oft mehrere Tage ohne Probleme
- Mit steigender GPU-Anzahl begannen Runs deutlich häufiger abzustürzen
- In sehr großem Maßstab wurde kein einziger Run abgeschlossen, der länger als 24 Stunden lief
- Viele Crashes hatten keine klare Ursache und erschienen wie NCCL-Timeouts, obwohl alle Metriken gesund wirkten
- Einer der großen frühen Fehler war die Einführung von Ceph; später wurde auf Weka umgestellt
- Probleme mit dem Filesystem und Downtime gingen stark zurück, und die Performance verbesserte sich in ähnlichem Ausmaß
- Weka war ein Schlüsselelement, das aggressives Checkpointing beim Training von Krea 2 ermöglichte
- Ein Checkpoint war in etwa 30 Sekunden abgeschlossen, sodass durch Checkpointing nur wenig Zeit verloren ging
Data Warehouse und Arbeitswarteschlange
- Für die K2-Datenerfassung und -Kuratierung wurde ein maßgeschneidertes Warehousing- und Queueing-System rund um einen Cluster von PostgreSQL-Servern aufgebaut
- Jeder Krea-Tablet-Server wird „krablet“ genannt
- Jedes krablet besteht aus einer Postgres-Instanz, die einen Data Shard enthält, und einem „funnel“-Server-Deployment, das Mutationen asynchron batcht/queued, um Lock Contention zu reduzieren
- Alle Reads werden über ein großes „RPC“-Server-Deployment proxied
- Der RPC-Server ersetzt traditionelle Connection Pooler wie PgBouncer
- Jeder RPC-Server hält einen Connection Pool zu allen Shards der Datenbank vor
- Das krablet-System ist allein bei den Metadaten auf 208 TB skaliert und kann zehntausende umkämpfte
UPSERT-Transaktionen pro Sekunde verarbeiten- Es stellt die Single Source of Truth für alle Forschungsdaten bereit
- Es ermöglicht, dass die Stream-Processing-Schicht mit der Datenschicht identisch sein kann
- Ein typischer Job-Processing-Workflow nutzt eine Postgres-Tabelle wie eine Queue
- OCR-Worker suchen nach Zeilen mit
contains_text IS NULLund verarbeiten sie - Embed-Worker verarbeiten Zeilen mit
embedding_path IS NULLundcontains_text = FALSE - Mit
FOR UPDATE SKIP LOCKEDwerden Zeilen geclaimt und Spalten der Artlast_tried_ataktualisiert
- OCR-Worker suchen nach Zeilen mit
- Das Queue-Modell hat ein anderes Retry-Verhalten als Kafka oder Ray
- Bei einem Fehler wird die Zeile nicht gedroppt oder in eine Dead-Letter-Queue verschoben
- Auch Zeilen, deren Verarbeitung fehlgeschlagen ist, werden dank des atomaren Updates von
last_tried_atam Ende der Queue erneut versucht - Head-of-Line Blocking wird ebenfalls verhindert
- Die Zahl der Worker lässt sich dynamisch anpassen
- Processing-Jobs werden mit Kubernetes deployt und können ohne Data Resharding beliebig hoch- oder herunterskaliert werden
- Ein Job kann mit 1 oder 1000 Workern ausgeführt werden
- Mit Prometheus-Scaling-Metriken kann jeder Teil der Pipeline anhand der verfügbaren Arbeit automatisch skaliert werden
- Für mehr Komfort für Forschende wird ein System namens „pluck“ bereitgestellt
- Es bietet eine globale Map-API, die sich gut für die Nutzung in Notebooks eignet
t.mapgibt ein Handle zurück, an das sich Nutzer anhängen können, um Live-Fortschritt zu sehen- UDFs werden mit
cloudpicklegepickelt und auf Remote-Workern ausgeführt
- Für die Forschung der nächsten Generation wird ein Nachfolgesystem gebaut, das die krablet- und
FOR UPDATE SKIP LOCKED-Queue-Semantik beibehält, die Daten aber in einem LSM-Tree auf Object Storage speichert- Dazu wird ein Einstellungslink für ein Supercomputing-/Distributed-Systems-Team bereitgestellt: https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072ad0f4c9
Künftige Richtung
- Bei Krea 2 wurden Stabilität und Iteration Speed priorisiert, daher fiel die Wahl auf eine vergleichsweise konservative Architektur und einen konservativen Optimizer
- Im nächsten Pretraining-Zyklus soll modernes LLM-Transformer-Design auf Diffusion Transformer angewendet werden
- Zu den geprüften Richtungen gehören MoE, native 2K–4K-Resolution-Skalierung durch Sparse Attention, NVFP4-Pretraining und Muon Scaling
- Das aktuelle Modell ist undertrained; längeres Training dürfte hilfreich sein
- Die aktuelle Krea-2-Training-Pipeline endet mit einer Multi-Reward-RL-Stage
- Krea hat mithilfe interner Expert-Modelle bereits verifiziert, dass OPD und MOPD effektive Distillation-Methoden für Diffusion Models sind
- Weitere Ergebnisse sollen bald geteilt werden
- Production-Diffusion-Models erfordern eine komplexe Konfiguration aus mehreren voneinander abhängigen Modellen
- Für das Serving latenter Diffusion Models werden in der Regel ein Autoencoder, ein Diffusion Transformer, ein Text Encoder und ein Prompt-Expansion-Modell benötigt
- Je nach Stack können zusätzliche Module wie ein Style-Reference-Modell oder ein Upscaler hinzukommen
- Mehrere Komponenten zu betreuen, die unabhängig trainiert werden müssen, aber voneinander abhängig sind, erschwert die Koordination im Research-Team
- Krea plant, im nächsten Pretraining-Zyklus die Architektur zu vereinfachen und mehrere Komponenten unter einem einzigen Modell zu vereinen
- Krea 2 konzentrierte sich vor allem auf Bilderzeugung für kreative Exploration; künftig sollen die Fähigkeiten um robustes Editing, Image Reference und native 2K/4K-Generierung erweitert werden
- Klassisches Prompting in natürlicher Sprache allein reicht aus ihrer Sicht nicht mehr aus, um die gesamte Bandbreite von Nutzeranfragen zu unterstützen
- In Nutzer-Prompts werden verschiedene Prompting-Stile beobachtet, darunter natürliche Sprache, Tags, detailliertes JSON, Bounding Boxes, Instruktionen, visuelle Guidelines und Markdown
- Prompt Expansion kann einen Teil davon lösen, aber dass das Modell solche Prompts nativ versteht, sollte ebenfalls zu einer Kernfähigkeit werden
1 Kommentare
Hacker-News-Kommentare
Sie haben die Gewichte eines aktuellen Text-zu-Bild-Modells veröffentlicht und dazu einen Beitrag mit ziemlich tiefem Einblick in den Trainingsprozess vorgelegt
Es enthält auch viele Details zu Dingen, über die sonst selten so ausführlich geschrieben wird, etwa zur tatsächlichen Trainings- und Dateninfrastruktur, daher dürfte hier einiges Interessantes für entsprechend Interessierte dabei sein
Wenn man das Feld schon länger verfolgt, ist es wirklich spannend, die Experimente und den Aufwand hinter dem Endprodukt nachzulesen, und wenn sie der Community noch einige Fine-Tuning-Tools zur Verfügung stellen, könnte man das Potenzial des Modells wohl noch weiter ausreizen
Mich hat der Trend frustriert, dass große Modelle solche Inhalte selbst in legalen Fällen aus Sicherheitsgründen stark ausschließen
Das ursprüngliche Flux.1 Krea war seit letztem Juli auf meiner GenAI-Showdown-Benchmark-Seite, und in diesem Feld fühlt sich das wie eine Ewigkeit an. Ich würde das neue Modell gern gründlich testen
Hier ist Diego Rodriguez, Mitgründer und CTO von Krea. Wir veröffentlichen diesmal die Gewichte und, gemessen an den heutigen Branchenstandards, einen ziemlich substanziellen technischen Bericht
Der Bericht behandelt Datenkuratierung/-Captioning, Modellarchitektur, Post-Training, die Reinforcement-Learning-Pipeline, Prompt-Erweiterung, Stilreferenzen und Infrastruktur im Detail
Die Gewichte sind in zwei Varianten aufgeteilt: Krea 2 Turbo ist ein Modell, bei dem Guidance und Timesteps destilliert wurden, um die Inferenz zu beschleunigen, und Krea 2 RAW ist für Hacking und Fine-Tuning gedacht
Ich finde, die Open-LLM-Community macht das gut, indem sie Modelle in mehreren Größen und in verschiedenen Phasen der Trainingspipeline veröffentlicht, und diesmal legen wir sowohl Checkpoints aus mittleren Trainingsphasen als auch aus der Post-Training-Phase offen. Im Bild- und Multimedia-Bereich ist das selten, und darauf sind wir stolz
Laut dem Artificial-Analysis-Text-zu-Bild-Benchmark liegt die Bildqualität ungefähr auf dem Niveau von Nano Banana: https://artificialanalysis.ai/image/leaderboard/text-to-imag...
Dazu kommt eine großzügige Lizenz für Einzelpersonen und kleine Unternehmen
Vorstellung des OSS-Releases: https://www.krea.ai/krea-2-open-source / Huggingface-Modell: https://www.krea.ai/krea-2/huggingface / GitHub-Repository: https://www.krea.ai/krea-2/github / Reddit-AMA: https://www.reddit.com/r/StableDiffusion/comments/1udnm0a/we... / Technischer Bericht: https://www.krea.ai/blog/krea-2-technical-report
Die Ergebnisse sind da, und besonders das Turbo-Modell ist wirklich beeindruckend, wenn man bedenkt, wie schnell es mit 8 Schritten ist
Unter lokal hostbaren Modellen wurde es nur von Ideogram 4 übertroffen, und das ist deutlich langsamer. Wir reden von Minuten statt Sekunden
An den üblichen „Model-Killern“ wie einem neunzackigen Stern, Count Rugen oder einer flachen Erde mit viel zu vielen Menschen ist es gescheitert, aber insgesamt hat es über seiner Gewichtsklasse performt, den höchsten Score unter lokal hostbaren Modellen erreicht und insgesamt direkt unter Ideogram 4 gelegen, mit 6 bestandenen Tests von 15
GenAI-Link nur für lokal hostbare Modelle: https://genai-showdown.specr.net/?models=fd,hd,kd,qi,f2d,zt,...
Spannend, dass man über das Testen bei so bizarr spezifischen Fällen gelandet ist
Mehr Open-Weight-Modelle zu sehen ist gut, und ich mag den ausführlichen Beitrag wirklich
Mir gefällt auch der Ansatz, den Manifold breit zu halten, damit verschiedene Stile möglich bleiben. Das scheint mir besser, als alles nur auf ein paar Stil-Presets zuzuschneiden
Allerdings kommen hochentwickelte Bild-zu-Bild-/agentische Kompositionsmodelle wie Nano Banana 2 oder Images 2.0 bereits sehr stark auf, sodass es sich inzwischen auch ein wenig so anfühlt, als würde man „den letzten Krieg“ führen
Ich bezweifle ziemlich, dass das Einschleifen eines Basis-Qwen-3-VL an dieses Niveau von Bild-zu-Bild herankommt, und robustes Bild-zu-Bild ist enorm wichtig für Editing, Anpassungen, Charakterkonsistenz und für die Verallgemeinerung dessen, was derzeit bei Stiltransfer genutzt wird. Auch der Stiltransfer-Teil wirkt unzureichend erklärt
Es wird nicht leicht sein, dieses Niveau zu erreichen, aber ich denke, hier verläuft klar die nächste Front bei Bildmodellen. Ideogram scheint in diese Richtung aufzubauen, aber bei Open Weights habe ich das bisher noch nicht wirklich gesehen
Agentische Workflows sind mit Krea 2 kompatibel, deshalb verstehe ich diesen Punkt nicht ganz. Falls du ein Editing-Modell meinst: Daran arbeiten wir auch
Auch in Text-zu-Bild-Benchmarks liegt es auf ähnlichem Niveau; siehe den Artificial-Analysis-Link in meinem Kommentar weiter oben
Man kann Nano Banana oder ChatGPT nicht einfach neu trainieren, damit sie die Marke eines Kunden verstehen, und genau darüber beklagen sich unsere Kunden immer wieder. Außerdem ist Open Source, daher ist ein 1:1-Vergleich nicht ganz einfach
Auch die Aussage, Stiltransfer werde nicht erklärt, ist vage. Auf der Seite taucht „reference“ 11-mal auf, und beim tatsächlichen Lesen wurde das Thema ziemlich ausführlich behandelt
Es ist zwar erfreulich, dass Krea die Modellgewichte zum Download bereitstellt, aber mit solchen Klauseln in der Lizenz ist es kein Open Source: https://huggingface.co/krea/Krea-2-Raw/blob/main/LICENSE.pdf
Kommerzielle Nutzung ist nur erlaubt, wenn der gesamte Jahresumsatz des Unternehmens in den letzten 12 Monaten unter 1 Million US-Dollar liegt; darüber hinaus ist eine separate Enterprise-Lizenz erforderlich.
Außerdem dürfen das Krea-Modell, abgeleitete Werke und Ausgaben nicht unter Verstoß gegen geltendes Recht, Verträge oder die Acceptable-Use-Richtlinie verwendet werden, und bei der Verbreitung müssen angemessene Content-Filter implementiert werden, um die Erzeugung verbotener, schädlicher oder illegaler Inhalte zu erkennen, zu verhindern und abzumildern.
Auch die Acceptable-Use-Richtlinie ist einzuhalten; auf der Richtlinienseite https://www.krea.ai/krea-2-use-policy finden sich zudem Bestimmungen, die die Umgehung von durch Krea oder den Distributor implementierten Sicherheitsmaßnahmen, Nutzungsbeschränkungen, Content-Filtern, Herkunftskennzeichnung und Watermarking untersagen.
Für Turbo scheint es bereits eine GGUF-konvertierte Version zu geben: https://huggingface.co/Abiray/Krea-2-Turbo-GGUF
Auf der Karriereseite gibt es einen interessanten Punkt.
Für Leute, die noch wissen, was das alte Mellanox für ein Laden war, könnte das genau den Geschmack treffen: https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072a...
Gutes Modell, aber dass es Qwen VAE verwendet, ist ein kleiner Wermutstropfen.
Nachdem ich beide verwendet habe, würde ich sagen, dass Flux VAE beim Lernen realistischer Texturen leicht vorne liegt, aber der Unterschied ist nicht so groß, wie man vielleicht denkt. Qwen VAE war in zurückhaltenden Experimenten insgesamt ebenfalls sehr gut und stark darin, unterschiedliche Stile zu lernen.
Ich hatte bisher noch keine Zeit, das selbst auszuprobieren.
Ich freue mich darauf, Krea 2 auszuprobieren. Ich nutze Z-Image Turbo täglich und habe damit für realistische Bilder und Illustrationen sogar mein Stockfoto-Abo ersetzt.
Mich würde interessieren, wie hoch die Trainingskosten waren.
Die Trainingskosten lassen sich nur schwer sauber schätzen, weil ein gemeinsam genutzter Kubernetes-Cluster verwendet wurde, auf dem gleichzeitig Inferenz- und Research-Workloads liefen.
Ich frage mich, was Leute zum Self-Hosting solcher Modelle verwenden.
Ich habe ollama und open-webui ausprobiert, aber die unterstützten überhaupt keine Bildgenerierung.
Wenn man festhängt, kann man zum Einstieg erst einmal einfach Workflows per Copy-and-paste übernehmen.
https://github.com/LostRuins/koboldcpp