Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Referencia de hiperparámetros
En la siguiente tabla se enumeran todos los hiperparámetros configurables para los trabajos de entrenamiento de RL de varios giros. Los valores predeterminados de las recetas se incluyen a continuación.
| Categoría | Parámetros | Predeterminado | Choice | Explicación |
|---|---|---|---|---|
| Lote | global_batch_size | 128 | {32, 64, 128} | Número de indicaciones únicas por paso de entrenamiento. |
| Lote | tamaño_grupo | 8 | [2, 32] | Los despliegues por indicador se utilizan para calcular las ventajas basadas en grupos (GRPO/RLOO). |
| RL | método_ventaja | basado en grupos | monte_carlo, group_based, group_based_per_turn, rloo, inforce_pp, inforce_pp_baseline, opo, grpo_passk, gpg | Método para calcular las ventajas de los despliegues. |
| RL | loss_fn | pop | importance_sampling, ppo, cispo | Formulación de pérdida de RL. |
| RL | clip_low_threshold | 0.8 | [0, 1] | Límite inferior para recortar la ratio de probabilidad política π _new/π old en la pérdida sustitutiva. PPO-style |
| RL | clip_high_threshold | 1.2 | [1, 10] | Límite superior para recortar la ratio de probabilidad política de la pérdida. |
| sampling_params | temperature | 1 | [0, 2] | Temperatura de muestreo aplicada a los logits antes del muestreo. |
| sampling_params | sampling_top_p | 1 | [0, 1] | Nucleus-sampling límite. Muestras solo del conjunto más pequeño de fichas cuya probabilidad acumulada sea ≥ top_p. |
| sampling_params | sampling_max_tokens | 4096 | [512, 8192] | El número máximo de fichas que el modelo puede generar por turno durante el lanzamiento. |
| val_sampling_params | sampling_max_tokens | 4096 | [512, 8192] | El número máximo de fichas que el modelo puede generar por turno durante la evaluación. |
| val_metrics_config | pass_k_values | [1, 2, 4, 8, 16, 32] | n/a | Lista de valores k para calcular las métricas de pass @k. |
| val_metrics_config | umbral de éxito | 1 | n/a | Umbral de recompensa por contar una implementación como «exitosa». |
| Schedule | max_epochs | 1 | [1, 30] | El total pasa por alto los datos. |
| Schedule | max_steps | 50 | [1, 1000] | Total de iteraciones de entrenamiento. |
| Schedule | val_every | 10 | [0, 100] | Intervalo de evaluación (pasos). |
| Modelo | model_name_or_path | obligatorio | Modelo para ajustar con precisión (por ejemplo, "GPT-OSS-20B«). | |
| Modelo | lora_rank | 32 | [16,64] | El rango del adaptador LoRa que controla la capacidad del adaptador. |
| Modelo | lora_alpha | 64 | [16.128] | Factor de escalado LoRa. Magnitud de actualización efectiva ∝ alfa/rango. |
| Modelo | learning_rate | 4,00 E-05 | (0, 1e-2] | Tasa de aprendizaje de Adam. |
| Modelo | adam_beta1 | 0.9 | [0, 0.999999] | Tasa de decaimiento exponencial de la media acumulada del gradiente (primer momento) en Adam. |
| Modelo | adam_beta2 | 0.95 | [0, 0,999999] | Tasa de decaimiento exponencial de la media acumulada del gradiente cuadrático (segundo momento) en Adam. |
| Modelo | adam_eps | 1,00 E-08 | [1e-16, 1e-2] | Se añade una pequeña constante al denominador para garantizar la estabilidad numérica en la regla de actualización de Adam. |
| Modelo | adam_weight_decay | 0 | [0, 1] | Coeficiente de disminución de peso desacoplado (). AdamW-style |
| Modelo | adam_grad_clip_norm | 1 | [0, 100] | Norma de gradiente global máximo. |
| Despliegue | rollout_max_concurrency | 96 | [32, 96] | Los procesos de despliegue máximo durante el vuelo pueden tener lugar en paralelo. |
| Despliegue | rollout_timeout | 600 | [300, 86400] | Gestión de fallos: tiempo transcurrido el cual se considera un error de implementación. |
| Lanzamiento | rollout_max_retries | 3 | [1, 10] | Número de reintentos en caso de lanzamientos fallidos. |
| async_config | max_steps_off_policy | 3 | [0, 10] | Umbral de estancamiento en el entrenamiento asincrónico. Si es 0, se trata de un entrenamiento sincrónico. |
Mejores prácticas para ajustar los hiperparámetros
Cuando una corrida es plana o se colapsa, los seis parámetros siguientes explican casi toda la explicación.
Tasa de aprendizaje
learning_rateControla el tamaño del paso que da el optimizador en cada iteración de entrenamiento. En el RL de varios giros, la señal de gradiente por paso varía en función de la tarea: en un entorno de escasa recompensa y con resultados binarios, se generan muchos grupos en los que todos los lanzamientos obtienen la misma puntuación, por lo que no se obtiene ninguna ventaja para todo el grupo. Solo los grupos con resultados mixtos producen una señal de gradiente, por lo que el gradiente útil de cada paso se diluye. La tasa de aprendizaje debe ser menor para alinearse con una señal más débil, o la carrera necesita más pasos.
Un entorno de recompensas densas en el que las trayectorias dentro de un grupo obtienen puntajes diferentes de manera confiable produce ventajas consistentes y distintas de cero en la mayoría de los grupos, y la tasa de aprendizaje predeterminada a menudo ya es suficiente.
El tamaño efectivo del paso también depende de la configuración de LoRa (la magnitud real de la actualización es igual), por lo que una tasa de aprendizaje fija se learning_rate × alpha/rank obtiene de forma diferente en función de la capacidad del adaptador.
Función de pérdida y rango de recorte
Si es la primera vez que utiliza el MTRL, el muestreo por importancia (importance_sampling) es un buen punto de partida antes de pasar a algoritmos avanzados basados en recortes. La PPO y la CISPO utilizan clip_low_threshold y clip_high_threshold limitan la razón de probabilidad, es decirpolicy_new(action|state) / policy_old(action|state), cuánto se permite cambiar la política en un solo paso de formación.
Una proporción de 1.0 significa que no hay cambio. El umbral inferior (por ejemplo0.8) impide que la política desaprenda agresivamente las acciones que antes favorecía. El umbral superior (por ejemplo1.2) evita que la empresa se comprometa en exceso con acciones que parecían buenas de una sola vez.
-
El PPO con
(clip_low_threshold, clip_high_threshold) = (0.8, 1.2)es la base de referencia segura para cualquier primera ejecución. -
CISPO requiere un recorte asimétrico ancho. Comience con,.
clip_low_threshold = 1.0clip_high_threshold = 6.0CISPO permite que las probabilidades de una mala acción disminuyan libremente y se basa únicamente en el clip superior para evitar la inestabilidad.
Se recomienda ajustar los umbrales de recorte si se observa un colapso o un entrenamiento insuficiente durante el entrenamiento.
Tamaño del lote y tamaño del grupo
Estos dos parámetros determinan conjuntamente la cantidad de señal de gradiente útil que recibe cada paso de entrenamiento.
global_batch_sizecontrola cuántas indicaciones únicas se incluyen en un paso del optimizador. Los lotes más grandes (128) promedian los gradientes sobre más solicitudes, lo que produce curvas de recompensa más suaves y actualizaciones más estables. Los lotes más pequeños (32) son más económicos por paso y son útiles para una iteración rápida, pero producen gradientes más ruidosos. Para las tiradas de producción, 128 es un buen valor predeterminado; para la depuración o el filtrado de hiperparámetros, 32 es suficiente.
group_sizedetermina el número de despliegues independientes que se generan para cada solicitud. Estos despliegues se comparan entre sí para calcular las ventajas. Si todos los lanzamientos reciben la misma recompensa (todos tienen éxito o todos fallan), la ventaja es cero y el grupo no produce ninguna señal de gradiente. El valor predeterminado es group_size = 8. Si hay suficiente diversidad en el grupo, redúzcala si el entorno exige más diversidad.
Número total de despliegues por paso =global_batch_size × group_size. En entornos con recompensas dispersas, donde la mayoría de los grupos no dan señal, suele ser más eficiente mantener un tamaño de grupo moderado y, en su lugar, aumentar el tamaño del lote o el número de pasos.
Off-policy obsolescencia
En el entrenamiento asincrónico, max_steps_off_policy controla el grado de obsolescencia que puede tener una implementación antes de descartarla. El valor predeterminado oculta la latencia final del servidor de despliegue. 3 Sin embargo, los lanzamientos obsoletos tienen cocientes de importancia que se desvían sustancialmente de los coeficientes y1.0, cuando estos coeficientes alcanzan los límites del clip, no aportan ninguna señal de gradiente.
Establézcalo en 0 al depurar el colapso. La obsolescencia asíncrona se ve agravada por las actualizaciones ponderadas por importancia y puede ocultar las causas fundamentales. Configúrelo0, estabilícelo y vuelva a activarlo una vez que se haya entendido el problema. Para entornos en los que las implementaciones son rápidas, max_steps_off_policy = 1 puede ser una opción predeterminada mejor.
Muestreo del máximo de fichas
sampling_max_tokenses el límite de generación por turno. Si el límite es demasiado bajo, las respuestas del modelo se truncan a mitad de la reflexión y recibe una recompensa por un intento incompleto. Luego, la política aprende a asociar esos prefijos truncados con malos resultados, lo que suprime los comportamientos exploratorios que habrían tenido éxito si hubiera tenido más espacio.
El valor predeterminado de 4096 funciona para la mayoría de las tareas. Aumente a 8192 para los modelos con respuestas demasiado thinking/reasoning largas. La regla de dimensionamiento es: max_turns × (sampling_max_tokens + expected_tool_output) + prompt
≤ max_sequence_length con cierto margen.
Diagnóstico: monitorrollout/tokens/response_max. Si las trayectorias se agrupan exactamente en el límite, el modelo se trunca silenciosamente y es probable que pierda señal. val_sampling_params.sampling_max_tokensdebería coincidir con el entrenamiento.
Configuración de despliegue
Estos parámetros controlan la forma en que se producen las implantaciones y la forma en que el entrenador gestiona las implantaciones lentas o fallidas.
-
rollout_max_concurrency— Controla cuántos despliegues hay en marcha a la vez. El valor predeterminado de 96 funciona bien para la mayoría de las configuraciones. Si se establece un valor demasiado alto en el modo asíncrono, se producen despliegues obsoletos y se puede sobrecargar el motor de inferencia. -
rollout_timeout— Cuánto tiempo (en segundos) hay que esperar a que se lance una sola vez antes de considerarla fallida. El tamaño predeterminado es 600 para los entornos típicos en los que se utilizan herramientas. Si se establece un valor demasiado bajo, se truncan las implementaciones que se habrían realizado correctamente si hubiera transcurrido más tiempo. -
rollout_max_retries— Controla los reintentos en caso de lanzamientos fallidos. Si la tasa de errores permanentes supera aproximadamente el 1%, el problema está en la configuración del entorno, no en el recuento de reintentos.
Parámetros de apoyo
-
Capacidad de LoRa (
lora_rankylora_alpha). La magnitud de actualización efectiva por paso es proporcional aalpha/rank, lo que actúa como un multiplicador de la tasa de aprendizaje. El valor predeterminado eslora_rank = 32, lora_alpha = 64(una proporción de 2:1). Considera la posibilidad de aumentar solo si todo lo demás está bien ajustado y la curva de recompensas sigue estabilizándose: duplique ambas opciones juntas (64/128) para aumentar la capacidad y, al mismo tiempo, conservar la misma tasa de aprendizaje efectiva. -
temperatura = 1,0, sampling_top_p = 1,0 para el entrenamiento. Para el entrenamiento de RL, lo ideal es que haya diversidad entre las implementaciones dentro de un grupo, de modo que la línea base del grupo sea adecuada. La temperatura 1.0 es una buena opción por defecto. Para la evaluación, utilice temperature = 0.0 (decodificación codiciosa) para que las curvas de evaluación sean deterministas y comparables en todas las corridas.
-
pass_k_values. Pass @1 es la métrica de evaluación principal. Pasar @G (donde G = tamaño del grupo) es una prueba de cordura útil: si el pase @G es muy alto, la mayoría de las solicitudes son demasiado fáciles; si el pase @G es muy bajo, la mayoría de las solicitudes son demasiado duras y la señal de grupo es escasa.
-
max_steps y max_epochs.
max_steps = 50para la detección (suficiente para ver si la curva se mueve), 100 para la producción. El colapso de la CISPO tiende a aparecer entre los escalones 40 y 80.max_epochs = 1es la opción predeterminada; en varias épocas se reutilizan las mismas indicaciones con nuevas versiones, lo que puede ser útil si el conjunto de solicitudes es pequeño, pero se corre el riesgo de sobreajustarse a una distribución de mensajes limitada. -
adam_beta2 = 0.95. Inferior al valor predeterminado de SFT de 0,999. En RL, las estadísticas de gradiente no son estacionarias, por lo que el optimizador necesita rastrear la varianza de gradiente reciente de manera más agresiva.
-
decadencia del peso = 0,0. LoRa ya restringe las actualizaciones mediante una parametrización de bajo rango. Añadir la disminución del peso agrava la regularización de formas que no han sido bien caracterizadas para el ajuste fino del RL.
-
adam_grad_clip_norm = 1,0. Limita la norma de gradiente global. Si el colapso se correlaciona con picos grandes antes del corte, baje a 0,5. Si la norma se sitúa exactamente en 1,0 para muchos pasos y la recompensa no cambia, el clip podría ser el obstáculo, por lo que debes subir a 2,0 con cautela.