Y luego escribes tu código JavaScript, así que en este caso, solo unas pocas líneas de código para ejecutar Whisper. Y luego, detrás de escena, utiliza Onyx Runtime para poder ejecutar tu modelo ya sea en web assembly en CPU, web GPU en GPU, o con Web NN en CPU, GPU, o NPU. Así que veamos cómo podrías comenzar tal vez agregando ML a tus aplicaciones web. Así que solo unas pocas líneas de código. Número uno, importas la biblioteca. Número dos, creas un pipeline. Y luego número tres, lo ejecutas en alguna entrada. Y también puedes especificar un modelo personalizado. Así que como tu segundo parámetro para la función pipeline, puedes especificar el modelo que te gustaría usar. Y luego algunas otras opciones. Así que tienes los parámetros de inicialización. Así que si quieres especificar si deseas ejecutar en GPU, así que web GPU, así como configuraciones de cuantización como Q4, F16, eso es en el primer paso. Y luego en el segundo paso, en los parámetros de tiempo de ejecución como el número máximo de tokens que generarás.
Una pequeña descripción rápida de lo que es web GPU. Está destinado a ser el sucesor de WebGL y es un nuevo estándar web que te permite ejecutar modernos, es una API moderna para gráficos acelerados y computación. Y más importante, es una API de propósito general, lo que significa que podemos ejecutar, ya sabes, operaciones de aprendizaje automático, lo cual es realmente, realmente importante. Y puedes habilitar el soporte de web GPU simplemente especificando el dispositivo como web GPU. Tiene una disponibilidad un poco limitada como mencioné anteriormente, pero esperamos ver que los navegadores se muevan hacia un mejor soporte en el futuro. Y luego WebNN también, puedes especificar el dispositivo diciendo WebNN ya sea tal vez si quieres NPU, GPU, o CPU, también puedes especificar eso en este caso. Y luego una diapositiva rápida sobre lo que son las cuantizaciones, básicamente puedes, porque es muy importante, porque los navegadores están extremadamente limitados en recursos, alentamos a los usuarios a cuantizar sus modelos y reducir la precisión a cambio de un menor consumo de recursos, menor consumo de memoria, menor ancho de banda para el usuario porque necesitan descargarlo una vez y luego menor consumo de memoria en tiempo de ejecución.
Y luego también exponemos diferentes tal vez APIs que los usuarios desearían lograr un poco más de control. Así que por ejemplo, una demostración de segmentación como esta. Tal vez algunos factores a considerar mientras desarrollas para la web, el ancho de banda es importante así que el usuario necesita descargar el modelo una vez, por lo que los animas a elegir modelos que puedan ejecutarse en el hardware objetivo. Precisión versus velocidad, qué nivel de cuantización vas a usar y qué latencia y precisión se requiere. Características del dispositivo, qué APIs del navegador se requieren, tal vez entrada de micrófono y soporte de web GPU es uno de los principales, y luego dispositivos objetivo, ¿estás construyendo para móvil, escritorio, y cualquier cosa intermedia. Tal vez solo un recorrido rápido de algunas aplicaciones que puedes construir. Así que por supuesto, chat bots enfocados en la privacidad, poder ejecutar LLMs en el navegador tal vez no sea nuevo ahora, pero el rendimiento que podemos lograr es bastante notable, especialmente en web GPU. Así que en este caso, un modelo 4B ejecutándose a alrededor de 90 tokens por segundo en un RTX 4090, y luego en esta Mac aquí ejecutando un modelo 1.7B a alrededor de 130 tokens por segundo, lo cual es realmente genial de ver. Realmente grandes mejoras, y grandes mejoras aún por venir. Con el web GPU nativo, creo que hay muchas mejoras que aún podemos hacer.
Comments