1 pontos por GN⁺ 4 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • 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 DTensor e recursos nativos do torch suportados pelo projeto torchtitan
    • 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_ACTIVE foi 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 UPSERT contended 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 NULL e contains_text = FALSE
    • As linhas são reivindicadas com FOR UPDATE SKIP LOCKED, e colunas da família last_tried_at são atualizadas
  • 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.map retorna um handle ao qual o usuário pode se conectar para ver o progresso em tempo real
    • As UDFs são serializadas com cloudpickle e 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

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

 
GN⁺ 4 시간 전
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

    • É impressionante ver um relatório técnico tão extenso sobre um modelo de geração de imagens com pesos abertos
      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
    • Fico curioso para saber como a Krea lida com conteúdo como pornografia ou gore
      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
    • Considerando Ideogram4, Flux2, Qwen-Image, ZiT e Krea, tem havido bastante movimento positivo no lado dos pesos abertos
      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,...

    • Foi a primeira vez que ouvi falar de matadores de modelo para modelos de texto-para-imagem, achei engraçado
      É 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

    • Entendo o ceticismo, mas internamente esse modelo é usado mais do que o Nano Banana em vários casos, como moodboards. O fato de ser 4 vezes mais barato que o NBP também ajuda
      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
    • Este modelo também suporta imagem-para-imagem, então não sei qual seria o problema com o Qwen 3 VL
      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

    • Se quiser forçar mais o realismo, o Krea 2 Large no site e na API foi treinado com FLUX 2 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
    • Algumas pessoas também disseram que esse problema se resolve usando wan2.1 VAE no lugar
      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

    • Café com certeza foi bastante
      É 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

    • Ainda não testei este modelo, mas o ComfyUI com certeza deve suportar, e depois que você se acostuma a interface até que fica boa
      Se travar, dá para começar simplesmente copiando e colando workflows
    • O Koboldcpp suporta geração de imagens, mas o suporte ao Krea2 vai ter que esperar o próximo release
      https://github.com/LostRuins/koboldcpp