por Team Databricks
A IA Generativa (GenAI) tem o potencial de democratizar a IA, transformar todos os setores, apoiar todos os funcionários e engajar todos os clientes. Para ser mais útil, os modelos de GenAI precisam de um profundo entendimento dos dados corporativos de uma organização. Até hoje, as técnicas mais populares para dar aos modelos de GenAI conhecimento sobre sua empresa são engenharia de prompt, geração aumentada por recuperação (RAG), cadeias e agentes. No entanto, essas técnicas atingem limites ao usar modelos gerais não adaptados a domínios e aplicações específicas. Para melhorar os resultados gerados e reduzir custos, os desenvolvedores de aplicações de GenAI devem recorrer à criação de modelos personalizados por meio de ajuste fino (fine-tuning) ou pré-treinamento.
O ajuste fino especializa um modelo de IA existente para um domínio ou tarefa específica, treinando-o adicionalmente em um conjunto menor de dados personalizados. As técnicas incluem ajuste fino supervisionado para seguir instruções ou chat, bem como pré-treinamento contínuo. O pré-treinamento cria um modelo totalmente novo, treinando-o do zero em dados totalmente personalizáveis. Todas essas técnicas permitem que os desenvolvedores criem propriedade intelectual e diferenciação para seu domínio ou aplicação, com o potencial de criar modelos melhores e mais precisos e de usar arquiteturas de modelos menores e de menor custo.
Neste guia para criação de modelos personalizados, abordamos:
Este guia é voltado para profissionais que planejam criar modelos personalizados. Assumimos o entendimento de GenAI e modelos de linguagem grandes (LLMs), incluindo termos como engenharia de prompt, RAG, agentes, ajuste fino (fine-tuning) e pré-treinamento. Para material introdutório, consulte mais sobre IA Generativa e LLMs.
Databricks Mosaic AI fornece ferramentas unificadas para construir, implantar e monitorar soluções de IA e ML — desde a criação de modelos preditivos até os mais recentes GenAI e LLMs. Construído sobre a Plataforma de Inteligência de Dados Databricks, o Mosaic AI permite que as organizações integrem de forma segura e econômica seus dados corporativos no ciclo de vida da IA com qualquer modelo de GenAI. Permitimos que os clientes implantem, governem, consultem e monitorem modelos ajustados ou pré-implantados pelo Databricks, como Meta Llama 3, DBRX ou BGE, ou de outros provedores de modelos como Azure OpenAI GPT-4, Anthropic Claude, AWS Bedrock e AWS SageMaker. Para personalizar modelos com dados corporativos, o Databricks Mosaic AI oferece todos os padrões arquitetônicos, desde engenharia de prompt, RAG, ajuste fino e pré-treinamento.

O Mosaic AI oferece recursos de ajuste fino e pré-treinamento de GenAI incomparáveis a qualquer outra plataforma de IA. Em junho de 2024, os clientes do Mosaic AI haviam criado mais de 200.000 modelos de IA personalizados no ano anterior. Além disso, o Databricks possui modelos pré-treinados que podem ser usados diretamente pelos clientes. Em março de 2024, o Databricks lançou o DBRX, um novo LLM de código aberto de alto desempenho que foi pré-treinado do zero, sob uma licença comercialmente viável. Em junho de 2024, Databricks e Shutterstock lançaram outro modelo pré-treinado, Shutterstock ImageAI, Powered by Databricks, um modelo de ponta de texto para imagem.
A infraestrutura e a tecnologia que usamos para construir esses modelos de alto desempenho são as mesmas infraestrutura e tecnologia fornecidas aos nossos clientes. Veja nossas histórias de clientes Databricks para ler sobre sucessos em dados e IA em todos os setores.
Motivação: Por que fazer ajuste fino ou criar LLMs personalizados?
Os clientes geralmente começam a criar modelos de GenAI personalizados quando os modelos existentes têm limitações dolorosas em qualidade, custo ou latência. Os detalhes variam para cada caso de uso, mas exemplos incluem:
Os modelos de GenAI mais famosos são modelos gerais, feitos para fazer (quase) tudo. Embora impressionantes, esses modelos são muito grandes e caros para a maioria dos casos de uso, e eles não sabem nada sobre seus dados proprietários ou sua aplicação. Em todos os exemplos acima, a criação de um modelo personalizado e especializado aumentou a qualidade ou diminuiu o custo e a latência. O modelo personalizado se tornou propriedade intelectual e forneceu uma vantagem competitiva para o produto do cliente.
Uma motivação menos comum, mas mais premente, para criar modelos personalizados vem de preocupações legais ou regulatórias, especialmente em setores mais regulamentados. Alguns clientes querem ou precisam de controle total sobre seus modelos para gerenciar riscos, como acusações de uso ilegal de conteúdo para treinamento de modelos. Ao pré-treinar um modelo totalmente personalizado, você pode saber e provar exatamente como o modelo foi criado.
Então, como você pode começar? Embora a GenAI seja um campo de pesquisa complexo, pode ser simples começar a personalizar modelos de GenAI. Existe um caminho natural do ajuste fino básico ao pré-treinamento complexo, e a plataforma Databricks Mosaic AI suporta todo esse fluxo de trabalho. Ao seguir este caminho, você acumulará expertise e dados que alimentarão tipos futuros e mais complexos de personalização de modelos.
Princípios: Quando e Como Você Deve Fazer Ajuste Fino ou Criar Modelos Personalizados?
Quando, por que e como você deve criar modelos personalizados?
Em um nível alto, os sistemas de GenAI podem ser personalizados de duas maneiras:
Essas duas opções podem ser combinadas, como RAG usando um LLM com ajuste fino. Tais combinações — e a velocidade do desenvolvimento de GenAI — podem tornar o planejamento e a criação de aplicações de GenAI complexos. Para simplificar sua abordagem, recomendamos três princípios orientadores.
Para qualquer aplicação de GenAI, recomendamos que você comece de forma simples e adicione complexidade conforme necessário. Isso pode significar começar com um modelo existente (como as APIs de Modelo de Fundação Databricks) e fazer engenharia de prompt simples. Em seguida, adicione técnicas conforme necessário para melhorar suas métricas de qualidade, custo e velocidade.
A “escada” de técnicas pode ser dividida em loops de desenvolvimento interno e externo, descritos abaixo.
Loop externo: Escada de personalização de modelos | ||||
Cada etapa tem o potencial de criar um modelo de maior qualidade, menor custo e/ou menor latência. | Dados necessários | Tempo de desenvolvimento | Custo de desenvolvimento | |
Modelo existente | Comece com um modelo ou API de modelo existente e itere primeiro no loop interno. | Nenhum, ou dados para RAG | Horas | $ |
Ajuste fino supervisionado | Personalize um modelo para lidar melhor com sua tarefa específica. “Espere consultas como esta e retorne respostas como aquela.” | Centenas a dezenas de milhares de exemplos | Dias | $$ |
Retreinamento contínuo | Personalize um modelo para entender melhor seu domínio. “Aprenda a linguagem deste nicho de domínio de aplicação.” | Milhões a bilhões de tokens | Semanas | $$$ |
Pré-treinamento | Crie um novo modelo para ter controle total, personalização e propriedade. “Aprenda tudo do zero!” | Bilhões a trilhões de tokens | Meses | $$$$$$ |

Loop interno: Técnicas compostas de IA | |
Cada técnica abaixo pode melhorar a qualidade da geração para um determinado modelo. Essas técnicas são listadas em ordem (aproximada) de complexidade, mas podem ser misturadas e combinadas. | |
Engenharia de prompt | Crie prompts específicos para a tarefa para guiar o comportamento do modelo. |
Prompt de poucos exemplos (few-shot prompting) | Forneça dados em prompts para ensinar modelos no momento da inferência. |
RAG | Forneça dados específicos da consulta aos modelos como contexto adicional. |
Agentes | Forneça aos modelos ferramentas chamáveis e/ou fluxo de controle complexo. |
Adotar uma técnica do loop interno é relativamente barato e rápido, em comparação com subir um degrau no loop externo. Portanto, sempre que você subir no loop externo, vale a pena iterar em algumas ou todas as técnicas do loop interno. Essa designação “interna” versus “externa” é o inverso do que você esperaria da arquitetura do sistema — o loop “interno” de IA composta envolve o loop “externo” do seu modelo. Chamamos a personalização do modelo de loop “externo” porque ele é o loop externo em termos de seu fluxo de trabalho, conforme determinado pelos custos relativos dos loops interno e externo.
Antes de investir seriamente em qualquer projeto, defina cuidadosamente sua régua de medição de sucesso e siga as práticas populares de desenvolvimento orientado por avaliação.
No nível de sistemas de IA, considere métricas de qualidade, custo e latência.
Quais números essas métricas devem atingir para declarar sucesso? Quais restrições rígidas você tem nessas métricas para garantir uma boa experiência do usuário, retorno positivo sobre o investimento ou outros requisitos de negócios?Veja esta palestra de nosso cientista-chefe de IA para mais discussões.
No nível do projeto e de negócios, analise o retorno sobre o investimento.
Seus objetivos orientados por dados informarão suas escolhas sobre personalização de modelos (princípio 1). Por exemplo, se você atingir suas métricas de qualidade, mas exceder seus limites de custo usando uma API de modelo cara, você pode passar a ajustar um modelo menor e mais eficiente, adaptado à sua tarefa específica, para reduzir custos e manter a qualidade. O ajuste fino incorrerá em custos de desenvolvimento extras, mas reduzirá os custos contínuos — e reduzirá o custo geral a longo prazo.
Avaliar modelos e sistemas GenAI é desafiador. Técnicas de ajuste fino e pré-treinamento são uma área de pesquisa em alta. O entusiasmo acadêmico e da indústria (e os LLMs) estão gerando muito mais conteúdo do que se pode ler. Essas fontes de confusão tornam desafiador saber quando usar quais técnicas. (“Preciso de LoRA? O que é aprendizado curricular? Qual arquitetura de modelo é melhor?”)
Muitas pessoas novas em GenAI ouviram que você pode jogar montanhas de dados em GenAI e ele aprenderá coisas incríveis. Modere essas expectativas. A quantidade de dados importa, mas a qualidade dos dados, as técnicas de treinamento e a avaliação também importam.
Clientes Databricks podem contar parcialmente com a orientação integrada no Mosaic AI durante sua jornada na escada da personalização de GenAI. Essa orientação varia de APIs simples para modelos gerais ao Agent Bricks Custom Agents para RAG e agentes, a uma interface de usuário e API para ajuste fino e até mesmo a uma API guiada para pré-treinamento.
No entanto, quanto mais você avançar na personalização, mais técnicas e decisões você precisará tomar. Recomendamos que você mantenha o pragmatismo. Técnicas que funcionaram em pesquisa podem não funcionar em aplicações da vida real. Modelos bons para uma tarefa podem ser ruins para outra. As melhores técnicas mudarão com o tempo. Para navegar nessa complexidade, mantenha os princípios 1 e 2 em mente: Defina sua estrela guia e siga-a com base em dados e métricas.
Também recomendamos fazer parceria conosco. Além de sua equipe imediata Databricks, nossa equipe de Serviços Profissionais pode guiá-lo desde provas de conceito iniciais até execuções completas de pré-treinamento. Nossa equipe de Pesquisa Mosaic faz parceria com muitos clientes para execuções de pré-treinamento, dando-lhes acesso a conhecimento e conselhos de ponta.
Técnicas para Construir LLMs Personalizados
Dado que você deseja subir no loop externo de personalização de modelos, como você deve abordar as técnicas introduzidas com o princípio 1? Esta seção discute a avaliação e, em seguida, mergulha nas principais técnicas de personalização.
Nota: Este guia não foca no loop interno de iteração em um modelo fixo. Para mais informações sobre essas técnicas, consulte os cursos Fundamentos de IA Generativa e Engenharia de IA Generativa com Databricks.
Esta seção desenvolve as técnicas de personalização descritas anteriormente no loop externo do princípio 1. Nós as listamos aqui e observamos que sua escolha de técnica será amplamente guiada pelos dados que você tem disponíveis (princípio 2).
Loop externo: Escada de personalização do modelo | ||
Tipo de dado necessário | Orientação de tamanho de dados | |
Modelo existente | NA | Nenhum, ou dados para RAG |
Ajuste fino supervisionado | Dados de consulta-resposta (ou dados “rotulados” de outra forma) | Pelo menos centenas a dezenas de milhares de exemplos |
Pré-treinamento contínuo | Texto “bruto” para predição do próximo token | Milhões a bilhões de tokens, ou 1%+ do conjunto de treinamento original |
Pré-treinamento | Texto “bruto” para predição do próximo token | Bilhões a trilhões de tokens |
Na próxima seção, cobriremos cada técnica com mais detalhes, começando com orientações que permanecem constantes em todas as técnicas.
Seus dados devem corresponder ao seu caso de uso. Se você está ajustando um modelo para responder de uma certa maneira, então seus dados de treinamento devem demonstrar respostas “boas”. Se você está fazendo pré-treinamento contínuo para entender um domínio específico, seus dados devem representar esse domínio.
Aborde questões legais e de licenciamento desde o início. Ao usar dados públicos, especialmente para pré-treinamento, esteja ciente de que alguns conjuntos de dados públicos são bem curados para evitar complicações legais e alguns conjuntos de dados não são. Ao usar seus próprios dados corporativos, certifique-se de ter certeza da proveniência, especialmente se os dados vieram de clientes ou de modelos GenAI com licenças restritivas.
Colete dados cedo e com frequência. Consultas, respostas e feedback do usuário de seus aplicativos hoje podem se tornar entradas para o ajuste e treinamento do seu modelo GenAI no futuro — mas apenas se você for cuidadoso com isso. Muitos modelos proprietários e de código aberto vêm com restrições de uso, portanto, rastreie a proveniência das respostas geradas cuidadosamente. Para lhe dar flexibilidade futura, evite misturar modelos e dados com licenças incompatíveis e prefira licenças abertas.
Use dados sintéticos com cuidado. Dados sintéticos podem ser úteis, mas dados corporativos genuínos são quase sempre mais valiosos. Dados “reais” podem ser usados para informar LLMs sobre como gerar dados sintéticos, o que você aprenderá mais tarde neste guia. Dados sintéticos ainda são uma área de pesquisa ativa.
Esteja ciente de modelos base vs. instrução/chat. A maioria dos principais lançamentos de LLM inclui modelos base (pré-treinados, mas não ajustados) e variantes de seguimento de instrução ou chat (ajustados). Veja nossas recomendações sobre qual tipo usar nas seções seguintes.
Use os modelos sugeridos pelos recursos do Mosaic AI. O Mosaic Research estuda arquiteturas de modelos de ponta, compartilha algumas principais recomendações para modelos GenAI e prioriza esses modelos principais no Databricks Model Training e outros recursos.
Desça para código mais personalizado, se necessário. Se os modelos ou métodos de treinamento padrão não atenderem às suas necessidades, você sempre pode “descer na pilha” e usar código mais personalizado. Os clusters acelerados por GPU da Databricks (computação geral) e o Databricks Model Training (computação especializada em deep learning) suportam código de treinamento arbitrário para GenAI e outros modelos de deep learning.
Identifique modelos que mostram promessa para seu caso de uso. Antes do ajuste, examine se o modelo genérico mostra promessa para sua aplicação. “Promessa” pode ser medida por testes manuais ad hoc usando o AI Playground ou um teste mais rigoroso usando um conjunto de dados de benchmark ou seu conjunto de dados de avaliação personalizado. Os testes podem exigir treinamento em pequena escala. Para ajuste fino, o modelo melhora após o ajuste fino em um pequeno conjunto de 100 exemplos? Para pré-treinamento, o modelo melhora com o pré-treinamento contínuo em um conjunto de dados específico?
Lembre-se de suas restrições. Escolha o tamanho do seu modelo com base em suas restrições de custo e latência no tempo de inferência. Lembre-se também de que construir modelos personalizados é apenas o loop externo; você também pode otimizar custos e latência no loop interno, como roteando solicitações mais simples para modelos menores.
Dica: Seu trabalho em técnicas mais simples não será em vão, pois essas técnicas formam uma sequência. Por exemplo, depois de pré-treinar um modelo, você geralmente faz o ajuste fino supervisionado em seguida.
O Princípio 2 recomenda ser orientado por dados, com métricas. Antes de mergulharmos nos detalhes de como construir modelos personalizados, abordaremos as métricas de avaliação e qualidade que podem guiar seu trabalho.
Assim como na engenharia de software, recomendamos seguir uma pirâmide de testes.
Analogia de teste de software | Velocidade/custo vs. fidelidade | Exemplos |
Testes unitários | Medidas proxy rápidas e baratas | Testes com respostas certas/erradas |
Testes de integração | Testes de velocidade/custo médios | Métricas LLM-como-juiz em conjuntos de dados de benchmark |
Testes de ponta a ponta | Testes lentos, mas realistas | Feedback humano |
Os exemplos na pirâmide de testes acima são escritos genericamente e evitam a questão de testar modelos (o loop externo do princípio 1) vs. sistemas de IA compostos (loop interno). Ao construir um modelo personalizado, você desejará testar tanto o modelo em si quanto os sistemas de IA que o utilizarão. Por exemplo, “métricas LLM-como-juiz” podem ser usadas para testar a capacidade de um modelo de seguir instruções, e elas podem ser usadas para testar as métricas de recuperação e as métricas de resposta a perguntas de um sistema RAG.
Sua pirâmide de testes será muito diferente ao ajustar um modelo para uma tarefa específica em comparação com o pré-treinamento de um modelo de propósito geral. Ser orientado por dados e métricas significa adaptar sua pirâmide de testes aos casos de uso downstream do seu modelo.
Se você está ajustando um modelo para uma tarefa específica, lembre-se de começar pequeno (princípio 1). Por exemplo, você pode:
À medida que você inicia o pré-treinamento contínuo ou o pré-treinamento completo, suas avaliações podem se tornar mais complexas. Ao planejar sua pirâmide de testes, divida sua avaliação pelas diferentes habilidades que você acredita que seu modelo precisa para que você possa focar nas áreas importantes. Isso pode significar:
Dicas:
Em maio de 2024, a Databricks lançou o DBRX, um LLM de código aberto de ponta (na época). Seu conjunto de avaliação fornece um bom exemplo de uma pirâmide de testes, que é descrita abaixo.
Analogia de teste de software | Exemplos de métricas da construção do DBRX | |
Testes unitários | 39 benchmarks publicamente disponíveis divididos em seis competências principais: compreensão de linguagem, compreensão de leitura, resolução de problemas simbólicos, conhecimento de mundo, senso comum e programação | |
Testes de integração | Dados de benchmark de conversação multi-turno e de seguimento de instruções | |
Dados de benchmark de seguimento de instruções | ||
Chatbot Arena – gerador baseado para dados de benchmark de preferência humana | ||
Testes de ponta a ponta | Feedback interno e de clientes e testes A/B | Testes iterativos com usuários internos e externos para coletar métricas de testes A/B e anotações humanas |
Red-teaming | Testes de especialistas para gerar saídas indesejáveis (ofensivas, tendenciosas ou inseguras de outra forma) |
Para mais informações sobre métricas de avaliação, recomendamos este curso de Engenharia de IA Generativa. Para ferramentas, recomendamos o Databricks MLflow, que suporta métricas automatizadas (LLM-como-juiz), conjuntos de dados de avaliação e um aplicativo de avaliação humana. A Avaliação de Agente usa as APIs de código aberto do MLflow para avaliação de LLM. Para uma avaliação mais aprofundada para pré-treinamento, podemos trabalhar com você para desenvolver seu plano de avaliação personalizado.
A primeira técnica para personalização de modelos usada pela maioria dos praticantes é o ajuste fino supervisionado (SFT), no qual um modelo é treinado em dados rotulados para otimizá-lo para uma tarefa ou comportamento específico.
Casos de uso comuns incluem:
Terminologia: “Ajuste fino” é frequentemente usado para significar “ajuste fino supervisionado”, mas tecnicamente, “ajuste fino” é qualquer adaptação de um modelo existente. O pré-treinamento contínuo e o aprendizado por reforço com feedback humano (RLHF) também são tipos de ajuste fino.
O ajuste fino é, de longe, o tipo mais rápido e barato de personalização de modelos. Por exemplo, para o modelo MPT-7B lançado em maio de 2023, o ajuste fino de instruções custou US$ 46 para processar 9,6 milhões de tokens, enquanto o pré-treinamento custou US$ 250.800 para processar 1 trilhão de tokens.
Ao preparar seus dados, o conteúdo e a formatação são fundamentais. Uma grande parte do ajuste fino é ensinar ao modelo quais entradas esperar e quais saídas você espera. Como você espera que as consultas dos seus usuários se pareçam, em termos de formato, tom, cobertura de tópicos ou outros aspectos? Seus dados de treinamento devem representar essas expectativas.
Tamanho dos dados é um tópico comum de perguntas e, em última análise, depende do caso de uso. Em alguns casos, vimos bons resultados com ajuste fino em conjuntos de dados pequenos de centenas ou milhares de exemplos, mas algumas aplicações exigem dezenas de milhares ou centenas de milhares de exemplos. Comece pequeno para validar seu plano e, em seguida, escale iterativamente, expandindo seu conjunto de dados de treinamento, se necessário.
Dados sintéticos podem ser úteis para SFT, mais comumente para expandir um conjunto pequeno demais de dados “reais”. Um LLM pode ser instruído a gerar dados sintéticos de SFT semelhantes a exemplos de seus dados reais.
Veja também a documentação sobre preparação de dados para Treinamento de Modelos Databricks.
Anteriormente nesta guia, recomendamos usar os modelos suportados pelo Treinamento de Modelos Databricks por padrão e testar modelos quanto ao potencial para seu caso de uso. Um bom exemplo disso veio do MPT. Embora o MPT não tenha sido treinado com o japonês em mente, um teste rápido de ajuste fino com 100 exemplos de prompt-resposta em japonês resultou em um modelo surpreendentemente eficaz para um cliente. Esse teste rápido validou a abordagem e abriu caminho para o ajuste fino em larga escala.
Ao escolher um tamanho de modelo, considere começar com um modelo superdimensionado. Ao ajustar com um pequeno conjunto de dados, um modelo maior tem maior probabilidade de produzir bons resultados do que um modelo menor. Começar com um modelo grande pode informar sobre o potencial em seus dados e caso de uso, e o SFT é relativamente barato. Após ver o potencial, você pode testar com modelos menores e mais dados.
Você pode executar SFT em variantes de base ou de instrução/chat de modelos. Por padrão, recomendamos que você use uma variante de instrução/chat, especialmente se tiver um pequeno conjunto de dados. Se você executou o pré-treinamento contínuo para criar um modelo base personalizado, então você pode executar SFT em seu modelo base personalizado.
O Treinamento de Modelos Databricks fornece interfaces simples (UI e API) para tarefas de ajuste fino supervisionado. Além das dicas sobre dados e modelos já apresentadas nesta guia, considere:
Recomendamos o Databricks Model Training para um fluxo de trabalho simples e eficiente por padrão. No entanto, se você precisar usar uma arquitetura de modelo não suportada ou precisar de métodos de ajuste mais personalizados, poderá executar código totalmente personalizado em clusters Databricks com aceleração por GPU (computação geral) e no Databricks Model Training.
Este guia não se aprofunda em fine-tuning eficiente em termos de parâmetros (PEFT), uma família de técnicas como adaptação de baixo ranqueamento (LoRA) para tornar o fine-tuning e a inferência mais eficientes. Consulte este blog, este blog ou o Hugging Face PEFT para descrições e exemplos dessas técnicas.
O fine-tuning supervisionado (SFT) não foi projetado para ensinar um modelo a entender um novo domínio. Para personalizar um modelo para entender um novo idioma, uma indústria específica ou outra área particular, os praticantes podem recorrer ao pré-treinamento contínuo (CPT). O CPT é semelhante ao pré-treinamento, exceto que você pega um modelo pré-treinado existente e, em seguida, *continua* o processo de pré-treinamento usando novos dados. Após o CPT para adaptar-se a um novo domínio, o modelo geralmente é adaptado a tarefas específicas por meio de fine-tuning supervisionado.
Casos de uso comuns incluem:
Para melhorar o modelo de instrução do meu bot de Q&A RAG, devo usar fine-tuning supervisionado (SFT) ou pré-treinamento contínuo (CPT)?
Ambas as técnicas podem ser aplicáveis, mas depende de quais dados de treinamento você tem e o que deseja melhorar no modelo. Se você deseja ensinar o modelo a responder de uma certa maneira, use SFT — se você tiver dados de consulta-resposta para treinamento. Se o modelo não entende seu domínio ou idioma, use CPT — se você tiver uma quantidade considerável de dados de texto para treinamento. Lembre-se de que, após o CPT, você provavelmente precisará executar o SFT para reensinar o modelo a responder a consultas.
Posso usar SFT ou CPT para ensinar novos conhecimentos e fatos ao meu modelo?
Sim, ambas as técnicas podem transmitir algum conhecimento, mas o CPT é mais aplicável. Independentemente disso, você pode precisar usar RAG para tornar seu sistema de IA robusto, fundamentando as respostas com dados de origem.
Ao considerar quais dados você precisa para CPT, lembre-se do princípio 2 (“orientado por dados”). O que você deseja melhorar no modelo original? Seus dados devem representar o domínio, idioma, conhecimento, etc. que você deseja instilar no modelo. Para um caso de uso específico, isso provavelmente se traduzirá em executar CPT em seus dados corporativos proprietários relevantes para o caso de uso — seus documentos de base de conhecimento internos, artigos de pesquisa relevantes dos últimos 20 anos, etc. Para um modelo mais geral, nossa orientação para dados se torna mais semelhante à de pré-treinamento , onde você pode selecionar vários conjuntos de dados para representar as diferentes conjuntos de habilidades importantes para o seu caso de uso.
Dica: Esquecer vs. aprender. Ao testar o CPT, lembre-se de que há compensações entre esquecer o conhecimento passado e aprender novo conhecimento. Seu objetivo é mudar o comportamento do modelo para imitar seus dados de treinamento CPT, mas isso pode significar esquecer aspectos dos dados de pré-treinamento originais. Portanto, certifique-se de que tanto seus dados de treinamento CPT quanto sua suíte de avaliação cubram os domínios que você se importa.
Para formato de dados, seus dados serão texto “bruto”. Ou seja, você executará o CPT fazendo previsão do próximo token, assim como no pré-treinamento.
Para tamanho dos dados, o CPT pode abranger desde o ajuste de um modelo com menos tokens até a mudança significativa de um modelo com muitos tokens. “Menos” e “muitos” dependerão do tamanho do modelo, mas uma estimativa razoável são bilhões de tokens para LLMs modernos de tamanho médio. Uma regra geral é que o CPT exigirá pelo menos ~1% do tamanho do conjunto de treinamento original.
Preciso de dados brutos para CPT e dados de prompt-resposta para SFT?
Se você estiver executando CPT seguido por SFT, então sim. No entanto, se você tiver dados para CPT, mas poucos dados para SFT, poderá aumentar seu pequeno conjunto de dados SFT com dados de consulta-resposta usando outros conjuntos de dados SFT ou dados sintéticos.
Dados sintéticos podem ser úteis para CPT, especialmente para destilação, na qual um modelo grande e poderoso é usado para gerar dados para treinar um modelo menor. A destilação pode ajudar a criar modelos menores, mais rápidos e mais baratos e pode complementar seus dados não sintéticos específicos para seus casos de uso.
Veja também a documentação sobre preparação de dados para Databricks Model Training.
Assim como para SFT, recomendamos usar os modelos suportados pelo Databricks Model Training por padrão e testar os modelos quanto ao potencial para seu caso de uso.
Nossas recomendações sobre o ajuste de um modelo base versus uma variante de instrução/chat, e sobre a execução de SFT após CPT, estão interligadas. O caminho mais comum, e nossa recomendação padrão, é executar CPT em um modelo base, seguido por SFT para ajuste de instrução ou chat. No entanto, existem nuances:
O Treinamento de Modelos Databricks oferece interfaces simples (UI e API) para CPT. As dicas para SFT mencionadas anteriormente neste guia se aplicam principalmente ao CPT também. Convenientemente, o recurso de Treinamento de Modelos pode ser usado para executar tanto CPT quanto SFT.
Sua pirâmide de testes da discussão anterior sobre avaliação precisará de testes mais robustos e gerais, pois o CPT pode alterar o modelo de forma mais fundamental do que o SFT. À medida que você escala o CPT, sua pirâmide de testes pode começar a se parecer mais com um conjunto de testes de pré-treinamento.
À medida que suas cargas de trabalho de CPT se tornam mais personalizadas e maiores, você também pode querer explorar a pilha de pré-treinamento discutida abaixo.
CPT é útil para testar dados para pré-treinamento. Se seus dados de CPT cobrem um novo domínio (como uma nova linguagem de programação), então mostrar sucesso com CPT indica que os dados podem ser úteis como parte de um conjunto de dados de pré-treinamento.
Digamos que seu aplicativo GenAI progrediu através do pré-treinamento contínuo e você acredita que pré-treinar um modelo totalmente personalizado é o próximo passo necessário para melhorar seu aplicativo. Esta seção descreve o processo e as melhores práticas em um nível alto, mas na prática, você deve passar pelo processo de pré-treinamento com sua equipe Databricks.
Você deveria pular direto para o pré-treinamento?
Não. Mesmo que restrições regulatórias ou outras exijam que você crie um novo modelo que você possua totalmente, é melhor prototipar nas etapas inferiores da escada de personalização primeiro. Isso permite que você reduza o risco de execuções de pré-treinamento mais caras e complexas.
A realidade é que o pré-treinamento é um processo iterativo e adaptativo, mas as etapas gerais e comuns no pré-treinamento incluem:
Este breve resumo procedural enfatiza a devida diligência e avaliação devido ao custo relativamente alto do pré-treinamento completo. Lembre-se do exemplo citado anteriormente do modelo MPT-7B, para o qual o pré-treinamento custou 5452 vezes mais do que o ajuste fino de instruções.
Sua escolha e tratamento de dados desempenharão um papel importante na determinação do sucesso de suas execuções de pré-treinamento.
Sua mistura de dados deve ser escolhida cuidadosamente para representar seu aplicativo de destino.
Quantidade de dados e qualidade importam, mas em momentos diferentes. É comum começar o pré-treinamento com “todos os dados” com controles de qualidade mais flexíveis. Inicialmente, mais tokens se traduzem em mais aprendizado de capacidade básica de linguagem. No entanto, mais tarde, durante o pré-treinamento, é comum mudar a mistura de dados para um conjunto menor e de maior qualidade. “Alta qualidade” não tem uma definição acadêmica, mas intuitivamente significa curadoria usando técnicas de bom senso. Veja o seguinte para mais informações sobre preparação de dados.
Quanta quantidade de dados?
Como os dados devem ser preparados?
O processamento de dados é o forte original da Databricks. Faça uso do seguinte:
Embora os pesquisadores naturalmente divulguem novas arquiteturas de modelos como grandes avanços, há uma razão pela qual a arquitetura Transformer ainda domina, apesar de ter sido criada em 2017 — ela funciona muito bem. Da mesma forma, geralmente recomendamos aderir a escolhas arquitetônicas comprovadas, como:
A Databricks suporta pré-treinamento em arquiteturas arbitrárias, mas fornecemos configurações de pré-treinamento mais simples para as principais arquiteturas recomendadas por meio do Databricks Model Training, que fornece versões gerenciadas e otimizadas de ferramentas como Mosaic LLM Foundry e Mosaic Diffusion. Essa ferramenta pode simplificar escolhas, fornecendo padrões padrão e bem testados. Por exemplo, em julho de 2024, o LLM Foundry recomenda o FlashAttention-2 como um mecanismo de atenção padrão e suporta arquiteturas MoEs como o DBRX. Para sua aplicação específica, podemos aconselhar sobre detalhes da arquitetura.
Quanto ao tamanho do modelo, lembre-se de começar pequeno (princípio 1). Treinar um modelo de 7B parâmetros custa cerca de 10x menos do que um modelo de 70B, e isso pode informar suas escolhas de modelagem para quando você escalar. Além disso, considere as restrições de latência e custo do seu caso de uso como limites para o tamanho potencial do modelo.
Com seus dados e escolhas de modelagem preparados, você pode estar pronto para o pré-treinamento. Esta pode ser a etapa mais cara que você realiza com GenAI, daí a preparação cuidadosa nas etapas anteriores. Durante esta etapa, é crucial usar ferramentas robustas e consultores especializados para garantir que o pré-treinamento ocorra sem problemas.
As execuções de pré-treinamento incluem muitos desafios. A plataforma Databricks Mosaic AI lida com muitos desses desafios automaticamente para o usuário.
Desafio | Mosaic AI |
Carregamento de dados: Você pode precisar carregar trilhões de tokens. | O Mosaic AI oferece tempos rápidos de inicialização e recuperação. |
Escalabilidade e otimização: Você pode precisar escalar de dezenas a milhares de GPUs. Existem muitas técnicas para otimizar o desempenho do treinamento. | O Mosaic AI oferece escalabilidade perfeita via paralelismo de dados e FSDP, e uma biblioteca de otimizações compostas. Ele atinge a utilização de FLOPS de modelo de ponta (MFU). |
Recuperação de falhas: Você pode esperar ~1 falha de infraestrutura a cada 1000 dias de GPU na maioria das nuvens. Os trabalhos de pré-treinamento podem apresentar picos de perda ou divergência. | O Mosaic AI detecta falhas automaticamente e realiza reinícios rápidos. A pilha de treinamento também reduz picos de perda. |
Determinismo: O carregamento e treinamento de dados distribuídos tornam o determinismo difícil, mas é valioso para recuperação e reprodutibilidade. | Os algoritmos de carregamento e treinamento de dados do Mosaic AI tornam o pré-treinamento muito mais reproduzível. |
A pilha do Mosaic AI Training abrange desde hardware até gerenciamento de carga de trabalho. A tabela a seguir lista as principais peças para aprender primeiro.
Estágio | Componente Mosaic AI | Detalhes |
Carregamento de dados | Fornece streaming rápido e reproduzível de dados de treinamento de armazenamento em nuvem, incluindo inicializações e reinícios rápidos. | |
Treinamento | Fornece melhores práticas e técnicas compostas para treinamento distribuído e eficiente. | |
Configuração do fluxo de trabalho | Permite a definição simples de fluxos de trabalho, incluindo preparação de dados, treinamento, ajuste fino e avaliação. A Databricks pode fornecer configurações padrão para ajudar você a começar o pré-treinamento de arquiteturas comuns. | |
Rastreamento de experimentos | Rastreia a avaliação e outras métricas durante as execuções de pré-treinamento. O Mosaic AI também suporta Weights & Biases. |
Seu caso de uso pode seguir os caminhos bem trilhados definidos como "receitas" de configuração pelo LLM Foundry, caso em que seu fluxo de trabalho pode ser muito orientado por configuração. Ou, se você precisar de arquiteturas ou código mais personalizados, pode se concentrar em partes de nível inferior da pilha, como MCLI, trabalhando mais diretamente com a infraestrutura do Mosaic AI.
Antes de pré-treinar um modelo, é importante estimar os custos. O custo de computação de pré-treinamento geralmente é simples de estimar, pois se resume à estimativa de horas de GPU, com base no tamanho dos dados e do modelo. Sua equipe Databricks pode fornecer estimativas precisas, mas para qualquer provedor, certifique-se de entender dois cálculos chave:
FLOPS = 6 x parâmetros x tokens
Esta regra prática diz que a computação (e o custo) aumentará linearmente com o tamanho do modelo e com o tamanho dos dados. Observe que "parâmetros" se traduzirá em "parâmetros ativos" para arquiteturas esparsas como MoEs.
Utilização de FLOPS do modelo (MFU) = utilização média de GPU na prática
O MFU nunca é 100% na prática, e muitas vezes está bem abaixo. Diferentes modelos e tipos de dados podem atingir diferentes MFUs. A pilha Mosaic AI é otimizada para atingir MFU de alto desempenho.
E quanto às épocas?
Treinar por N épocas custará N vezes mais do que 1 época. No entanto, para pré-treinamento, é comum usar uma única época, embora você possa repetir alguns dados chave de alta qualidade em seu treinamento. Isso é diferente das muitas épocas usadas em aprendizado profundo mais tradicional. Veja este artigo para mais informações.
Além dos custos de computação de pré-treinamento, também faça estimativas para:
Depois de iniciar o pré-treinamento, ele pode "simplesmente funcionar" no Databricks, mas ainda é importante monitorar o treinamento e saber como depurar ou melhorar o aprendizado. Sua equipe Databricks pode ajudá-lo a monitorar e depurar problemas.
Monitoramento envolve duas áreas principais:
Depuração mais frequentemente requer ajustes em:
Aprendizado curricular: O pré-treinamento geralmente não é executado em um único dataset homogêneo. O modelo final pode ser frequentemente melhorado variando a mistura de dados durante o processo de treinamento, e a técnica mais comum para isso é o aprendizado curricular, no qual datasets de maior qualidade e mais direcionados são enfatizados na mistura de dados posteriormente durante o treinamento. As misturas de dados podem ser especificadas antecipadamente, ou a mistura de dados pode ser ajustada manualmente para fortalecer o modelo em certas áreas.
Após o pré-treinamento, pode haver etapas adicionais para preparar um modelo para aplicações finais, como:
O Futuro
O ritmo do desenvolvimento de GenAI não está diminuindo. GPUs e outros hardwares especializados ficarão mais rápidos e baratos. Pilhas de software melhorarão. Novas arquiteturas de modelos e técnicas de treinamento passarão da pesquisa para a prática. O que você pode fazer para se preparar?
Com o Mosaic AI, você poderá aproveitar muitos desenvolvimentos por padrão. O Databricks Model Training, Model Serving e outros recursos continuarão a adicionar suporte para os modelos mais recentes. Novas técnicas de treinamento e inferência serão integradas internamente. Para cargas de trabalho maiores e mais complexas, o Mosaic AI suportará personalização completa, e as cargas de trabalho mais avançadas serão feitas em conjunto com a equipe de Pesquisa do Mosaic.
Em sua organização, concentre-se em suportar cargas de trabalho flexíveis e personalizáveis agora e no futuro:
Recursos
Sobre a Databricks
A Databricks é a empresa de dados e IA. Mais de 10.000 organizações no mundo todo — incluindo Block, Comcast, Condé Nast, Rivian, Shell e 70% das empresas da Fortune 500 — confiam na Plataforma de Inteligência de Dados da Databricks para assumir o controle de seus dados e usá-los com IA. A Databricks tem sede em São Francisco, com escritórios em todo o mundo, e foi fundada pelos criadores originais do Lakehouse, Apache SparkTM, Delta Lake e MLflow. Para saber mais, siga a Databricks no LinkedIn, X e Facebook.
Entre em contato para uma demonstração personalizada:
databricks.com/contact
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.