14 puntos por xguru 2024-10-26 | 1 comentarios | Compartir por WhatsApp
  • 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