Olá! Eu sou Caroline, pessoa engenheira de Machine Learning (aprendizado de máquina) e IA, e vou conduzir o curso de Observabilidade para Aplicações de IA utilizando LangFuse.
Para fins de acessibilidade, faremos nossa autodescrição.
Audiodescrição: Caroline é uma pessoa branca, de olhos claros e cabelo loiro, usa óculos e veste uma camiseta preta com um detalhe branco. Ao fundo há uma parede lilás iluminada e uma estante com alguns objetos.
Neste curso, primeiro veremos os conceitos de observabilidade para LLMs (modelos de linguagem de grande porte). Existem particularidades em relação à observabilidade em sistemas tradicionais, devido ao fato de que aplicações com IA produzem resultados não determinísticos, o que já introduz alguns desafios.
Em seguida, entenderemos a arquitetura do LangFuse para organizar nosso código já orientado à observabilidade.
Também veremos como estruturar um trace (rastreamento): do que ele é composto, como o trace funciona no LangFuse e como se caracteriza um trace de uma aplicação de LLMs (modelos de linguagem de grande porte).
Nós passaremos à parte de experimentação e gestão de prompts (instruções).
Audiodescrição: A pessoa instrutora está em ambiente interno, em frente à câmera, com fundo neutro e iluminação uniforme, vestindo roupa casual e falando diretamente para a câmera.
Depois que concluirmos a gestão e a experimentação de prompts (instruções), nós também poderemos começar a avaliar nossa aplicação.
Nós veremos a parte de avaliação, incluindo os LLMs (modelos de linguagem de grande porte) atuais.
Ao final do curso, nós teremos a demo (demonstração), porque não ficaremos apenas na parte teórica. Ao longo do curso, nós também desenvolveremos a parte prática por meio de uma demo (demonstração) que evoluirá aula a aula, para que, ao final, possamos simular um monitoramento usando nosso código como se fosse uma aplicação em produção e obter um resultado no qual possamos entender cada parte de uma pipeline (fluxo de processamento) de observabilidade para aplicações com IA e manter isso em nosso código organizado de forma que possamos versioná-lo, dar manutenção e também acompanhá-lo na UI (interface do usuário) do LangFuse.
Assim, não apenas pessoas desenvolvedoras, mas também pessoas mais próximas do produto e do negócio poderão ter um contato mínimo com o que está ocorrendo em uma aplicação em um ambiente produtivo de IA.
E isso é tudo. Até a próxima!
Antes de falar de ferramentas, vamos apresentar um cenário. Vamos imaginar que colocamos um chatbot (assistente de conversa) em produção. Uma pessoa cliente já está utilizando esse chatbot (assistente de conversa) e começa a reclamar de muitas respostas inconsistentes. Então, decidimos investigar o que está acontecendo e reproduzir esse comportamento para entender onde está o problema.
Contudo, não temos visibilidade de qual é o contexto em que a resposta está sendo incoerente dentro desse pipeline (fluxo de processamento) de LLM (Modelo de Linguagem de Grande Porte); não temos visibilidade do prompt (instrução) que está sendo utilizado. Temos visibilidade do modelo, mas não temos visibilidade da quantidade de tokens (unidades de texto) que estão sendo enviados ao modelo, da quantidade de tokens (unidades de texto) que estão retornando e de quanto isso está custando.
Assim, começamos a realizar o deploy (implantação) de uma aplicação em um ambiente de produção que não apresenta confiabilidade nem um custo previsível. Esse é o cenário real de muitas aplicações que hoje estão em produção com LLMs (Modelos de Linguagem de Grande Porte). Precisamos observar esse aspecto; é nesse ponto que entra a observabilidade.
Existe uma diferença importante entre a observabilidade para LLMs (Modelos de Linguagem de Grande Porte) e a observabilidade tradicional. Hoje, em uma aplicação sem LLMs (Modelos de Linguagem de Grande Porte), normalmente observamos algumas métricas simples por meio de logs (registros) e alguns traces (rastreamentos), caso já tenhamos instrumentado essa aplicação em alguma ferramenta.
Esses logs (registros) costumam incluir a medição de latência e a avaliação do desempenho do sistema para verificar se as respostas estão de acordo com o que nós, como pessoas usuárias do sistema, esperamos. Podemos fazer isso porque temos uma resposta definida: qual é a resposta correta e o que esperamos que o sistema envie. Podemos comparar essa saída com a resposta definida, que esperamos que o sistema devolva no formato correto.
Por outro lado, quando o sistema inclui LLMs (Modelos de Linguagem de Grande Porte), não temos esse comportamento de forma determinística. Começando pelas respostas: elas não são determinísticas. As razões para isso incluem o prompt (instrução); dependendo de como o prompt (instrução) está escrito, ele pode alterar a resposta final. Também depende do modelo que estivermos utilizando; cada modelo é avaliado de forma distinta. Aqui encontramos nossos primeiros desafios.
Assim, começamos a analisar a observabilidade de LLMs (Modelos de Linguagem de Grande Porte), e a ferramenta LangFuse é essencial para isso. Ela vai nos ajudar com toda a instrumentação de nossos pipelines (fluxos de processamento) e aplicações de LLMs (Modelos de Linguagem de Grande Porte), para proporcionar visibilidade das métricas e trazer confiabilidade ao sistema em produção.
Nas próximas aulas, nós vamos falar um pouco sobre a arquitetura e os componentes presentes em LangFuse, para que, nas próximas, demos continuidade: teremos nossas primeiras interações com a UI (Interface do Usuário) do LangFuse e também iniciaremos o desenvolvimento de nossa demonstração.
Tudo pronto. Até a próxima! [♪]
Agora que introduzimos o problema, vamos começar a discutir a solução. Primeiro, vamos ao básico. O que é LangFuse? LangFuse é uma plataforma de observabilidade para aplicações de LLM (modelos de linguagem de grande porte — Large Language Models). Essa plataforma pretende resolver todos os problemas que vimos no vídeo anterior.
Como faz isso? Vamos entender os componentes principais da arquitetura do LangFuse. Esses componentes são um SDK (kit de desenvolvimento de software), uma API (interface de programação de aplicações), um sistema de armazenamento e a UI (interface do usuário) do LangFuse. Como se conectam e como funcionam em segundo plano junto com nossa aplicação?
Nossa aplicação envia e recebe dados. Quando usamos o LangFuse, o SDK integrado à aplicação captura esses dados e os envia para a API. A API armazena os dados no sistema de armazenamento, e a UI consome esses dados a partir do banco de dados para exibi-los no painel de controle, permitindo visualizar todos os dados, todos os logs (registros), todos os traces (rastreamentos) e todas as métricas que estamos instrumentando em nossa aplicação. Esses são os componentes principais da arquitetura.
Há um detalhe importante na arquitetura do LangFuse voltado a fluxos em produção que exigem latência muito baixa, principalmente fluxos de atendimento direto à pessoa cliente. Existe uma funcionalidade em segundo plano: quando estamos enviando os dados, isto é, quando o SDK envia os dados para a API, esse processo não bloqueia nossa aplicação; é executado de forma assíncrona, em paralelo. Isso evita adicionar uma camada extra de latência na aplicação.
Utilizar o LangFuse não elimina a latência, mas a plataforma busca minimizar a sobrecarga e evitar adicionar mais latência à aplicação. Sabemos que, às vezes, um prompt (instrução) muito grande ou uma chamada ao modelo pode gerar latência maior, e precisamos otimizar todos os pontos possíveis, principalmente em chatbots (robôs de conversa) e aplicações conversacionais.
A arquitetura do LangFuse já foi concebida e otimizada para esse cenário.
Agora que entendemos os componentes da arquitetura do LangFuse, vamos compreender como funciona, pois isso é essencial para pensarmos na instrumentação da nossa aplicação e em como organizá-la para visualizar tudo de forma clara e simples na UI (interface do usuário).
Os quatro componentes principais do LangFuse são Trace, Span, Event e Generation. O que é cada um deles?
Primeiro, o Trace. Ele representa o fluxo completo da aplicação. Ao executarmos a aplicação, é gerado um Trace. Independentemente do que estiver acontecendo, esse Trace registra que a aplicação foi executada. Temos uma arquitetura hierárquica desses componentes.
Dentro desse Trace principal da aplicação, podemos ter Spans. O que são Spans? Eles representam uma execução dentro desse fluxo, isto é, dentro do pipeline (fluxo de processamento) da aplicação. Ao instrumentarmos algo como Span, estamos registrando uma execução que ocorreu na aplicação, com início e fim, e, portanto, com duração.
Em relação ao Event, ele é semelhante ao Span, mas não é a mesma coisa. Em um Event, não registramos uma execução, pois uma execução tem início e fim, tem uma duração. O Event é utilizado para fatos que ocorrem pontualmente no modelo e não têm duração, não têm início nem fim. Pode ser, por exemplo, um registro de que recebemos uma determinada entrada (input) ou um registro de fallback (retorno alternativo) — o modelo entrou em fallback. Isso não consome tempo dessa execução; apenas deixa o registro no histórico do Trace para que possamos entender melhor, por meio de observabilidade, cada passo da aplicação.
Por fim, temos o Generation. O que é o Generation? É a chamada ao modelo. No momento em que fazemos a chamada ao modelo, ela não é registrada como um Span, não é registrada como um novo Trace e não é registrada como um Event. É registrada como Generation.
Pensando na hierarquia: ao executar a aplicação, temos um Trace e, dependendo do que instrumentarmos, dentro do Trace poderemos ter Spans, Events e Generations.
Na próxima aula, teremos nosso primeiro contato com a UI (interface do usuário) do LangFuse. Vamos mostrar, passo a passo, como realizar essa configuração inicial e o primeiro acesso, e vamos instrumentar uma aplicação simples para iniciar, de fato, a parte mais prática do curso.
Agradecemos e até a próxima aula.
O curso Observabilidade para LLMs: monitoramento e avaliação com LangFuse possui 274 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Programação, Data Science, Front-end, DevOps, Mobile, Inovação & Gestão, UX & Design, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Catálogo de tecnologia para quem é da área de Marketing
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais de forma ilimitada.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.