Combinando Whisper y Deepl
OpenAI ha lanzado recientemente un modelo de reconocimiento de voz llamado Whisper. El desarrollador Georgi Gerganov decidió implementar la inferencia del modelo desde cero utilizando C/C++ y creó una biblioteca de tensores minimalista en C y portó la arquitectura del modelo a C++.
El código completo tiene menos de 8000 líneas de código y está contenido en solo 2 archivos fuente sin dependencias externas. Este proyecto, llamado whisper.cpp, puede ser ejecutado en una amplia gama de dispositivos, como iPhones, Raspberry Pi 4 y páginas web a través de WebAssembly.
La implementación se ejecuta completamente en la CPU y utiliza FP16, intrínsecos AVX en arquitecturas x86 y el marco NEON + Accelerate en Apple Silicon.
El puerto WASM utiliza elementos intrínsecos SIMD de 128 bits. Gerganov observó que la inferencia es aproximadamente 2 o 3 veces más rápida en comparación con la implementación de PyTorch de OpenAI cuando se ejecuta en un MacBook M1 Pro.
El marco Accelerate es especialmente eficiente para las multiplicaciones de matrices. El desarrollador espera que su proyecto pueda ser utilizado para crear herramientas interesantes como un complemento de voz a texto para Vim, un asistente de voz para Raspberry Pi 4 o un bot de chat en WebAssembly.
Referencias
Puede descargar los modelos convertidos usando el script models/download-ggml-model.sh o manualmente desde aquí:
- [con]Neurona #26 - 18 de diciembre de 2023
- [con]Neurona #25 - 10 de diciembre de 2023
- [con]Neurona #24 - 2 de diciembre de 2023