paint-brush
Un site Web à commande vocale avec IA intégrée dans Chromepar@tyingshoelaces
345 lectures
345 lectures

Un site Web à commande vocale avec IA intégrée dans Chrome

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

Trop long; Pour lire

J'ai récemment été invité à participer au premier programme de préversion de Chrome Built-in AI (Prompt API). L’IA intégrée est un travail exploratoire pour ce qui pourrait devenir une norme multi-navigateurs pour l’IA embarquée. Il exploite Gemini Nano sur l'appareil ; cela signifie qu'il est intégré à votre navigateur Web et que la génération LLM se produit dans votre environnement de navigateur local.
featured image - Un site Web à commande vocale avec IA intégrée dans Chrome
tyingshoelaces.com HackerNoon profile picture
0-item

Introduction

Aperçu préliminaire de l'API d'invite Chrome.


J'ai récemment été invité à participer au premier programme de préversion de Chrome Built-in AI (Prompt API). L’IA intégrée est un travail exploratoire pour ce qui pourrait devenir une norme multi-navigateurs pour l’IA embarquée. Il exploite Gemini Nano sur l'appareil, ce qui signifie qu'il est intégré à votre navigateur Web et que la génération LLM se produit dans votre environnement de navigateur local.

Avantages

Le bon, le facile, le rapide et le gratuit.


Il y a trois raisons principales pour lesquelles nous souhaitons intégrer l’IA à nos navigateurs. Vitesse, coût et convivialité. En tant qu’API de navigateur native, elle est facile à utiliser. L'accès à l'API Prompt est aussi simple que ces deux lignes de code.


 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?" );


Il ne pourrait pas être plus simple d'obtenir les résultats de l'IA générative là où nous en avons besoin dans le navigateur. J'ai effectué quelques tests pour vérifier le temps d'exécution. Même si j'ai été déçu d'être limité à une seule session (pas de simultanéité), les performances pour la génération de textes longs et compliqués étaient bonnes.


N'oubliez pas qu'il n'y a pas non plus de latence, donc le temps d'exécution va littéralement de la milliseconde pendant laquelle nous avons fait la requête dans notre navigateur jusqu'à l'utilisation du résultat dans notre code.


 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 );


Le temps d'exécution moyen de 5 requêtes enchaînées vers l'IA intégrée est compris entre 3 et 4 secondes par requête complète pour les invites de génération de texte longues. Je l'ai exécuté plusieurs fois (le script est inclus dans le dépôt GitHub), et bien que cela varie selon l'appareil, je m'attendrais également à ce que cela s'améliore lorsque l'API sera optimisée. J'ai remarqué que les tâches de génération JSON plus courtes sont beaucoup plus rapides (200 à 400 ms).


C'est plus qu'acceptable pour la plupart des cas d'utilisation. Nous avons également externalisé la question de l'échelle de nos LLM. Là où l’utilisation des API à l’échelle industrielle est notoirement coûteuse, chaque requête LLM est traitée via une API de navigateur expérimentale. C'est vraiment agréable et ouvre un monde de possibilités.


En permettant aux utilisateurs de Chrome d'intégrer le modèle dans leur navigateur, nous disposons d'un mécanisme de distribution avec des modèles d'IA génératifs préchargés au point d'utilisation et sans avoir besoin de grands serveurs. Ceci est similaire à WebLLM mais avec un avantage significatif car les modèles sont préchargés et regroupés dans nos navigateurs.


Cela signifie que nous pouvons télécharger un modèle unique pour l'utiliser sur « Internet » plutôt que d'être obligés de télécharger un modèle spécifique au fournisseur.


Les énormes points positifs de cette API de navigateur expérimentale sont de solides arguments en faveur de son adoption ; c'est rapide, c'est gratuit (ou payant par le consommateur) et vraiment facile à utiliser.


Mais quels sont les compromis ?

Frais

Rapide et gratuit. Mais quel coût ?


L'API est sans aucun doute prête uniquement pour l'expérimentation, pas pour une utilisation en production. En conséquence, une grande partie de la sortie est moins raffinée que ce à quoi on pourrait s’attendre pour des modèles plus matures et hébergés. Les limitations de taille ainsi que la nature généraliste du modèle signifient que nous n'avons pas de résultats soignés.


Cela conduit à des frustrations qui nous ramènent aux débuts des API d’IA générative. Je me suis retrouvé à utiliser de nombreuses logiques d'ingénierie et de validation rapides pour obtenir des réponses JSON fiables. Toutes les quelques requêtes, l'API semble ne pas répondre, il est assez facile de confondre la réponse, auquel cas le modèle explose.


Il est également mentionné que étant donné que ce modèle est intégré au navigateur ; cela ouvre une certaine valeur en tant que modèle « privé ». Je ne suis pas sûr que cela soit pertinent pour la plupart des cas d'utilisation, car les sites Web publics continueront d'interagir avec leurs serveurs et, pour l'utilisateur moyen, il est difficile d'être certain que les données ne quitteront jamais l'environnement local. Cela dit, pour un usage interne et des systèmes non publics fonctionnant via un navigateur (environnements d'entreprise par exemple), cela pourrait être un point bonus.


Le manque de sophistication des réponses dû au modèle plus petit signifie que nous devons être très prudents quant aux tâches pour lesquelles nous l'utilisons. Les architectures du futur optimiseront leurs implémentations d’IA générative afin d’utiliser le bon poids (et donc le bon coût) pour la bonne tâche. J'envisage plusieurs petits LLM hautement optimisés et orientés tâches, chacun étant utilisé pour un résultat spécifique.


Cela dit, tout est pardonnable, d’autant plus que l’API est explicitement conçue pour l’expérimentation et non pour une utilisation en production.


Le bon
-Coût
-Échelle
-Vitesse
-Utilisation
-Privé

Le mauvais
-Sacrifice en qualité
-Coût de mise en œuvre

À titre d'exemple, si nous voulions une analyse approfondie de l'actualité, nous aurions besoin d'une grande fenêtre contextuelle et d'un flux RAG sophistiqué pour informer le résultat ; L’IA embarquée n’est certainement pas la bonne approche. Google y fait allusion dans ses ressources.


Mais j'ai une théorie que je voulais mettre à l'épreuve ; une théorie farfelue, folle et terriblement amusante ; et un micro-navigateur hébergé par LLM était l'endroit idéal pour le faire.

Une nouvelle façon de penser

Des neurones, pas du cerveau


Il y a une petite démangeaison que je voulais gratter depuis un moment. Et si nous utilisions mal les LLM ? En fait, que se passe-t-il si nous nous trompons de modèle conceptuel ?


Alors que nous cherchons à obtenir des fenêtres contextuelles toujours plus grandes avec des données d'entraînement croissantes, nous essayons de faire évoluer l'IA générative verticalement. Plus grand, plus fort, plus rapide, meilleur. J'en reste bouche bée lorsque je vois des gens demander gentiment des fenêtres de contexte suffisamment grandes pour brancher l'intégralité d'Internet, puis demander à l'algorithme du milieu de sélectionner exactement les informations et les résultats que nous souhaitons de cet énorme lac. Et plus vite.


Nous traitons chaque entrée dans un LLM comme une API, le texte entre, la magie opère et le texte sort. Cette magie du milieu, nous l’appelons intelligence. Plus il y a de texte, plus la magie est forte et meilleur est le résultat. C’est notre voie actuelle à suivre.


Je ne peux m'empêcher de me demander si nous nous concentrons sur une mauvaise échelle ou un mauvais zoom, une interprétation erronée de la cognition.


Le problème avec la réflexion en général, en particulier la production créative (qui est exactement ce qu'est la génération de texte), c'est que ce n'est pas un processus si simple. Ce n'est pas un seul fil. Nous le constatons déjà dans les modèles les plus récents ; par exemple, dans mon analyse de l'invite du système Claude 3.5 Sonnet , nous voyons que bon nombre des avancées récentes dans la sortie LLM ne sont probablement pas liées à l'algorithme lui-même, mais à l'infrastructure, aux systèmes et aux réglages qui guident contextuellement la sortie.


Je voulais essayer un concept de connexions minuscules et rapides reliées entre elles pour construire quelque chose de plus grand. En fin de compte, une fenêtre contextuelle de 100 000 équivaut à 1 000 - 100 fois. Je soupçonne que même si nous nous concentrons sur le grandiose, la clé réside dans les détails petits et précis qui s’assemblent pour former quelque chose de plus grand. Cela correspond bien plus à mon paradigme mental d’intelligence qu’à un « cerveau » de machine sensible.


Cela n'a pas été possible jusqu'à présent en raison de la relative inefficacité des modèles en général et de leur coût prohibitif. Imaginez Bob dans les comptes alors que nous lui disons que nous allons multiplier par 100 le nombre de requêtes vers ChatGPT car nous théorisons que les microtransactions dans une architecture maillée amélioreront la qualité de nos systèmes d'IA. Je ne pense pas que Bob travaille chez OpenAI, mais pour le reste d'entre nous, ce n'est tout simplement pas réalisable.


Même un modèle intégré petit et efficace dans le navigateur n'est pas vraiment prêt à gérer mes théories. Ce n'est pas assez rapide et ne permet pas de requêtes simultanées (pensées concurrentes !), mais c'est un pas dans la bonne direction, et nous sommes loin des API hébergées dans le cloud facturant des frais énormes pour chaque requête. Je ne vois pas l'architecture fonctionnelle, mais je peux voir le chemin qui y mène.


Pour tester cette théorie, j'ai dépoussiéré mes gants de programmation, ouvert un navigateur et commencé mon voyage épique vers une architecture maillée avec 1 000 requêtes multithread.


Les résultats ont été magiques.

Votre cerveau, pas le leur

Un cerveau est local, nos API devraient l’être aussi.


J'adore la voix. Je pense que les claviers et les souris sont devenus des extensions de notre cerveau de singe, mais ce sont des engins humains et sont donc limités en tant qu'interface de manière plus holistique. À mesure que la technologie progresse, les interfaces évolueront également et, à un moment donné, les claviers, les souris et même les écrans deviendront aussi obsolètes pour nos ancêtres que les lampes à huile et les pigeons voyageurs le sont pour nous.


Donc, tout ce que je voulais construire devait être contrôlé par la voix. Heureusement, il existe une API de navigateur pour cela.


  1. API de reconnaissance vocale (avec synthèse vocale)
  2. API STT
  3. API d'invite
  4. Internet (accessible via un navigateur)


Ce que je voulais créer, c'était une démo d'interaction vocale contrôlée par un navigateur. Un site Web intelligent qui navigue, répond et change en fonction du contexte du navigateur et de la saisie en utilisant rien d'autre que ma voix. Pas de clavier. Pas de souris. « Moi, ma voix, un navigateur et l'API d'invite. « Cela ressemble à la pire histoire pour enfants que j'ai jamais entendue. J'ai probablement écrit pire.


Conceptuellement, très similaire au dispositif Rabbit ou à la broche Humane AI . Ce sont deux projets ambitieux, mais le problème qu’ils partagent est qu’ils tentent de créer un « système d’exploitation IA ». Une nouvelle interface alimentée par l'IA dans le logiciel. Je trouve l'objectif trop grandiose, essayer essentiellement de créer une nouvelle interface sur Internet avec une pincée d'IA.


L’innovation est une question d’itération, et Internet en 2024 est omniprésent et fondamentalement lié au navigateur. Essayer d’inventer une interface AI OS conviviale est un effort similaire à celui de réinventer Internet. Les gens se demandent déjà : « Que puis-je faire que je ne peux pas faire avec mon téléphone portable, mais en mieux ? »...


L’innovation nécessite un mélange de nouveautés et de nouveautés, mais avec des bases solides et éprouvées. Trop d'instabilité et les résultats seront du domaine des scientifiques fous, mais trouvez l'équilibre parfait entre ce qui a été prouvé et ce qui est expérimental, et parfois, juste parfois, quelque chose de spécial se produit.


Capture d'écran de l'API d'invite de l'IA du navigateur en action

Le paradigme cognitif sur lequel nous nous sommes trompés dans la plupart des cas d'utilisation du LLM est que nous traitons un engagement comme une poignée de main. Entrée ← LLM → Sortie. Entrée, sortie. Cependant, dans les interactions humaines réelles, nous avons des processus multidimensionnels qui peuvent être décomposés en différentes pensées et actions.


"
Le préposé au magasin accueille le client ->

[Pensées]

Que portent-ils, comment leur style influence-t-il leurs habitudes d'achat

Quelle est leur démographie, comment leur âge influence-t-il leurs habitudes d'achat

Comment le genre influencera-t-il leurs habitudes d'achat

Quel genre d'humeur/signaux sociaux émettent-ils

Qu’ont-ils réellement dit qui influencera leurs choix ?

[Action]

Bonjour monsieur, comment allez-vous


"
Le client salue le préposé ->

[Pensées]

Dépêche-toi, je suis occupé

J'espère qu'ils ont ce que je veux (en lisant dans mes pensées !)

Vont-ils accepter les retours ?

[Action]

Bonjour, je cherche une paire de chaussures.


Nous sommes allés si profondément dans l'informatique que nos processus de pensée autour de la discipline sont devenus binaires. Nous pensons aux entrées et aux sorties, vrais et faux. La vérité est que l’interaction et les pensées humaines sont compliquées et nuancées, nous ne pouvons pas les réduire ou les simplifier au binaire.


Mais ce que nous pouvons faire, c’est intégrer cette merveilleuse technologie de manière nouvelle et créative, afin de briser les barrières qui homogénéisent la production et transforment Internet en bouillie. transformer Internet en bouillie

Plusieurs d'un, un parmi plusieurs

Rendons les interactions Gen AI multithreads et nuancées


Ma proposition d'expérimentation utilise l'IA intégrée pour refléter les interactions sociales et humaines. Prenons un exemple dont j'ai une mémoire musculaire ; construire un algorithme de recommandation pour le commerce électronique.


 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?


Il n’existe pas de solution miracle pour interpréter autant de points de données, et il n’y en aura jamais. Les LLM ne sont pas un plugin « analyseur de sentiments, classificateur d'entités, touche-à-tout ». Les LLM sont des algorithmes génératifs capables d'interpréter les entrées de manière créative et logique. Notez que chacun des signaux des fils de discussion ne sont pas des sorties, ce sont des questions.


Pour éclairer la réflexion et l’IA générative, nous devons poser bien plus de questions que fournir de réponses. Nous devons être sophistiqués sur la façon d'obtenir tous nos points de données et structurés de manière à les intégrer dans nos LLM. Ainsi, pour utiliser le comportement et les signaux sociaux comme exemple, nous devrions procéder comme suit :


  1. Analyse des sentiments
  2. Analyse des données sur le comportement du navigateur par rapport aux moyennes du site et mondiales
  3. Extraire les données de référence des demandes


Toutes ces données seraient préparées et traitées bien avant d'être transmises à notre LLM. Mais, une fois préparés, nous pouvons vous aider à informer avec une invite telle que :



L'utilisateur A est un visiteur récurrent qui montre des signes légèrement contrariés. N'oubliez pas cela lorsque vous traitez avec eux, assurez-vous de les rassurer sur le fait que nous disposons d'un système de retour. [Action] : Lien vers notre politique de retour et nos produits populaires.


Une alternative serait :


"
L'utilisateur B montre des signes d'impatience et est arrivé à la recherche directement du produit X. Amenez-le à la page du produit et proposez-lui de l'ajouter au panier. [Action] : Accédez directement à la page X et ajoutez le produit au panier.


Les LLM, en ce sens, sont nos agents et nos interprètes, mais l'erreur que font les gens est de supposer que « l'algorithme » est la solution pour un résultat de qualité. Tout comme les vrais agents, notre jugement est aussi fiable que les données et les indices dont nous disposons pour les informer. Posez plus de questions que vous n’en fournissez de réponses.


C’est une vérité sociale inaliénable et c’est la raison pour laquelle nos attentes actuelles à l’égard des LLM sont si décalées et que les agents conduisent beaucoup de personnes au creux de la désillusion. Déchets, déchets dehors. Peu importe la qualité de l'algorithme.


Juste pour obtenir deux groupes d’indices pour notre algorithme de recommandation, nous aurions besoin de nous appuyer sur une gamme d’outils spécialisés et d’infrastructures d’IA qui dépassent les capacités de presque toutes les plateformes de la planète. Mais nous pouvons y arriver de manière itérative en intégrant des nuances, des fils conducteurs et une sophistication dans l'infrastructure qui alimente nos LLM.


Et maintenant, ils sont dans le navigateur ; l'avenir n'a jamais été aussi proche.


Capture d'écran de l'API d'invite AI du navigateur en action, deuxième partie

Je n'ai construit qu'un simple prototype se moquant des signaux et des entrées sociales. J'ai saupoudré un peu de données utilisateur, puis j'ai demandé à l'API Prompt de répondre à ma voix avec une combinaison de pensées et d'actions. Ce n'est rien de plus qu'une vision de quelque chose qui « pourrait » fonctionner. Mais en fournissant des entrées granulaires, détaillées et contrôlées dans notre API Prompt, nous obtenons des commentaires intelligents, réfléchis et contrôlés. Il s'agit d'une vision d'une infrastructure maillée dans laquelle les micro-threads peuvent apprendre, se renforcer et s'informer de manière dynamique.


Cela ne fonctionnera pas encore. Mais cela pourrait fonctionner un jour, et l’ingénierie rapide avec saisie vocale semble magique. C'est une destination qui vaut la peine d'être dirigée.

Conclusion

L’avenir est plus proche que jamais.


Nous en sommes encore aux premiers stades des LLM, et je prédis que les progrès seront plus lents que prévu et que l'AGI (selon toute définition raisonnable) n'arrivera pas avant des générations. Mais à chaque pas sur la route, un monde d’opportunités se présente. La construction d'une infrastructure hautement efficace, bien pensée et définie améliore considérablement la qualité des résultats de nos LLM, quelle que soit la taille du modèle ou la qualité de l'algorithme.


Le déplacement des LLM vers le navigateur peut également être compris comme le déplacement des LLM vers Internet. Ce sera bon marché, facile à jouer, à utiliser et à expérimenter. Forcer les gens à penser plus petit, à construire plus efficacement et à ajouter de la profondeur et des nuances à leurs solutions est une bonne chose, donc je ne suis même pas trop inquiet des modèles « micro ». La sophistication réside dans l’utilisation et pas seulement dans l’outil lui-même, c’est donc un pas de géant en avant.


J'ai joint ma démo ; il s'agit d'un code jetable examinant une preuve de concept, construit sur une IA exploratoire qui ne convient qu'à des fins de démonstration.


Et ça ne marche que parfois.


Pourtant, c’est une merveilleuse vision de l’avenir.

Liens

Davantage de ressources.


Dépôt Github

Publié initialement


Veuillez conserver ce CTA lorsque vous soumettez :

Souhaitez-vous tenter de répondre à certaines de ces questions ? Le lien pour le modèle est ICI . Vous souhaitez lire le contenu de toutes nos invites d’écriture ? Cliquez sur ICI .