- Krea 2 est un modèle de fondation de génération d’images qui privilégie l’exploration créative plutôt qu’un unique rendu par défaut soigné, et publie les poids du modèle ainsi que l’inférence sous une permissive license
- Le processus d’entraînement suit la séquence pretraining → midtraining → SFT → preference optimization → RL, tandis que la curation des données, les légendes, l’expansion des prompts et les références de style affinent progressivement la distribution des sorties
- L’architecture s’appuie sur une famille DiT simple et combine GQA, gated sigmoid attention, SwiGLU, Qwen 3 VL, Qwen Image VAE et FLUX 2 VAE afin d’équilibrer stabilité et efficacité
- Krea 2 s’est hissé dans le top 10 du Artificial Analysis leaderboard en text-to-image, et a pris la 2e place parmi les modèles de laboratoires indépendants
- Pour l’entraînement à grande échelle, l’équipe a mis en place un système basé sur PyTorch, FSDP2, la parallélisation tensorielle, Kubernetes, Virtual Kubelet, Weka et PostgreSQL, et étudie ensuite MoE, sparse attention, le support natif du 2K–4K, NVFP4 et le Muon scaling
Un modèle de fondation d’image conçu pour l’exploration créative
- Krea 2 est une série de modèles de fondation de génération d’images visant une large diversité esthétique et un contrôle créatif de l’utilisateur
- Les ressources publiques sont disponibles via la Release page, les Hugging Face weights/license, le GitHub code/license et l’outil Krea Image
- Les poids du modèle et l’inférence sont publiés sous une permissive license
- Krea estime que les modèles d’image basés sur la diffusion et le flow matching ont progressé jusqu’aux images haute résolution, au photoréalisme, à des structures stables, à un rendu de texte dense, à une vaste connaissance du monde et à un respect fin des prompts, mais que beaucoup de systèmes convergent vers une esthétique par défaut étroite
- Plutôt que d’optimiser un unique rendu par défaut soigné, Krea 2 vise un médium génératif permettant d’explorer plusieurs styles, ambiances, compositions et directions visuelles
- Il figure dans le top 10 du Artificial Analysis leaderboard en text-to-image et se classe 2e parmi les modèles de laboratoires indépendants
Stratégie de curation des données et de légendage
- L’équipe Krea a construit from scratch une infrastructure de données à grande échelle et un framework d’entraînement distribué afin de créer un pretraining dataset doté d’une large connaissance du monde et d’une bonne couverture des styles
- Selon elle, un « bon data mix » nécessite non seulement des images de haute qualité, mais aussi de la diversité et une large couverture des domaines
- Le filtrage fondé sur l’aesthetic score et l’image quality assessment peut introduire des biais implicites
- Le motion blur ou la douceur peuvent être des choix artistiques intentionnels, mais être mal notés comme blurry images
- Si une légende décrit précisément l’image, même une image non souhaitable peut aider l’apprentissage downstream
- Dans le pretraining dataset, l’équipe filtre les échantillons dupliqués, les concepts surreprésentés, les échantillons dont le VLM ne capte pas les éléments importants, ceux qui induisent des biais et artifacts indésirables, ceux à forte complexité visuelle difficiles à modéliser de manière stable en basse résolution, ainsi que les AI-generated samples
- Le mix de pretraining de Krea 2 n’utilise pas d’AI-generated images
- Les données synthétiques et la distillation peuvent constituer un raccourci pour acquérir des capacités
- Selon l’équipe, même une petite quantité d’images générées par IA peut introduire un biais dans la distribution des sorties du modèle et fixer de fait la borne supérieure de la qualité du modèle
- Pour les filtrer, elle a conçu des classificateurs in-house
- Les légendes sont construites selon une approche multi-stage
- Un modèle OCR est exécuté sur l’image cible afin d’extraire le texte visible
- Le résultat de l’OCR et les métadonnées sont fournis à un modèle de captioning pour générer une enriched caption incluant le texte extrait et la connaissance du monde
- Cette légende longue et riche en contexte est ensuite reformulée par un LLM moins coûteux en plusieurs longueurs et formats afin d’exposer le modèle à différents styles de prompts
- Les prompts longs ont fourni une supervision dense, favorisant une convergence plus rapide et une training loss plus faible, tout en conservant une exposition aux prompts courts et moyens pour les usages downstream
Données d’entraînement par résolution et midtraining
- les données de pretraining passent par des étapes de résolution 256 px, 512 px, 1024 px
- la majeure partie des FLOPs est allouée aux étapes basse résolution afin d’apprendre efficacement les capacités fondamentales
- la résolution est ensuite augmentée pour doter le modèle de capacités de génération à haute fidélité
- le pretraining basse résolution apprend l’alignement texte-image de base et la structure
- le dataset basse résolution est de l’ordre de plusieurs milliards d’images, il s’appuie donc fortement sur des filtres CPU peu coûteux
- des filtres sur les fichiers corrompus, la résolution et le ratio d’aspect suppriment les images inadaptées
- des filtres laplaciens suppriment les images présentant des textures extrêmes et des motifs de bruit
- l’entropie RGB, les ratios de pixels blancs/noirs, des heuristiques maison et des classifieurs internes réduisent les arrière-plans en aplats de couleur et les artefacts de bordure
- le classifieur interne est construit en utilisant un grand VLM pour créer un system prompt dédié à la tâche de filtrage et générer un dataset pseudo-labelisé, puis en entraînant un petit classifieur basé sur DINOv3 ou SigLIP-2
- à l’étape basse résolution, les modèles de filtrage nécessitant du calcul GPU sont maintenus sous 1B de paramètres pour des raisons d’efficacité
- la déduplication basse résolution utilise principalement des méthodes basées sur des hash combinant md5, phash et colorhash
- le phash 8x8 de base ne tenant pas compte de la couleur, son taux de faux positifs était élevé
- pour une déduplication plus robuste, un phash 12x12 est combiné à colorhash
- à mesure que la résolution d’entraînement augmente, des filtres de qualité d’image et d’esthétique sont introduits
- le score de qualité sert uniquement à supprimer les images de très mauvaise qualité et n’est pas utilisé pour l’oversampling basé sur le score
- un score de complexité d’image basé sur l’OCR et la densité de texte permettent d’exclure les images où le texte et le contenu sont difficiles à représenter de manière pertinente en basse résolution
- un système de tagging basé sur SAE a été créé en entraînant un sparse autoencoder sur les embeddings SigLIP-2, puis utilisé pour filtrer les artefacts visuels évidents sans classifieur explicite
- contrairement au pretraining, le midtraining sélectionne explicitement des sources d’images offrant une bonne couverture stylistique et des images de haute qualité dans des domaines visuels spécifiques
- le pretraining est un processus bottom-up qui part d’un pool généraliste
- le midtraining est une curation top-down où l’on choisit d’abord les domaines et les sources
- il sert d’étape de transition en douceur entre la distribution générale du pretraining et la distribution SFT de haute qualité
- la couverture des connaissances du monde est renforcée via des stratégies de clustering sémantique et fondées sur la récupération
- un clustering hiérarchique k-means est effectué avec FAISS
- le VLM inspecte les images proches du centroïde de chaque cluster pour nommer le cluster et le signaler si nécessaire
- les clusters signalés font l’objet d’une revue humaine afin d’éliminer les clusters de faible qualité ou problématiques
- au sein des clusters feuille restants, une déduplication sémantique est effectuée via la similarité SigLIP
- pour la couverture des entités nommées, Danker exécute PageRank sur l’English Wikipedia et conserve les 90 % premiers articles selon le classement
- les métadonnées Wikidata servent à supprimer les sujets non représentables
- une recherche plein texte est effectuée sur les captions de l’ensemble du dataset pour les quelque 5 millions de concepts restants
- lors de l’échantillonnage, la priorité est donnée aux images dont la caption mentionne des concepts rares
Choix d’architecture et ablation
- Krea 2 a développé, au terme d’ablations, une architecture diffusion transformer (DiT) simple mais performante
- L’ablation d’architecture a été évaluée selon quatre catégories : stabilité, performance, efficacité et simplicité
- la stabilité porte sur la réduction des pics de loss/gradient et sur la stabilité de l’entraînement
- la performance porte sur la vitesse de convergence et sur le maintien des résultats en haute résolution et sur un horizon long
- l’efficacité porte sur la capacité à réduire le nombre de paramètres, les FLOPs, la mémoire et la communication sans dégrader la qualité
- la simplicité vérifie s’il est possible de simplifier le modèle sans nuire aux autres catégories
- De nombreuses décisions architecturales ont été influencées par les tendances d’adoption de l’écosystème LLM, avec l’idée que les kernels et optimisations de cet écosystème peuvent aussi être exploités pour les modèles de diffusion
- Les principaux choix de l’architecture finale sont les suivants
- l’attention utilise GQA with gated sigmoid attention
- le MLP passe d’un GeLU MLP à des couches SwiGLU avec un facteur d’expansion 4x
- pour les résidus, le standard residual est conservé
- l’encodeur de texte utilise Qwen 3 VL
- la modulation passe d’une modulation MLP par bloc à une light modulation with bias
- l’autoencodeur utilise Qwen Image VAE et FLUX 2 VAE
- le design des blocs repose sur un single stream transformer block
- la normalisation utilise zero-center RMSNorm et QKNorm
- l’encodage positionnel conserve le 3D Axial RoPE
- Le GQA améliore l’efficacité de calcul tout en n’entraînant qu’une dégradation minimale
- le MLA a montré un léger gain par rapport au GQA, mais n’a pas été retenu en raison du surcoût de calcul supplémentaire
- le gated sigmoid attention n’a pas apporté de gain de performance majeur, mais a montré une dynamique plus stable sur les courbes de loss et de norme du gradient
- Entre les designs single-stream, dual-stream et hybrid-stream, il n’y avait pas de différence de performance majeure ; le hybrid-stream était légèrement meilleur, mais des blocs single-stream ont été retenus pour leur simplicité
- La modulation MLP par bloc de MMDiT peut représenter 20 à 30 % du nombre total de paramètres ; Krea 2 la remplace donc par un terme de biais ajustable par bloc
- Dans les expériences de conditionnement par timestep, 4 à 16 tokens de timestep à 256 px suffisaient à remplacer AdaLN, mais à 512 px et 1024 px, les performances étaient inférieures à la baseline AdaLN
- L’encodage positionnel final est un 3D axial RoPE qui assigne les dimensions de tête à frame, height et width
- les indices RoPE des tokens de texte sont définis à zéro
- le partial RoPE a donné de bons résultats d’inférence zero-shot lors du passage de 256 px à 512 px, mais après entraînement en haute résolution, les performances finales restaient inférieures à la baseline
- Pour l’autoencodeur, le point de départ a été le FLUX.1-dev autoencoder comme baseline, comparé ensuite à Qwen Image VAE, DC-AE, FLUX 2 VAE et un autoencodeur interne
- il est estimé que DC-AE impose, en raison de son erreur de reconstruction, une limite supérieure stricte à la capacité de résolution des détails fins
- Qwen Image VAE et FLUX 2 VAE conservent une excellente qualité de reconstruction tout en offrant un espace latent permettant une convergence bien plus rapide
- les premiers modèles utilisaient le Qwen Image autoencoder, et les modèles plus grands ont adopté FLUX 2 VAE
- Pour l’encodeur de texte, T5-XXL, T5Gemma, umT5, Qwen 2.5 VL et Qwen 3 VL ont été comparés, et Qwen 3 VL a été retenu comme encodeur final
- le VLM offre un espace d’entrée plus riche, incluant texte et image, ainsi qu’une meilleure généralisation multilingue
- au lieu de n’utiliser que la dernière couche des features du VLM, une couche d’attention peu profonde a été introduite pour agréger les features cachées de l’ensemble des couches
- des couches lightweight bidirectional transformer ont été ajoutées sur l’axe des tokens afin de réduire le biais autorégressif
Pipeline d’entraînement, optimisation des préférences, RL
- le pipeline d’entraînement adopte une structure en plusieurs étapes inspirée des pipelines d’entraînement modernes de LLM
- le préentraînement établit des capacités de base comme l’alignement texte-image, le rendu de texte, la couverture stylistique et la cohérence structurelle
- le modèle final est entraîné avec la loss rectified-flow standard et la v-parameterization
- lors de la première epoch de l’étape 256 px, iREPA est utilisé pour accélérer fortement la convergence en début d’entraînement, puis retiré
- aux étapes 256 px et 512 px, un entraînement en 8 bits a montré un gain de vitesse d’entraînement de 15 à 20 % par rapport à une baseline en bf16
- à partir de 1024 px et jusqu’à l’étape finale de RL, un entraînement standard en bf16 est utilisé
- dans le préentraînement haute résolution, l’adaptation d’un timeshift schedule dépendant de la résolution est importante
- l’entraînement comme l’inférence utilisent un shifted logit-normal sampling schedule
- le shift augmente progressivement à mesure que la résolution monte
- le sweep ne s’applique qu’au shift d’entraînement, tandis que l’inference shift schedule reste constant
- pendant le préentraînement, un learning-rate schedule warmup-stable-decay est utilisé et PMA est appliqué
- PMA atteint des performances comparables à EMA tout en évitant le surcoût mémoire important d’EMA
- comme optimizer, AdamW est utilisé comme optimizer principal sur l’ensemble du pipeline
- Muon converge plus vite qu’AdamW dans les étapes initiales, mais montre des performances inférieures et des problèmes de stabilité sur des horizons plus longs
- en excluant les première et dernière couches linéaires de MMDiT des paramètres Muon et en ajoutant un momentum de Nesterov, les performances dépassent de manière constante la baseline AdamW en basse comme en haute résolution
- dans le dernier run de préentraînement, Muon n’a pas été adopté en raison de contraintes de temps, mais son adoption est prévue au prochain cycle de préentraînement
- à l’étape de SFT, un petit ensemble dédié d’images très esthétiques est curé
- l’objectif est de biaiser davantage le modèle vers des directions esthétiquement désirables
- cela aide particulièrement à corriger les problèmes fréquents de forte saturation et de texture observés sur les checkpoints antérieurs
- après avoir entraîné des checkpoints SFT spécifiques à certains domaines, un generalist SFT checkpoint est créé via model merging
- l’optimisation des préférences constitue la première étape de la stack de post-entraînement et se compose d’un pipeline en deux étapes
- l’étape 1 effectue un raffinement initial via un pipeline de génération à grande échelle de paires de préférences synthétiques
- la majorité des paires de préférences incluent au moins un échantillon on-policy
- l’étape 2 est une phase de calibration utilisant uniquement des annotations humaines
- les annotations humaines sont collectées en interne par des personnes familières des forces, faiblesses et particularités du modèle
- dans le cadre de la PO, la divergence de policy apparaît comme un phénomène courant
- les méthodes de type DPO encouragent à augmenter la marge entre la vraisemblance de l’échantillon préféré et celle de l’échantillon non préféré
- sur plusieurs mélanges de jeux de données de préférences, il a été observé que le modèle atteint cet objectif en abaissant la vraisemblance de génération des deux échantillons, mais à des rythmes différents
- cette divergence éloigne le modèle de la distribution générale du préentraînement et se manifeste, en fin d’entraînement, par des artefacts haute fréquence
- pour l’atténuer, une variante de DPO appelée STPO a été conçue
- la RL constitue l’étape finale du pipeline d’entraînement
- une méthode de type GRPO à récompenses multiples est utilisée
- les modèles de récompense se composent d’un modèle esthétique général, d’une récompense de suivi d’invite, d’une récompense de rendu de texte et d’une récompense pour les artefacts et la structure
- le modèle esthétique général est obtenu en finetunant un VLM open source avec les données de préférences collectées lors de l’étape de PO
- la récompense rubric spécifique au prompt décompose le prompt en exigences vérifiables et évalue si l’image générée les satisfait
- elle vise à satisfaire des contraintes fines propres au prompt, plutôt qu’à réduire le prompt following à une qualité d’image générique
- afin de réduire les artefacts structurels, un modèle de récompense dédié aux artefacts est entraîné
- des erreurs comme des doigts supplémentaires, des membres mal formés ou du texte déformé sont évidentes pour les humains, mais souvent manquées par les juges VLM généralistes
- l’ensemble de l’étape de RL est entraîné sans CFG
- cela améliore rapidement la distribution conditionnelle du modèle, de sorte qu’au début de l’entraînement les échantillons sans CFG se rapprochent beaucoup plus des échantillons guidés
- au moment de l’inférence, le CFG peut toujours rester activé comme levier de contrôle supplémentaire
- après l’étape de RL, une étape optionnelle de distillation des timesteps est incluse
- DMD, DMD2, Decoupled DMD, piFlow et APT ont été examinés, mais Trajectory Distribution Matching (TDM) a été retenu
- TDM applique DMD sur l’ensemble des timesteps afin d’effectuer un distribution matching au niveau de la trajectoire
Extension de prompt et référence de style
- Pendant l’entraînement, le modèle utilise des captions riches décrivant des détails visuels denses des images, mais les entrées réelles des utilisateurs sont courtes, ambiguës et varient aussi dans leurs habitudes d’expression
- Le prompt expander transforme des user prompts simples ou insuffisants en orientations visuelles plus riches, sans pour autant écraser l’intention de l’utilisateur
- entraîné sur un pipeline en deux étapes de SFT et de RL au-dessus d’un LLM open source existant
- les objectifs incluent non seulement l’amélioration de la qualité d’image, mais aussi la variation créative et l’exploration contrôlable
- Les données de SFT sont créées en générant des « user captions » synthétiques à partir de long captions
- les user captions synthétiques sont des prompts courts, conversationnels et semi-instructionnels qui omettent volontairement une grande partie des visual details de la caption cible
- cela crée des données appariées sous la forme user prompt sous-spécifié → caption étendue compatible avec le modèle
- pour préserver la capacité de raisonnement, des traces de réflexion synthétiques sont également générées
- Un targeted distribution shaping est aussi appliqué à petite échelle
- les images visuellement riches et artistiques sont suréchantillonnées
- pour les prompts qui doivent être développés en descriptions photoréalistes, un léger biais en faveur du médium photographique est ajouté
- l’objectif n’est pas d’imposer un style maison, mais d’inclure à la fois des images expressives à direction artistique et des demandes photoréalistes simples
- La RL du prompt expander vise à produire des expansions qui améliorent la qualité d’image tout en préservant l’intention de l’utilisateur, plutôt que de se limiter à l’imitation de la caption cible
- entraîné avec GDPO et un objectif multi-récompense
- les récompenses au niveau de l’image mesurent la qualité et la préférence des générations obtenues
- les récompenses vérifiables au niveau du prompt vérifient que l’expansion reste fidèle à la demande d’origine
- les vérifications de sécurité et de contraintes sont utilisées comme portes sur la récompense globale
- L’un des failure modes du prompt expander est le collapse de diversité
- lorsque les récompenses d’image dominent, il peut apprendre un unique house style sûr à forte récompense
- un score de diversité basé sur les embeddings DINOv3 est ajouté sur des groupes de prompts afin de récompenser, avec la qualité et l’alignement, la diversité visuelle intra-groupe
- pour préserver la variation, la récompense de diversité doit rester active tout au long de l’entraînement
- Le système de référence de style est construit au-dessus du modèle de base
- l’utilisateur peut générer des images par texte tout en guidant le style de sortie avec une ou plusieurs images de référence
- le mélange sémantique fluide de plusieurs styles, le contrôle continu de l’intensité de chaque référence de style et une adhérence de niveau state of the art pour les styles complexes sont les objectifs de conception
- l’un des failure modes courants était la fuite du contenu et du sujet de l’image de style dans l’image finale
- une technique auto-supervisée a été conçue pour entraîner le module de référence de style, puis une étape d’optimisation par préférences a permis d’aligner davantage les sorties
Infrastructure et exploitation de l’entraînement distribué
- Le framework d’entraînement distribué de Krea a été construit from scratch sur la base de PyTorch, en utilisant principalement l’abstraction
DTensoret les fonctionnalités natives detorchprises en charge par le projettorchtitan- La plupart des exécutions de préentraînement et de post-entraînement utilisent à la fois FSDP2 et la parallélisation de tenseurs de style Megatron-LM
- Dans les configurations avec une taille de TP supérieure à 2, l’async-TP est activé via le flag
torch.compile, ce qui apporte un gain de vitesse modéré par rapport au TP naïf - Les paramètres de l’autoencoder sont répliqués sur tous les appareils, et seuls le text encoder et le backbone principal MMDiT sont shardés
- NVLinkSharp est utilisé pour l’interconnexion intra-nœud, et InfiniBand pour l’interconnexion inter-nœuds
- Pour améliorer l’efficacité de l’entraînement, un modèle légèrement plus large avec une dimension cachée plus grande est utilisé
- Lorsque la hidden size augmente, l’intensité de calcul de chaque couche augmente aussi, ce qui facilite la dissimulation de la latence avec le prefetching de FSDP2
- Réduire le nombre de couches diminue le nombre d’opérations all-gather et reduce-scatter
- Ce changement a fortement réduit les erreurs liées à NCCL sur l’ensemble des exécutions de préentraînement
- Des tailles de multiplication de matrices plus grandes aident à compenser le surcoût de quantization/dequantization de l’entraînement en 8-bit
torch.compileest au cœur de la stratégie d’optimisation- Pour l’attention, les derniers kernels cuDNN sont utilisés par défaut, avec FlexAttention ou FlashAttention 3 selon les besoins
- À basse résolution, selective activation checkpointing est utilisé
- À haute résolution, les activations commencent à dominer la mémoire, ce qui conduit à utiliser full activation checkpointing
- Le format de base pour le chargement des données est Parquet
- Chaque row contient une référence d’image, la taille de crop/resize, la légende et d’autres metadata
- Dans les exécutions à grande échelle, les rows sont mélangées et packées à l’avance afin de charger des lots d’images ayant le même aspect ratio
- Grâce au packing, les latents peuvent être encodés en un seul passage de l’autoencoder
- Dans l’entraînement distribué à grande échelle, une panne d’un seul GPU ou un straggler peut interrompre toute l’exécution
- À l’échelle de Krea, il a suffi d’optimiser le MTBF et le MTTR via des checkpointings rapides et fréquents ainsi qu’une amélioration du startup time
- La recherche s’exécute sur un unique cluster Kubernetes qui partage ses GPU avec l’inférence en production
- Il est conçu pour pouvoir monopoliser l’ensemble du pool de GPU quand la recherche en a besoin
- Lorsque tous les GPU du cluster sont alloués à une exécution d’entraînement, la charge d’inférence de Krea migre automatiquement ailleurs
- Le système gère le traffic failover afin de maintenir la réactivité de la production même lorsqu’il ne reste plus de GPU locaux
- Kueue était un élément clé du scheduling des workloads
- Kueue fournit un système de priorité à deux niveaux combinant la priorité des Workloads et celle des Pods Kubernetes
- Il permet le gang-scheduling nécessaire à l’entraînement multi-nœuds
- Les primitives de file d’attente « borrowing », « lending » et « reclamation » aident à maximiser l’utilisation
- Virtual Kubelet est utilisé pour les composants qui font monter l’inférence en charge ailleurs lorsque tous les GPU sont alloués à la recherche
- Quand un pod est planifié sur un nœud Kubernetes virtuel, le code de Krea convertit la pod specification dans un format compatible avec le provider cible
- En cas de panne côté provider, il réconcilie l’état des deux côtés
- La reprise est déléguée à Kubernetes, et le système détecte les pannes pour les remonter à Kubernetes
- L’observabilité est le domaine dans lequel le plus d’enseignements ont été tirés pendant le préentraînement à grande échelle
- Sans métriques de sous-systèmes liés aux GPU, au PCIe, à NVLink et à InfiniBand, un entraînement de cette ampleur aurait été impossible
- Les métriques sont collectées via une combinaison de DCGM et d’un DaemonSet custom
- Quand les GPU dépassent 75–78 °C, le throttling commence, le throughput global baisse et l’instabilité de l’entraînement augmente
DCGM_FI_PROF_PIPE_TENSOR_ACTIVEétait l’indicateur privilégié pour juger si l’entraînement se déroulait comme prévu- Les métriques InfiniBand étaient essentielles pour diagnostiquer l’instabilité du fabric, le link flapping, les packet errors, la congestion, les symbol errors et les écarts de throughput
- L’augmentation du nombre de GPU a été difficile
- Les runs sur moins de 128 GPU étaient très stables et fonctionnaient souvent plusieurs jours sans problème
- En augmentant le nombre de GPU, les runs ont commencé à crasher beaucoup plus fréquemment
- À très grande échelle, aucune exécution n’a pu être menée au-delà de 24 heures
- Beaucoup de crashs n’avaient pas de cause claire et se manifestaient comme des timeouts NCCL alors que toutes les métriques semblaient saines
- L’une des premières grosses erreurs a été l’adoption de Ceph, avant un basculement ultérieur vers Weka
- Les problèmes liés au filesystem et les temps d’arrêt ont fortement chuté, et les performances se sont améliorées dans des proportions similaires
- Weka a été un élément clé pour permettre un checkpointing agressif pendant l’entraînement de Krea 2
- Les checkpoints se terminaient en environ 30 secondes, ce qui limitait le temps perdu au checkpointing
Entrepôt de données et file de tâches
- Pour la collecte et la curation des données de K2, un système personnalisé de warehousing et de queueing centré sur un cluster de serveurs PostgreSQL a été mis en place
- Chaque serveur de tablette Krea est appelé un « krablet »
- Chaque krablet se compose d’une instance Postgres contenant un shard de données et d’un déploiement de serveur « funnel » qui batch/queue les mutations de façon asynchrone afin de réduire la contention sur les verrous
- Toutes les lectures sont proxyfiées via un déploiement à grande échelle de serveurs « RPC »
- Les serveurs RPC remplacent les traditional connection poolers comme PgBouncer
- Chaque serveur RPC maintient un pool de connexions vers tous les shards de la base de données
- Le système krablet est passé à l’échelle jusqu’à 208 To de métadonnées בלבד et peut traiter plusieurs dizaines de milliers de transactions
UPSERTconcurrentes par seconde- Il fournit une single source of truth pour toutes les données de recherche
- Il permet à la couche de stream processing d’être identique à la couche de données
- Le workflow classique de traitement des jobs consiste à utiliser des tables Postgres comme files d’attente
- Les workers OCR trouvent et traitent les lignes où
contains_text IS NULL - Les workers d’embedding traitent les lignes où
embedding_path IS NULLetcontains_text = FALSE - Les lignes sont réclamées avec
FOR UPDATE SKIP LOCKED, puis des colonnes de typelast_tried_atsont mises à jour
- Les workers OCR trouvent et traitent les lignes où
- Ce modèle de file d’attente a un comportement de retry différent de Kafka ou Ray
- En cas d’échec, les lignes ne sont ni supprimées ni envoyées vers une dead-letter queue
- Même les lignes en échec sont retentées en fin de file grâce à la mise à jour atomique de
last_tried_at - Cela évite aussi le head-of-line blocking
- Le nombre de workers peut être ajusté dynamiquement
- Les jobs de traitement sont déployés sur Kubernetes et peuvent être scale up/down librement sans resharding des données
- Un job peut s’exécuter avec 1 worker ou avec 1000
- Des métriques de scaling Prometheus permettent d’autoscaler chaque partie du pipeline selon le volume de travail disponible
- Pour le confort des chercheurs, un système appelé « pluck » est fourni
- Il offre une API de global map adaptée à l’usage dans les notebooks
t.maprenvoie un handle auquel l’utilisateur peut s’attacher pour voir la progression en direct- Les UDF sont sérialisées avec
cloudpicklepuis exécutées sur des workers distants
- Pour la prochaine génération de recherche, ils construisent un système successeur qui conserve krablet et la sémantique de file
FOR UPDATE SKIP LOCKED, mais stocke les données dans une LSM tree au-dessus d’un object storage- Un lien de recrutement pour l’équipe supercomputing / distributed systems qui travaillera sur ce sujet est fourni : https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072ad0f4c9
Orientations futures
- Avec Krea 2, des choix d’architecture et d’optimizer relativement conservateurs ont été faits pour privilégier la stabilité et la vitesse d’itération
- Lors du prochain cycle de pretraining, ils veulent appliquer des conceptions modernes de transformer pour LLM aux diffusion transformers
- Les pistes étudiées incluent le MoE, la sparse attention pour une montée en résolution native 2K–4K, le pretraining en NVFP4 et le Muon scaling
- Ils estiment que le modèle actuel est undertrained et qu’un entraînement plus long serait bénéfique
- Le pipeline d’entraînement actuel de Krea 2 se termine par une étape de RL multi-reward
- Krea a déjà vérifié en interne, avec des experts maison, qu’OPD et MOPD sont des méthodes de distillation efficaces pour les modèles de diffusion
- Ils espèrent partager bientôt davantage de résultats
- Un modèle de diffusion de production exige une configuration complexe composée de plusieurs modèles interdépendants
- Le serving d’un modèle de latent diffusion nécessite généralement un autoencoder, un diffusion transformer, un text encoder et un modèle d’expansion de prompt
- Selon la stack, des modules supplémentaires comme un modèle de référence de style ou un upscaler peuvent s’ajouter
- Maintenir plusieurs composants qui doivent être entraînés séparément tout en étant interdépendants complique la coordination des équipes de recherche
- Krea prévoit, lors du prochain cycle de pretraining, de simplifier l’architecture et d’unifier plusieurs composants sous un modèle unique
- Krea 2 s’est principalement concentré sur la génération d’images pour l’exploration créative, et compte à l’avenir étendre ses capacités à l’édition robuste, à la référence d’image et à la génération native en 2K/4K
- Ils estiment que le prompting traditionnel en langage naturel ne suffit plus à couvrir toute l’étendue des requêtes utilisateurs
- Dans les prompts utilisateurs, ils observent différents styles de prompting, dont le langage naturel, les tags, le JSON détaillé, les bounding boxes, les instructions, les guides visuels et le Markdown
- L’expansion de prompt peut résoudre une partie du problème, mais ils considèrent aussi que le modèle doit comprendre nativement ces prompts, ce qui doit devenir une capacité centrale
1 commentaires
Commentaires sur Hacker News
Ils ont publié les poids d’un modèle texte-image récent, accompagnés d’un article qui entre assez profondément dans le processus d’entraînement.
Il couvre aussi pas mal d’aspects rarement détaillés, comme l’entraînement réel et l’infrastructure de données, donc il devrait y avoir des éléments intéressants pour ceux que le sujet intéresse.
En suivant ce domaine depuis un moment, c’est vraiment fascinant de lire les expérimentations et les efforts derrière le produit final, et si une partie des outils de fine-tuning était aussi publiée pour que la communauté puisse expérimenter, on pourrait sans doute pousser encore plus loin le potentiel du modèle.
J’ai toujours trouvé frustrante la tendance des grands modèles à exclure fortement ce type de contenu au nom de la sécurité, même quand il s’agit de cas légaux.
À l’origine, Flux.1 Krea figurait déjà sur mon site de benchmark GenAI Showdown depuis juillet dernier, et dans ce domaine, ça donne déjà l’impression de remonter à une éternité. J’ai hâte de tester sérieusement le nouveau modèle.
Je suis Diego Rodriguez, cofondateur et CTO de Krea. Nous publions cette fois les poids ainsi qu’un rapport technique très solide au regard des standards actuels de l’industrie.
Le rapport couvre en détail la curation et le captioning des données, l’architecture du modèle, le post-entraînement, le pipeline d’apprentissage par renforcement, l’expansion de prompts, la référence de style et l’infrastructure.
Les poids sont divisés en deux variantes : Krea 2 Turbo, un modèle accéléré en inférence via distillation du guidance et des timesteps, et Krea 2 RAW, pensé pour le bidouillage et le fine-tuning.
Je trouve que la communauté des LLM open fait du bon travail en publiant les modèles en plusieurs tailles et à plusieurs étapes du pipeline d’entraînement ; cette fois, nous publions aussi bien des checkpoints intermédiaires que des checkpoints de post-entraînement. C’est rare dans l’image et le multimédia, et j’en suis fier.
D’après le benchmark texte-image d’Artificial Analysis, la qualité d’image est comparable à Nano Banana : https://artificialanalysis.ai/image/leaderboard/text-to-imag...
Nous avons également ajouté une licence généreuse pour les particuliers et les petites entreprises.
Présentation de la release OSS : https://www.krea.ai/krea-2-open-source / Modèles Huggingface : https://www.krea.ai/krea-2/huggingface / Dépôt GitHub : https://www.krea.ai/krea-2/github / AMA Reddit : https://www.reddit.com/r/StableDiffusion/comments/1udnm0a/we... / Rapport technique : https://www.krea.ai/blog/krea-2-technical-report
Les résultats sont tombés, et c’est franchement impressionnant, surtout vu la vitesse du modèle Turbo en 8 étapes.
Parmi les modèles pouvant être hébergés en local, seul Ideogram 4 faisait mieux, mais il est beaucoup plus lent : on parle de minutes contre des secondes.
Il s’est effondré sur mes habituels « tueurs de modèles » comme l’étoile à neuf pointes, Count Rugen ou la Terre plate avec beaucoup trop de monde dessus, mais dans l’ensemble il a performé bien au-delà de sa catégorie, avec le meilleur score parmi les modèles hébergeables en local, et juste derrière Ideogram 4 au classement général avec 6 tests réussis sur 15.
Lien GenAI comparant uniquement les modèles hébergeables en local : https://genai-showdown.specr.net/?models=fd,hd,kd,qi,f2d,zt,...
C’est amusant de voir que la méthode de test a fini par aboutir à des cas aussi étrangement spécifiques.
C’est une bonne chose de voir plus de modèles open weights, et j’apprécie vraiment ce type d’article détaillé.
J’aime aussi l’approche qui consiste à garder le manifold large pour permettre de produire différents styles. À mon avis, c’est mieux que d’ajuster le modèle pour qu’il colle exactement à quelques presets de style.
Cela dit, comme des modèles avancés de composition image-image / agentique comme Nano Banana 2 ou Images 2.0 sont déjà très puissants, ça donne aussi un peu l’impression de « faire la guerre précédente ».
J’ai de sérieux doutes sur le fait qu’une intégration croisée du Qwen 3 VL de base puisse approcher ce niveau en image-image, alors qu’un image-image robuste est crucial pour l’édition, l’ajustement, la cohérence des personnages et la généralisation de ce qu’on utilise aujourd’hui pour le transfert de style. La partie sur le transfert de style me semble aussi insuffisamment expliquée.
Ce ne sera pas facile d’atteindre ce niveau, mais c’est clairement là que se situe le prochain front pour les modèles d’image. Ideogram semble progresser dans cette direction, mais je ne vois pas encore grand-chose de comparable du côté open weights.
Les workflows agentiques sont compatibles avec Krea 2, donc je ne comprends pas bien ce point. Si tu parles d’un modèle d’édition, c’est aussi en préparation.
Les benchmarks texte-image sont également comparables ; tu peux consulter le lien Artificial Analysis posté dans le commentaire au-dessus.
On ne peut pas réentraîner Nano Banana ni ChatGPT pour leur faire comprendre la marque d’un client, alors que c’est précisément l’un des points de frustration que nos clients remontent sans cesse. Et comme c’est open source, la comparaison 1:1 n’est pas simple.
Je trouve aussi vague l’affirmation selon laquelle le transfert de style ne serait pas expliqué. Le mot « reference » apparaît 11 fois sur la page et, à la lecture, le sujet semblait au contraire largement couvert.
Merci à Krea d’avoir rendu les poids du modèle téléchargeables, mais avec ce type de clause dans la licence, ce n’est pas de l’open source : https://huggingface.co/krea/Krea-2-Raw/blob/main/LICENSE.pdf
L’usage commercial n’est autorisé que si le chiffre d’affaires annuel total de l’entreprise est inférieur à 1 million de dollars sur les 12 derniers mois ; au-delà, une licence enterprise distincte est nécessaire
Il est aussi interdit d’utiliser le modèle Krea, ses dérivés ou ses sorties en violation des lois applicables, des contrats ou de la politique d’utilisation autorisée, et il faut mettre en place des filtres de contenu raisonnables pour détecter, prévenir et atténuer la génération de contenus interdits, nuisibles ou illégaux lors de la distribution
Il faut également respecter la politique d’utilisation autorisée, et la page de politique https://www.krea.ai/krea-2-use-policy contient aussi des clauses interdisant de contourner les garde-fous, restrictions d’usage, filtres de contenu, mentions de provenance ou tatouages numériques mis en place par Krea ou par les distributeurs
Pour Turbo, il semble qu’une conversion GGUF soit déjà sortie : https://huggingface.co/Abiray/Krea-2-Turbo-GGUF
Il y a un point intéressant sur la page de recrutement
Pour ceux qui savent ce qu’était l’ancien Mellanox, ça pourrait parler à leur sensibilité : https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072a...
C’est un bon modèle, mais l’usage de Qwen VAE est un peu regrettable
Après avoir utilisé les deux, je trouve que Flux VAE a un léger avantage pour l’apprentissage de textures réalistes, mais l’écart n’est pas aussi grand qu’on pourrait le penser. Qwen VAE était lui aussi globalement très bon dans des expériences plus retenues, et performant pour apprendre à générer des styles variés
Je n’ai pas encore eu le temps de l’essayer moi-même
J’ai hâte d’essayer Krea 2. J’utilise Z-Image Turbo tous les jours, et il a remplacé mon abonnement à une banque d’images pour les images réalistes et les illustrations
Je me demande combien l’entraînement a coûté
Le coût d’entraînement est difficile à estimer correctement, car nous utilisions un cluster Kubernetes partagé où tournaient en même temps l’inférence et les charges de recherche
Je me demande ce que les gens utilisent pour auto-héberger ce genre de modèle
J’ai essayé ollama et open-webui, mais ils ne prenaient absolument pas en charge la génération d’images
Si vous bloquez, le plus simple est de commencer par copier-coller des workflows
https://github.com/LostRuins/koboldcpp