Añadidos del nuevo modelo
EmbeddingGemma2
EmbeddingGemma 2 es un modelo de incrustación multimodal de Google, construido sobre la arquitectura Gemma 4. Codifica texto, imágenes, audio y video, individualmente o combinados en una única entrada, en un espacio vectorial compartido de 768 dimensiones para recuperación intermodal, similitud semántica, agrupación y clasificación. Utiliza el Aprendizaje de Representación Matryoshka, por lo que las incrustaciones pueden reducirse a 512, 256 o 128 dimensiones. También ofrece presupuestos visuales y de video configurables para los tokens, y las torres de visión o audio no utilizadas pueden desactivarse en el momento de carga para ahorrar memoria.
Enlaces: Documentación * Smthn smthn (#49364) por @vasqu en #49364
Cambios de diseño
Todos los modelos MoE cuyos enrutadores calculan logits ahora los devuelven cuando output_router_logits=True, siguiendo el patrón Qwen3-MoE (un registrador router_logits en el modelo base, MoeModelOutputWithPast del backbone y una salida de LM causal MoE desde la cabeza), por lo que el código que dependía de las salidas anteriores o su ausencia debería leer los logits del enrutador desde estas clases de salida.
* 🚨 Devuelva los logits del enrutador de todos los modelos MoE que los calculan (#48920) por @qgallouedec
Owlv2ForObjectDetection.embed_image_query ahora selecciona el campo de búsqueda con la puntuación más alta de objetividad, tal como en el notebook original OWLv2, en lugar de la heurística OWL-ViT, por lo que los embebidos y detecciones basados en imágenes pueden diferir de las versiones anteriores.
* 🚨 Selecciona la búsqueda de imagen OWLv2 por objetividad (#49200) mediante @qgallouedec
El prefijo "paged|" para las implementaciones de SDPA y atención instantánea está obsoleto, por lo que los usuarios deben utilizar la implementación regular de atención (por ejemplo sdpa o flash_attention_2) para el procesamiento continuo en lotes, en lugar de paged|sdpa o paged|flash_attention_2.
* 🚨 Atención 🚨 Deje obsoleto el prefijo “paged|” para SDPA y atención instantánea (#49112) por @remi-or
Las funciones regulares de atención Flash y SDPAflash_attention.py, sdpa_attention.py) ahora soporta el procesamiento continuo de lotes directamente, y "paged|..." Las implementaciones para estas se redirigen hacia ellas, mientras que eager aún requiere "paged|eager" Prefijo.
* 🚨 Atención 🚨 Presta atención regularmente al soporte CB (#49101) por @remi-or
En el batching continuo, la actualización del caché para las rutas basadas en índices y tabla de bloques se fusiona ahora en una sola llamada, lo que cambia ligeramente el comportamiento de la función de actualización del caché y afecta cualquier código personalizado que use los caminos de actualización separados. * 🚨 [CB] 🚨 Fusionar la actualización para la ruta del índice y la tabla de bloques (#49088) por @remi-or
Los procesos internos de lote continuo cambiaron en preparación para eliminar "paged": `max
* 🚨 [CB] 🚨 Pequeñas correcciones antes de eliminar "paged" (#49069) por @remi-or
Paralelización
El paralelismo experto obtiene una implementación de desplegamiento de tokens, seleccionada a través de la nueva regla de plan ep_dispatch_experts y ahora es el valor por defecto para Qwen3 MoE y Mellum, lo que elimina la condición de que el tamaño del EP sea igual al tamaño del TP. El Trainer también se adaptó para trabajar con el paralelismo experto, y las documentación ahora indica que los adaptadores PEFT soportan el paralelismo de tensores. También se incluyó una corrección relacionada con CI para la inferencia de pipeline-parallel chart2table.
- [
distributed]: adaptar Trainer para funcionar Expert Parallel (#48873) por @3outeille en [#48873] - [
distributed] Añadir despacho de tokens paralelo experto, por defecto para Qwen3 MoE (#48865) por @3outeille en [#48865] - Arreglar la inferencia de pp chart2table (#49225) por @zucchini-nlp en [#49225]
- [docs] TP para adaptadores PEFT (#49060) por @stevhliu en [#49060]
Cache
Esta versión corrige el manejo del caché cuantizado: generate ya no muta la cache_config del usuario, y QuantizedLayer.reorder_cache se repara. También se añade una configuración de caché por capa, de modo que DynamicCache y StaticCache inicializan cada capa con su propia configuración (ventana deslizante, tamaño del bloque de atención, estados de la convocación y cantidad de cabezas de atención) para apoyar mejor los modelos heterogéneos. Por separado, el ciclo de deshabilitación para la máscara y el caché
- Arreglar el caché cuantizado (#48700) por @jiqing-feng en [#48700]
- [CI] check_bad_commit: utilizar el caché EFS para evitar el OOM de Xet FUSE (salida 137) (#49273) por @ydshieh en [#49273]
- Soporte para la configuración de caché por capa (#48178) por @eladsegal en [#48178]
- Eliminar el ciclo de deshabilitación en la máscara y el caché (#49231) por @Cyrilvallez en [#49231]
Correcciones de errores y mejoras
- Restablecer “[CI] Desactivar temporalmente el desencadenador de CI programado de AMD” (#49271) (#49362) por @ydshieh en [#49362]
- ALM testx fIxing... (#49355) por @zucchini-nlp en [#49355]
- Corregir DataCollatorForLanguageModeling ignorando seed=0 (#49349) por @akanyaani en [#49349]
- Corregir los modos de kernelización explícitos para los modelos de evaluación (#49339) por @DimensionSTP en [#49339]
- fix(cohere_compass): agregar video a input_modalities (#49320) (#49323) por @destopianpirate en [#49323]
- GPT-OSS: leer el alfa del SwiGLU comprimido y limitarlo desde la configuración (#49346) por @IlyasMoutawwakil en [#49346]
- [
distributed] MoE por defectoep_plansa despachar tokens (#49160) por @3outeille en [#49160] - Mover CI a Python 3.11, con la versión definida en
.python-version(#49311) por @tarekziade en [#49311]. - Añadir pin al flujo de trabajo de documentos principales del generador de documentos (#49350) por @paulinebm en [#49350]
- [
distributed] separado tp_plan y ep_plan (#48859) por @3outeille en [#48859] - [
distributed] Añadir una malla de dispositivos densa y especializada (#48857) por @3outeille en [#48857] - Aumentar el pin del flujo de trabajo de doc-builder (#49342) por @paulinebm en [#49342]
- Permite registrar nuevos backend de procesamiento (#48984) por @zucchini-nlp en [#48984].
- Arreglar WatermarkDetector repeated-ngram counting (#49315) por @LE0-Lin en [#49315]
- Arreglar el batching de video de 4.6V de minicpm y CI (#49259) por @zucchini-nlp en [#49259]
- Eliminar colwise_gather_output para lm_head para DeepseekV4 (#49314) por @3outeille en [#49314]
- Arregle la documentación
labelsde CLIPSegForImageSegmentation (#49001) por @qgallouedec en [#49001]. - [CI] Desactiva temporalmente el desencadenador de CI programado de AMD (#49271) por @ydshieh en [#49271]
- Eliminar la entrada no utilizada de pandas en setup.py deps (#49329) por @tarekziade en [#49329]
- Arreglar en run_glue.py que los IDs se convierten en cadenas de texto con pandas>=3 (#49326) por @tarekziade en [#49326]
- [Corregir] Eliminar el archivo de prueba antiguo con dos pruebas obsoletas (#49280) por @remi-or en [#49280]
- Corregir el relleno preformateado en bloques con IDs de posición de múltiples ejes (Qwen3-VL) (#49319) por @dacorvo en [#49319]
- ¿Por qué sobrerolar si puedes arreglarlo en
Mixin(#49105) por @zucchini-nlp en [#49105]? - Usa DoRoPE con mul en lugar de matmul (#49265) por @Rocketknight1 en [#49265]
- Los pipelines descontinuados deben redirigirse; los pipelines eliminados deben generar un error (#49308) por @LysandreJik en [#49308]
- Activar la prueba del modelo en el backend
torch_tpupróximo (#49207) por @tengomucho en [#49207] - Corregir la penalidad de repetición del encodificador en filas de origen después de la expansión por lotes (#49262) por @gitedmond en [#49262]
- Se conservan los puntajes EOS ocultos en la penalidad de longitud de decadencia exponencial (#49260) por @gitedmond en [#49260].
- [CI] Evitar la obtención de todos los artefactos cuando solo se necesitan algunos específicos (#49282) por @ydshieh en [#49282]
- Volver a implementar “[CI] ssh-runner: agregar un campo de entrada opcional cache_type para alternar entre los ejecutores bucket y EFS (#49159)” (#49270) por @ydshieh en [#49270]
- Agregar Trainer.loss_is_scaled_for_ga para declarar si compute_loss ya se escala para la acumulación de gradientes (#49240) por @qgallouedec en [#49240]
- Corregir los claves de kwargs de flash precomputadas que entran en conflicto (#47928) por @IlyasMoutawwakil en [#47928]
- Volver a aplicar ejemplos modulares (#49230) por @Cyrilvallez en [#49230]
- Eliminar algunos elementos que no existen (#49232) por @Cyrilvallez en [#49232]
- Eliminar el ciclo de desuso de los rotarios (#49228) por @Cyrilvallez en [#49228]
- [
GTE] Añadir mixin de memoria (#49234) por @vasqu en [#49234] - [CB] Hacer que CB sea más independiente de los dispositivos y añadir soporte para XPU (#49156) por @remi-or en [#49156]
- Métricas finales correctas debido a la reanudación desde el punto de control (#49208) por @SunMarc en [#49208]
- [ESM/Persimmon/NllbMoe/ESMFold] utilizar los repositorios safetensors para solucionar Xet FUSE SIGBUS/IOError en los ejecutores de bucket CI (#49194) por @ydshieh en [#49194]
- Actualización de Dev (#49212) por @vasqu en [#49212]
Contribuciones significativas de la comunidad
Los siguientes colaboradores han realizado cambios significativos en la biblioteca durante el último lanzamiento:
- @vasqu
- Smthn smthn (#49364)
- [
GTE] Agregar mixin de memoria (#49234) - Actualización de Dev (#49212)
- @remi-or
- [Corregir] Eliminar el archivo de prueba antiguo con dos pruebas obsoletas (#49280)
- [CB] Hacer que CB sea más independiente de los dispositivos y añadir soporte para XPU (#49156)
- 🚨 Atención 🚨 Dejar de utilizar el prefijo “paged|” para SDPA y flash (#49112)
- 🚨 Atención 🚨 Presta atención regularmente en el soporte CB (#49101)
- 🚨 [CB] 🚨 Actualización de Fuse para la ruta de la tabla de índice y bloque (#49088)
- [Refactor] Hacer que algunas utilidades de atención en tiempo real sean más legibles (#49071)
- 🚨 [CB] 🚨 Pequeñas correcciones antes de eliminar “paged” (#49069)