Uma técnica simples torna a memória RAG ~32x eficiente! - Perplexidade o usa em seu índice de pesquisa - O Azure o usa em seu pipeline de pesquisa - HubSpot usa em seu assistente de IA Vamos entender como usá-lo em sistemas RAG (com código):
Hoje, vamos construir um sistema RAG que consulta vetores 36M+ em <30ms usando quantização binária. Pilha de tecnologia: - @llama_index para orquestração - @milvusio como o vetor DB - @beam_cloud para implantação sem servidor - @Kimi_Moonshot Kimi-K2 como o LLM hospedado no Groq Vamos construí-lo!
Aqui está o fluxo de trabalho: - Ingerir documentos e gerar incorporações binárias. - Crie um índice de vetor binário e armazene incorporações no banco de dados vetorial. - Recupere documentos semelhantes ao top-k para a consulta do usuário. - O LLM gera uma resposta com base no contexto adicional. Vamos implementar isso!
0️⃣ Configurar Groq Antes de começarmos, armazene sua chave de API Groq em um arquivo .env e carregue-a em seu ambiente para aproveitar a inferência de IA mais rápida do mundo. Verifique isso 👇
1️⃣ Carregar dados Ingerimos nossos documentos usando a ferramenta de leitura de diretório do LlamaIndex. Ele pode ler vários formatos de dados, incluindo Markdown, PDFs, documentos do Word, apresentações do PowerPoint, imagens, áudio e vídeo. Verifique isso 👇
2️⃣ Gerar incorporações binárias Em seguida, geramos incorporações de texto (em float32) e as convertemos em vetores binários, resultando em uma redução de 32x na memória e no armazenamento. Isso é chamado de quantização binária. Verifique esta implementação 👇
3️⃣ Indexação vetorial Depois que nossa quantização binária é feita, armazenamos e indexamos os vetores em um banco de dados vetorial Milvus para recuperação eficiente. Os índices são estruturas de dados especializadas que ajudam a otimizar o desempenho das operações de recuperação de dados. Verifique isso 👇
4️⃣ Recuperação Na etapa de recuperação, nós: - Incorpore a consulta do usuário e aplique quantização binária a ela. - Use a distância de Hamming como métrica de pesquisa para comparar vetores binários. - Recupere os 5 principais pedaços mais semelhantes. - Adicione as partes recuperadas ao contexto. Verifique isso👇
5️⃣ Geração Por fim, construímos um pipeline de geração usando o modelo de instrução Kimi-K2, servido na inferência de IA mais rápida pelo Groq. Especificamos a consulta e o contexto recuperado em um modelo de prompt e o passamos para o LLM. Verifique isso 👇
6️⃣ Implantação com Beam O Beam permite a implantação ultrarrápida sem servidor de qualquer fluxo de trabalho de IA. Assim, encapsulamos nosso aplicativo em uma interface Streamlit, especificamos as bibliotecas Python e as especificações de computação para o contêiner. Por fim, implantamos o aplicativo em algumas linhas de código👇
7️⃣ Execute o aplicativo O Beam inicia o contêiner e implanta nosso aplicativo streamlit como um servidor HTTPS que pode ser facilmente acessado a partir de um navegador da web. Confira esta demonstração 👇
Seguindo em frente, para realmente avaliar a escala e a velocidade de inferência, testamos a configuração implantada no conjunto de dados PubMed (36M+ vetores). Nosso aplicativo: - consultou 36M+ vetores em <30ms. - gerou uma resposta em <1s. Confira esta demonstração👇
Terminado! Acabamos de construir a pilha RAG mais rápida aproveitando o BQ para recuperação eficiente e usando implantação sem servidor ultrarrápida de nosso fluxo de trabalho de IA. Aqui está o fluxo de trabalho novamente para sua referência 👇
Isso é tudo! Se você achou perspicaz, compartilhe-o novamente com sua rede. Encontre-me → @_avichawla Todos os dias, compartilho tutoriais e insights sobre DS, ML, LLMs e RAGs.
Avi Chawla
Avi Chawla4 de ago., 14:33
Uma técnica simples torna a memória RAG ~32x eficiente! - Perplexidade o usa em seu índice de pesquisa - O Azure o usa em seu pipeline de pesquisa - HubSpot usa em seu assistente de IA Vamos entender como usá-lo em sistemas RAG (com código):
695,78K