Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Los elementos marcados como versión preliminar en este artículo se encuentran actualmente en versión preliminar. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y Microsoft no lo recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
Importante
El entrenamiento interactivo requiere aprobación de acceso explícita. Solicite acceso a través del formulario de registro en versión preliminar y espere a la aprobación antes de crear una sesión de entrenamiento.
El entrenamiento interactivo (versión preliminar) es una API para crear su propio bucle posterior al entrenamiento sobre modelos de peso abierto en Microsoft Foundry. Controlas el experimento en Python. Foundry ejecuta el muestreo de modelos y las actualizaciones de adaptación de bajo rango (LoRA) en GPU sin servidor.
Para el aprendizaje por refuerzo (RL), el código controla la recopilación de rollouts, recompensas, ventajas y la programación de actualizaciones. Los mismos primitivos admiten flujos de trabajo de aprendizaje supervisado, aprendizaje de preferencias, destilación y flujos de trabajo con funciones de pérdida personalizadas.
Cuándo usarlo
Utilice el entrenamiento interactivo cuando el propio bucle de entrenamiento sea parte de su investigación:
- Necesita una señal de aprendizaje personalizada. Proporcionar demostraciones, calcular recompensas y ventajas, o componer una pérdida local para el aprendizaje de preferencias u otros objetivos.
- El modelo interactúa con un entorno. Coordine las respuestas del modelo, las llamadas a las herramientas, las observaciones y las recompensas en su controlador.
- Necesita tener control sobre las actualizaciones individuales. Seleccione lotes, máscaras de token, configuración de pérdida y parámetros del optimizador. Decida cuándo acumular gradientes y aplicar una actualización.
- Quiere inspeccionar y adaptar un experimento. Realice un muestreo del adaptador actual, evalúelo con peticiones reservadas y elija las siguientes peticiones en función de los resultados observados.
- Necesita preservar y continuar el progreso. Guarde el estado del adaptador y del optimizador y, a continuación, reanude en una sesión compatible. Mantenga la posición del conjunto de datos y otro estado del experimento en el controlador.
El ajuste fino gestionado también admite evaluadores para el ajuste fino por refuerzo. Elija el entrenamiento interactivo cuando necesite controlar el bucle, no solo la configuración del calificador o del trabajo. Consulte Elegir su enfoque de entrenamiento.
¿Quién hace lo que hace?
Su programa de Python es el controlador de entrenamiento. Prepara entradas y coordina el experimento. Foundry mantiene el estado del modelo y del adaptador y ejecuta las operaciones solicitadas.
Su controlador puede ejecutarse en una CPU, incluida su propia máquina o un entorno de proceso. Un modelo de recompensa o un entorno que agregue puede tener sus propios requisitos de proceso. Mantenga el driver en ejecución mientras gestiona el bucle.
Conceptos básicos y primitivas
Una sesión tiene estado: el cálculo de gradientes, las actualizaciones del optimizador y el muestreo son operaciones independientes sobre un modelo y un adaptador seleccionados. Esta separación le permite elegir cuándo recopilar datos, acumular gradientes, actualizar y evaluar.
| Bloque de construcción | Qué hace |
|---|---|
| Sesión de entrenamiento y adaptador de LoRA |
FineTuningSession.create inicializa un modelo base admitido con la configuración del adaptador. La sesión contiene el estado utilizado por las operaciones posteriores. |
| Lote tokenizado y máscaras |
Datum lleva las entradas del modelo y las entradas de pérdida. Las máscaras seleccionan qué tokens contribuyen al aprendizaje, como tokens de asistente en lugar de prompts u observaciones de herramientas. |
| Muestreo |
sample genera respuestas a partir de un checkpoint del muestreador seleccionado. Las entradas de RL emparejan tokens muestreados con sus log‑probabilidades del rollout y ventajas derivadas de recompensas. |
| Pasadas hacia delante y hacia atrás |
forward devuelve salidas de función de pérdida por ejemplo sin acumular gradientes.
forward_backward calcula el objetivo seleccionado y acumula gradientes. No aplica una actualización del optimizador. |
| Actualización del optimizador |
optim_step aplica gradientes acumulados con los parámetros Adam. Elige cuándo actualizar y qué velocidad de aprendizaje se va a usar. |
| Punto de control del muestreador |
save_weights_for_sampler prepara los pesos del adaptador para la generación. Actualice estos pesos después de una actualización antes de realizar el muestreo del adaptador actualizado. |
| Punto de control de entrenamiento |
save_weights conserva los pesos del adaptador y el estado del optimizador.
FineTuningSession.create_from_checkpoint reanuda el entrenamiento en una sesión compatible. |
El SDK incluye cross_entropy para actualizaciones supervisadas y pérdidas de RL, como importance_sampling y ppo. Estas pérdidas son primitivas de pérdida, no algoritmos predefinidos de un extremo a otro. Para los contratos de entrada y la composición de pérdidas personalizadas, consulte Conceptos clave.
Funcionamiento de un bucle RL
Considere un experimento de razonamiento matemático: el modelo genera varias respuestas a cada problema y el programa evalúa si son correctas. Para un ejemplo trabajado, siga Introducción.
Establezca una línea de base reservada y pruebe su función de recompensa antes de la primera actualización. A continuación, repita:
- Prepare la directiva actual para el muestreo. Guarde los pesos del sampler del adaptador de entrenamiento y, a continuación, recopile varias respuestas o rollouts para cada solicitud.
- Puntuar y comparar respuestas. Su función de recompensa asigna una puntuación a cada lanzamiento. Resta la recompensa media del grupo de prompts para generar la ventaja de cada rollout.
- Prepare la señal de aprendizaje. Alinee los tokens de asistente muestreados con sus logaritmos de probabilidad del rollout y ventajas. Excluya las peticiones y las observaciones del entorno de la señal de aprendizaje.
- Calcule los gradientes. Envíe el lote a
forward_backwardconimportance_sampling. Complete el cálculo de gradientes antes de la actualización que lo consume. - Actualice el adaptador. Llame a
optim_stepy actualice los pesos del sampler antes de recopilar respuestas de la política actualizada. - Evalúe y conserve el progreso. Compare la corrección reservada con la línea de base y guarde los puntos de control de entrenamiento con la cadencia que elija.
Get started
Elija el punto de partida que se adapte a la tarea:
- Inicio rápido: Siga el ejemplo de inicio rápido para clonar el repositorio y ejecutar una receta breve de aprendizaje de refuerzo.
- Pruebe otras recetas: Explore el repositorio de ejemplos de ajuste fino para obtener más ejemplos de entrenamiento.
- Busque una operación: Use la hoja de referencia rápida del SDK (versión preliminar) para funciones y parámetros clave.
- Comprenda el bucle de entrenamiento: Lea Conceptos clave para recompensas, ventajas, máscaras de token y puntos de control.
Modelos y regiones admitidos
Consulte la descripción general del ajuste preciso para los modelos admitidos y las regiones admitidas.