Ir para o conteúdo principal

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

Data Intelligence Platforms

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

Explore a demonstração do chatbot LLM RAG

 

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

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada

O que vem a seguir?

image

Data Science e ML

October 31, 2023/9 min de leitura

Anunciando as métricas de LLM-como-juiz do MLflow 2.8 e as Melhores Práticas para Avaliação de LLM de Aplicações RAG, Parte 2

Creating High Quality RAG Applications with Databricks

Anúncios

December 6, 2023/7 min de leitura

Criando aplicativos RAG de alta qualidade com a Databricks