paint-brush
Un sitio web controlado por voz con IA integrada en Chromepor@tyingshoelaces
345 lecturas
345 lecturas

Un sitio web controlado por voz con IA integrada en Chrome

por tyingshoelaces.com12m2024/06/30
Read on Terminal Reader

Demasiado Largo; Para Leer

Recientemente me invitaron al programa de vista previa temprana de la IA integrada de Chrome (API rápida). La IA integrada es un trabajo exploratorio para lo que potencialmente se convertirá en un estándar para varios navegadores para la IA integrada. Aprovecha Gemini Nano en el dispositivo; eso significa que está incluido en su navegador web y la generación del LLM ocurre en el entorno de su navegador local.
featured image - Un sitio web controlado por voz con IA integrada en Chrome
tyingshoelaces.com HackerNoon profile picture
0-item

Introducción

Vista previa anticipada de la API de avisos de Chrome.


Recientemente me invitaron al programa de vista previa temprana de la IA integrada de Chrome (API rápida). La IA integrada es un trabajo exploratorio para lo que potencialmente se convertirá en un estándar para varios navegadores para la IA integrada. Aprovecha Gemini Nano en el dispositivo, lo que significa que está incluido en su navegador web y la generación de LLM se produce en el entorno de su navegador local.

Beneficios

Lo Bueno, lo Fácil, lo Rápido y lo Gratis.


Hay tres razones principales por las que queremos incorporar IA en nuestros navegadores. Velocidad, costo y usabilidad. Como API nativa del navegador, es fácil de usar. Acceder a Prompt API es tan simple como estas dos líneas de código.


 const session = await window.ai.createTextSession(); const result = await session.prompt( "Tyingshoelaces.com are writing a really cool blog about you. What do you think about that then?" );


No podría ser más fácil obtener resultados de IA generativa donde los necesitamos en el navegador. Realicé algunas pruebas para comprobar el tiempo de ejecución. Aunque me decepcionó que estuviéramos restringidos a una sola sesión (sin simultaneidad), el rendimiento para la generación de textos largos y complicados fue bueno.


Recuerde, tampoco hay latencia, por lo que el tiempo de ejecución es literalmente desde el milisegundo que realizamos la solicitud en nuestro navegador hasta el uso del resultado en nuestro código.


 VM975:32 Execution Time 1: 0h 0m 3s 47ms VM975:32 Execution Time 2: 0h 0m 3s 870ms VM975:32 Execution Time 3: 0h 0m 2s 355ms VM975:32 Execution Time 4: 0h 0m 3s 176ms VM975:32 Execution Time 5: 0h 0m 7s 103ms VM975:44 Average Session Execution Time: 0h 0m 3s 910.1999999999998ms );


El tiempo de ejecución promedio para 5 solicitudes encadenadas a la IA integrada es de entre 3 y 4 segundos por solicitud completa para mensajes de generación de texto largos. Ejecuté esto varias veces (el script está incluido en el repositorio de GitHub) y, aunque varía según el dispositivo, también espero que mejore cuando se optimice la API. He notado que las tareas de generación de JSON más cortas son mucho más rápidas (200-400 ms).


Esto es más que aceptable para la mayoría de los casos de uso. También hemos colaborado colectivamente con la cuestión de la escala de nuestros LLM. Donde el uso de API a escala industrial es notoriamente costoso, cada solicitud de LLM se maneja a través de una API de navegador experimental. Se siente muy bien y abre un mundo de posibilidades.


Al hacer que los usuarios de Chrome incrusten el modelo en su navegador, tenemos un mecanismo de distribución con modelos de IA generativa precargados en el punto de uso y sin necesidad de servidores grandes. Esto es similar a WebLLM pero con la importante ventaja de que los modelos están precargados e integrados en nuestros navegadores.


Esto significa que podemos descargar un único modelo para utilizarlo en "Internet" en lugar de vernos obligados a descargar un modelo específico del proveedor.


Los enormes aspectos positivos de esta API de navegador experimental son argumentos sólidos para su adopción; es rápido, gratuito (o pagado por el consumidor) y realmente fácil de usar.


¿Pero cuáles son las compensaciones?

Costos

Rápido y gratuito. ¿Pero qué costo?


Sin lugar a dudas, la API está lista solo para experimentación, no para uso en producción. Como resultado, gran parte del resultado es menos refinado de lo que esperaríamos de modelos más maduros y alojados. Las limitaciones de tamaño junto con la naturaleza generalista del modelo significan que no tenemos un resultado pulido.


Esto genera frustraciones que nos remontan a los primeros días de las API de IA generativa. Me encontré usando mucha lógica de validación e ingeniería rápida para obtener respuestas JSON confiables. Cada pocas solicitudes, la API parece no responder, es bastante fácil confundir la respuesta, en cuyo caso el modelo fracasa.


También se menciona el hecho de que dado que este modelo está integrado en el navegador; abre cierto valor como modelo "privado". No estoy seguro de que esto sea relevante para la mayoría de los casos de uso, ya que los sitios web públicos seguirán interactuando con sus servidores y, para el usuario promedio, es difícil estar seguro de que los datos nunca saldrán del entorno local. Dicho esto, para uso interno y sistemas no públicos que funcionan a través de un navegador (entornos corporativos, por ejemplo), esto podría ser un punto extra.


La falta de sofisticación en las respuestas debido al modelo más pequeño significa que debemos tener mucho cuidado con las tareas para las que lo utilizamos. Las arquitecturas del futuro optimizarán sus implementaciones de IA generativa para utilizar el peso (y por lo tanto, el costo) correcto para la tarea correcta. Imagino varios LLM pequeños, altamente ajustados y orientados a tareas, cada uno de los cuales se utilizará para un resultado específico.


Dicho esto, todo es perdonable, especialmente porque la API está diseñada explícitamente para experimentación, no para uso en producción.


El bueno
-Costo
-Escala
-Velocidad
-Usabilidad
-Privado

El malo
-Sacrificio en calidad
-Costo de implementación

Por ejemplo, si quisiéramos un análisis profundo de los asuntos actuales, necesitaríamos una ventana de contexto grande y un flujo RAG sofisticado para informar el resultado; Es casi seguro que la IA integrada no es el enfoque correcto. Google alude a esto en sus recursos.


Pero tengo una teoría que quería poner a prueba; una teoría descabellada, descabellada y tremendamente divertida; y un LLM alojado en un micro navegador era el lugar perfecto para hacerlo.

Una nueva forma de pensar

Neuronas, no cerebro


Ha habido una pequeña picazón que quería rascarme desde hace un tiempo. ¿Qué pasa si estamos usando mal los LLM? De hecho, ¿qué pasa si nos equivocamos en el modelo conceptual?


A medida que corremos por ventanas de contexto cada vez más grandes con datos de entrenamiento en expansión, estamos tratando de escalar verticalmente la IA generativa. Más grande, más fuerte, más rápido, mejor. Me quedo boquiabierto cuando veo gente pidiendo amablemente ventanas de contexto lo suficientemente grandes como para conectar todo Internet, y luego pedirle al algoritmo del medio que seleccione exactamente la información y el resultado que queremos de este enorme lago. Y más rápido.


Tratamos cada entrada en un LLM como una API, el texto ingresa, ocurre la magia y el texto sale. A esta magia en el medio la llamamos inteligencia. Cuanto más texto incluya, más fuerte será la magia y mejor será el resultado. Este es nuestro camino actual a seguir.


No puedo dejar de preguntarme si nos estamos centrando en una escala o un zoom equivocados, una interpretación errónea de la cognición.


Lo que pasa con el pensamiento en general, especialmente con la producción creativa (que es exactamente lo que es la generación de texto), es que no es un proceso tan simple. No es un solo hilo. Ya estamos viendo esto en los modelos más nuevos; por ejemplo, en mi desglose del mensaje del sistema Claude 3.5 Sonnet , vemos que muchos de los avances recientes en la producción de LLM probablemente no tengan que ver con el algoritmo en sí, sino con la infraestructura, los sistemas y los ajustes que guían contextualmente la salida.


Quería probar un concepto de conexiones pequeñas y rápidas unidas para construir algo más grande. Al final, una ventana de contexto de 100k es lo mismo que 1k - 100 veces. Sospecho que, aunque nos centremos en lo grandioso, la clave está en los detalles pequeños y precisos unidos para formar algo más grande. Esto encaja con mi paradigma mental de inteligencia mucho más que un "cerebro" de máquina sensible.


Esto no ha sido posible hasta ahora debido a la relativa ineficiencia de los modelos en general y al coste prohibitivo. Imagine a Bob en las cuentas mientras le decimos que multiplicaremos por 100 la cantidad de solicitudes a ChatGPT mientras teorizamos que las microtransacciones en una arquitectura de malla mejorarán la calidad de nuestros sistemas de inteligencia artificial. No creo que Bob trabaje en OpenAI, pero para el resto de nosotros simplemente no es factible.


Incluso un modelo pequeño y eficiente integrado en el navegador no está realmente preparado para manejar mis teorizaciones. No es lo suficientemente rápido y no permite solicitudes simultáneas (¡pensamientos simultáneos!), pero es un paso en la dirección correcta, y estamos lejos de que las API alojadas en la nube cobren tarifas masivas por cada solicitud. No puedo ver la arquitectura funcional, pero puedo ver el camino hacia ella.


Para probar esta teoría, me quité el polvo de mis guantes de programación, abrí un navegador y comencé mi viaje épico hacia una arquitectura de malla con 1000 solicitudes multiproceso.


Los resultados fueron mágicos.

Tu cerebro, no el de ellos

Un cerebro es local, también deberían serlo nuestras API.


Me encanta la voz. Creo que los teclados y los ratones se han convertido en extensiones de nuestros cerebros de mono, pero son artilugios humanos y, por lo tanto, están limitados como interfaz de manera más holística. A medida que la tecnología avance, también lo harán las interfaces y, en algún momento, los teclados, los ratones e incluso las pantallas serán tan obsoletos para nuestros antepasados como lo son las lámparas de aceite y las palomas mensajeras para nosotros.


Entonces, todo lo que quisiera construir tenía que ser controlado por voz. Afortunadamente, existe una API de navegador para eso.


  1. API de reconocimiento de voz (con voz a texto)
  2. API STT
  3. API rápida
  4. Internet (se accede a través de un navegador)


Lo que quería crear era una demostración de interacción de voz controlada por el navegador. Un sitio web inteligente que navega, responde y cambia según el contexto del navegador y la entrada utilizando nada más que mi voz. Sin teclado. Sin ratón. “ Yo, mi voz, un navegador y la API de avisos. “Suena como el peor cuento infantil que he escuchado en mi vida. Probablemente he escrito cosas peores.


Conceptualmente, muy similar al dispositivo Rabbit o al pin Humane AI . Ambas son empresas ambiciosas, pero el problema que comparten es que están intentando construir un 'SO AI'. Una nueva interfaz impulsada por IA en el software. El objetivo me parece demasiado ambicioso: básicamente intentar construir una nueva interfaz en Internet con un poco de IA.


La innovación consiste en iteración, e Internet en 2024 será omnipresente y estará fundamentalmente entrelazada con el navegador. Intentar inventar una interfaz de sistema operativo AI amigable para los humanos es un esfuerzo similar a intentar reinventar Internet. La gente ya se pregunta: '¿Qué puedo hacer que ya no pueda hacer con mi teléfono móvil, pero mejor?'...


La innovación requiere una combinación de lo nuevo y lo no probado, pero con bases sólidas y probadas. Demasiada inestabilidad y los resultados serán territorio de científicos locos, pero si se logra el equilibrio perfecto entre lo probado y lo experimental, a veces, sólo a veces, sucede algo especial.


Captura de pantalla de la API de solicitud de IA del navegador en acción

El paradigma cognitivo en el que nos hemos equivocado en la mayoría de los casos de uso de LLM es que tratamos un compromiso como un apretón de manos. Entrada ← LLM → Salida. Entrada, salida. Sin embargo, en las interacciones humanas reales, tenemos procesos multidimensionales que pueden descomponerse en diferentes pensamientos y acciones.



El encargado de la tienda saluda al cliente ->

[Pensamientos]

¿Qué visten y cómo influye su estilo en sus patrones de compra?

¿Cuál es su grupo demográfico y cómo influye su edad en sus patrones de compra?

¿Cómo influirá el género en sus patrones de compra?

¿Qué tipo de señales sociales o de estado de ánimo están emitiendo?

¿Qué han dicho realmente que influirá en sus decisiones?

[Acción]

Buenos días señor cómo estás



El cliente saluda al asistente ->

[Pensamientos]

Date prisa, estoy ocupado

Espero que tengan lo que quiero (¡leyendo mi mente!)

¿Aceptarán devoluciones?

[Acción]

Buenos días, estoy buscando un par de zapatos.


Hemos profundizado tanto en la informática que nuestros procesos de pensamiento en torno a la disciplina se han vuelto binarios. Pensamos en entradas y salidas, verdaderas y falsas. La verdad es que la interacción y los pensamientos humanos son complicados y llenos de matices, no podemos reducirlos ni simplificarlos a lo binario.


Pero lo que podemos hacer es combinar esta maravillosa tecnología de maneras nuevas y creativas, para derribar las barreras que están homogeneizando la producción y convirtiendo Internet en una basura. convirtiendo Internet en lodo

Muchos de uno, uno de muchos

Hagamos que las interacciones de Gen AI sean multiproceso y matizadas


Mi propuesta de experimentación utiliza la IA incorporada para reflejar las interacciones sociales y humanas. Usemos un ejemplo del que tengo memoria muscular; Construyendo un algoritmo de recomendación para el comercio electrónico.


 Thread 1: Social Cues, sentiment analysis – How long has it taken for user to interact? – Is their browsing behavior aggressive, slow, calm, controlled – Have they arrived from particular source, or looking for something specific? Thread 2: Behavior Cues, interpretation user input – How have they begun the conversation? A greeting? – What tone are they using? Thread 3: User context, data we have about similar demographics and their preferences – What age group do they belong to? How does this influence preferences? – How do they identify? How does this influence preferences? Thread 4: Site context, data we have how other users are using the site and trends – What are the trending products?


No existe una fórmula mágica para interpretar tantos puntos de datos, y nunca la habrá. Los LLM no son un complemento "analizador de sentimientos, clasificador de entidades, experto en todos los oficios". Los LLM son algoritmos generativos que pueden interpretar entradas de forma creativa y lógica. Observe que cada una de las señales en los hilos no son resultados, son preguntas.


Para informar el pensamiento y la IA generativa, necesitamos hacer muchas más preguntas que dar respuestas. Necesitamos ser sofisticados en cuanto a cómo obtener todos nuestros puntos de datos y estructurarnos en la forma en que los incorporamos a nuestros LLM. Entonces, para usar el comportamiento y las señales sociales como ejemplo, necesitaríamos hacer lo siguiente:


  1. Análisis de los sentimientos
  2. Análisis de datos para el comportamiento del navegador frente al sitio y los promedios globales
  3. Extraer datos de referencia de las solicitudes


Todos estos datos se prepararían y procesarían mucho antes de llegar a nuestro LLM. Pero, una vez preparados, podemos ayudar a informar con un mensaje como:



El usuario A es un visitante recurrente que muestra signos de estar un poco molesto. Recuerde esto cuando trate con ellos, asegúrese de asegurarles que tenemos un sistema de devoluciones. [Acción]: Enlace a nuestra política de devoluciones y productos populares.


Una alternativa sería:



El usuario B muestra signos de impaciencia y ha llegado buscando directamente el Producto X. Llévelo a la página del producto y ofrézcale agregarlo al carrito. [Acción]: Navega directamente a la página X y agrega el producto al carrito.


Los LLM, en este sentido, son nuestros agentes e intérpretes, pero el error que comete la gente es asumir que el "algoritmo" es la solución para obtener resultados de calidad. Al igual que los agentes reales, nuestro juicio es tan confiable como los datos y las señales que tenemos para informarles. Haga más preguntas de las que proporcione respuestas.


Esta es una verdad social inalienable y la razón por la que nuestras expectativas actuales sobre los LLM son tan desequilibradas y los agentes están llevando a muchos al abismo de la desilusión. Basura entra, basura sale. No importa qué tan bueno sea el algoritmo.


Sólo para obtener dos grupos de señales para nuestro algoritmo de recomendación, necesitaríamos confiar en una variedad de herramientas especializadas e infraestructura de inteligencia artificial que está más allá de las capacidades de todas las plataformas del planeta, excepto unas pocas. Pero podemos llegar allí de forma iterativa incorporando matices, hilos y sofisticación en la infraestructura que alimenta nuestros LLM.


Y ahora están en el navegador; el futuro nunca ha estado tan cerca.


Captura de pantalla de la API de solicitud de IA del navegador en acción, segunda parte

No construí nada más que un prototipo simple que se burlaba de las señales y aportes sociales. Rocié un poco de datos de usuario y luego le pedí a Prompt API que respondiera a mi voz con una combinación de pensamientos y acciones. No es más que una visión de algo que "podría" funcionar. Pero al proporcionar entradas granulares, detalladas y controladas en nuestra Prompt API, obtenemos comentarios inteligentes, reflexivos y controlados. Es una visión de una infraestructura de malla en la que los microhilos pueden aprender, reforzarse e informarse dinámicamente entre sí.


No funcionará todavía. Pero podría funcionar algún día, y la ingeniería rápida con entrada de voz parece mágica. Es un destino hacia el que vale la pena conducir.

Conclusión

El futuro está más cerca que nunca.


Todavía estamos en las primeras etapas de los LLM y predigo que los avances serán más lentos de lo esperado y que AGI (según cualquier definición razonable) no llegará hasta dentro de generaciones. Pero con cada paso en el camino, surge un mundo de oportunidades. La construcción de una infraestructura altamente eficiente, bien pensada y definida mejora enormemente la calidad de los resultados de nuestros LLM, independientemente del tamaño del modelo o la calidad del algoritmo.


Mover los LLM al navegador también puede entenderse como mover los LLM a Internet. Será barato, fácil de jugar, de usar y de experimentar. Obligar a la gente a pensar en pequeño, a construir de forma más eficiente y a añadir profundidad y matices a sus soluciones es algo bueno, por lo que ni siquiera me preocupan demasiado los modelos 'Micro'. La sofisticación está en el uso, no solo en la herramienta en sí, por lo que este es un gran paso adelante.


He adjuntado mi demostración; es un código desechable que busca una prueba de concepto, construido sobre una IA exploratoria que solo es adecuada para fines de demostración.


Y sólo funciona a veces.


Sin embargo, es una maravillosa visión del futuro.

Enlaces

Más recursos.


repositorio de Github

Publicado originalmente


Conserve esta CTA cuando envíe:

¿Le gustaría intentar responder algunas de estas preguntas? El enlace de la plantilla es AQUÍ . ¿Está interesado en leer el contenido de todas nuestras indicaciones de escritura? Hacer clic AQUÍ .