Conceitos - Ajuste fino de modelos de linguagem para fluxos de trabalho de IA e aprendizado de máquina
Neste artigo, você aprenderá sobre modelos de linguagem de ajuste fino, incluindo alguns métodos comuns e como a aplicação dos resultados de ajuste pode melhorar o desempenho de seus fluxos de trabalho de IA e aprendizado de máquina no Serviço Kubernetes do Azure (AKS).
Modelos linguísticos pré-treinados
Os modelos de linguagem pré-treinados (PLMs) oferecem uma maneira acessível de começar com a inferência de IA e são amplamente utilizados no processamento de linguagem natural (NLP). Os PLMs são treinados em corpora de texto em grande escala da Internet usando redes neurais profundas e podem ser ajustados em conjuntos de dados menores para tarefas específicas. Esses modelos geralmente consistem em bilhões de parâmetros, ou pesos, que são aprendidos durante o processo de pré-treinamento.
Os PLMs podem aprender representações universais da linguagem que capturam as propriedades estatísticas da linguagem natural, como a probabilidade de palavras ou sequências de palavras ocorrerem em um determinado contexto. Essas representações podem ser transferidas para tarefas a jusante, como classificação de texto, reconhecimento de entidade nomeada e resposta a perguntas, ajustando o modelo em conjuntos de dados específicos de tarefas.
Prós e contras
A tabela a seguir lista alguns prós e contras do uso de PLMs em seus fluxos de trabalho de IA e aprendizado de máquina:
Prós | Contras |
---|---|
• Comece rapidamente com a implantação em seu ciclo de vida de aprendizado de máquina. • Evite custos de computação pesados associados ao treinamento de modelos. • Reduz a necessidade de armazenar grandes conjuntos de dados rotulados. |
• Pode fornecer respostas generalizadas ou desatualizadas com base em fontes de dados pré-treinamento. • Pode não ser adequado para todas as tarefas ou domínios. • O desempenho pode variar dependendo do contexto de inferência. |
Métodos de ajustamento fino
Ajuste fino eficiente de parâmetros
O ajuste fino eficiente de parâmetros (PEFT) é um método para ajustar PLMs em conjuntos de dados relativamente pequenos com recursos de computação limitados. O PEFT usa uma combinação de técnicas, como métodos aditivos e seletivos para atualizar pesos, para melhorar o desempenho do modelo em tarefas específicas. O PEFT requer recursos de computação mínimos e quantidades flexíveis de dados, tornando-o adequado para configurações com poucos recursos. Esse método retém a maioria dos pesos do modelo original pré-treinado e atualiza os pesos restantes para ajustar dados rotulados específicos do contexto.
Adaptação de baixo nível
Low rank adaptation (LoRA) é um método PEFT comumente usado para personalizar grandes modelos de linguagem para novas tarefas. Esse método rastreia as alterações nos pesos do modelo e armazena eficientemente matrizes de peso menores que representam apenas os parâmetros treináveis do modelo, reduzindo o uso de memória e o poder de computação necessário para o ajuste fino. O LoRA cria resultados de ajuste fino, conhecidos como camadas de adaptador, que podem ser armazenados temporariamente e puxados para a arquitetura do modelo para novos trabalhos de inferência.
A adaptação quantizada de baixa classificação (QLoRA) é uma extensão do LoRA que reduz ainda mais o uso de memória, introduzindo quantização nas camadas do adaptador. Para obter mais informações, consulte Tornando LLMs ainda mais acessíveis com bitsandbites, quantização de 4 bits e QLoRA.
Experimente modelos de linguagem de ajuste fino no AKS
O Kubernetes AI Toolchain Operator (KAITO) é um operador de código aberto que automatiza implantações de modelos de linguagem pequenas e grandes em clusters Kubernetes. O complemento do operador da cadeia de ferramentas de IA aproveita o KAITO para simplificar a integração, economizar em custos de infraestrutura e reduzir o tempo de inferência para modelos de código aberto em um cluster AKS. O complemento provisiona automaticamente nós de GPU de tamanho certo e configura o servidor de inferência associado como um servidor de ponto de extremidade para o modelo escolhido.
Com o KAITO versão 0.3.0 ou posterior, você pode ajustar eficientemente os modelos licenciados MIT e Apache 2.0 suportados com os seguintes recursos:
- Armazene seus dados de retreinamento como uma imagem de contêiner em um registro de contêiner privado.
- Hospede a nova imagem da camada do adaptador em um registro de contêiner privado.
- Puxe a imagem de forma eficiente para inferência com camadas de adaptador em novos cenários.
Para obter orientação sobre como começar a ajustar o KAITO, consulte a documentação da API Kaito Tuning Workspace. Para saber mais sobre como implantar modelos de linguagem com KAITO em seus clusters AKS, consulte o repositório GitHub do modelo KAITO.
Importante
O software de código aberto é mencionado em toda a documentação e amostras do AKS. O software que você implanta é excluído dos contratos de nível de serviço do AKS, da garantia limitada e do suporte do Azure. Ao usar a tecnologia de código aberto ao lado do AKS, consulte as opções de suporte disponíveis nas respetivas comunidades e mantenedores do projeto para desenvolver um plano.
Por exemplo, o repositório Ray GitHub descreve várias plataformas que variam em tempo de resposta, finalidade e nível de suporte.
A Microsoft assume a responsabilidade pela criação dos pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter a propriedade completa do processo de compilação, digitalização, assinatura, validação e hotfix, juntamente com o controle sobre os binários em imagens de contêiner. Para obter mais informações, consulte Gerenciamento de vulnerabilidades para cobertura de suporte AKS e AKS.
Próximos passos
Para saber mais sobre cargas de trabalho de IA e aprendizado de máquina em contêineres no AKS, consulte os seguintes artigos:
Azure Kubernetes Service