- Transformers.js es una biblioteca web de aprendizaje automático de última generación que permite ejecutar 🤗 Transformers directamente en el navegador sin servidor
- Está diseñada para ser funcionalmente equivalente a la biblioteca
transformers de Python, por lo que puede ejecutar los mismos modelos preentrenados con una API similar
- Admite tareas comunes en distintos tipos de datos, como procesamiento de lenguaje natural, visión por computadora, audio y multimodal
- Ejecuta modelos en el navegador usando ONNX Runtime, y con 🤗 Optimum es posible convertir fácilmente modelos preentrenados de PyTorch, TensorFlow o JAX a ONNX
Funciones principales
- Soporte para la misma API
pipeline que la biblioteca de Python, lo que facilita migrar código existente
- Soporte para diversas tareas y arquitecturas (incluye compatibilidad y enlaces a documentación/modelos)
- Procesamiento de lenguaje natural: Fill-Mask, Question Answering, Sentence Similarity, Summarization, Text Classification, Text Generation, Text-to-text Generation, Token Classification, Translation, Zero-Shot Classification, Feature Extraction, entre otras
- Visión: Depth Estimation, Image Classification, Image Segmentation, Image-to-Image, Object Detection, Image Feature Extraction, entre otras
- Audio: Audio Classification, Automatic Speech Recognition, Text-to-Speech
- Multimodal: Document Question Answering, Image-to-Text, Zero-Shot Audio/Image Classification, Zero-Shot Object Detection, entre otras
- Usa por defecto modelos preentrenados alojados y binarios WASM precompilados, con posibilidad de personalización
Instalación y uso
- Se puede instalar con NPM:
npm i @xenova/transformers
- Se puede usar en JavaScript vanilla sin bundler mediante CDN o alojamiento estático
- Ofrece varias aplicaciones de ejemplo/plantillas: Whisper Web, Doodle Dash, Code Playground, Semantic Image Search, Vanilla JavaScript, React, Text to speech, Browser extension, Electron, Next.js, Node.js, entre otras
- Mediante configuración del entorno se pueden personalizar la ruta de los modelos, si se permite la carga remota de modelos, la ubicación de los archivos WASM, etc.
- Es posible convertir modelos de PyTorch, TensorFlow y JAX a ONNX usando los scripts de conversión proporcionados
Modelos compatibles
- Soporta una amplia variedad de modelos como ALBERT, Audio Spectrogram Transformer, BART, BEiT, BERT, Blenderbot, BLOOM, CamemBERT, Chinese-CLIP, CLAP, CLIP, CLIPSeg, CodeGen, ConvBERT, ConvNeXT, DeBERTa, DeiT, Depth Anything, DETR, DINOv2, DistilBERT, DiT, Donut, DPT, EfficientNet, ELECTRA, ESM, Falcon, FLAN-T5, GLPN, GPT Neo, GPT NeoX, GPT-2, GPT-J, GPTBigCode, HerBERT, Hubert, LongT5, LLaMA, MPNet, MPT, MT5, NLLB, Nougat, OPT, entre muchos otros
Opinión de GN⁺
- Transformers.js es una biblioteca útil que permite ejecutar diversos modelos Transformer modernos en el navegador sin servidor. Destaca por soportar tareas en varias áreas, como procesamiento de lenguaje natural, visión por computadora y audio, lo que la hace muy versátil
- Ofrece una API similar a la de la biblioteca de Python, por lo que es fácil migrar desde código existente, y al admitir muchos modelos preentrenados puede usarse de inmediato sin entrenamiento adicional
- Al incluir aplicaciones de ejemplo y plantillas, resulta fácil aprovecharla para distintos usos, y sus funciones de personalización le dan bastante flexibilidad
- Sin embargo, al ejecutarse en el navegador puede tener limitaciones de recursos, y la necesidad de seguir agregando y manteniendo soporte para modelos recientes puede representar una carga de mantenimiento para el desarrollo
- Entre los frameworks de ML similares basados en navegador están TensorFlow.js, ONNX.js y WebDNN. En particular, TensorFlow.js soporta tanto navegador como Node.js y ofrece más funciones como transferencia de aprendizaje y visualización
Aún no hay comentarios.