O que é o InstructLab?

Copiar URL

O InstructLab é um projeto open source para aprimorar os modelos de linguagem de larga escala ou Large Language Models (LLMs) utilizados em aplicações de inteligência artificial generativa (gen AI). Criado pela IBM e pela Red Hat, o projeto InstructLab é uma solução econômica para aperfeiçoar o alinhamento de LLMs que abre suas portas para quem quer contribuir, mesmo que tenha pouca experiência em machine learning (aprendizado de máquina).

Entre para a comunidade do InstructLab

LLMs podem impulsionar uma variedade de aplicações úteis, como chatbots e assistentes de programação. Eles podem ser proprietários (como os modelos GPT da OpenAI e Claude da Anthropic) ou oferecer diferentes níveis de abertura e restrições de uso em relação aos dados de pré-treinamento (como os modelos Llama da Meta, Mistral da Mistral AI e Granite da IBM).

É bastante comum que profissionais de IA precisem adaptar um LLM pré-treinado para uma determinada finalidade comercial, mas existem limites quanto ao que pode se modificado em um LLM:

  • O ajuste fino de um LLM para compreender habilidades ou áreas específicas de conhecimento normalmente envolve ramificar um modelo aberto existente e, em seguida, realizar um treinamento caro e com grande consumo de recursos.
  • Como não é possível incorporar melhorias no projeto upstream, os modelos não são aprimorados continuamente com as contribuições da comunidade.
  • Em geral, os aperfeiçoamentos feitos em um LLM exigem grandes quantidades de dados gerados por humanos cuja obtenção é cara e demorada.

O InstructLab segue uma abordagem que contorna essas limitações. Ele pode aprimorar LLMs utilizando muito menos informações geradas por humanos e recursos computacionais do que normalmente são consumidos para retreinar um modelo. Além disso, o InstructLab possibilita a incorporação de contribuições upstream para melhorar o modelo de forma contínua.

O nome InstructLab é derivado do trabalho de alinhamento em larga escala para chatbots da IBM Research, abreviado em inglês como LAB. O método LAB está descrito em um artigo de 2024 de autoria dos membros do MIT-IBM Watson AI Lab e da IBM Research.

O InstructLab não atende apenas a modelos específicos. Ele ajuda a incrementar as habilidades e fazer ajustes finos no conhecimento de qualquer tipo de LLM. Essa "árvore de habilidades e conhecimento" é melhorada continuamente com as contribuições da comunidade que podem ser aplicadas a builds regulares de um LLM aprimorado. O InstructLab mantém uma versão aprimorada do IBM Granite. Os dois outros modelos lançados pela IBM que foram aperfeiçoados com o método LAB são o Labradorite (derivado do Llama 2) e o Merlinite (derivado do Mistral). O projeto InstructLab tem como prioridade acelerar a iteração e como finalidade retreinar modelos regularmente. As organizações também podem usar as ferramentas de alinhamento de modelo do InstructLab para treinar seus próprios LLMs com habilidades e conhecimento proprietários.

Recursos da Red Hat

O método LAB consiste em três componentes:

  • Seleção de dados com base em taxonomia. Taxonomia é um conjunto diversificado de dados de treinamento selecionados por humanos como exemplos de novos conhecimentos e habilidades para o modelo.
  • Geração de dados sintéticos em larga escala. Em seguida, o modelo é usado para gerar novos exemplos com base nos dados de treinamento inseridos. Reconhecendo que a qualidade dos dados sintéticos pode variar, o método LAB tem mais uma etapa automatizada para refinar as respostas de exemplo com o intuito de garantir que sejam confiáveis e seguras.
  • Ajuste iterativo e em larga escala do alinhamento. Por fim, o modelo é retreinado com base no conjunto de dados sintéticos. O método LAB inclui duas fases de ajuste: ajuste do conhecimento e ajuste das habilidades.

As contribuições de dados da comunidade resultam em builds iterativos regulares de LLMs aprimorados, melhorados pela árvore de habilidades gerada a partir delas.

Vamos comparar o InstructLab a outras etapas de criação e aprimoramento de um LLM.

Pré-treinamento

Durante o pré-treinamento, o LLM é treinado para prever o próximo token usando trilhões de tokens de dados não rotulados. Isso pode sair muito caro, levar meses e exigir milhares de GPUs. O pré-treinamento de um LLM altamente eficiente só é possível para organizações com recursos consideráveis.

Ajustes de alinhamento

Após o pré-treinamento, os LLMs passam por ajustes de alinhamento para tornar as respostas do modelo o mais precisas e úteis possível Normalmente, a primeira etapa dos ajustes de alinhamento é o ajuste de instruções, quando o modelo é treinado em tarefas específicas. Em seguida, acontece o ajuste de preferências, que pode incluir aprendizado por reforço com feedback humano (RLHF). Nessa etapa, pessoas testam o modelo e classificam as saídas, marcando se as respostas são preferenciais ou não. O processo de RLHF pode incluir várias rodadas de feedback e refinamento para otimizar o modelo.

Pesquisadores descobriram que a quantidade de feedback usada nessa fase dos ajustes de alinhamento pode ser muito menor do que o conjunto inicial de dados de treinamento: algumas dezenas de milhares de anotações humanas em comparação aos trilhões de tokens de dados necessários para o pré-treinamento. Ainda assim, essa etapa revela capacidades latentes do modelo.

InstructLab

O método LAB nasceu da ideia de que deveria ser possível alcançar os mesmos benefícios do alinhamento do modelo com um conjunto ainda menor de dados gerados por humanos. Um modelo de IA pode usar poucos exemplos humanos para gerar uma grande quantidade de dados sintéticos, refinar a lista para melhorar a qualidade e, por fim, utilizar um conjunto de dados sintéticos de alta qualidade para continuar com o ajuste e o treinamento. Diferente dos ajustes de instruções, que em geral precisam de milhares de exemplos de feedback humano, o método LAB pode tornar um modelo muito melhor usando uma quantidade relativamente pequena de exemplos gerados por humanos.

Qual a diferença entre o InstructLab e a Geração Aumentada de Recuperação (RAG)?

A resposta curta é que o InstructLab e a Geração Aumentada de Recuperação (RAG) resolvem problemas diferentes.

A RAG é um método econômico para complementar um LLM com conhecimento específico de um domínio que não foi incluído no pré-treinamento. Com o método RAG, é possível fazer com que um chatbot responda com precisão a perguntas relacionadas a um campo ou tipo de negócios específico sem necessidade de retreinar o modelo. Os documentos com o conhecimento são armazenados em um banco de dados vetorial. Partes desses documentos são recuperadas e enviadas para o modelo com o objetivo de complementar as consultas dos usuários. Isso é útil para quem quer adicionar dados proprietários a um LLM sem perder o controle das próprias informações ou para quem precisa de um LLM capaz de acessar informações atualizadas. 

Já o método InstructLab utiliza contribuições dos usuários finais para gerar builds regulares de uma versão melhorada de um LLM. O InstructLab ajuda a acrescentar conhecimento e revelar novas habilidades de um LLM.

É possível "turbinar" o processo da RAG usando essa técnica em um modelo ajustado com o método do InstructLab.

Saiba mais sobre RAG
 

O InstructLab é composto de vários projetos.

Taxonomia

O InstructLab é baseado em taxonomias que são, em grande parte, criadas manualmente e com todo o cuidado. O InstructLab contém uma árvore taxonômica para que os usuários possam criar modelos ajustados com dados gerados por humanos e melhorados por meio da geração de dados sintéticos.

Interface de linha de comando (CLI)

Na CLI do InstructLab, quem colabora com o projeto pode testar as próprias contribuições em um laptop ou estação de trabalho. Os membros da comunidade podem usar a técnica do InstructLab para gerar uma aproximação de baixa fidelidade da geração de dados sintéticos e do ajuste de instruções do modelo sem a necessidade de um hardware especializado.

Infraestrutura de treinamento de modelo

Por fim, temos o processo de criação de LLMs aprimorados. É necessária uma GPU com alto poder de processamento para retreinar regularmente modelos com base nas novas contribuições da comunidade. A IBM doa e mantém a infraestrutura necessária para retreinar regularmente os modelos aprimorados do projeto InstructLab.

Conheça melhor a infraestrutura de IA

Na hora de levar a IA para a sua empresa, tenha em mente que o Red Hat® Enterprise Linux® AI reúne a família de LLMs licenciados open source do Granite, as ferramentas de alinhamento de modelo do InstructLab, uma imagem inicializável do Red Hat Enterprise Linux, suporte técnico de nível empresarial e indenização por propriedade intelectual de modelos.

O Red Hat Enterprise Linux é a plataforma Linux líder mundial do setor, certificada em centenas de nuvens e compatível com milhares de fornecedores de hardware e software. Baseada nas tecnologias Linux, de containers e de automação, a estratégia de nuvem híbrida aberta da Red Hat proporciona flexibilidade para executar aplicações de IA onde forem necessárias.

O Red Hat Enterprise Linux AI e o projeto InstructLab contribuem para o avanço dessa visão. Ambos eliminam as barreiras de custo e recursos para que todos possam fazer experimentos e criar modelos de IA. Eles oferecendo as ferramentas, os dados e os conceitos necessários para impulsionar a próxima geração de cargas de trabalho inteligentes.

Conheça o Red Hat Enterprise Linux AI
Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é o Podman Desktop?

O Podman Desktop é uma ferramenta open source gratuita que simplifica o trabalho com containers em ambientes de desenvolvedor locais.

O que é o Helm?

Helm é um gerenciador de pacotes para Kubernetes que inclui todos os códigos e recursos necessários para implantar uma aplicação em um cluster.

O que é open source?

Open source é um termo em inglês e significa código aberto. O software open source pode ser visualizado, modificado e distribuído abertamente por qualquer pessoa.

Open source: leitura recomendada

Artigos relacionados