Detalhes do conjunto de dados
Parquet disponíveis em huggingface.co. Os arquivos têm os nomes 0.parquet, 1.parquet, …, 25.parquet. Para ver algumas linhas de exemplo do conjunto de dados, acesse esta página do Hugging Face.
Criar tabela
dbpedia para armazenar o ID do artigo, o título, o texto e o vetor de embedding:
Carregar tabela
dbpedia:
Busca semântica
- Receber uma consulta de busca de um usuário em linguagem natural, por exemplo, “Fale-me sobre algumas viagens cênicas de trem”, “Romances de suspense ambientados na Europa” etc.
- Gerar um vetor de embedding para a consulta de busca usando o modelo LLM
- Encontrar os vizinhos mais próximos do vetor de embedding da busca no conjunto de dados
Faça uma busca por similaridade vetorial por força bruta
dbpedia,
uma técnica rápida para observar visualmente a busca semântica é usar vetores de embedding do próprio conjunto de dados como vetores de
busca. Por exemplo:
Query
Response
max_threads=1 para identificar o uso real de compute
e o uso da largura de banda de armazenamento (extrapole isso para um conjunto de dados de produção com milhões de vetores!)
Criar um índice de similaridade vetorial
vector:
Realizar busca ANN
Query
Response
Gerando embeddings para consulta de busca
dbpedia
como vetor de busca. Em aplicações reais, o vetor de busca precisa ser
gerado para uma consulta inserida pelo usuário, que pode estar em linguagem natural. O vetor de busca
deve ser gerado usando o mesmo modelo de LLM usado para gerar vetores de embedding
para o dataset.
Um exemplo de script em Python é mostrado abaixo para demonstrar como chamar programaticamente a API da OpenAI para
gerar vetores de embedding usando o modelo text-embedding-3-large. O vetor de embedding de busca
é então passado como argumento para a função cosineDistance() na consulta SELECT.
A execução do script exige que uma API key da OpenAI esteja definida na variável de ambiente OPENAI_API_KEY.
A API key da OpenAI pode ser obtida após se registrar em https://platform.openai.com.
Aplicativo de demonstração de perguntas e respostas
- Recebe um tópico como entrada do usuário
- Gera um vetor de embedding para o tópico chamando a API da OpenAI com o modelo
text-embedding-3-large - Recupera artigos/documentos altamente relevantes da Wikipedia usando busca por similaridade vetorial na tabela
dbpedia - Recebe do usuário uma pergunta aberta, em linguagem natural, relacionada ao tópico
- Usa a API de Chat
gpt-3.5-turboda OpenAI para responder à pergunta com base no conhecimento contido nos documentos recuperados na etapa #3. Os documentos recuperados na etapa #3 são passados como contexto para a API de Chat e constituem o elo principal da IA generativa.
OPENAI_API_KEY. A API key da OpenAI pode ser obtida após o cadastro em https://platform.openai.com.