O que é o treino interativo (pré-visualização) no Microsoft Foundry?

Important

Os itens marcados como pré-visualização neste artigo estão atualmente em pré-visualização. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e a Microsoft não a recomenda para cargas de trabalho de produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos Suplementares de Utilização para Microsoft Azure Previews.

Important

A formação interativa requer aprovação explícita de acesso. Solicite acesso através do formulário de inscrição para pré-visualização e aguarde aprovação antes de criar uma sessão de formação.

O treino interativo (pré-visualização) é uma API para construir o seu próprio ciclo pós-treino sobre modelos de peso aberto no Microsoft Foundry. Controlas o experimento em Python. A Foundry executa amostragem de modelos e atualizações de adaptação de baixa classificação (LoRA) em GPUs serverless.

Para aprendizagem por reforço (RL), o seu código controla a recolha de trajetórias, recompensas, vantagens e agendamento de atualizações. As mesmas primitivas suportam aprendizagem supervisionada, aprendizagem por preferências, destilação e fluxos de trabalho de perda personalizada.

Quando utilizá-lo

Utilize formação interativa quando o próprio ciclo de treino faz parte da sua investigação:

  • Precisas de um sinal de aprendizagem personalizado. Forneça demonstrações, calcule recompensas e vantagens, ou formule uma função de perda local para aprendizagem de preferências ou outros objetivos.
  • O seu modelo interage com um ambiente. Coordena respostas de modelos, chamadas de ferramentas, observações e recompensas no teu controlador.
  • Precisa de controlo das atualizações individuais. Selecione lotes, máscaras de token, definições de perda e parâmetros do otimizador. Decida quando acumular gradientes e aplique uma atualização.
  • Queres inspecionar e adaptar um experimento. Amostra do adaptador atual, avalie os prompts reservados e escolha os próximos prompts com base nos resultados observados.
  • Precisas de preservar e continuar a progredir. Guardar o estado do adaptador e do otimizador, depois retomar numa sessão compatível. Mantenha a posição do conjunto de dados e outros estados da experiência no seu controlador.

O ajuste fino gerido também suporta avaliadores para ajuste fino por reforço. Escolha formação interativa quando precisar de controlo sobre o loop, não apenas sobre o avaliador ou as definições do trabalho. Veja Escolha a sua abordagem de treino.

Quem faz o quê

O teu programa de Python é o controlador de treino. Prepara os inputs e coordena a experiência. A Foundry mantém o estado do modelo e do adaptador e executa as operações solicitadas.

Diagrama que separa o seu driver Python da execução do modelo Foundry. O driver detém a tokenização, recompensas, vantagens, objetivos e agendamento de experiências. Envia tokens e pedidos de operação para a Foundry e recebe amostras, probabilidades de log, métricas e IDs de checkpoint. O Foundry executa amostragem, passagens para a frente e para trás, atualizações do otimizador e gere operações de checkpoint.

O seu controlador pode ser executado num processador, incluindo na sua própria máquina ou num ambiente de computação. Um modelo de recompensa ou ambiente que adicionas pode ter os seus próprios requisitos de computação. Mantém o driver a funcionar enquanto gere o loop.

Conceitos centrais e primitivas

Uma sessão mantém estado: cálculo de gradiente, atualizações de otimizadores e amostragem são operações separadas no modelo e adaptador selecionados. Esta separação permite-lhe escolher quando recolher dados, acumular gradientes, atualizar e avaliar.

Bloco de construção O que faz
Sessão de treino e adaptador LoRA FineTuningSession.create Inicializa um modelo base suportado com a configuração do teu adaptador. A sessão contém o estado utilizado pelas operações subsequentes.
Lote tokenizado e máscaras Datum contém entradas de modelo e entradas da função de perda. As máscaras selecionam quais os tokens que contribuem para a aprendizagem, como tokens do assistente em vez de prompts ou observações de ferramentas.
Amostragem sample Gera respostas a partir de um checkpoint selecionado do sampler. Os inputs RL emparelham tokens amostrados com as suas probabilidades logarítmicas do rollout e vantagens derivadas da recompensa.
Passos para a frente e para trás forward retorna resultados por cada exemplo da função de perda sem acumular gradientes. forward_backward calcula o objetivo selecionado e acumula gradientes. Não aplica uma atualização do otimizador.
Atualização do otimizador optim_step aplica gradientes acumulados com os teus parâmetros de Adam. Escolhes quando atualizar e qual a taxa de aprendizagem a usar.
Checkpoint do sampler save_weights_for_sampler Prepara os pesos do adapter para a geração. Atualize novamente estes pesos após uma atualização antes de amostrar a partir do adaptador atualizado.
Ponto de verificação de formação save_weights persiste os pesos dos adaptadores e o estado do otimizador. FineTuningSession.create_from_checkpoint Retoma o treino numa sessão compatível.

O SDK inclui cross_entropy para atualizações supervisionadas e perdas de RL como importance_sampling e ppo. Estas perdas são primitivas de perda, não algoritmos de ponta a ponta pré-definidos. Para contratos input e composição de perdas personalizadas, consulte Conceitos-chave.

Como funciona um loop RL

Considere um experimento de raciocínio matemático: o seu modelo gera várias respostas para cada problema e o seu programa avalia a sua correção. Para um exemplo prático, siga Introdução.

Diagrama de uma iteração RL. O Foundry atualiza os pesos dos samplers e gera rollouts. O seu driver calcula recompensas, vantagens e máscaras de tokens. O Foundry calcula gradientes e aplica a atualização do otimizador. O loop volta a atualizar os pesos dos samplers antes de recolher novos rollouts.

Estabeleça uma baseline de validação e teste a sua função de recompensa antes da primeira atualização. Depois repita:

  1. Prepare a política atual para amostragem. Guarde os pesos do sampler do adaptador de treino e depois recolha várias respostas, ou rollouts, para cada prompt.
  2. Pontuar e comparar respostas. A tua função de recompensa atribui uma pontuação a cada rollout. Subtraia a recompensa média do grupo de prompts para obter a vantagem de cada rollout.
  3. Preparar o sinal de aprendizagem. Alinhe os tokens do assistente amostrados com as probabilidades log do rollout e vantagens. Exclua os prompts e as observações do ambiente do sinal de aprendizagem.
  4. Calcular gradientes. Submeta o lote em forward_backward com importance_sampling. Complete o cálculo do gradiente antes da atualização que o consome.
  5. Atualize o adaptador. Ligue para optim_step, depois atualize os pesos do sampler antes de recolher respostas da política atualizada.
  6. Avalie e preserve o progresso. Compare a correção no conjunto de validação com o valor de referência e guarde os pontos de controlo de treino com a frequência escolhida.

Introdução

Escolha o ponto de partida que se adequa à sua tarefa:

Modelos e regiões suportados

Consulte a visão geral de ajuste fino para modelos suportados e regiões suportadas.