La biblioteca de código abierto transformers.js acaba de lanzar su versión 2.8.0, que incluye importantes novedades para el procesamiento de lenguaje natural. Esta biblioteca permite utilizar los modelos de Inteligencia Artificial de Hugging Face en aplicaciones web y Node.js. Veamos cuáles son las principales características de esta nueva versión.
Traducción imagen a imagen
La novedad más destacada es la incorporación de modelos para realizar traducción de imagen a imagen, como por ejemplo la super-resolución. Esto permite, por ejemplo, aumentar la resolución de una imagen de baja calidad.
El código para utilizar esta funcionalidad es muy sencillo:
import { pipeline } from '@xenova/transformers';
let url = 'https://huggingface.co/spaces/jjourney1125/swin2sr/resolve/main/testsets/real-inputs/0855.jpg';
let upscaler = await pipeline('image-to-image', 'Xenova/swin2SR-compressed-sr-x4-48');
let output = await upscaler(url);
Con solo unas líneas podemos escalar una imagen cuatro veces su resolución original. Esto abre mucho potencial para aplicaciones web que requieran mejorar imágenes de baja calidad.
Nuevas arquitecturas de modelos
La versión 2.8.0 también incorpora cuatro nuevas arquitecturas de modelos de Inteligencia Artificial, con lo que ya hay disponibles un total de 57 modelos diferentes. Entre las incorporaciones destacan:
- TrOCR: para reconocimiento óptico de caracteres (OCR). Permite extraer y reconocer texto escrito a mano en imágenes.
- Swin2SR: especializado en super-resolución y restauración de imágenes.
- Mistral y Falcon: diseñados para generación de texto.
Otras mejoras
Además de estas dos grandes novedades, la versión 2.8.0 incluye otras mejoras:
- Corrección de errores en la generación de texto.
- Solución a un problema con la caché de Firefox.
- Mejoras en la documentación.
Conclusión
La versión 2.8.0 de la biblioteca transformers.js representa un importante avance, especialmente gracias a la incorporación de modelos de traducción imagen a imagen y nuevas arquitecturas para procesamiento de lenguaje natural.
Esto amplía mucho las posibilidades para desarrollar aplicaciones web y de Node.js que requieran este tipo de funcionalidades avanzadas de Inteligencia Artificial. Por la sencillez de su API, transformers.js se posiciona como una de las mejores opciones actualmente para utilizar los modelos de Hugging Face en el lado del cliente.
Traducción de imagen con Inteligencia Artificial
Uno de los usos más interesantes de la Inteligencia Artificial es la traducción o transformación de imágenes. Por ejemplo, para aumentar la resolución de imágenes pixeladas o reconocer texto manuscrito.
La nueva versión 2.8.0 de la biblioteca transformers.js incorpora modelos específicos para realizar este tipo de tareas. Veamos cómo funciona.
Aumento de resolución de imágenes
Supongamos que tenemos una imagen de baja resolución y queremos aumentar su tamaño sin perder calidad. Para ello podemos usar el modelo Swin2SR:
let url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/butterfly.jpg';
let upscaler = await pipeline('image-to-image', 'Xenova/swin2SR-classical-sr-x2-64');
let output = await upscaler(url);
Simplemente indicando la URL de la imagen de entrada, el modelo a utilizar y llamando a la función pipeline, podemos escalar la imagen al doble de su resolución original.
El modelo Swin2SR utiliza redes neuronales convolucionales para reconstruir los detalles de alta frecuencia y obtener una versión de alta resolución de la imagen.
Reconocimiento de texto manuscrito
Otra tarea útil es extraer el texto contenido en imágenes escaneadas o fotografías. Por ejemplo, para digitalizar automáticamente documentos escritos a mano.
La arquitectura TrOCR permite reconocer caracteres manuscritos en imágenes como esta:
let url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/handwriting.jpg';
let ocr = await pipeline('image-to-text', 'Xenova/trocr-small-handwritten');
let output = await ocr(url);
Nuevamente en pocas líneas de código podemos extraer todo el texto contenido en la imagen.
Ventajas
La disponibilidad de estos modelos específicos en la biblioteca transformers.js presenta algunas ventajas:
- Simplicidad de uso gracias a la interfaz sencilla.
- Posibilidad de usarlos directamente en aplicaciones web y Node.js.
- Rapidez en el desarrollo de prototipos y pruebas de concepto.
Por tanto, esta nueva funcionalidad abre interesantes oportunidades en campos como el procesamiento de documentos, restauración de fotos antiguas o compresión de imágenes.
Nuevos modelos de generación de texto
Otra de las incorporaciones destacadas de la versión 2.8.0 de transformers.js son nuevas arquitecturas específicas para la generación automática de texto coherente. Analicemos en qué consisten.
Arquitectura Mistral
Mistral es un modelo generativo entrenado por Anthropic específicamente para conversaciones seguras y éticas. Algunas de sus capacidades son:
- Mantener conversaciones prolongadas.
- Rechazar solicitudes inapropiadas con amabilidad.
- Admitir sus limitaciones.
Esto lo convierte en una opción interesante para chatbots, asistentes virtuales y aplicaciones de servicios al cliente.
Arquitectura Falcon
Por su parte, Falcon es un modelo generativo más avanzado, también desarrollado por Anthropic. Se entrena con técnicas de aprendizaje por refuerzo humano para alinear sus valores con los humanos.
Destaca por su capacidad para mantener conversaciones naturales y producir texto de alta calidad sobre una amplia variedad de temas.
Ventajas
La incorporación de estas arquitecturas a transformers.js permite aprovechar sus capacidades en aplicaciones web y de Node.js, facilitando:
- Desarrollo rápido de chatbots y asistentes de conversación.
- Generación de texto de alta calidad para contenido web.
- Mayor seguridad y alineamiento de valores en comparación con otros modelos.
Gracias a la sencillez de la API, solo necesitamos unas líneas de código para integrar estas poderosas capacidades de Inteligencia Artificial en nuestros proyectos.
Conclusión
La versión 2.8.0 de la biblioteca transformers.js representa un importante paso adelante en cuanto a las capacidades disponibles para tareas de procesamiento de lenguaje natural y computer vision en el lado del cliente.
Destacan especialmente las nuevas funcionalidades relacionadas con el procesamiento y transformación de imágenes, que abren mucho potencial para numerosas aplicaciones web.
También son muy interesantes los nuevos modelos incorporados para generación de texto, que facilitan la creación de interfaces conversacional
Comentarios