Conceitos de rastreamento
Um bom complemento para as explicações deste guia é o guia Tracing Data Model, que mostrará como o MLflow Tracing representa os conceitos discutidos aqui.
O que é rastreamento?
O rastreamento no contexto do aprendizado de máquina (ML) refere-se ao acompanhamento e ao registro detalhados do fluxo de dados e das etapas de processamento durante a execução de um modelo ML. Ele oferece transparência e percepções em cada estágio das operações do modelo, desde a entrada de dados até a saída da previsão. Esse acompanhamento detalhado é fundamental para a depuração, otimização e compreensão do desempenho dos modelos ML.
Conceito de extensão
No contexto do rastreamento, um intervalo representa uma única operação dentro do sistema. Ele captura metadados como a hora de início, a hora de término e outras informações contextuais sobre as operações. Juntamente com os metadados, são registradas as entradas fornecidas a uma unidade de trabalho (como uma chamada para um modelo GenAI, uma consulta de recuperação de um armazenamento de vetores ou uma chamada de função), bem como a saída das operações.
O diagrama abaixo ilustra uma chamada para um modelo GenAI e a coleta de informações relevantes em um intervalo. O intervalo inclui metadados, como a hora de início, a hora de término e os argumentos da solicitação, bem como a entrada e a saída da chamada de invocação.
Conceito de um traço
Um rastreamento no contexto do rastreamento do GenAI é uma coleção de eventos do tipo DAG (Directed Acyclic gráfico) que são chamados e registrados de forma assíncrona em um processador. Cada intervalo representa uma única operação dentro do sistema e inclui metadados como hora de início, hora de término e outras informações contextuais. Esses intervalos são vinculados para formar um rastreamento, que fornece um view abrangente do processo de ponta a ponta.
- Estrutura do tipo DAG : A estrutura DAG garante que não haja ciclos na sequência de operações, facilitando a compreensão do fluxo de execução.
- Informações sobre intervalos : Cada intervalo captura uma unidade discreta de trabalho, como uma chamada de função, uma consulta a banco de dados ou uma solicitação do site API. Os intervalos incluem metadados que fornecem contexto sobre as operações.
- Associação hierárquica : as extensões refletem a estrutura de seus aplicativos, permitindo que você veja como os diferentes componentes interagem e dependem uns dos outros.
Ao coletar e analisar essas extensões, é possível rastrear o caminho de execução, identificar gargalos e entender as dependências e interações entre os diferentes componentes do sistema. Esse nível de visibilidade do é crucial para diagnosticar problemas, otimizar o desempenho e garantir a robustez dos aplicativos GenAI.
Para ilustrar o que um rastreamento inteiro pode capturar em um aplicativo RAG, veja a ilustração abaixo.
Os subsistemas envolvidos nesta aplicação são essenciais para a qualidade e relevância do sistema. Não ter visibilidade dos caminhos que os dados seguirão ao interagir com o estágio final do LLM cria um aplicativo cuja qualidade só poderia ser alcançada por meio de um alto grau de validação manual monótona, tediosa e cara de cada peça isoladamente.
Caso de uso do GenAI ChatComplements
Em aplicativos de AI generativa (GenAI), como conclusões de bate-papo, o rastreamento se torna muito mais importante para os desenvolvedores de modelos e aplicativos com tecnologia GenAI. Esses casos de uso envolvem a geração de texto semelhante ao humano com base em solicitações de entrada. Embora não sejam tão complexos quanto os aplicativos GenAI que envolvem agentes ou recuperação de informações para aumentar um modelo GenAI, uma interface de bate-papo pode se beneficiar do rastreamento. A ativação do rastreamento em interfaces por interação com um modelo GenAI por meio de uma sessão de bate-papo permite avaliar todo o histórico contextual, o prompt, a entrada e os parâmetros de configuração, juntamente com a saída, possibilitando a compreensão do contexto completo da carga útil da solicitação que foi enviada ao modelo GenAI.
Como exemplo, a ilustração abaixo mostra a natureza de uma interface ChatCompletions usada para conectar um modelo, hospedado em um servidor de implantação, a um serviço GenAI externo.
Os metadados adicionais que envolvem o processo de inferência são úteis por vários motivos, incluindo cobrança, avaliação de desempenho, relevância, avaliação de alucinações e depuração geral. Os principais metadados incluem:
- tokens Counts (contagens de tokens ): O número de tokens processados, o que afeta o faturamento.
- Nome do modelo : O modelo específico usado para inferência.
- Tipo de provedor : O serviço ou a plataforma que fornece o modelo.
- Parâmetros de consulta : configurações como temperatura e top-k que influenciam o processo de geração.
- Entrada de consulta : A entrada da solicitação (pergunta do usuário).
- Resposta da consulta : a resposta gerada pelo sistema à consulta de entrada, utilizando os parâmetros da consulta para ajustar a geração.
Esses metadados ajudam a entender como as diferentes configurações afetam a qualidade e o desempenho das respostas geradas, auxiliando no ajuste fino e na otimização.
Aplicativos de geração aumentada de recuperação avançada (RAG)
Em aplicativos mais complexos, como o Retrieval-Augmented Generation (RAG), o rastreamento é essencial para a depuração e a otimização eficazes. O RAG envolve vários estágios, incluindo recuperação de documentos e interação com modelos GenAI. Quando somente a entrada e a saída estão visíveis, torna-se difícil identificar a origem dos problemas ou oportunidades de melhoria.
Por exemplo, se um sistema GenAI gerar uma resposta insatisfatória, o problema pode estar em:
- Otimização do armazenamento vetorial : a eficiência e a precisão do processo de recuperação de documentos.
- Modelo de incorporação : A qualidade do modelo usado para codificar e pesquisar documentos relevantes.
- Material de referência : O conteúdo e a qualidade dos documentos consultados.
O rastreamento permite que cada etapa do pipeline do RAG seja investigada e julgada quanto à qualidade. Ao fornecer visibilidade de cada estágio, o rastreamento ajuda a identificar onde os ajustes são necessários, seja no processo de recuperação, o modelo de incorporação ou o conteúdo do material de referência.
Por exemplo, o diagrama abaixo ilustra as interações complexas que formam um aplicativo RAG simples, no qual o modelo GenAI é chamado repetidamente com dados recuperados adicionais que orientam a resposta final de geração de saída.
Sem o rastreamento ativado em um sistema tão complexo, é difícil identificar a causa raiz dos problemas ou gargalos. As etapas a seguir seriam efetivamente uma caixa preta " ":
- Incorporação da consulta de entrada
- O retorno do vetor de consulta codificado
- A entrada de pesquisa vetorial
- Os pedaços do documento recuperado do banco de dados vetoriais
- A entrada final para o modelo GenAI
Diagnosticar problemas de exatidão com respostas em um sistema desse tipo sem que essas 5 etapas críticas tenham a instrumentação configurada para capturar as entradas, saídas e metadados associados a cada solicitação cria um cenário desafiador para depurar, melhorar ou refinar um aplicativo desse tipo. Ao considerar o ajuste de desempenho para capacidade de resposta ou custo, não ter visibilidade das latências para cada uma dessas etapas do representa um desafio totalmente diferente que exigiria a configuração e a instrumentação manual de cada um desses serviços.
Começando com o rastreamento em MLflow
Para saber como utilizar o rastreamento em MLflow, consulte o guiaMLflow Tracing.
Além do GenAI: rastreamento para aprendizado de máquina tradicional
Embora esta documentação se concentre nos aplicativos GenAI em que o rastreamento oferece o maior valor, o site MLflow Tracing também pode ser aplicado ao ML fluxo de trabalho tradicional. A seção a seguir descreve brevemente esse caso de uso para fins de integridade.
No ML tradicional, o processo de inferência é relativamente simples. Quando uma solicitação é feita, os dados de entrada são inseridos no modelo, que processa os dados e gera uma previsão.
O diagrama abaixo ilustra a relação entre os dados de entrada, a interface do modelo de serviço e o próprio modelo.
Esse processo é totalmente visível, o que significa que tanto a entrada quanto a saída estão claramente definidas e compreensíveis para o usuário final. Por exemplo, em um modelo de detecção de spam, a entrada é um email, e a saída é um rótulo binário que indica se o email é spam ou não. Todo o processo de inferência é transparente, facilitando a determinação de quais dados foram enviados e qual previsão foi retornada, tornando o rastreamento completo um processo irrelevante no contexto do desempenho qualitativo do modelo.
No entanto, o rastreamento pode ser incluído como parte de uma configuração de implantação para fornecer percepções adicionais sobre a natureza do processamento das solicitações feitas ao servidor, a latência da previsão do modelo, e para registrar o acesso de API ao sistema. Para essa forma clássica de registro de rastreamento, em que os metadados associados às solicitações de inferência de uma perspectiva de latência e desempenho são monitorados e registrados, esses logs não são normalmente usados por desenvolvedores de modelos ou data scientists para entender as operações do modelo.
Próximas etapas
Continue sua jornada com estas ações recomendadas e o tutorial.
- Instrumente seu aplicativo com rastreamento - Aprenda a adicionar rastreamento ao seu aplicativo GenAI
- Depure e observe seu aplicativo - Use rastreamentos para analisar o comportamento do seu aplicativo
- Use rastreamentos para melhorar a qualidade - Aproveite rastreamentos para melhorias sistemáticas
Guia de referência
Explore a documentação detalhada sobre conceitos relacionados.
- Modelo de dados de rastreamento - Entenda como o MLflow representa os rastreamentos e os intervalos
- Consultar traços via SDK - Aprenda a análise programática de traços
- Avaliações de registro - Entenda como anexar feedback aos rastreamentos