Visualização antecipada da API de prompt do Chrome.
Recentemente, fui convidado para o programa de visualização antecipada da IA integrada do Chrome (API Prompt). A IA integrada é um trabalho exploratório para o que potencialmente se tornará um padrão entre navegadores para IA incorporada. Ele aproveita o Gemini Nano no dispositivo, o que significa que ele é integrado ao seu navegador da web e a geração do LLM ocorre no ambiente do navegador local.
O bom, o fácil, o rápido e o gratuito.
Existem três razões principais para querermos IA incorporada em nossos navegadores. Velocidade, custo e usabilidade. Por ser uma API nativa do navegador, é fácil de usar. Acessar a API Prompt é tão simples quanto essas duas linhas 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?" );
Não poderia ser mais fácil obter resultados de IA generativa onde precisamos deles no navegador. Fiz alguns testes para verificar o tempo de execução. Embora eu tenha ficado desapontado por estarmos restritos a uma única sessão (sem simultaneidade), o desempenho para a geração complicada de textos longos foi bom.
Lembre-se, também não há latência, então o tempo de execução é literalmente desde o milissegundo que fizemos a solicitação em nosso navegador até a utilização do resultado em nosso 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 );
O tempo médio de execução para 5 solicitações encadeadas para a IA integrada é de 3 a 4 segundos por solicitação completa para prompts de geração de texto longo. Executei isso várias vezes (o script está incluído no repositório GitHub) e, embora varie de acordo com o dispositivo, também espero que melhore quando a API for otimizada. Percebi que tarefas mais curtas de geração de JSON são muito mais rápidas (200-400ms).
Isso é mais do que aceitável para a maioria dos casos de uso. Também colaboramos com a questão da escala para nossos LLMs. Onde o uso de API em escala industrial é extremamente caro, cada solicitação LLM é tratada por meio de uma API de navegador experimental. É muito bom e abre um mundo de possibilidades.
Ao fazer com que os usuários do Chrome incorporem o modelo em seus navegadores, temos um mecanismo de distribuição com modelos generativos de IA pré-carregados no ponto de uso e sem a necessidade de grandes servidores. Isso é semelhante ao WebLLM, mas com a vantagem significativa de que os modelos são pré-carregados e agrupados em nossos navegadores.
Isso significa que podemos baixar um único modelo para uso “na Internet”, em vez de sermos forçados a baixar um modelo específico do fornecedor.
Os grandes pontos positivos desta API experimental de navegador são fortes argumentos para adoção; é rápido, gratuito (ou pago pelo consumidor) e muito fácil de usar.
Mas quais são as compensações?
Rápido e gratuito. Mas qual é o custo?
A API está assumidamente pronta apenas para experimentação, não para uso em produção. Como resultado, grande parte da produção é menos refinada do que esperaríamos de modelos mais maduros e hospedados. As limitações de tamanho aliadas à natureza generalista do modelo significam que não temos resultados refinados.
Isso leva a frustrações que nos levam de volta aos primeiros dias das APIs de IA generativa. Eu me vi usando muita engenharia imediata e lógica de validação para obter respostas JSON confiáveis. A cada poucas solicitações, a API parece não responder, é muito fácil confundir a resposta e, nesse caso, o modelo falha.
Há também menção ao fato de que dado que este modelo está embutido no navegador; abre algum valor como sendo um modelo “privado”. Não tenho certeza se isso é relevante para a maioria dos casos de uso, pois os sites públicos ainda interagirão com seus servidores e, para o usuário médio, é difícil ter certeza de que os dados nunca sairão do ambiente local. Dito isto, para sistemas de uso interno e não públicos que operam através de um navegador (ambientes corporativos, por exemplo), este poderia ser um ponto bônus.
A falta de sofisticação nas respostas devido ao modelo menor significa que temos que ter muito cuidado com as tarefas para as quais o utilizamos. As arquiteturas do futuro otimizarão suas implementações generativas de IA para usar o peso certo (e, portanto, o custo) para a tarefa certa. Prevejo vários LLMs pequenos, altamente ajustados e orientados para tarefas, cada um sendo usado para um resultado específico.
Dito isto, tudo é perdoável, especialmente porque a API é explicitamente projetada para experimentação, não para uso em produção.
O bom
-Custo
-Escala
-Velocidade
-Usabilidade
-Privado
O mal
-Sacrifício em qualidade
-Custo de implementação
Por exemplo, se quiséssemos uma análise profunda dos assuntos atuais, precisaríamos de uma grande janela de contexto e de um fluxo RAG sofisticado para informar o resultado; A IA incorporada quase certamente não é a abordagem correta. O Google alude a isso em seus recursos.
Mas tenho uma teoria que queria testar; uma teoria estúpida, louca e tremendamente divertida; e um LLM hospedado em micronavegador era o lugar perfeito para fazer isso.
Neurônios, não cérebro
Houve uma pequena coceira que eu queria coçar há algum tempo. E se estivermos usando LLMs de forma errada? Na verdade, e se tivermos errado o modelo conceitual?
À medida que corremos por janelas de contexto cada vez maiores com a expansão dos dados de treinamento, tentamos dimensionar a IA generativa verticalmente. Maior, mais forte, mais rápido, melhor. Meu queixo cai quando vejo pessoas pedindo gentilmente por janelas de contexto grandes o suficiente para conectar toda a Internet e, em seguida, pedir ao algoritmo do meio para escolher exatamente as informações e resultados que queremos deste enorme lago. E mais rápido.
Tratamos cada entrada em um LLM como uma API, o texto entra, a mágica acontece e o texto sai. Essa magia do meio chamamos de inteligência. Quanto mais texto entrar, mais alta será a magia e melhor será o resultado. Este é o nosso caminho atual.
Não posso deixar de me perguntar se estamos focados na escala ou no zoom errado, uma interpretação errônea da cognição.
O problema do pensamento em geral, especialmente da produção criativa (que é exatamente o que é a geração de texto), é que não é um processo tão simples. Não é um único tópico. Já estamos vendo isso nos modelos mais novos; por exemplo, em minha análise do prompt do sistema Claude 3.5 Sonnet , vemos que muitos dos avanços recentes na produção do LLM provavelmente não têm a ver com o algoritmo em si, mas com a infraestrutura, os sistemas e o ajuste que guiam contextualmente a saída.
Tenho vontade de experimentar um conceito de conexões minúsculas e rápidas interligadas para construir algo maior. No final, uma janela de contexto de 100k é igual a 1k - 100 vezes. Suspeito que, mesmo quando nos concentramos no grandioso, a chave está nos detalhes pequenos e precisos, mesclados para formar algo maior. Isso se encaixa muito mais no meu paradigma mental de inteligência do que no “cérebro” de uma máquina senciente.
Isto não foi possível até agora devido à relativa ineficiência dos modelos em geral e ao custo proibitivo. Imagine Bob nas contas enquanto dizemos a ele que teremos 100x o número de solicitações ao ChatGPT, pois teorizamos que microtransações em uma arquitetura mesh melhorarão a qualidade de nossos sistemas de IA. Não creio que Bob trabalhe na OpenAI, mas para o resto de nós isso simplesmente não é viável.
Mesmo um modelo incorporado pequeno e eficiente no navegador não está realmente pronto para lidar com minha teorização. Não é rápido o suficiente e não permite solicitações simultâneas (pensamentos simultâneos!), mas é um passo na direção certa, e estamos longe de APIs hospedadas em nuvem cobrando taxas altíssimas para cada solicitação. Não consigo ver a arquitetura funcional, mas consigo ver o caminho para ela.
Para testar essa teoria, tirei a poeira das minhas luvas de programação, abri um navegador e comecei minha jornada épica rumo a uma arquitetura mesh com 1.000 solicitações multithread.
Os resultados foram mágicos.
Um cérebro é local, assim como nossas APIs deveriam ser.
Eu amo voz. Acho que teclados e mouses se tornaram extensões de nossos cérebros de macacos, mas são engenhocas humanas e, portanto, são limitados como interface de forma mais holística. À medida que a tecnologia avança, o mesmo acontecerá com as interfaces e, em algum momento, teclados, ratos e até ecrãs serão tão obsoletos para os nossos antepassados como as lâmpadas de petróleo e os pombos-correio são para nós.
Então, tudo o que eu quisesse construir teria que ser controlado por voz. Felizmente, existe uma API de navegador para isso.
O que eu queria construir era uma demonstração de interação por voz controlada pelo navegador. Um site inteligente que navega, responde e muda com base no contexto do navegador e na entrada usando nada além da minha voz. Sem teclado. Sem rato. “ Eu, minha voz, um navegador e a API de prompt. ”Parece a pior história infantil que já ouvi. Provavelmente já escrevi pior.
Conceitualmente, muito semelhante ao dispositivo Rabbit ou ao pino Humane AI . Ambos são empreendimentos ambiciosos, mas o problema que partilham é que estão a tentar construir um “AI OS”. Uma nova interface alimentada por IA no software. Acho o objetivo muito grandioso, essencialmente tentar construir uma nova interface na Internet com uma pitada de IA.
A inovação tem a ver com iteração, e a Internet em 2024 é onipresente e fundamentalmente interligada ao navegador. Tentar inventar uma interface AI OS amigável é um esforço semelhante a tentar reinventar a Internet. As pessoas já estão perguntando: 'O que posso fazer que já não consigo com meu celular, mas melhor'...
A inovação requer uma mistura do novo e do não testado, mas com bases sólidas e comprovadas. Muita instabilidade e os resultados serão território de cientistas malucos, mas consiga o equilíbrio certo entre o comprovado e o experimental e, às vezes, apenas às vezes, algo especial acontece.
O paradigma cognitivo que erramos na maioria dos casos de uso de LLM é que tratamos um compromisso como um aperto de mão. Entrada ← LLM → Saída. Entrada, saída. Contudo, com interações humanas reais, temos processos multidimensionais que podem ser divididos em diferentes pensamentos e ações.
“
Atendente de loja cumprimenta cliente ->
[Pensamentos]
O que eles estão vestindo, como seu estilo influencia seus padrões de compra
Qual é o seu grupo demográfico, como a idade influencia seus padrões de compra
Como o gênero influenciará seus padrões de compra
Que tipo de humor/sinais sociais eles estão emitindo
O que eles realmente disseram que influenciará suas escolhas
[Ação]
Bom dia senhor, como vai
“
Cliente cumprimenta atendente ->
[Pensamentos]
Apresse-se, estou ocupado
Espero que eles tenham o que eu quero (lendo minha mente!)
Eles aceitarão devoluções?
[Ação]
Bom dia, estou procurando um par de sapatos.
Nós nos aprofundamos tanto na ciência da computação que nossos processos de pensamento em torno da disciplina se tornaram binários. Pensamos em entradas e saídas, verdadeiras e falsas. A verdade é que a interação e os pensamentos humanos são complicados e cheios de nuances, não podemos reduzi-los ou simplificá-los para binários.
Mas o que podemos fazer é combinar esta maravilhosa tecnologia de formas novas e criativas, para quebrar as barreiras que estão a homogeneizar os resultados e a transformar a Internet numa lama. transformando a internet em lama
Vamos tornar as interações da Geração AI multithread e diferenciadas
Minha proposta de experimentação usa IA integrada para espelhar as interações sociais e humanas. Vamos usar um exemplo do qual tenho memória muscular; construindo um algoritmo de recomendação para e-commerce.
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?
Não existe solução mágica para interpretar tantos pontos de dados, e nunca existirá. LLMs não são um plugin “analisador de sentimento, classificador de entidade, pau para toda obra”. LLMs são algoritmos generativos que podem interpretar entradas de forma criativa e lógica. Observe que cada uma das dicas nos threads não são saídas, são perguntas.
Para informar o pensamento e a IA generativa, precisamos de fazer muito mais perguntas do que fornecer respostas. Precisamos ser sofisticados sobre como obter todos os nossos pontos de dados e estruturados na forma como os alimentamos em nossos LLMs. Portanto, para usar sinais comportamentais e sociais como exemplo, precisaríamos fazer o seguinte:
Todos esses dados seriam preparados e processados muito antes de irem para nosso LLM. Mas, uma vez preparados, podemos ajudar a informar com um aviso como:
O usuário A é um visitante que retorna e mostra sinais de estar um pouco chateado. Lembre-se disso ao lidar com eles, certifique-se de garantir que temos um sistema de devolução. [Ação]: Link para nossa política de devolução e produtos populares.
Uma alternativa seria:
“
O usuário B está dando sinais de impaciência e chegou procurando diretamente pelo Produto X. Leve-o à página do produto e ofereça-se para adicioná-lo ao carrinho. [Ação]: Navegue direto para a página X e adicione o produto ao carrinho.
Os LLMs, nesse sentido, são nossos agentes e intérpretes, mas o erro que as pessoas cometem é presumir que o “algoritmo” é a solução para resultados de qualidade. Tal como acontece com os agentes reais, o nosso julgamento é tão fiável quanto os dados e as pistas que temos para os informar. Faça mais perguntas do que forneça respostas.
Esta é uma verdade social inalienável e a razão pela qual as nossas actuais expectativas em relação aos LLMs estão tão desequilibradas e os agentes estão a levar muitos ao fundo da desilusão. Entra lixo, sai lixo. Não importa quão bom seja o algoritmo.
Apenas para obter dois grupos de dicas para o nosso algoritmo de recomendação, precisaríamos contar com uma série de ferramentas especializadas e infraestrutura de IA que está além das capacidades de todas as plataformas, exceto algumas no planeta. Mas podemos chegar lá de forma iterativa, incorporando nuances, threads e sofisticação na infraestrutura que alimenta nossos LLMs.
E agora eles estão no navegador; o futuro nunca esteve tão próximo.
Não construí nada além de um protótipo simples zombando de sugestões e informações sociais. Espalhei alguns dados do usuário e pedi à API Prompt que respondesse à minha voz com uma combinação de pensamentos e ações. Nada mais é do que uma visão de algo que “poderia” funcionar. Mas, ao fornecer entradas granulares, detalhadas e controladas em nossa API Prompt, obtemos feedback inteligente, ponderado e controlado. É uma visão de uma infraestrutura mesh, pois os microthreads podem aprender, reforçar e informar uns aos outros de forma dinâmica.
Ainda não vai funcionar. Mas pode funcionar algum dia, e a engenharia imediata com entrada de voz parece mágica. É um destino que vale a pena dirigir.
O futuro está mais próximo do que nunca.
Ainda estamos nos estágios iniciais dos LLMs e prevejo que os avanços serão mais lentos do que o esperado e que a AGI (por qualquer definição razoável) demorará gerações para chegar. Mas a cada passo no caminho surge um mundo de oportunidades. Construir uma infraestrutura altamente eficiente, bem pensada e definida melhora enormemente a qualidade do resultado de nossos LLMs, independentemente do tamanho do modelo ou da qualidade do algoritmo.
Mover LLMs para o navegador também pode ser entendido como mover LLMs para a internet. Será barato, fácil de jogar, de usar e experimentar. Forçar as pessoas a pensarem em menor escala, a construírem de forma mais eficiente e a adicionarem profundidade e nuances às suas soluções é uma coisa boa, por isso não estou muito preocupado com os modelos 'Micro'. A sofisticação está no uso e não apenas na ferramenta em si, então este é um grande salto em frente.
Anexei minha demonstração; é um código descartável que busca uma prova de conceito, construído sobre uma IA exploratória que só é adequada para fins de demonstração.
E só funciona às vezes.
No entanto, é uma visão maravilhosa do futuro.
Mais recursos.
Guarde este CTA ao enviar:
Você gostaria de tentar responder a algumas dessas perguntas? O link para o modelo é