IA generativa se refere ao uso de inteligência artificial para criar conteúdo, como texto, imagens, música, áudio e vídeos. A IA generativa usa um modelo de aprendizado de máquina (ML) para aprender os padrões e as relações em um conjunto de dados de conteúdo criado por humanos.
Essa tecnologia mostrou recursos incríveis, com aplicativos como o Gemini. Você pode estar se perguntando como implementar ferramentas de IA generativa nos seus produtos da Web.
Um caso de uso comum é fornecer aos usuários uma interface melhor para fazer perguntas sobre o conteúdo de um site. Você pode melhorar muito os resultados da pesquisa do usuário com a ajuda do aprendizado de máquina.
Criar uma pesquisa melhor e específica do site
É possível criar uma interface em que os usuários escrevem perguntas, que são enviadas a um modelo de linguagem grande (LLM), como o Gemini (em inglês) e mostrar as respostas aos usuários.
Suponha que esse recurso exista no site. Um usuário quer saber quais APIs estão incluídas na interoperabilidade 2024 e insere a seguinte consulta:
What are the features included in Interop 24?
Infelizmente, a saída provavelmente será incorreta por alguns motivos:
- O usuário forneceu pouco contexto para a pergunta ao LLM. Portanto, o LLM é mais propenso a retornar respostas incorretas ou alucinações.
- O LLM provavelmente foi treinado antes da criação do Interop 2024 ou da definição dos recursos, então ele não tem conhecimento dessas informações.
Embora seja possível que os LLMs encontrem informações mais atuais, os conjuntos de dados de treinamento de LLMs são inerentemente desatualizados. Manter resultados atualizados pode ser muito demorado e caro.
Usar a engenharia de comando
A engenharia de comando é um conjunto de técnicas para conseguir o melhor resultado de um LLM.
Uma técnica é fornecer mais contexto no comando, tornando o LLM mais propenso a gerar conteúdo relacionado ao contexto.
Continuando com nosso exemplo de interoperabilidade, a primeira etapa é fornecer o conteúdo completo do artigo como contexto. Em seguida, adicione a pergunta como entrada para o LLM responder. Exemplo:
Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)
Input:
What are the features included in Interop 2024?
O Gemini vai gerar algo como o seguinte:
The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL
Essa resposta provavelmente é muito melhor do que uma instrução sem contexto, porque a resposta é baseada no contexto fornecido.
Escalonar com a RAG
Por exemplo, em vez de responder a uma pergunta sobre um único artigo, queremos que o LLM responda mais perguntas sobre o web.dev, usando qualquer artigo como contexto extra. Embora isso seja possível para sites menores, considerando a janela de contexto de 1 milhão de tokens do Gemini 1.5, prompts maiores são mais lentos e mais caros para executar.
As medidas e cobranças de comprimentos de entrada e saída de LLMs são feitas em tokens, que são uma maneira de representar uma sequência comum de caracteres encontrados em uma entrada de texto. O número de tokens geralmente é maior do que o número de palavras. Por exemplo, a entrada no primeiro exemplo tinha 775 palavras, representadas por 1.097 tokens. Diferentes LLMs podem calcular tokens de maneiras diferentes, e a maioria oferece uma API ou um endpoint para calcular o número de tokens para entrada de texto.
Uma solução é fornecer artigos relevantes para o comando do LLM. Essa tarefa precisa ter duas partes:
- Adicione o conteúdo das principais matérias como contexto ao enviar comandos ao LLM.
- Pesquise no conteúdo artigos relacionados a "Quais são os recursos incluídos no Interoperabilidade de 2024?".
Queremos que os resultados do Gemini retornem conteúdo com base nos seguintes artigos:
- Artigo 1: web.dev/blog/submit-your-proposals-for-interop-2024
- Artigo 2: web.dev/blog/interop-2023-wrapup
- Artigo 3: web.dev/blog/interop-2024
A entrada deve ficar assim:
Context:
Article 1:
Over the past two years... (trimmed)
Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)
Article 3:
Following on from the success of Interop 2022... (trimmed)
Input:
What are the features included in Interop 2024?
Esse contexto produz a saída esperada.
* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL
Para quem conhece as técnicas de IA, essa abordagem usa o RAG, uma prática comum para melhorar a probabilidade de respostas reais de ferramentas de IA generativa.
Melhorar a saída com a pesquisa semântica
Embora a técnica RAG possa funcionar com a pesquisa normal de texto completo, há algumas desvantagens na abordagem.
- A pesquisa de texto completo ajuda a IA a encontrar correspondências exatas de palavras-chave. No entanto, os LLMs não conseguem determinar o significado pretendido por trás da consulta de um usuário. Isso pode levar a saídas incompletas ou incorretas.
- Podem ocorrer problemas quando as palavras têm vários significados ou as consultas usam sinônimos. Por exemplo, "banco" (instituição financeira versus banco de areia) pode levar a resultados irrelevantes.
- A pesquisa de texto completo pode gerar resultados que contêm as palavras-chave, mas não estão alinhados com o objetivo do usuário.
A pesquisa semântica é uma técnica para melhorar a precisão da pesquisa, concentrando-se nestes aspectos principais:
- Intenção do usuário: tenta entender por que um usuário está pesquisando algo. O que eles estão tentando encontrar ou alcançar?
- Significado contextual: interpreta palavras e frases em relação ao texto ao redor, além de outros fatores, como a localização do usuário ou o histórico de pesquisa.
- Relação entre conceitos: a pesquisa semântica usa gráficos de conhecimento (grandes redes de entidades relacionadas) e processamento de linguagem natural para entender como as palavras e ideias estão conectadas.
Como resultado, quando você cria ferramentas com pesquisa semântica, a saída da pesquisa depende da finalidade geral da consulta, e não das palavras-chave. Isso significa que uma ferramenta pode determinar documentos relevantes, mesmo quando a palavra-chave exata não está presente. Ele também pode evitar resultados em que a palavra está presente, mas tem um significado diferente.
No momento, é possível implementar duas ferramentas de pesquisa que usam a pesquisa semântica: Vertex AI Search e Algolia AI Search.
Extrair respostas do conteúdo publicado
Você aprendeu a usar a engenharia de comando para permitir que um LLM forneça respostas relacionadas a conteúdo que ele nunca viu, adicionando contexto ao comando. Além disso, você aprendeu a dimensionar essa abordagem de artigos individuais para um corpus inteiro de conteúdo usando a técnica Retrieval-Augmented Generation (RAG). Você aprendeu como a pesquisa semântica pode melhorar ainda mais os resultados das consultas de pesquisa do usuário, implementando melhor o RAG no seu produto.
É um problema conhecido que as ferramentas de IA generativa podem "alucinar", o que as torna, na melhor das hipóteses, às vezes não confiáveis ou, na pior, ativamente prejudiciais para uma empresa. Com essas técnicas, usuários e desenvolvedores podem melhorar a confiabilidade e, talvez, criar confiança na saída desses aplicativos.