Introdução aos LLMs para Desenvolvedores
Este curso é uma versão adaptada para chinês da série de três cursos sobre modelos de linguagem de grande porte lançada em parceria por Andrew Ng e OpenAI. Cobrirá Engenharia de Prompt, construção de sistemas com a API do ChatGPT, desenvolvimento de aplicações com LangChain e uso do LangChain para acessar dados privados. O curso oferece uma introdução clara e acessível sobre como aproveitar as capacidades dos modelos de linguagem de grande porte para criar aplicações com funções de resumo, inferência, transformação, expansão e chat.
Aulas
Visão Geral do Curso
📚 Resumo do Conteúdo
Este curso é uma adaptação chinesa da série de três partes sobre Modelos de Linguagem de Grande Escala (LLM), desenvolvida em parceria por Andrew Ng e OpenAI. Ele aborda Engenharia de Prompt, construção de sistemas com base na API ChatGPT, desenvolvimento de aplicativos com LangChain e uso do LangChain para acessar dados privados. O curso oferece uma introdução aprofundada, mas acessível, ao aproveitamento das capacidades dos LLMs para desenvolver aplicações com funcionalidades de resumo, inferência, transformação, expansão e chat.
Domine a Engenharia de Prompt e o framework LangChain para se tornar um desenvolvedor de aplicações de IA na era dos grandes modelos.
🎯 Objetivos de Aprendizagem
- Distinguir entre LLMs Base e LLMs Treinados com Instruções.
- Aplicar quatro estratégias específicas para escrever instruções claras e precisas (delimitadores, saída estruturada, verificação de condições e prompting com poucos exemplos).
- Implementar estratégias para dar aos modelos "tempo para pensar", especificando etapas de tarefas e exigindo resolução independente de problemas.
- Implementar Processamento de Texto Estruturado: resumir e extrair informações específicas de documentos únicos ou múltiplos, controlando o comprimento e o foco da saída.
- Realizar Análise Automatizada de Texto: classificar sentimentos, identificar emoções específicas e executar classificação de tópicos zero-shot usando prompts.
- Executar Transformações Multimodais: traduzir entre idiomas, converter formatos de dados (por exemplo, JSON para HTML) e corrigir gramática/ortografia programaticamente.
- Distinguir entre LLMs Base e LLMs Treinados com Instruções, compreendendo o impacto da tokenização no comportamento do modelo.
- Implementar arquiteturas de sistema estruturadas usando papéis de mensagens System, User e Assistant para definir personagens do modelo.
- Aplicar técnicas de classificação e moderação para avaliar entradas do usuário quanto à segurança e roteamento.
- Implementar Prompt Chaining: decompor tarefas complexas em sub-tarefas gerenciáveis para melhorar confiabilidade e reduzir custos.
🔹 Aula 1: Princípios de Prompt e Desenvolvimento Iterativo
Visão Geral: Esta aula aborda os princípios fundamentais da engenharia de prompt para desenvolvedores, passando dos modelos básicos "Base LLMs" para os "Instruction Tuned LLMs". Introduz dois pilares principais para interações eficazes: redigir instruções claras e específicas e permitir ao modelo tempo suficiente "para pensar". Além disso, estabelece um fluxo iterativo para aprimorar prompts atendendo a requisitos comerciais específicos, como restrições de comprimento e necessidades de formatação.
Resultados de Aprendizagem:
- Distinguir entre LLMs Base e LLMs Treinados com Instruções.
- Aplicar quatro estratégias específicas para escrever instruções claras e precisas (delimitadores, saída estruturada, verificação de condições e prompting com poucos exemplos).
- Implementar estratégias para dar aos modelos "tempo para pensar", especificando etapas da tarefa e exigindo resolução independente de problemas.
🔹 Aula 2: Capacidades Básicas de Prompt e Chatbots
Visão Geral: Esta aula explora a aplicação prática de Modelos de Linguagem de Grande Escala (LLMs) em cinco áreas funcionais principais: Resumir, Inferir, Transformar, Expandir e construir chatbots interativos. Fornece aos desenvolvedores um guia prático para usar Python e a API OpenAI para processar textos, extrair dados estruturados, ajustar estilos linguísticos e manter o contexto conversacional para aplicações do mundo real, como bots de atendimento ao cliente.
Resultados de Aprendizagem:
- Implementar Processamento de Texto Estruturado: resumir e extrair informações específicas de documentos únicos ou múltiplos, controlando o comprimento e o foco da saída.
- Realizar Análise Automatizada de Texto: classificar sentimentos, identificar emoções específicas e executar classificação de tópicos zero-shot usando prompts.
- Executar Transformações Multimodais: traduzir entre idiomas, converter formatos de dados (por exemplo, JSON para HTML) e corrigir gramática/ortografia programaticamente.
🔹 Aula 3: Lógica do Sistema: Classificação de Entrada e Raciocínio
Visão Geral: Esta aula explora os mecanismos fundamentais dos Modelos de Linguagem de Grande Escala (LLMs), avançando desde a tokenização básica e papéis de mensagens até estratégias avançadas de tratamento de entrada. Os alunos aprenderão a construir sistemas robustos classificando intenções do usuário, moderando conteúdo quanto à segurança e implementando raciocínio em cadeia (Chain of Thought - CoT) para melhorar precisão e controlar a experiência do usuário por meio de "monólogos internos".
Resultados de Aprendizagem:
- Distinguir entre LLMs Base e LLMs Treinados com Instruções, compreendendo o impacto da tokenização no comportamento do modelo.
- Implementar arquiteturas de sistema estruturadas usando papéis de mensagens System, User e Assistant para definir personagens do modelo.
- Aplicar técnicas de classificação e moderação para avaliar entradas do usuário quanto à segurança e roteamento.
🔹 Aula 4: Fluxos de Trabalho Complexos e Avaliação de Sistemas
Visão Geral: Esta aula aborda a transição de prompts simples para fluxos de trabalho LLM complexos e multi-etapa. Foca-se no "Prompt Chaining" para decompor tarefas, implementação de camadas de segurança via API de Moderação e estabelecimento de frameworks rigorosos de avaliação — tanto para casos com resposta única correta quanto para aqueles que exigem avaliação subjetiva com base em rubricas.
Resultados de Aprendizagem:
- Implementar Prompt Chaining: decompor tarefas complexas em sub-tarefas gerenciáveis para melhorar confiabilidade e reduzir custos.
- Construir um Sistema Seguro de Ponta a Ponta: integrar moderação de entrada/saída e mecanismos de verificação de fatos em uma pipeline pronta para produção.
- Desenvolver Estratégias de Avaliação: criar conjuntos de validação para medir o desempenho do LLM comparando com respostas "ideais" e utilizando rubricas auxiliadas por LLM.
🔹 Aula 5: Fundamentos do LangChain: Modelos, Prompts e Memória
Visão Geral: Esta aula apresenta os componentes centrais do framework LangChain, com foco específico em como abstrair interações com Modelos de Linguagem de Grande Escala (LLM). Aborda a transição de chamadas diretas à API para o uso de componentes modulares do LangChain: Modelos, Templates de Prompt e Analisadores de Saída, concluindo com uma análise profunda de quatro estratégias distintas de Memória para manter o estado da conversa.
Resultados de Aprendizagem:
- Implementar chamadas básicas ao LLM usando o ChatOpenAI do LangChain e seus componentes modulares.
- Criar estruturas reutilizáveis de ChatPromptTemplate para gerenciar lógica de prompts complexos e variáveis.
- Extrair dados estruturados (JSON/dicionários Python) de respostas não estruturadas do LLM usando StructuredOutputParser.
🔹 Aula 6: Chains do LangChain, Q&A e Agentes Autônomos
Visão Geral: Esta aula aborda os blocos arquiteturais centrais do LangChain, passando de sequências lineares simples de prompt-completação para sistemas complexos e orientados por lógica. Os alunos aprenderão a orquestrar múltiplos chamados ao LLM por meio de Chains, implementar Geração Incremental de Recuperação (Q&A) sobre documentos privados usando armazenamentos vetoriais e implantar Agentes Autônomos que usam raciocínio para selecionar e executar ferramentas. O material enfatiza ir além das interações com um único prompt rumo a aplicações de LLM automatizadas e escaláveis.
Resultados de Aprendizagem:
- Construir fluxos de trabalho lineares e complexos de múltiplas etapas usando SequentialChain e RouterChain.
- Criar um sistema de Q&A baseado em documentos usando embeddings, armazenamentos vetoriais e a chain RetrievalQA.
- Implementar avaliação automatizada de aplicações de LLM usando QAGenerateChain e QAEvalChain.
🔹 Aula 7: Preparação de Dados Privados: Carregamento e Vetorização
Visão Geral: Esta aula cobre as fases iniciais da construção de um sistema de Geração Incremental de Recuperação (RAG) usando o LangChain. Orienta os desenvolvedores no carregamento de dados não estruturados de fontes diversas (PDFs, YouTube, Web, Notion), divisão desses dados em trechos semanticamente significativos e transformação desses trechos em embeddings numéricos para armazenamento e busca de similaridade em bancos de dados vetoriais.
Resultados de Aprendizagem:
- Implementar diversos Carregadores de Documentos do LangChain para importar dados de PDFs, áudio do YouTube, URLs web e bancos de dados Notion.
- Configurar e comparar diferentes Divisores de Texto (Caracteres, Recursivo, Token e Markdown) usando parâmetros como chunk_size e chunk_overlap.
- Executar o processo de vetorização criando embeddings e armazenando-os em um Chroma vectorstore para habilitar buscas semânticas.
🔹 Aula 8: Geração Incremental de Recuperação (RAG) e Interatividade
Visão Geral: Este material explora a transição de busca semântica básica para técnicas avançadas de recuperação e interação conversacional em aplicações de LLM. Cobrir técnicas sofisticadas de recuperação — como Máxima Marginal Relevância (MMR), filtragem por metadados e compressão contextual — antes de demonstrar como construir cadeias Q&A com estado e chatbots completos usando os componentes de memória e GUI do LangChain.
Resultados de Aprendizagem:
- Implementar estratégias avançadas de recuperação (MMR, Auto-Consulta e Compressão) para melhorar a diversidade e relevância dos documentos recuperados.
- Comparar e implantar diferentes tipos de cadeias (stuff, MapReduce, Refine) para processar o contexto recuperado em tarefas de resposta a perguntas.
- Construir uma interface de chatbot com estado usando ConversationalRetrievalChain e ConversationBufferMemory para manter o contexto da conversa.