Transformers 5.18: diarización streaming, omni y GTE
La versión suma un modelo de diarización en tiempo real, dos modelos multimodales nuevos, un encoder de texto con RoPE, y una lista de cambios que rompen compatibilidad en ROCm, DETR y los DINO.
Nemotron 3 Diarization: quién habló cuándo, en vivo
Nemotron 3 Diarization es un modelo de pesos abiertos que resuelve diarización de hablantes, es decir, determinar quién habló y en qué momento dentro de un audio. Soporta hasta ocho hablantes y ordena la salida según el orden de llegada de cada voz en el audio, no según un ranking arbitrario. Usa el Arrival-Order Speaker Cache (AOSC) y la cola FIFO que ya se habían introducido con Streaming Sortformer, así que no es una arquitectura nueva desde cero sino una aplicación de ese enfoque. Un mismo checkpoint te sirve tanto para streaming como para inferencia offline: podés configurar el perfil de latencia desde un buffer de entrada de 80 milisegundos hasta uno de 30.4 segundos tipo offline. También podés ajustar la resolución del frame de salida en múltiplos de 10 milisegundos, según qué tan fino necesites el timestamp. Con inferencia por chunks, no hay límite de duración del audio que podés procesar.
NemotronH Omni: texto, imagen, video y audio en un solo modelo
NemotronH Omni combina el backbone de lenguaje NemotronH, que es una arquitectura híbrida Mamba-Transformer, con un encoder de visión RADIO y, opcionalmente, un encoder de sonido basado en Parakeet. Los parches de imagen y video se proyectan a través de la torre RADIO y un MLP de pixel-shuffle hacia el espacio de embeddings del modelo de lenguaje, ubicándose en las posiciones de los tokens de contexto <image> y <video>. Los clips de audio siguen el mismo mecanismo de proyección pero en las posiciones <audio>. El resultado es un único modelo autorregresivo capaz de razonar conjuntamente sobre texto, imágenes, video y sonido, sin necesidad de encoders separados que después se combinan afuera del modelo.
HyperCLOVAX Vision V2: visión con razonamiento explícito
HyperCLOVAX Vision V2, desarrollado por NAVER, une el backbone de lenguaje HyperClovaX con el encoder de visión de Qwen2.5-VL. Acepta texto, imagen y video como entrada, y a diferencia de un modelo de visión-lenguaje genérico, tiene soporte incorporado para chain-of-thought mediante tokens de pensamiento explícitos <think>...</think>. Si trabajás con pipelines que necesitan exponer el razonamiento intermedio del modelo antes de la respuesta final, esto te da esa estructura sin que tengas que parsearla manualmente del texto generado.
GTE: un encoder bidireccional con RoPE en vez de posiciones absolutas
GTE llega como arquitectura tipo BERT pero con tres cambios puntuales respecto al diseño clásico: usa RoPE en lugar de embeddings de posición absolutos, aplica una MLP con gating, y pone la normalización de capa después de cada conexión residual en vez de antes. Esta misma arquitectura es la que ya usan los checkpoints de Alibaba gte-*-v1.5, gte-multilingual-* y gte-en-mlm-*, además del snowflake-arctic-embed-m-v2.0 de Snowflake. Si ya estabas cargando esos checkpoints por fuera con código custom o vía trust_remote_code, ahora tenés soporte nativo en la librería, con la integración estándar de AutoModel y AutoTokenizer.
Cambios que rompen compatibilidad
Esta versión trae varios cambios marcados explícitamente como breaking. En ROCm, gpt-oss ahora enruta FA3 hacia aiter-flash-attn y se generan fixtures específicos para ROCm, así que si tenías expectativas de test o salidas pineadas para esa combinación, van a cambiar. El procesamiento de imágenes de DETR se aceleró, lo cual altera la salida esperada en algunos casos. Se remapeó el layer_type de los indexers, lo que afecta a modelos que dependían de ese campo para identificar capas. Hay una corrección en el conteo de tokens de video para los inputs de video del backend de Transformers en vLLM, y los modelos DINO fueron actualizados a estándares modernos de la librería. También subió la versión mínima de kernels requerida. Si tenés pipelines en producción con alguno de estos modelos, vale la pena revisar tus tests antes de actualizar sin chequear.
Generación y manejo de cache: ajustes de fondo
Varios fixes apuntan a hacer la generación más consistente entre distintos escenarios de caching. Se corrigió el StaticCache para Mllama habilitando torch.compile, se arregló el reset en las capas de DynamicCache, y se ajustó cómo se restringe la decodificación asistida (assisted decoding) con max length y eos token para que sea siempre correcta. Los generadores de candidatos se simplificaron eliminando la necesidad de implementar update_candidate_strategy, lo que reduce la superficie que tenés que mantener si escribís tu propio generador de candidatos. También se corrigió que prefix_allowed_tokens_fn pueda sobreescribir el -inf del modelo, y ahora se lanza una excepción clara si las restricciones de generación son insatisfacibles, en vez de fallar silenciosamente o devolver resultados sin sentido.
Mixture of Experts y paralelismo
Se habilitó FSDP2 combinado con expert parallelism usando un device mesh 2D de (fsdp, tp), lo que te permite entrenar modelos MoE grandes distribuyendo tanto los expertos como los parámetros de FSDP sin tener que elegir entre uno u otro esquema. Se corrigió el enmascaramiento sentinel de expert-parallel cuando el EP está desactivado, y se sacaron los slots sentinel del gradiente del router para que no contaminen el entrenamiento. También se integró PEFT con DTensor-based TP, lo que amplía las combinaciones de fine-tuning eficiente que podés correr en setups con tensor parallelism.
GGUF y soporte de hardware
El soporte de GGUF se extendió para cubrir arquitecturas MoE, y se agregó soporte específico para Qwen3.8 en formato GGUF, además de actualizaciones al soporte de tokenizer en GGUF. En el frente de hardware, se agregó soporte de Flash Attention 2 para MUSA, se registraron kernels de activación para XPU, y se habilitaron los kernels FP8 de compressed-tensors en MPS para torch 2.15 en adelante. También se sumó un exportador de OpenVINO para Transformers, lo que te da una ruta adicional si necesitás desplegar modelos fuera del stack habitual de PyTorch/CUDA.
Qué te llevas
Nemotron 3 Diarization te da diarización en streaming configurable, desde 80ms hasta modo offline, con un solo checkpoint.
NemotronH Omni y HyperCLOVAX Vision V2 amplían la oferta de modelos multimodales con arquitecturas distintas: Mamba-Transformer+RADIO+audio y HyperClovaX+Qwen2.5-VL con chain-of-thought explícito.
GTE formaliza en la librería una arquitectura BERT con RoPE que ya usaban checkpoints de Alibaba y Snowflake, sin necesidad de trust_remote_code.
Hay varios breaking changes concretos (ROCm gpt-oss, DETR, indexers, DINO, vLLM video tokens) que conviene revisar antes de actualizar en producción.
El grueso de los fixes toca generación con cache, expert parallelism con FSDP2/PEFT-TP, y soporte de hardware (MUSA, XPU, MPS, OpenVINO).
¿Quieres una clase de esto?
Si varias personas lo piden, entra al programa. No hace falta dejar mail ni nombre.