- O Krea 2 é um modelo fundacional de geração de imagens que prioriza a exploração criativa em vez de um único padrão polished default, e disponibiliza os pesos do modelo e a inferência sob uma permissive license
- O processo de treinamento segue pretraining → midtraining → SFT → preference optimization → RL, e curadoria de dados, legendagem, expansão de prompts e referência de estilo refinam gradualmente a distribuição de saída
- A arquitetura, baseada em uma família DiT simples, combina GQA, gated sigmoid attention, SwiGLU, Qwen 3 VL, Qwen Image VAE e FLUX 2 VAE para equilibrar estabilidade e eficiência
- O Krea 2 entrou no top 10 da Artificial Analysis leaderboard em text-to-image e ficou em 2º lugar entre os modelos de laboratórios independentes
- Para treinamento em larga escala, foi construído um sistema baseado em PyTorch, FSDP2, paralelismo de tensores, Kubernetes, Virtual Kubelet, Weka e PostgreSQL; como próximos passos, a equipe avalia MoE, sparse attention, native 2K–4K, NVFP4 e Muon scaling
Modelo fundacional de imagem voltado à exploração criativa
- O Krea 2 é uma série de modelos fundacionais de geração de imagens voltada a ampla diversidade estética e ao controle criativo do usuário
- Os materiais públicos estão disponíveis em Release page, Hugging Face weights/license, GitHub code/license e Krea Image tool
- Os pesos do modelo e a inferência são disponibilizados sob permissive license
- A Krea entende que os modelos de imagem baseados em diffusion e flow-matching avançaram em imagens de alta resolução, photorealism, estrutura estável, renderização densa de texto, amplo conhecimento de mundo e aderência detalhada a prompts, mas que muitos sistemas convergem para uma estética padrão estreita
- Em vez de otimizar um único polished default, o Krea 2 busca ser um meio generativo capaz de explorar vários estilos, atmosferas, composições e direções visuais
- Entrou no top 10 da Artificial Analysis leaderboard em text-to-image e ficou em 2º lugar entre os modelos de laboratórios independentes
Curadoria de dados e estratégia de legendagem
- A equipe da Krea construiu do zero uma infraestrutura de dados em larga escala e um framework de treinamento distribuído para criar um pretraining dataset com amplo conhecimento de mundo e cobertura de estilos
- Eles consideram que uma “boa mistura de dados” exige não apenas imagens de alta qualidade, mas também diversidade e ampla cobertura de domínios
- A filtragem baseada em aesthetic-score e image-quality-assessment pode criar viés implícito
- motion blur ou softness podem ser escolhas artísticas intencionais, mas ainda assim serem avaliados negativamente como blurry image
- se a caption descrever a imagem com precisão, até imagens indesejáveis podem ajudar no aprendizado downstream
- No pretraining dataset, foram filtradas amostras duplicadas, conceitos super-representados, amostras em que o VLM não consegue captar elementos importantes, amostras que causam undesired biases e artifacts, amostras com alta complexidade visual difíceis de modelar de forma estável em baixa resolução e amostras geradas por IA
- O mix de pretraining do Krea 2 não usa AI-generated images
- synthetic data e distillation podem ser atalhos para adquirir capability
- mesmo uma pequena quantidade de AI-generated images pode introduzir viés na distribuição de saída do modelo e, na prática, definir o limite superior da qualidade do modelo
- para filtrá-las, a equipe desenvolveu classifiers internos
- As captions são construídas em um processo de múltiplos estágios
- um OCR model é executado na imagem-alvo para extrair o texto visível
- o resultado do OCR e os metadados são fornecidos ao modelo de legendagem para gerar uma caption enriquecida com o texto extraído e conhecimento de mundo
- a caption longa e rica em contexto é reestruturada por um LLM mais barato em vários comprimentos e formatos, expondo o modelo a diversos estilos de prompt
- Prompts longos forneceram supervisão densa, levando a convergência mais rápida e menor training loss, e a exposição a prompts curtos/médios também foi mantida para uso downstream
Dados de treinamento por resolução e midtraining
- os dados de pretraining passam por estágios de resolução de 256px, 512px e 1024px
- a maior parte dos FLOPs é alocada ao estágio de baixa resolução para aprender com eficiência as capacidades centrais
- depois, a resolução é aumentada para conferir capacidade de geração com alta fidelidade
- o pretraining em baixa resolução aprende o alinhamento básico entre texto e imagem e a estrutura
- o dataset de baixa resolução está na escala de bilhões de imagens, por isso depende fortemente de filtros baseados em CPU e de baixo custo
- filtros de arquivo corrompido, resolução e proporção removem imagens inadequadas
- filtros Laplacian removem imagens com texturas extremas e padrões de ruído
- entropia RGB, proporções de pixels brancos/pretos, heurísticas personalizadas e classificadores internos reduzem fundos de cor chapada e artefatos de borda
- o classificador interno é construído criando, com um VLM grande, um system prompt para a tarefa de filtragem e gerando um dataset pseudo-rotulado, após o que se treina um classificador pequeno baseado em DINOv3 ou SigLIP-2
- na etapa de baixa resolução, os modelos de filtragem que exigem compute de GPU são mantidos abaixo de 1B de parâmetros por eficiência
- a deduplicação em baixa resolução usa principalmente métodos baseados em hash que combinam md5, phash e colorhash
- o phash padrão 8x8 não considera cor, o que resultava em uma taxa alta de falsos positivos
- para uma deduplicação mais robusta, são combinados phash 12x12 e colorhash
- à medida que a resolução de treinamento aumenta, são introduzidos filtros de qualidade de imagem e de estética
- a pontuação de qualidade é usada apenas para remover imagens de qualidade muito ruim, e não para oversampling com base em score
- score de complexidade de imagem baseado em OCR e densidade de texto excluem imagens em que é difícil representar texto e conteúdo de forma significativa em baixa resolução
- foi treinado um sparse autoencoder sobre embeddings do SigLIP-2 para criar um sistema de tagging baseado em SAE, usado para filtrar artefatos visuais evidentes sem um classificador explícito
- diferentemente do pretraining, o midtraining seleciona explicitamente fontes de imagem que oferecem boa cobertura estilística e imagens de alta qualidade em domínios visuais específicos
- o pretraining é um processo bottom-up que começa de um pool geral
- o midtraining é uma curadoria top-down que primeiro escolhe os domínios e as fontes
- é a etapa que conecta de forma suave a distribuição geral do pretraining à distribuição de SFT de alta qualidade
- estratégias de clustering semântico e baseadas em retrieval reforçam a cobertura de conhecimento de mundo
- é feito hierarchical k-means clustering com FAISS
- um VLM inspeciona imagens próximas ao centroide do cluster para nomear o cluster e, se necessário, marcá-lo
- clusters marcados passam por revisão humana para remover clusters de baixa qualidade ou problemáticos
- dentro dos leaf clusters restantes, a deduplicação semântica é feita com similaridade SigLIP
- para cobertura de entidades nomeadas, o Danker executa PageRank na English Wikipedia e mantém os 90% principais artigos com base no ranking
- metadados do Wikidata removem assuntos não representáveis
- para os cerca de 5 milhões de conceitos restantes, é feita busca full-text em todas as captions do dataset
- na amostragem, têm prioridade as imagens cujas captions mencionam conceitos raros
Escolhas de arquitetura e ablation
- O Krea 2 desenvolveu uma arquitetura diffusion transformer (DiT) simples, mas com bom desempenho, após ablation
- A ablation de arquitetura foi avaliada em quatro categorias: stability, performance, efficiency e simplicity
- stability observa a redução de spikes de loss/gradient e a estabilidade do treinamento
- performance observa a velocidade de convergência e se ela se mantém em high resolution e em horizon longo
- efficiency observa se é possível reduzir parameter count, FLOPs, memory e communication sem perda de quality
- simplicity verifica se é possível simplificar o model sem prejudicar as outras categorias
- Muitas decisões de arquitetura foram influenciadas pela tendência de adoção no espaço de LLM, e a equipe considerou que kernels e otimizações do ecossistema de LLM também poderiam ser aproveitados em diffusion models
- As principais escolhas da arquitetura final são as seguintes
- Em attention, usa GQA with gated sigmoid attention
- O MLP foi alterado de GeLU MLP para camadas SwiGLU com fator de expansão de 4x
- Em residual, mantém o standard residual
- O text encoder usa Qwen 3 VL
- Em modulation, mudou de per-block MLP modulation para light modulation with bias
- O autoencoder usa Qwen Image VAE e FLUX 2 VAE
- O block design usa single stream transformer block
- Em norm, usa zero-center RMSNorm e QKNorm
- O positional encoding mantém 3D Axial RoPE
- O GQA melhora a eficiência computacional causando apenas degradação mínima
- O MLA mostrou um pequeno ganho em relação ao GQA, mas não foi adotado por causa do overhead computacional adicional
- O gated sigmoid attention não trouxe um grande ganho de performance, mas mostrou dynamics mais estáveis nas curvas de loss e gradient-norm
- Entre os designs single-stream, dual-stream e hybrid-stream, não houve grande diferença de performance, e embora o hybrid-stream tenha sido ligeiramente melhor, foram usados blocos single-stream por simplicidade
- A per-block MLP modulation do MMDiT pode representar de 20–30% do total de parâmetros, então o Krea 2 a substituiu por um termo de bias ajustável por bloco
- Nos experimentos de timestep conditioning, em 256px de 4 a 16 timestep tokens foram suficientes para substituir o AdaLN, mas em 512px e 1024px o desempenho foi pior que o baseline com AdaLN
- O positional encoding final é 3D axial RoPE, que atribui as dimensões dos heads a frame, height e width
- Os índices de RoPE dos text tokens são definidos como zero
- O partial RoPE produziu bons resultados de inferência zero-shot ao escalar de 256px para 512px, mas o desempenho final após treinamento em alta resolução foi inferior ao baseline
- O autoencoder começou com o autoencoder FLUX.1-dev como baseline e foi comparado com Qwen Image VAE, DC-AE, FLUX 2 VAE e um autoencoder interno
- Considerou-se que o DC-AE impõe um hard upper limit à capacidade de resolver fine detail por causa do reconstruction error
- O Qwen Image VAE e o FLUX 2 VAE mantêm excellent reconstruction quality, enquanto o latent space oferece convergência muito mais rápida
- Os modelos iniciais usaram o autoencoder do Qwen Image, e os modelos maiores adotaram o FLUX 2 VAE
- Para o text encoder, foram comparados T5-XXL, T5Gemma, umT5, Qwen 2.5 VL e Qwen 3 VL, e o Qwen 3 VL foi usado como text encoder final
- O VLM oferece um espaço de entrada mais rico, incluindo text e image, além de generalização multilíngue mais forte
- Em vez de usar apenas a última camada dos recursos do VLM, foi introduzida uma shallow attention layer que agrega os hidden features de todas as camadas
- Também foram adicionadas lightweight bidirectional transformer layers no eixo de tokens para reduzir o viés autoregressivo
Pipeline de treinamento, otimização por preferência e RL
- o pipeline de treinamento tem uma estrutura em múltiplos estágios inspirada nos modernos pipelines de treinamento de LLM
- o pretraining estabelece capacidades básicas como alinhamento texto-imagem, renderização de texto, cobertura estilística e consistência estrutural
- o modelo final é treinado com standard rectified-flow loss e v-parameterization
- no primeiro epoch do estágio de 256px, usa iREPA para acelerar significativamente a convergência no estágio inicial e depois o remove
- nos estágios de 256px e 512px, observaram ganho de 15–20% na velocidade de treinamento com treinamento em 8-bit em relação ao baseline bf16
- de 1024px até o estágio final de RL, usa treinamento padrão em bf16
- no pretraining em alta resolução, é importante adaptar um timeshift schedule dependente da resolução
- tanto no treinamento quanto na inferência, usa shifted logit-normal sampling schedule
- à medida que a resolução aumenta, o shift é elevado gradualmente
- o sweep é aplicado apenas ao training shift, enquanto o inference shift schedule é mantido constante
- durante o pretraining, usa warmup-stable-decay learning-rate schedule e aplica PMA
- o PMA alcança desempenho comparável ao EMA, evitando ao mesmo tempo a sobrecarga significativa de memória do EMA
- ao longo de todo o pipeline, o optimizer principal é o AdamW
- o Muon convergiu mais rápido que o AdamW nos passos iniciais, mas mostrou desempenho inferior e problemas de estabilidade em horizontes mais longos
- ao excluir as first and last linear layers do MMDiT dos parâmetros do Muon e adicionar Nesterov momentum, ele superou de forma consistente o baseline AdamW em baixa e alta resolução
- nas execuções de pretraining mais recentes, o Muon não foi adotado por restrições de tempo, mas há plano de adotá-lo no próximo ciclo de pretraining
- no estágio de SFT, foi curado um pequeno conjunto dedicado de imagens com estética elevada
- o objetivo é enviesar ainda mais o modelo em direções esteticamente desejáveis
- isso ajuda especialmente a resolver problemas frequentes de alta saturação e textura em checkpoints mais antigos
- após treinar checkpoints de SFT específicos por domínio, foi criado um checkpoint SFT generalista com model merging
- a otimização por preferência é a primeira etapa da stack de post-training e consiste em um pipeline de dois estágios
- o estágio 1 realiza refinamento inicial com um pipeline de geração em larga escala de pares de preferência sintéticos
- a maioria dos pares de preferência inclui pelo menos uma amostra on-policy
- o estágio 2 é uma etapa de calibração que usa apenas anotações humanas
- as anotações humanas são coletadas por pessoal interno familiarizado com os pontos fortes, fracos e peculiaridades do modelo
- em PO, policy divergence aparece como um fenômeno comum
- métodos da família DPO incentivam o aumento da margem entre a likelihood da amostra preferida e a likelihood da amostra não preferida
- em várias misturas de datasets de preferência, observaram que o modelo satisfaz o objetivo reduzindo a generation likelihood de ambas as amostras, mas em taxas diferentes
- a divergência afasta o modelo da distribuição geral de pretraining e, no fim do treinamento, aparece como artifacts de alta frequência
- para mitigar isso, foi projetada uma variante de DPO chamada STPO
- o RL é o estágio final do pipeline de treinamento
- usa um método no estilo GRPO com múltiplas recompensas
- os reward models são compostos por um modelo estético geral, reward de aderência ao prompt, reward de renderização de texto e reward de artifacts e estrutura
- o modelo estético geral é obtido por finetuning de um VLM open-source com os dados de preferência coletados no estágio de PO
- o prompt-specific rubric reward decompõe o prompt em requisitos verificáveis e avalia se a imagem gerada os satisfaz
- isso faz com que o modelo satisfaça restrições detalhadas do prompt, em vez de reduzir prompt following à qualidade genérica da imagem
- para reduzir artifacts estruturais, foi treinado um reward model dedicado a artifacts
- erros como dedos extras, membros malformados e texto distorcido são óbvios para humanos, mas frequentemente passam despercebidos por juízes VLM de propósito geral
- todo o estágio de RL é treinado sem CFG
- isso melhora rapidamente a distribuição condicional do modelo, fazendo com que, no início do treinamento, amostras sem CFG fiquem muito mais próximas de amostras guided
- no tempo de inferência, o CFG continua podendo ser ativado como um control knob adicional
- após o estágio de RL, há um estágio opcional de timestep-distillation
- foram avaliados DMD, DMD2, Decoupled DMD, piFlow e APT, mas foi adotado o Trajectory Distribution Matching(TDM)
- o TDM aplica DMD ao longo dos timesteps para realizar distribution matching no nível da trajetória
Expansão de prompt e referência de estilo
- Durante o treinamento, o modelo usa captions ricos que descrevem detalhes visuais densos da imagem, mas as entradas reais dos usuários são curtas, ambíguas e variam no hábito de expressão
- O prompt expander transforma prompts de usuário simples ou insuficientes em uma direção visual mais rica sem sobrescrever a intenção do usuário
- Foi treinado sobre um LLM open-source existente com um pipeline de SFT e RL em duas etapas
- Os objetivos incluem não apenas melhorar a qualidade da imagem, mas também creative variation e controllable exploration
- Os dados de SFT são criados gerando “captions de usuário” sintéticos a partir de long captions
- Os captions de usuário sintéticos são prompts curtos, conversacionais e semi-instrucionais que omitem intencionalmente muitos dos detalhes visuais do caption-alvo
- Isso cria dados pareados no formato prompt de usuário subespecificado → caption expandido e amigável ao modelo
- Para preservar a capacidade de raciocínio, também são gerados thinking traces sintéticos
- Também é aplicada uma pequena quantidade de targeted distribution shaping
- Imagens visualmente ricas e artísticas são submetidas a oversampling
- Para prompts que devem ser expandidos em descrições fotorrealistas, é adicionado um leve viés para medium fotográfico
- O objetivo não é impor um house style, mas incluir tanto imagens expressivas com direção de arte quanto solicitações fotorrealistas diretas
- O RL do prompt expander busca sair da imitação do caption-alvo e gerar expansões que melhorem a qualidade da imagem preservando a intenção do usuário
- É treinado com GDPO e um objetivo multi-reward
- Recompensas em nível de imagem medem a qualidade e a preferência das gerações resultantes
- Recompensas verificáveis em nível de prompt confirmam se a expansão permanece fiel ao pedido original
- Verificações de segurança e de restrições são usadas como gates da recompensa geral
- Um dos failure modes do prompt expander é o colapso de diversidade
- Quando as recompensas de imagem dominam, ele pode aprender um único house style seguro e de alta recompensa
- Ao adicionar uma pontuação de diversidade baseada em embeddings DINOv3 sobre grupos de prompts, recompensa-se a diversidade visual intra-grupo junto com qualidade e alinhamento
- Para preservar a variação, a recompensa de diversidade precisa permanecer ativa durante todo o treinamento
- O sistema de referência de estilo é construído sobre o modelo base
- O usuário pode gerar imagens por texto enquanto orienta o estilo da saída com uma ou mais imagens de referência
- Os objetivos de projeto são mistura semântica suave de múltiplos estilos, controle contínuo da força de cada referência de estilo e adesão state-of-the-art a estilos complexos
- Um dos failure modes mais comuns era o vazamento do conteúdo e do assunto da imagem de estilo para a imagem final
- Foi criada uma técnica self-supervised para treinar o módulo de referência de estilo e, depois, os outputs foram adicionalmente alinhados com uma etapa de preference optimization
Infraestrutura e operações de treinamento distribuído
- O framework de treinamento distribuído da Krea foi construído do zero com base em PyTorch e usa principalmente a abstração
DTensore recursos nativos dotorchsuportados pelo projetotorchtitan- A maioria das execuções de pré-treinamento e pós-treinamento usa FSDP2 em conjunto com paralelismo de tensor no estilo Megatron-LM
- Em configurações com tamanho de TP maior que 2, o async-TP é ativado com a flag
torch.compile, obtendo um ganho de velocidade moderado em relação ao TP ingênuo - Os parâmetros do autoencoder são replicados em todos os dispositivos, enquanto apenas o text encoder e o backbone principal MMDiT são fragmentados
- NVLinkSharp é usado para conexões dentro do nó, e InfiniBand para conexões entre nós
- Para eficiência de treinamento, foi usado um modelo um pouco mais largo, com dimensão oculta maior
- Quando o hidden size aumenta, a intensidade computacional de cada camada sobe, facilitando ocultar a latência com prefetching do FSDP2
- Reduzir o número de camadas diminui a quantidade de operações all-gather e reduce-scatter
- Essa mudança reduziu drasticamente os erros relacionados ao NCCL ao longo das execuções de pré-treinamento
- Tamanhos maiores de multiplicação de matrizes ajudam a compensar o overhead de quantization/dequantization no treinamento em 8-bit
- O centro da estratégia de otimização é o
torch.compile- Para attention, são usados por padrão os kernels mais recentes do cuDNN, e, quando necessário, FlexAttention ou FlashAttention 3
- Em baixa resolução, é usado selective activation checkpointing
- Em alta resolução, as activations passam a dominar a memória, então é usado full activation checkpointing
- O formato padrão para carregamento de dados é Parquet
- Cada row armazena referência de imagem, tamanho de crop/resize, caption e outros metadata
- Em execuções de grande escala, as rows são embaralhadas e empacotadas antecipadamente para carregar lotes de imagens com a mesma aspect ratio
- Graças ao packing, os latents podem ser codificados em uma única passagem do autoencoder
- Em treinamento distribuído de grande escala, a falha de uma única GPU ou um straggler pode interromper toda a execução
- Na escala da Krea, foi suficiente otimizar MTBF e MTTR com checkpointing rápido e frequente e melhorias no startup time
- A pesquisa roda em um único cluster Kubernetes que compartilha GPUs com a inferência de produção
- O sistema foi projetado para permitir que a pesquisa ocupe todo o pool de GPUs quando necessário
- Quando todas as GPUs do cluster são alocadas para uma execução de treinamento, a carga de inferência da Krea é migrada automaticamente para outro lugar
- O sistema lida com o failover de tráfego para manter a responsividade em produção mesmo sem GPUs locais disponíveis
- O Kueue foi um elemento central no agendamento de workloads
- O Kueue oferece um sistema de prioridade em dois níveis que combina prioridade de Workload com prioridade de Pod do Kubernetes
- Ele viabiliza o gang-scheduling necessário para treinamento multinó
- As primitivas de enfileiramento “borrowing”, “lending” e “reclamation” ajudam a maximizar a utilização
- Para os componentes que escalam a inferência em outro lugar quando todas as GPUs são alocadas à pesquisa, foi usado Virtual Kubelet
- Quando um pod é agendado para um nó virtual do Kubernetes, o código da Krea converte a pod specification para um formato compatível com o provider de destino
- Se ocorrer uma falha do lado do provider, o sistema reconcilia o estado dos dois lados
- A recuperação é delegada ao Kubernetes, e o sistema detecta a falha e a propaga ao Kubernetes
- Observability foi a área com mais aprendizados durante o pretraining em larga escala
- Sem métricas de subsistemas relacionados a GPU, PCIe, NVLink e InfiniBand, treinar nessa escala teria sido impossível
- As métricas são coletadas com uma combinação de DCGM e DaemonSet customizado
- Quando a GPU ultrapassa 75–78°C, começa o throttling, o throughput total cai e a instabilidade do treinamento aumenta
DCGM_FI_PROF_PIPE_TENSOR_ACTIVEfoi o indicador preferido para avaliar se o treinamento estava sendo executado como esperado- As métricas de InfiniBand foram essenciais para diagnosticar instabilidade do fabric, link flapping, erro de pacote, congestionamento, symbol error e disparidade de throughput
- Escalar a contagem de GPUs foi difícil
- Execuções com menos de 128 GPUs eram muito estáveis e muitas vezes rodavam por vários dias sem problemas
- À medida que a contagem de GPUs aumentava, as execuções passaram a falhar com muito mais frequência
- Em escala muito grande, não foi possível concluir nenhuma execução que ultrapassasse 24 horas
- Muitos crashes não tinham causa clara e apareciam como timeout de NCCL mesmo quando todas as métricas pareciam saudáveis
- Um dos grandes erros iniciais foi adotar Ceph, que depois foi substituído por Weka
- Problemas relacionados ao filesystem e tempo de indisponibilidade caíram drasticamente, e o desempenho também melhorou em magnitude semelhante
- O Weka foi um elemento-chave para viabilizar checkpointing agressivo no treinamento do Krea 2
- Os checkpoints eram concluídos em cerca de 30 segundos, então havia pouca perda de tempo com checkpointing
Data warehouse e filas de tarefas
- Para a coleta e curadoria de dados do K2, foi construído um sistema customizado de warehousing e queueing centrado em um cluster de servidores PostgreSQL
- Cada servidor tablet da Krea é chamado de “krablet”
- Cada krablet é composto por uma instância do Postgres que contém um data shard e por um deployment de servidor “funnel” que faz batch/queue assíncrono de mutations para reduzir lock contention
- Todas as leituras são proxyadas por meio de um grande deployment de servidores “RPC”
- Os servidores RPC substituem connection poolers tradicionais como o PgBouncer
- Cada servidor RPC mantém um connection pool para todos os shards do banco de dados
- O sistema krablet escalou para até 208 TB só de metadados e consegue processar dezenas de milhares de transações
UPSERTcontended por segundo- Ele fornece a single source of truth de todos os dados de pesquisa
- Também permite que a stream-processing layer seja a mesma que a data layer
- Um workflow típico de processamento de jobs usa tabelas do Postgres como se fossem filas
- Workers de OCR encontram e processam linhas em que
contains_text IS NULL - Workers de embedding processam linhas em que
embedding_path IS NULLecontains_text = FALSE - As linhas são reivindicadas com
FOR UPDATE SKIP LOCKED, e colunas da famílialast_tried_atsão atualizadas
- Workers de OCR encontram e processam linhas em que
- O modelo de fila tem um comportamento de retry diferente de Kafka ou Ray
- Em caso de falha, a linha não é descartada nem enviada para uma dead-letter queue
- Mesmo linhas que falham no processamento são reenfileiradas no fim da fila graças ao update atômico de
last_tried_at - Isso também evita head-of-line blocking
- A quantidade de workers pode ser ajustada dinamicamente
- Os jobs de processamento são implantados com Kubernetes e podem escalar para cima ou para baixo livremente sem resharding dos dados
- Um job pode rodar com 1 worker ou com 1000 workers
- Com métricas de scaling do Prometheus, cada parte do pipeline pode fazer autoscaling conforme o trabalho disponível
- Para a conveniência dos pesquisadores, há um sistema chamado “pluck”
- Ele fornece uma API de mapa global adequada para uso em notebooks
t.mapretorna um handle ao qual o usuário pode se conectar para ver o progresso em tempo real- As UDFs são serializadas com
cloudpicklee executadas em workers remotos
- Para a próxima geração de pesquisa, a empresa está construindo um sistema sucessor que mantém o krablet e a semântica de fila de
FOR UPDATE SKIP LOCKED, mas armazena os dados em uma árvore LSM sobre object storage- Foi fornecido um link de contratação para a equipe de supercomputação / sistemas distribuídos que trabalhará nisso: https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072ad0f4c9
Direções futuras
- No Krea 2, foram priorizadas estabilidade e velocidade de iteração, levando a escolhas relativamente conservadoras de arquitetura e optimizer
- No próximo ciclo de pretraining, a empresa pretende aplicar design moderno de transformer de LLM ao diffusion transformer
- As direções em análise incluem MoE, native scale para resolução 2K–4K via sparse attention, pretraining em NVFP4 e Muon scaling
- O modelo atual é considerado undertrained, e a equipe entende que um treinamento mais longo ajudaria
- Atualmente, o pipeline de treinamento do Krea 2 termina em um estágio de RL com múltiplas recompensas
- A Krea já validou com especialistas internos que OPD e MOPD são métodos de distillation eficazes para diffusion models
- A empresa espera compartilhar mais resultados em breve
- Um diffusion model de produção exige uma composição complexa formada por vários modelos interdependentes
- O serving de latent diffusion model normalmente requer autoencoder, diffusion transformer, text encoder e um modelo de expansão de prompt
- Dependendo da stack, módulos adicionais como style-reference model ou upscaler podem entrar na composição
- Manter vários componentes que precisam ser treinados independentemente, mas são interdependentes, dificulta a coordenação da equipe de pesquisa
- A Krea planeja simplificar a arquitetura no próximo ciclo de pretraining e integrar vários componentes sob um único modelo
- O Krea 2 focou principalmente em geração de imagens para exploração criativa, e no futuro pretende expandir as capacidades para edição robusta, referência de imagem e geração nativa em 2K/4K
- A empresa considera que o prompting tradicional apenas em linguagem natural já não é suficiente para cobrir toda a gama de requests dos usuários
- Nos prompts dos usuários, observam-se vários estilos de prompting, incluindo linguagem natural, tags, JSON detalhado, bounding box, instruções, guias visuais e Markdown
- A expansão de prompt pode resolver parte disso, mas a empresa acredita que o modelo também deve se tornar nativamente capaz de entender esses prompts como uma capacidade central
1 comentários
Comentários do Hacker News
Publicaram os pesos de um modelo recente de texto-para-imagem junto com um texto que entra com bastante profundidade no processo de treinamento
Também colocaram bastante coisa sobre partes que normalmente não são descritas em detalhe, como o treinamento real e a infraestrutura de dados, então parece haver conteúdo interessante para quem se interessa por isso
Para quem acompanha essa área há um tempo, é realmente fascinante ler sobre os experimentos e esforços por trás do produto final, e se eles também liberassem algumas ferramentas de fine-tuning para a comunidade experimentar, talvez desse para levar ainda mais longe o potencial do modelo
Tem sido frustrante ver os principais modelos excluírem com tanta força esse tipo de conteúdo por motivos de segurança, mesmo quando se trata de casos legais
O Flux.1 Krea original já estava no meu site de benchmark GenAI Showdown desde julho do ano passado, e nessa área isso já parece um passado muito distante. Quero muito testar o novo modelo direito
Sou Diego Rodriguez, cofundador e CTO da Krea. Desta vez publicamos os pesos e também um relatório técnico bem substancial para os padrões atuais da indústria
O relatório detalha curadoria/captioning de dados, arquitetura do modelo, pós-treinamento, pipeline de aprendizado por reforço, expansão de prompts, referência de estilo e infraestrutura
Os pesos foram divididos em dois: Krea 2 Turbo, um modelo com guidance e timesteps destilados para acelerar a inferência, e Krea 2 RAW, pensado para hacking e fine-tuning
Acho que a comunidade de LLMs abertos faz muito bem em lançar modelos em vários tamanhos e em diferentes estágios do pipeline de treinamento, e desta vez publicamos tanto checkpoints de estágios intermediários de treinamento quanto de pós-treinamento. Isso é raro no lado de imagem e multimídia, então tenho orgulho disso
Segundo o benchmark de texto-para-imagem da Artificial Analysis, a qualidade de imagem está em nível parecido com o Nano Banana: https://artificialanalysis.ai/image/leaderboard/text-to-imag...
Também colocamos uma licença generosa para indivíduos e pequenos negócios
Apresentação do lançamento OSS: https://www.krea.ai/krea-2-open-source / Modelo no Huggingface: https://www.krea.ai/krea-2/huggingface / Repositório no GitHub: https://www.krea.ai/krea-2/github / AMA no Reddit: https://www.reddit.com/r/StableDiffusion/comments/1udnm0a/we... / Relatório técnico: https://www.krea.ai/blog/krea-2-technical-report
Os resultados saíram, e são realmente impressionantes, especialmente considerando o quão rápido o modelo Turbo é com 8 steps
Entre os modelos que podem ser hospedados localmente, só o Ideogram 4 superou isso, mas ele é bem mais lento. Estamos falando de diferença entre minutos e segundos
Ele caiu em alguns dos habituais “matadores de modelo”, como estrela de nove pontas, Count Rugen e terra plana com gente demais, mas no geral entregou acima da categoria, ficou com a melhor pontuação entre os modelos que podem ser hospedados localmente e, no ranking geral, logo abaixo do Ideogram 4, passando em 6 de 15 testes
Link do GenAI comparando apenas modelos que podem ser hospedados localmente: https://genai-showdown.specr.net/?models=fd,hd,kd,qi,f2d,zt,...
É divertido pensar que o método de teste acabou chegando a itens tão estranhamente específicos assim
É bom ver mais modelos com pesos abertos, e eu realmente gosto de textos mais profundos
Também gosto da abordagem de tentar manter o manifold amplo para permitir vários estilos. Acho melhor do que ajustar tudo para encaixar em apenas alguns presets de estilo
Dito isso, modelos avançados de composição imagem-para-imagem/agêntica como Nano Banana 2 e Images 2.0 já estão vindo muito fortes, então agora isso também passa um pouco a sensação de “lutar a guerra passada”
Tenho bastante dúvida se o método de inserir o Qwen 3 VL de forma cruzada consegue chegar perto desse nível de imagem-para-imagem, e imagem-para-imagem robusta é muito importante para edição, ajustes, consistência de personagens e generalização do que hoje é usado para transferência de estilo. A parte de transferência de estilo também parece pouco explicada
Não vai ser fácil chegar nesse nível, mas me parece claro que essa é a próxima frente dos modelos de imagem. O Ideogram parece estar construindo nessa direção, mas ainda não vi muito disso no lado dos pesos abertos
Workflows agênticos são compatíveis com o Krea 2, então não entendi muito bem essa parte. Se você está falando de um modelo de edição, isso também está a caminho
Ele também está em nível parecido nos benchmarks de texto-para-imagem; é só ver o link da Artificial Analysis que postei no comentário acima
Não dá para retreinar Nano Banana ou ChatGPT para que entendam a marca dos clientes, e essa é exatamente uma reclamação recorrente dos nossos clientes. Além disso, por ser open source, não é fácil fazer uma comparação 1:1
Também ficou vaga essa observação de que a transferência de estilo não foi explicada. A página menciona “reference” 11 vezes e, lendo de fato, vi que isso era tratado com bastante frequência
É ótimo que a Krea tenha disponibilizado os pesos do modelo para download, mas com cláusulas como estas na licença isso não é open source: https://huggingface.co/krea/Krea-2-Raw/blob/main/LICENSE.pdf
O uso comercial só é permitido se a receita anual total da empresa nos últimos 12 meses for inferior a US$ 1 milhão; acima disso, é necessária uma licença enterprise separada
Além disso, os modelos da Krea, seus derivados e outputs não podem ser usados em violação de leis, contratos ou da política de uso permitido, e na distribuição é preciso implementar filtros de conteúdo razoáveis para detectar, prevenir e mitigar a geração de conteúdo proibido, nocivo ou ilegal
Também é obrigatório seguir a política de uso permitido, e a página da política https://www.krea.ai/krea-2-use-policy inclui cláusulas que proíbem contornar salvaguardas, restrições de uso, filtros de conteúdo, atribuição de origem e watermarking implementados pela Krea ou pelo distribuidor
O Turbo aparentemente já tem uma conversão para GGUF: https://huggingface.co/Abiray/Krea-2-Turbo-GGUF
Há um item interessante na página de vagas
Para quem sabe como era a Mellanox das antigas, isso pode ser bem a sua praia: https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072a...
É um bom modelo, mas é um pouco decepcionante que use Qwen VAE
Depois de usar os dois, acho que o Flux VAE tem uma leve vantagem no aprendizado de texturas realistas, mas a diferença não é tão grande quanto eu imaginava. O Qwen VAE também foi muito bom no geral em experimentos mais contidos e era forte para aprender a gerar estilos variados
Ainda não tive tempo de testar isso pessoalmente
Estou animado para experimentar o Krea 2. Uso Z-Image Turbo todos os dias, e ele substituiu minha assinatura de banco de imagens para imagens realistas e ilustrações
Fico curioso sobre quanto custou o treinamento
É difícil estimar direito o custo de treinamento porque usamos um cluster Kubernetes compartilhado, onde rodavam juntos inferência e workloads de pesquisa
Fico curioso sobre o que as pessoas usam para self-hosting de modelos assim
Já testei ollama e open-webui, mas eles não ofereciam nenhum suporte para geração de imagens
Se travar, dá para começar simplesmente copiando e colando workflows
https://github.com/LostRuins/koboldcpp