Ir para o conteúdo principal
Data Science e ML

Usar MLflow AI Gateway e Llama 2 para construir aplicativos de IA generativa

Obtenha maior precisão usando a Geração Aumentada por Recuperação (RAG) com seus próprios dados

por Kasey Uhlenhuth, Xiangrui Meng, Hagay Lupesko, Sean Owen, Corey Zumar, Liang Zhang, Ina Koleva, Vladimir Kolovski e Arpit Jasapara

Archived. This article has not been updated since the publish date above. The dynamic nature of information means that previously accurate content can become outdated or even obsolete over time. Readers are advised to exercise due diligence and cross-check any information found in this blog post before making decisions or adopting any practices based on said information.

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:

  1. Latência - Experimente modelos menores para reduzir a latência e o custo
  2. Qualidade - Tente fazer o ajuste fino de um modelo de código aberto com seus próprios dados. Isso pode ajudar com o conhecimento específico do domínio e a aderir a um formato de resposta desejado.
  3. Privacidade - Tente hospedar privadamente o modelo no Databricks LLM-Optimized GPU Model Serving e usar o AI Gateway para utilizar totalmente o endpoint em todos os casos de uso

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 AI Search no Lakehouse.

Explore a demonstração do chatbot LLM RAG

 

Explore e aprimore ainda mais suas aplicações RAG:

Receba os posts mais recentes na sua caixa de entrada

Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.