Para criar bots de suporte ao cliente, gráficos de conhecimento internos ou sistemas de Q&A, os clientes costumam usar aplicativos de Geração Aumentada por Recuperação (RAG) que aproveitam modelos pré-treinados junto com seus dados proprietários. No entanto, a falta de mecanismos de proteção para o gerenciamento seguro de credenciais e a prevenção de abusos impede que os clientes democratizem o acesso e o desenvolvimento desses aplicativos. Anunciamos recentemente o MLflow AI Gateway, um gateway de API de nível empresarial e altamente escalável que permite que as organizações gerenciem seus LLMs e os disponibilizem para experimentação e produção. Hoje, temos o prazer de anunciar a extensão do AI Gateway para oferecer um suporte melhor a aplicativos RAG. As organizações agora podem centralizar a governança de APIs de modelo hospedadas de forma privada (via Databricks Model Serving), APIs proprietárias (OpenAI, Co:here, Anthropic) e agora APIs de modelo abertas via MosaicML para desenvolver e implantar aplicativos RAG com confiança.
Neste postagem no blog, vamos mostrar como você pode criar e implantar um aplicativo RAG na plataforma Databricks lakehouse AI usando o modelo Llama2-70B-Chat para geração de texto e o modelo Instructor-XL para embeddings de texto, que são hospedados e otimizados através das APIs de inferência do nível Starter da MosaicML. Usar modelos hospedados nos permite começar rapidamente e ter uma maneira econômica de experimentar com baixo throughput.
A aplicação RAG que estamos criando neste blog responde a perguntas sobre jardinagem e dá recomendações de cuidados com as plantas.
Se você já conhece o RAG e só quer ver um exemplo de como tudo funciona em conjunto, confira nossa demonstração (com notebooks de exemplo) que mostra como usar o Llama2, a inferência do MosaicML e a busca vetorial para criar seu aplicativo RAG no Databricks.
O que é RAG?
O RAG é uma arquitetura popular que permite que os clientes melhorem o desempenho do modelo utilizando seus próprios dados. Isso é feito recuperando dados/documentos relevantes e fornecendo-os como contexto para o LLM. A RAG mostrou sucesso no suporte a chatbots e sistemas de perguntas e respostas que precisam manter informações atualizadas ou acessar conhecimento específico do domínio.
Use o AI Gateway para colocar barreiras de proteção ao chamar APIs de modelo
O recém-anunciado MLflow AI Gateway permite que as organizações centralizem a governança, o gerenciamento de credenciais e os limites de taxa para suas APIs de modelo, incluindo LLMs de SaaS, por meio de um objeto chamado Rota. A distribuição de Rotas permite que as organizações democratizem o acesso aos LLMs, ao mesmo tempo em que garante que o comportamento do usuário não abuse ou derrube o sistema. O AI Gateway também fornece uma interface padrão para consultar LLMs, facilitando a atualização de modelos por trás das rotas à medida que novos modelos de ponta são lançados.
Normalmente, vemos as organizações criarem uma Rota por caso de uso, e muitas Rotas podem apontar para o mesmo endpoint de API do modelo para garantir que ele seja totalmente utilizado.
Para este aplicativo RAG, queremos criar duas Rotas do AI Gateway: uma para nosso modelo de embedding e outra para nosso modelo de geração de texto. Estamos usando modelos abertos para ambos porque queremos ter um caminho compatível para fine-tuning ou hospedagem privada no futuro para evitar a dependência de fornecedor. Para fazer isso, usaremos a API de Inferência do MosaicML. Essas APIs fornecem acesso rápido e fácil a modelos de código aberto de última geração para experimentação rápida e preços baseados em tokens. O MosaicML oferece suporte aos modelos MPT e Llama2 para conclusão de texto e aos modelos Instructor para embeddings de texto. Neste exemplo, usaremos o Llama2-70b-Chat, que foi treinado com 2 trilhões de tokens e ajustado para diálogo, segurança e utilidade pela Meta, e o Instructor-XL, um modelo de embedding com ajuste fino de instrução de 1,2 B de parâmetros da HKUNLP.
É fácil criar uma rota para o Llama2-70B-Chat usando o novo suporte para as APIs de Inferência do MosaicML no AI Gateway:
Da mesma forma que a rota de conclusão de texto configurada acima, podemos criar outra rota para o Instructor-XL disponível por meio da API de Inferência do MosaicML.
Para obter uma chave de API para os modelos hospedados do MosaicML, inscreva-se aqui.
Use o LangChain para integrar o recuperador e a geração de texto
Agora, precisamos criar nosso índice de vetores a partir de nossos embeddings de documentos para que possamos fazer buscas de similaridade de documentos em tempo real. Podemos usar o LangChain e apontá-lo para nossa Rota do AI Gateway para nosso modelo de embedding:
Em seguida, precisamos juntar nosso padrão de prompt e o modelo de geração de texto:
A cadeia RetrievalQA conecta os dois componentes para que os documentos recuperados do banco de dados vetorial alimentem o contexto para o modelo de resumo de texto:
Agora você pode registrar a cadeia usando o flavor LangChain do MLflow e implantá-la em um endpoint de CPU da Databricks Model Serving. Usar o MLflow fornece automaticamente o versionamento de modelos para adicionar mais rigor ao seu processo de produção.
Após concluir a prova de conceito, faça experimentos para melhorar a qualidade
Dependendo dos seus requisitos, há muitos experimentos que você pode executar para encontrar as otimizações certas para levar sua aplicação para a produção. Usando as APIs de acompanhamento e avaliação do MLflow, você pode registrar cada parâmetro, modelo base, métricas de desempenho e saída do modelo para comparação. A nova UI de Avaliação no MLflow facilita a comparação das saídas do modelo lado a lado, e todos os dados de acompanhamento e avaliação do MLflow são armazenados em formatos consultáveis para análise posterior. Alguns experimentos que costumamos ver:
Comece a desenvolver aplicativos RAG hoje mesmo na Lakehouse AI com o MosaicML
A plataforma Databricks Lakehouse AI permite que os desenvolvedores criem e implantem rapidamente aplicações de IA generativa com confiança.
Para replicar o aplicativo de chat acima em sua organização, instale nossa demonstração completa do chatbot RAG diretamente em seu workspace e use o Llama2, a inferência do MosaicML e a Vector Search no Lakehouse.
Explore a demonstração do chatbot LLM RAG
Explore e aprimore ainda mais suas aplicações RAG:
Data Science e ML
October 31, 2023/9 min de leitura

