- Os 7 padrões principais são organizados por "melhoria de desempenho vs. redução de custo/risco" e "orientado a dados vs. orientado ao usuário"
- Evals: medição de desempenho
- RAG (Retrieval-Augmented Generation): adiciona conhecimento externo e atualizado
- Fine-tuning: para executar melhor tarefas específicas
- Caching: reduz latência e custo
- Guardrails: garante a qualidade da saída
- Defensive UX: para prever e gerenciar erros
- Collect user feedback: construir um flywheel de dados
Evals: medição de desempenho
- Evals são um conjunto de métricas usadas para avaliar o desempenho do modelo em uma tarefa
- Incluem dados de benchmark e métricas
- Permitem medir quão bem um sistema ou produto está funcionando e detectar regressões
- Há muitos benchmarks na área de modelagem de linguagem: MMLU, EleutherAI Eval, HELM, AlpacaEval
- As métricas podem ser divididas em duas categorias: context-dependent ou context-free
- Métricas comumente usadas: BLEU, ROUGE, BERTScore, MoverScore
- Uma tendência recente é usar um LLM poderoso como métrica reference-free para avaliar as gerações de outros LLMs
- G-Eval, artigo do Vicuna, QLoRA
RAG (Retrieval-Augmented Generation): adiciona conhecimento externo e atualizado
- Recupera informações de fora do foundation model e enriquece a entrada com esses dados para fornecer um contexto mais rico, melhorando assim a saída
- O RAG ajuda a reduzir alucinações ao basear o modelo no contexto recuperado, aumentando a factualidade
- Além disso, manter o índice de busca atualizado é mais barato do que continuar pré-treinando o LLM
- Essa eficiência de custo permite que o LLM acesse dados atualizados por meio de RAG
- Quando é preciso atualizar/remover dados, como documentos enviesados ou nocivos, atualizar o índice de busca é mais simples do que fazer fine-tuning no LLM
- Para RAG, ajuda primeiro entender embeddings de texto
- Embeddings de texto são representações abstratas compactadas de dados textuais que permitem representar textos de comprimento arbitrário como vetores numéricos de tamanho fixo
- Em geral, são treinados em corpora de texto como a Wikipedia
- Dá para pensar neles como uma codificação geral de texto em que itens semelhantes ficam próximos e itens diferentes ficam mais distantes
- Bons embeddings são aqueles que têm bom desempenho em tarefas downstream, como busca por itens semelhantes
- O Massive Text Embedding Benchmark (MTEB) da Huggingface pontua modelos em várias tarefas, como classificação, clustering, busca e sumarização
- Aqui falamos principalmente de embeddings de texto, mas embeddings podem ser usados em várias modalidades
- Fusion-in-Decoder (FiD) usa geração e recuperação juntas para QA de domínio aberto
- Internet-augmented LMs propõem fortalecer LLMs usando mecanismos de busca existentes
- Como aplicar RAG
- Busca híbrida (índice de busca tradicional + busca baseada em embeddings) funciona melhor do que cada abordagem sozinha
Fine-tuning: para executar melhor tarefas específicas
- Fine-tuning é o processo de pegar um modelo pré-treinado (já treinado em uma grande quantidade de dados) e refiná-lo adicionalmente para uma tarefa específica
- O objetivo é aproveitar o conhecimento que o modelo já adquiriu no pré-treinamento e aplicá-lo a uma tarefa específica, geralmente com um conjunto de dados menor e voltado àquela tarefa
- O termo fine-tuning é usado de forma ampla e pode se referir a vários conceitos
- pré-treinamento contínuo
- instruction fine-tuning
- fine-tuning para tarefa única
- RLHF
- Por que fazer fine-tuning?
- Desempenho e controle:
- melhorar o desempenho de um modelo base pronto e até superar LLMs de terceiros
- permite controlar melhor o comportamento do LLM, tornando o sistema ou produto mais robusto
- com fine-tuning, é possível construir um produto diferenciado em vez de apenas usar um LLM aberto ou de terceiros
- Modularização:
- com fine-tuning de tarefa única, é possível criar uma tropa de modelos menores, cada um especializado em sua própria tarefa
- essa configuração permite modularizar o sistema em tarefas como moderação de conteúdo, extração e sumarização
- Redução de dependência:
- ao ajustar e hospedar seu próprio modelo, é possível reduzir questões legais envolvendo dados proprietários expostos a APIs externas (por exemplo: PII, documentos internos e código)
- também ajuda a superar limitações de LLMs de terceiros, como rate limits, custo alto ou filtros de segurança excessivamente restritivos
- Generative Pre-trained Transformers (GPT; decoder only)
- Text-to-text Transfer Transformer (T5; encoder-decoder)
- InstructGPT
- Soft prompt tuning & Prefix Tuning
- Low-Rank Adaptation (LoRA) & QLoRA
- Como aplicar fine-tuning
- coletar dados de demonstração/rótulos
- definir métricas de avaliação
- escolher o modelo pré-treinado
- atualizar a arquitetura do modelo
- escolher o método de fine-tuning (LoRA, QLoRA etc.)
- ajustar hiperparâmetros básicos
Caching: reduz latência e custo
- Caching é a técnica de armazenar dados previamente recuperados ou calculados
- Isso permite atender futuras requisições para os mesmos dados com mais eficiência
- Em LLMs, isso pode significar armazenar em cache a resposta do LLM para embeddings de requisições de entrada e, quando chegar uma nova requisição semanticamente semelhante, retornar a resposta em cache
- Mas alguns profissionais dizem que isso é como "esperar que um desastre aconteça". Eu concordo
- O ponto principal para adotar um padrão de caching é descobrir como fazer cache com segurança, em vez de depender apenas de similaridade semântica
- Por que usar caching? Para reduzir latência e economizar custo ao diminuir o número de requisições ao LLM
- Como aplicar caching?
- é preciso começar entendendo bem os padrões de requisição dos usuários
- considerar se o caching é eficaz para o padrão de uso
Guardrails: garante a qualidade da saída
- Valida a saída do LLM para garantir não só que ela pareça boa, mas também que seja sintaticamente correta, factual e livre de conteúdo nocivo
- Por que guardrails são necessários?
- ajudam a garantir que a saída do modelo seja confiável e consistente o suficiente para uso em produção
- fornecem uma camada extra de segurança e mantêm o controle de qualidade sobre a saída do LLM
- Uma abordagem é controlar a resposta do modelo por meio do prompt
- A Anthropic compartilhou prompts projetados para orientar o modelo a gerar respostas úteis, inofensivas e honestas (HHH)
- Uma abordagem mais geral é validar a saída (como com o pacote Guardrails)
- O NeMo-Guardrails da Nvidia segue princípios semelhantes, mas foi projetado para orientar sistemas conversacionais baseados em LLM
- Também é possível ajustar diretamente a saída para obedecer a uma gramática específica, como no Guidance da Microsoft (dá para pensar como uma DSL para LLMs)
- Como aplicar guardrails
- Structural guidance
- Syntactic guardrails
- Content safety guardrails
- Semantic/factuality guardrails
- Input guardrails
Defensive UX: para prever e gerenciar erros
- Defensive UX é uma estratégia de design que reconhece que coisas ruins, como imprecisões ou alucinações, podem acontecer enquanto usuários interagem com produtos baseados em machine learning ou LLM
- O objetivo principal é prever e gerenciar isso de antemão, orientando o comportamento do usuário, prevenindo mau uso e lidando adequadamente com erros
- Por que UX defensiva?
- machine learning e LLMs não são perfeitos. Eles podem gerar resultados imprecisos
- podem responder de forma diferente à mesma pergunta
- a UX defensiva ajuda a mitigar esses problemas ao oferecer
- melhor acessibilidade, mais confiança, Better UX
- Consulte diretrizes reunidas por empresas
- Microsoft’s Guidelines for Human-AI Interaction
- Google’s People + AI Guidebook
- Apple’s Human Interface Guidelines for Machine Learning
- Como aplicar UX defensiva
- definir expectativas corretas
- permitir descarte eficiente (Enable efficient dismissal)
- fornecer attribution
- Anchor on familiarity
Collect user feedback: construir um flywheel de dados
- Coletar feedback dos usuários permite entender suas preferências
- O feedback específico de produtos com LLM contribui para avaliações, fine-tuning e construção de guardrails
- Dados como corpus para pré-treinamento, demonstrações feitas por especialistas e preferências humanas para reward modeling são alguns dos poucos moat de produtos com LLM
- O feedback pode ser explícito ou implícito
- feedback explícito é a informação fornecida pelo usuário em resposta a uma solicitação do produto
- feedback implícito é a informação aprendida a partir das interações do usuário, sem que ele precise fornecer feedback intencionalmente
- Por que coletar feedback dos usuários
- o feedback ajuda a melhorar o modelo
- ao aprender do que os usuários gostam, não gostam ou reclamam, é possível melhorar o modelo para atender melhor às suas necessidades
- também é possível adaptar-se às preferências individuais
- loops de feedback ajudam a avaliar o desempenho geral do sistema
- Como coletar feedback dos usuários
- facilitar para que o usuário deixe feedback: como no ChatGPT, com opções de curtir/não curtir na resposta
- considerar também feedback implícito: informações geradas quando o usuário interage com o produto
1 comentários
No texto original há explicações detalhadas sobre cada item e sobre os algoritmos/métricas, mas isso foi omitido.
Veja este texto apenas como um resumo por alto e consulte também o original.