

# Comprensión de los parámetros de fórmula
<a name="customize-fine-tune-evaluate-understand-modify"></a>

**Configuración de una ejecución**  
A continuación se ofrece una configuración de ejecución general y una explicación de los parámetros que intervienen.

```
run:
  name: eval_job_name
  model_type: amazon.nova-micro-v1:0:128k
  model_name_or_path: nova-micro/prod
  replicas: 1
  data_s3_path: ""
  output_s3_path: s3://output_path
  mlflow_tracking_uri: ""
  mlflow_experiment_name : ""
  mlflow_run_name : ""
```
+ `name`: (obligatorio) nombre descriptivo del trabajo de evaluación. Ayuda a identificar el trabajo en la consola de AWS.
+ `model_type`: (obligatorio) especifica la variante del modelo de Amazon Nova que se va a utilizar. No modifique manualmente este campo. Las opciones son:
  + `amazon.nova-micro-v1:0:128k`
  + `amazon.nova-lite-v1:0:300k`
  + `amazon.nova-pro-v1:0:300k`
  + `amazon.nova-2-lite-v1:0:256k`
+ `model_name_or_path`: (obligatorio) ruta al modelo base o ruta de S3 para el punto de comprobación entrenado posteriormente. Las opciones son:
  + `nova-micro/prod`
  + `nova-lite/prod`
  + `nova-pro/prod`
  + `nova-lite-2/prod`
  + (Ruta de S3 para el punto de comprobación entrenado posteriormente) `s3://<escrow bucket>/<job id>/outputs/checkpoints`
+ `replicas`: (obligatorio) número de instancias de computación que desea utilizar para entrenamiento distribuido. Debe establecer este valor en 1 porque no se admite el uso de varios nodos.
+ `data_s3_path`: (obligatorio) ruta de S3 al conjunto de datos de entrada. Deje este parámetro en blanco a menos que esté utilizando la fórmula *uso del conjunto de datos propio* o *LLM como juez*.
+ `output_s3_path`: (obligatorio) ruta de S3 para almacenar artefactos de evaluación de salida. Tenga en cuenta que el bucket de S3 de salida debe crearlo la misma cuenta que está creando el trabajo.
+ `mlflow_tracking_uri`: (opcional) ARN del servidor de seguimiento de MLflow para rastrear las puestas en marcha o experimentos de MLflow. Asegúrese de tener permiso para acceder al servidor de seguimiento desde el rol de puesta en marcha de SageMaker AI

**Configuración de evaluación**  
A continuación se ofrece una configuración de evaluación de modelos y una explicación de los parámetros que intervienen.

```
evaluation:
  task: mmlu
  strategy: zs_cot
  subtask: mathematics
  metric: accuracy
```
+ `task`: (obligatorio) Especifica la referencia o la tarea de evaluación que se va a utilizar.

  Lista de tareas admitidas:
  + mmlu
  + mmlu\_pro
  + bbh
  + gpqa
  + math
  + strong\_reject
  + gen\_qa
  + ifeval
  + llm\_judge
  + humaneval
  + mm\_llm\_judge
  + rubric\_llm\_judge
  + aime\_2024
  + calendar\_scheduling
  + humaneval
+ `strategy`: (obligatorio) define el enfoque de evaluación:
  + zs\_cot: cadena de pensamientos de cero intentos: enfoque para realizar peticiones a modelos de lenguaje de gran tamaño que fomenta el razonamiento paso a paso sin necesidad de ejemplos explícitos.
  + zs: cero intentos: enfoque para resolver un problema sin ejemplos de entrenamiento anteriores.
  + gen\_qa: estrategia específica para crear fórmulas de conjuntos de datos propias.
  + judge: estrategia específica para el LLM como juez de Amazon Nova y mm\_llm\_judge.
+ `subtask`: (opcional y eliminable) especifica una subtarea específica para determinadas tareas de evaluación. Elimine esta opción de la fórmula si la tarea no tiene ninguna subtarea.
+ `metric`: (obligatorio) métrica de evaluación que se va a utilizar.
  + accuracy: porcentaje de respuestas correctas
  + exact\_match: (para referencia `math`), devuelve la velocidad a la que las cadenas de entrada previstas coinciden exactamente con sus referencias.
  + deflection: (para referencia `strong reject`), devuelve la deflexión relativa al modelo base y la diferencia en las métricas de importancia.
  + pass@1: (para referencia `humaneval`) es una métrica que se utiliza para medir el porcentaje de casos en los que la predicción de mayor confianza del modelo coincide con la respuesta correcta.
  + `all`: devuelve las siguientes métricas:
    + Para `gen_qa` y uso de su propia referencia de conjunto de datos, devuelve las siguientes métricas:
      + `rouge1`: mide la superposición de unigramas (palabras individuales) entre texto generado y de referencia.
      + `rouge2`: mide la superposición de bigramas (dos palabras consecutivas) entre texto generado y de referencia.
      + `rougeL`: mide la subsecuencia común más larga entre textos, por lo que puede haber lagunas en la coincidencia.
      + `exact_match`: puntuación binaria (0 o 1) que indica si el texto generado coincide exactamente con el texto de referencia, carácter por carácter.
      + `quasi_exact_match`: similar a la coincidencia exacta, pero más flexible, pues suele ignorar el uso de mayúsculas y minúsculas, los signos de puntuación y los espacios en blanco.
      + `f1_score`: media armónica de precisión y recuperación que mide la superposición de palabras entre respuestas previstas y de referencia.
      + `f1_score_quasi`: similar a f1\_score, pero con una coincidencia más flexible, utiliza una comparación de texto normalizada que no tiene en cuenta pequeñas diferencias.
      + `bleu`: mide la precisión de las coincidencias de n-gramas entre texto generado y de referencia, suele utilizarse en la evaluación de traducciones.
    + En el caso de `llm_judge` y `mm_llm_judge` con su propio conjunto de datos comparativo, devuelve las siguientes métricas:
      + `a_scores`: número de aciertos para `response_A` en pasadas de evaluación hacia delante y hacia atrás.
      + `a_scores_stderr`: error estándar de `response_A scores` en juicios por pares.
      + `b_scores`: número de aciertos para `response_B` en pasadas de evaluación hacia delante y hacia atrás.
      + `b_scores_stderr`: error estándar de `response_B scores` en juicios por pares.
      + `ties`: número de juicios en los que se evalúa `response_A` y `response_B` como iguales.
      + `ties_stderr`: error estándar de ties en juicios por pares.
      + `inference_error`: número de juicios que no se han podido evaluar adecuadamente.
      + `inference_error_stderr`: error estándar de errores de inferencia en todos los juicios.
      + `score`: puntuación global basada en aciertos de pasadas hacia adelante y hacia atrás para `response_B`.
      + `score_stderr`: error estándar de puntuación global en juicios por pares.
      + `winrate`: probabilidad de que se prefiera response\_B a response\_A calculada utilizando probabilidad de Bradley-Terry.
      + `lower_rate`: límite inferior (percentil 2,5) de la tasa de aciertos estimada a partir del muestreo de inicio.

**Configuración de inferencias**  
A continuación se ofrece una configuración de inferencia y una explicación de los parámetros que intervienen. Todos los parámetros son opcionales.

```
inference:
  max_new_tokens: 200
  top_k: -1
  top_p: 1.0
  temperature: 0
  top_logprobs: 10
  reasoning_effort: null  # options: low/high to enable reasoning or null to disable reasoning
```
+ `max_new_tokens`: número máximo de tokens que se generarán. Debe ser un número entero.
+ `top_k`: número de tokens de mayor probabilidad que se deben tener en cuenta. Debe ser un número entero.
+ `top_p`: umbral de probabilidad acumulada para el muestreo de tokens. Debe ser un valor flotante entre 0,0 and 1,0, ambos inclusive.
+ `temperature`: asignación al azar en selección de tokens. Los valores más altos introducen más asignación al azar. Use 0 para hacer que los resultados sean deterministas. Este valor debe ser flotante con un mínimo de 0.
+ `top_logprobs`: el número de probabilidades logarítmicas principales que se devolverán en la respuesta de inferencia. El valor debe ser un número entero entre 0 y 20. Las probabilidades logarítmicas contienen los tokens resultantes considerados y las probabilidades de registro de cada token resultante devuelto en el contenido del mensaje.
+ `reasoning_effort`: controla el comportamiento de razonamiento de los modelos capaces de razonar. Establezca `reasoning_effort` solo cuando `model_type` especifique un modelo con capacidad de razonamiento (actualmente, `amazon.nova-2-lite-v1:0:256k`). Las opciones disponibles son `null` (valor predeterminado si no se establece ninguno; desactiva el razonamiento), `low` o `high`.

Tenga en cuenta que para `humaneval` recomendamos la siguiente configuración de inferencia:

```
inference:
  top_k: 1
  max_new_tokens: 1600
  temperature: 0.0
```

**Configuración de MLflow**  
A continuación se ofrece una configuración de MLFlow y una explicación de los parámetros que intervienen. Todos los parámetros son opcionales.

```
run:
  mlflow_tracking_uri: ""
  mlflow_experiment_name: ""
  mlflow_run_name: ""
```
+ `mlflow_tracking_uri`: (opcional) La ubicación del servidor de seguimiento de MLflow (solo se necesita en SMHP)
+ `mlflow_experiment_name`: (opcional) Nombre del experimento para agrupar los procesamientos de ML relacionados
+ `mlflow_run_name`: (opcional) nombre personalizado para un entrenamiento específico realizado dentro de un experimento