- Soporte para WebGPU (hasta 100 veces más rápido que WASM)
- Nuevos formatos de cuantización
dtypes
- Soporte para 120 arquitecturas
- 25 nuevos proyectos de ejemplo y plantillas
- Más de 1200 modelos preconvertidos
- Compatibilidad con Node.js (ESM + CJS), Deno y Bun
Soporte para WebGPU
- WebGPU es un nuevo estándar web para gráficos y cómputo acelerados
- Permite a los desarrolladores usar directamente la GPU del sistema desde el navegador para realizar cálculos de alto rendimiento
- Como sucesor de WebGL, permite una interacción más directa con las GPU modernas, lo que mejora considerablemente el rendimiento
- También admite cómputo general sobre GPU, por lo que es adecuado para machine learning
- A octubre de 2024, la tasa de soporte global de WebGPU es de aproximadamente 70%
- Según el navegador, puede ser necesario usar feature flags para habilitar WebGPU
- Uso de WebGPU en Transformers.js v3
- Gracias a la colaboración con ONNX Runtime Web, se puede activar la aceleración con WebGPU simplemente configurando
device: 'webgpu' al cargar el modelo
- Se puede usar WebGPU para cálculo de embeddings de texto, reconocimiento de voz, clasificación de imágenes y más
Nuevos formatos de cuantización (dtypes)
- Antes de Transformers.js v3, con la opción
quantized se podía elegir entre variantes de modelo quantized (q8) o full-precision (fp32)
- Ahora se puede elegir entre una lista mucho más amplia mediante el parámetro
dtype
- La lista de cuantizaciones disponibles varía según el modelo, pero por lo general incluye full-precision (
"fp32"), half-precision ("fp16"), 8-bit ("q8", "int8", "uint8"), 4-bit ("q4", "bnb4", "q4f16") y más
dtypes por módulo
- Algunos modelos encoder-decoder, como Whisper o Florence-2, son especialmente sensibles a la configuración de cuantización, sobre todo en el encoder
- Por esta razón, se añadió la capacidad de elegir
dtypes por módulo proporcionando un mapeo del nombre del módulo a dtype
120 arquitecturas compatibles
- En este lanzamiento, el número total de arquitecturas compatibles aumentó a 120, cubriendo una amplia variedad de formatos de entrada y tareas
- Algunas arquitecturas nuevas destacadas incluyen: Phi-3, Gemma & Gemma 2, LLaVa, Moondream, Florence-2, MusicGen, Sapiens, Depth Pro, PyAnnote, RT-DETR y otras
25 proyectos de ejemplo y plantillas
- Como parte de este lanzamiento, se publicaron 25 nuevos proyectos de ejemplo y plantillas centrados en mostrar el soporte para WebGPU
- Incluye demos como Phi-3.5 WebGPU, Whisper WebGPU y otros
Más de 1200 modelos preconvertidos
- Al momento del lanzamiento, la comunidad ha convertido más de 1200 modelos para hacerlos compatibles con Transformers.js
- Si quieres convertir tu propio modelo o fine-tuning, puedes usar los scripts de conversión proporcionados
- Después de subir los archivos generados a Hugging Face Hub, puedes agregar la etiqueta
transformers.js para que otras personas los encuentren y los usen fácilmente
Compatibilidad con Node.js (ESM + CJS), Deno y Bun
- Transformers.js v3 ahora es compatible con los tres runtimes de JavaScript del lado del servidor más populares
- Node.js: un runtime de JavaScript ampliamente usado, construido sobre V8 de Chrome, con amplio soporte para librerías y frameworks
- Deno: un runtime moderno para JavaScript y TypeScript, seguro por defecto, que usa módulos ES y también ofrece soporte experimental para WebGPU
- Bun: un runtime rápido de JavaScript optimizado para rendimiento, con bundler, transpiler y gestor de paquetes integrados
Nuevo hogar en NPM y GitHub
- Transformers.js ahora se publicará desde la organización oficial de Hugging Face en NPM como
@huggingface/transformers (en lugar de @xenova/transformers, usado en v1 y v2)
- El repositorio se trasladó a la organización oficial de Hugging Face en GitHub (https://github.com/huggingface/transformers.js), que será su nuevo hogar
1 comentarios
Transformers.js - ejecuta transformers en el navegador
Transformers.js que puede ejecutarse directamente en el navegador