

# Ejemplos de fórmula de evaluación
<a name="customize-fine-tune-evaluate-recipe-examples"></a>

Amazon Nova proporciona cuatro tipos de fórmulas de evaluación, que están disponibles en el repositorio de fórmulas de SageMaker HyperPod en GitHub.

## Fórmulas de referencia de texto general
<a name="nova-model-hp-evaluation-config-example-text"></a>

Estas fórmulas le permiten evaluar las capacidades fundamentales de los modelos de Amazon Nova a través de un amplio conjunto de referencias solo de texto. Se proporcionan en formato `xxx_general_text_benchmark_eval.yaml`.

## Fórmulas de referencia de uso de conjunto de datos propio
<a name="nova-model-hp-evaluation-config-byo"></a>

Estas fórmulas le permiten utilizar su propio conjunto de datos como referencia y comparar las salidas del modelo con las respuestas de referencia utilizando diferentes tipos de métricas. Se proporcionan en formato `xxx_bring_your_own_dataset_eval.yaml`. 

Estos son los requisitos para utilizar un conjunto de datos propio:
+ Requisitos de formato de archivo
  + Debe incluir un único archivo `gen_qa.jsonl` que contenga ejemplos de evaluación.
  + El conjunto de datos debe cargarse en una ubicación de S3 a la que pueda acceder el trabajo de entrenamiento de SageMaker.
  + El archivo debe seguir el formato de esquema requerido para un conjunto de datos general de preguntas y respuestas.
+ Requisitos de formato de esquema: cada línea del archivo JSONL debe ser un objeto JSON con los siguientes campos:
  + `query`: (obligatorio) cadena que contiene la pregunta o la instrucción que necesita una respuesta
  + `response`: (obligatorio) cadena que contiene la salida esperada del modelo
  + `system`: (opcional) cadena que contiene la petición del sistema que establece el comportamiento, el rol o la personalidad del modelo de IA antes de que procese la consulta
  + `metadata`: (opcional) Cadena que contiene los metadatos asociados a la entrada con fines de etiquetado.

Esta es una entrada de ejemplo de uso del conjunto de datos propio

```
{
   "system":"You are a english major with top marks in class who likes to give minimal word responses: ",
   "query":"What is the symbol that ends the sentence as a question",
   "response":"?"
}
{
   "system":"You are a pattern analysis specialist that provides succinct answers: ",
   "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?",
   "response":"32"
}
{
   "system":"You have great attention to detail that follows instructions accurately: ",
   "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry",
   "response":"of dry"
}
```

Para usar un conjunto de datos personalizado, modifique la fórmula de evaluación con los siguientes campos obligatorios, sin cambiar ningún contenido:

```
evaluation:
  task: gen_qa
  strategy: gen_qa
  metric: all
```

Se aplican las siguientes restricciones:
+ Solo se permite un archivo JSONL por evaluación.
+ El archivo debe seguir estrictamente el esquema definido.
+ Límite de longitud del contexto: para cada muestra del conjunto de datos, la longitud del contexto (incluidas las peticiones de consulta y del sistema) debe ser inferior a 3500

## Fórmulas de referencia de Nova LLM como juez
<a name="nova-model-evaluation-config-llm-judge"></a>

LLM como juez de Amazon Nova es una característica de evaluación de modelos que permite a los clientes comparar la calidad de las respuestas de un modelo con la respuesta de un modelo de referencia en un conjunto de datos personalizado. Incluye un conjunto de datos con peticiones, respuestas de referencia y respuestas de desafío, y utiliza un modelo de juez de Amazon Nova para proporcionar una métrica de tasa de aciertos basada en la [probabilidad de Bradley-Terry](https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model) con comparaciones por pares.

Las fórmulas se proporcionan en formato `xxx_llm_judge_eval.yaml`. 

Estos son los requisitos del LLM como juez:
+ Requisitos de formato de archivo
  + Incluya un solo archivo `llm_judge.jsonl` que contenga ejemplos de evaluación. El nombre de archivo debe ser `llm_judge.jsonl`.
  + El conjunto de datos debe cargarse en una ubicación de S3 a la que pueda acceder [SageMaker AI SageMaker HyperPod con RIG](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-cluster.html).
  + El archivo debe seguir el formato de esquema requerido para el conjunto de datos `llm_judge.jsonl`.
  + El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000.
+ Requisitos de formato de esquema: cada línea del archivo JSONL debe ser un objeto JSON con los siguientes campos:
  + `prompt`: (obligatorio) cadena que contiene la petición de la respuesta generada.
  + `response_A`: cadena que contiene la respuesta de referencia.
  + `response_B`: cadena que contiene la respuesta alternativa que se comparará con la respuesta de referencia.

Esta es una entrada de ejemplo de LLM como juez

```
{
"prompt": "What is the most effective way to combat climate change?",
"response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.",
"response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."
}
{
"prompt": "Explain how a computer's CPU works",
"response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.",
"response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."
}
{
"prompt": "How does photosynthesis work?",
"response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.",
"response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."
}
```

Para usar un conjunto de datos personalizado, modifique la fórmula de evaluación con los siguientes campos obligatorios, sin cambiar ningún contenido:

```
evaluation:
  task: llm_judge
  strategy: judge
  metric: all
```

Se aplican las siguientes restricciones:
+ Solo se permite un archivo JSONL por evaluación.
+ El archivo debe seguir estrictamente el esquema definido.
+ Los modelos de Juez de Amazon Nova son iguales en todas las especificaciones de familias de modelos (es decir, Lite, Micro y Pro).
+ No se admiten modelos de juez personalizados en este momento.
+ Límite de longitud del contexto: para cada muestra del conjunto de datos, la longitud del contexto (incluidas las peticiones de consulta y del sistema) debe ser inferior a 7000

## LLM como juez de Nova de fórmulas de referencia multimodales (imágenes)
<a name="nova-model-hp-evaluation-mm-llm-judge"></a>

LLM como juez de Nova (también denominado MM\$1LLM como juez de Amazon Nova) para entradas multimodales (imágenes) es una característica de evaluación del modelo que le permite comparar la calidad de las respuestas de un modelo con las respuestas de un modelo de referencia mediante un conjunto de datos personalizado. Acepta un conjunto de datos que contiene peticiones, respuestas de línea de base y respuestas de desafío, así como imágenes en forma de cadena codificada en Base64. A continuación, utiliza un modelo de juez de Amazon Nova para proporcionar una métrica de tasa de aciertos basada en la probabilidad de [Bradley-Terry](https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model) con comparaciones por pares. Formato de fórmula: `xxx_mm_llm_judge _eval.yaml`.

**Requisitos del conjunto de datos de Nova LLM**

Formato de archivo: 
+ Archivo `mm_llm_judge.jsonl` único que contiene ejemplos de evaluación. El nombre de archivo debe ser `llm_judge.jsonl`.
+ Debe cargar el conjunto de datos en una ubicación de S3 a la que pueda acceder Trabajos de entrenamiento de SageMaker.
+ El archivo debe seguir el formato de esquema requerido para el conjunto de datos `mm_llm_judge`.
+ El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000, sin incluir el atributo de la imagen.

Formato de esquema: cada línea del archivo `.jsonl` debe ser un objeto JSON con los siguientes campos.
+ Campos obligatorios. 

  `prompt`: cadena que contiene la petición de la respuesta generada.

  `images`: matriz que contiene una lista de objetos con atributos de datos (los valores son cadenas de imágenes codificadas en Base64).

  `response_A`: cadena que contiene la respuesta de referencia.

  `response_B`: cadena que contiene la respuesta alternativa que se comparará con la respuesta de referencia.

Ejemplo de entrada

Para facilitar la lectura, el siguiente ejemplo incluye nuevas líneas e indentaciones, pero en el conjunto de datos real, cada registro debe estar en una sola línea.

```
{
  "prompt": "what is in the image?",
  "images": [
    {
      "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..."
    }
  ],
  "response_A": "a dog.",
  "response_B": "a cat.",
}
{
  "prompt": "how many animals in echo of the images?",
  "images": [
    {
      "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..."
    },
    {
      "data": "data:image/jpeg;Base64,/DKEafe3gihn..."
    }
  ],
  "response_A": "The first image contains one cat and the second image contains one dog",
  "response_B": "The first image has one aminal and the second has one animal",
}
```

Para usar un conjunto de datos personalizado, modifique la fórmula de evaluación con los siguientes campos obligatorios, sin cambiar ningún contenido:

```
evaluation:
  task: mm_llm_judge
  strategy: judge
  metric: all
```

**Limitaciones**
+ Solo se permite un archivo `.jsonl` por evaluación.
+ El archivo debe seguir estrictamente el esquema definido.
+ Los modelos MM como juez de Nova solo admiten referencias de imagen.
+ Los modelos juez de Nova son los mismos en todas las especificaciones de Amazon Nova Lite.
+ Actualmente no se admiten modelos de juez personalizados.
+ No se admite el URI de imagen de Amazon S3.
+ El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000, sin incluir los atributos de imagen.

## Juez basado en rúbricas
<a name="nova-hp-evaluate-rubric-judge"></a>

Rubric Judge es un modelo de evaluación mejorado de LLM como juez basado en Amazon Nova 2.0 Lite. A diferencia del [modelo juez original](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/), que solo ofrece veredictos preferenciales (A > B, B > A o empate), Rubric Judge genera de forma dinámica criterios de evaluación personalizados adaptados a cada petición y puntúa de forma detallada varias dimensiones.

Capacidades clave:
+ **Generación dinámica de criterios**: crea automáticamente las dimensiones de evaluación correspondientes en función de la petición de entrada.
+ **Puntuación ponderada**: asigna ponderaciones de importancia a cada criterio para reflejar su importancia relativa.
+ **Evaluación granular**: proporciona puntuaciones detalladas para cada criterio en formato binario (verdadero/falso) o en escala (del 1 al 5).
+ **Métricas de calidad**: calcula las puntuaciones de calidad continuas (escala del 0 al 1) que cuantifican la magnitud de las diferencias entre las respuestas.

Ejemplo de criterio generado por el modelo:

```
price_validation:
  description: "The response includes validation to ensure price is a positive value."
  type: "scale"
  weight: 0.3
```

El modelo evalúa ambas respuestas en función de todos los criterios generados y, a continuación, utiliza estas puntuaciones por criterio para fundamentar su preferencia final.

**Topics**
+ [Configuración de fórmulas](#nova-hp-evaluate-rubric-judge-recipe)
+ [Formato del conjunto de datos de entrada](#nova-hp-evaluate-rubric-judge-input)
+ [Resultado de la evaluación](#nova-hp-evaluate-rubric-judge-output)
+ [Compatibilidad con el modelo de razonamiento](#nova-hp-evaluate-rubric-judge-reasoning)

### Configuración de fórmulas
<a name="nova-hp-evaluate-rubric-judge-recipe"></a>

**Fórmula de Rubric Judge**  
Active Rubric Judge configurando `task: rubric_llm_judge` en su fórmula:

```
run:
  name: nova-eval-job-name                              # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-2-lite-v1:0:256k              # [FIXED] Rubric Judge model type
  model_name_or_path: "nova-lite-2/prod"                # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                           # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                      # [FIXED] Leave empty for SageMaker Training job
  output_s3_path: ""                                    # [FIXED] Leave empty for SageMaker Training job

evaluation:
  task: rubric_llm_judge                                # [FIXED] Evaluation task - enables Rubric Judge
  strategy: judge                                       # [FIXED] Evaluation strategy
  metric: all                                           # [FIXED] Metric calculation method

inference:
  max_new_tokens: 12000                                 # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                             # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                            # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                        # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

**Fórmula del modelo LLM como juez original (a modo de comparación)**  
El modelo juez original utiliza `task: llm_judge`:

```
run:
  name: eval-job-name                                   # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-micro-v1:0:128k               # [FIXED] Model type
  model_name_or_path: "nova-micro/prod"                 # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                           # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                      # [FIXED] Leave empty for SageMaker Training job
  output_s3_path: ""                                    # [FIXED] Leave empty for SageMaker Training job

evaluation:
  task: llm_judge                                       # [FIXED] Original judge task
  strategy: judge                                       # [FIXED] Evaluation strategy
  metric: all                                           # [FIXED] Metric calculation method

inference:
  max_new_tokens: 12000                                 # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                             # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                            # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                        # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

### Formato del conjunto de datos de entrada
<a name="nova-hp-evaluate-rubric-judge-input"></a>

El formato del conjunto de datos de entrada es idéntico al [modelo juez original](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/):

**Campos obligatorios:**
+ `prompt`: cadena que contiene la petición de entrada y las instrucciones.
+ `response_A`: cadena que contiene la salida del modelo de referencia.
+ `response_B`: cadena que contiene la salida del modelo personalizado.

**Conjunto de datos de ejemplo (formato JSONL):**

```
{"prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."}
{"prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."}
{"prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."}
```

**Requisitos de formato:**
+ Cada entrada debe ser un objeto JSON de una sola línea.
+ Separe las entradas con saltos de línea.
+ Siga la nomenclatura exacta de los campos como se muestra en los ejemplos.

### Resultado de la evaluación
<a name="nova-hp-evaluate-rubric-judge-output"></a>

**Estructura de salida**  
Rubric Judge genera métricas de evaluación mejoradas en comparación con el modelo juez original:

```
{
  "config_general": {
    "lighteval_sha": "string",
    "num_fewshot_seeds": "int",
    "max_samples": "int | null",
    "job_id": "int",
    "start_time": "float",
    "end_time": "float",
    "total_evaluation_time_secondes": "string",
    "model_name": "string",
    "model_sha": "string",
    "model_dtype": "string | null",
    "model_size": "string"
  },
  "results": {
    "custom|rubric_llm_judge_judge|0": {
      "a_scores": "float",
      "a_scores_stderr": "float",
      "b_scores": "float",
      "b_scores_stderr": "float",
      "ties": "float",
      "ties_stderr": "float",
      "inference_error": "float",
      "inference_error_stderr": "float",
      "score": "float",
      "score_stderr": "float",
      "weighted_score_A": "float",
      "weighted_score_A_stderr": "float",
      "weighted_score_B": "float",
      "weighted_score_B_stderr": "float",
      "score_margin": "float",
      "score_margin_stderr": "float",
      "winrate": "float",
      "lower_rate": "float",
      "upper_rate": "float"
    }
  },
  "versions": {
    "custom|rubric_llm_judge_judge|0": "int"
  }
}
```

**Nuevas métricas en Rubric Judge**  
Las siguientes seis métricas son exclusivas de Rubric Judge y proporcionan una evaluación de la calidad pormenorizada:


| Métrica | Descripción | 
| --- |--- |
| weighted\$1score\$1A | Puntuación media de calidad normalizada de response\$1A considerando todos los criterios de evaluación producidos por el modelo. Las puntuaciones se ponderan según la importancia del criterio y se normalizan en una escala del 0 al 1 (cuanto más alta, mayor calidad). | 
| weighted\$1score\$1A\$1stderr | Error estándar de la media de weighted\$1score\$1A, que indica incertidumbre estadística. | 
| weighted\$1score\$1B | Puntuación media de calidad normalizada de response\$1B considerando todos los criterios de evaluación producidos por el modelo. Las puntuaciones se ponderan según la importancia del criterio y se normalizan en una escala del 0 al 1 (cuanto más alta, mayor calidad). | 
| weighted\$1score\$1B\$1stderr | Error estándar de la media de weighted\$1score\$1B, que indica incertidumbre estadística. | 
| score\$1margin | Diferencia entre las puntuaciones ponderadas (calculadas como weighted\$1score\$1A-weighted\$1score\$1B). Rango: del -1,0 al 1,0. Positivo = response\$1A es mejor; negativo = response\$1B es mejor; cercano a cero = calidad similar. | 
| score\$1margin\$1stderr | Error estándar de la media de score\$1margin, que indica incertidumbre en la medición de la diferencia de calidad. | 

**Explicación de las métricas de puntuación ponderada**  
**Objetivo**: las puntuaciones ponderadas proporcionan mediciones de calidad continuas que complementan los veredictos sobre preferencias binarias, lo que permite entender en mayor profundidad el rendimiento del modelo.

**Diferencias clave con respecto al juez original**:
+ **Juez original**: solo genera preferencias discretas (A > B, B > A, A = B).
+ **Rubric Judge**: genera tanto las preferencias como las puntuaciones de calidad continuas (escala del 0 al 1) en función de criterios personalizados.

**Interpretación de score\$1margin**:
+ `score_margin = -0.128`: Response\$1B obtuvo 12,8 puntos porcentuales más que Response\$1A
+ `|score_margin| < 0.1`: diferencia mínima de calidad (decisión ajustada)
+ `|score_margin| > 0.2`: diferencia de calidad clara (decisión segura)

**Casos de uso**:
+ **Mejora del modelo**: identifique las áreas específicas en las que el modelo tiene un rendimiento inferior.
+ **Cuantificación de la calidad**: calcule la magnitud de las brechas de rendimiento, no solo las tasas de ganancias y pérdidas.
+ **Evaluación de la confianza**: distinga entre decisiones ajustadas y claras diferencias de calidad.

**importante**  
Los veredictos finales siguen basándose en las etiquetas de preferencia explícitas del modelo juez para preservar el razonamiento holístico y garantizar una adecuada mitigación de los sesgos de posición mediante una evaluación prospectiva o retrospectiva. Las puntuaciones ponderadas sirven como herramientas de observabilidad, no como sustitutos del veredicto principal.

**Metodología de cálculo**  
Las puntuaciones ponderadas se calculan mediante el siguiente proceso:
+ **Extracción de los datos de los criterios**: analice el resultado YAML del juez para extraer las puntuaciones y las ponderaciones de los criterios.
+ **Normalización de las puntuaciones**:
  + criterios puntuados en una escala del 1 al 5; se normalizan a valores entre 0 y 1 mediante el calculo `(score - 1) / 4`.
  + Criterios binarios (true/false): se convierten en 1,0/0,0.
+ **Aplicación de las ponderaciones**: multiplique cada puntuación normalizada por la ponderación del criterio.
+ **Suma**: sume todas las puntuaciones ponderadas de cada respuesta.
+ **Cálculo del margen**: calcule `score_margin = weighted_score_A - weighted_score_B`.

**Ejemplo**: si la suma ponderada de response\$1A da como resultado 0,65 y la de response\$1B, 0,78, el `score_margin` sería -0,13, lo que indica que la calidad de response\$1B es 13 puntos porcentuales superior en todos los criterios ponderados.

### Compatibilidad con el modelo de razonamiento
<a name="nova-hp-evaluate-rubric-judge-reasoning"></a>

La compatibilidad con el modelo de razonamiento permite la evaluación con modelos de Amazon Nova capaces de razonar que efectúan un razonamiento interno explícito antes de generar las respuestas finales. Esta característica utiliza el control de la API mediante el parámetro `reasoning_effort` para activar o desactivar de forma dinámica la funcionalidad de razonamiento, lo que podría mejorar la calidad de la respuesta en tareas analíticas complejas.

**Modelos compatibles**:
+ amazon.nova-2-lite-v1:0:256k

**Configuración de fórmulas**  
Active el razonamiento agregando el parámetro `reasoning_effort` a la sección `inference` de su fórmula:

```
run:
  name: eval-job-name                                    # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-2-lite-v1:0:256k               # [FIXED] Must be a reasoning-supported model
  model_name_or_path: nova-lite-2/prod                   # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                            # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                       # [MODIFIABLE] Leave empty for SageMaker Training job; optional for SageMaker  SageMaker HyperPod  job
  output_s3_path: ""                                     # [MODIFIABLE] Output path for SageMaker  SageMaker HyperPod  job (not compatible with SageMaker Training jobs)

evaluation:
  task: mmlu                                             # [MODIFIABLE] Evaluation task
  strategy: generate                                     # [MODIFIABLE] Evaluation strategy
  metric: all                                            # [MODIFIABLE] Metric calculation method

inference:
  reasoning_effort: high                                 # [MODIFIABLE] Enables reasoning mode; options: low/medium/high or null to disable
  max_new_tokens: 200                                    # [MODIFIABLE] Maximum tokens to generate
  top_k: 50                                              # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                             # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                         # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

**Uso del parámetro reasoning\$1effort**  
El parámetro `reasoning_effort` controla el comportamiento de razonamiento de los modelos con capacidad de razonamiento.

**Requisitos previos**:
+ **Compatibilidad del modelo**: establezca `reasoning_effort` solo cuando `model_type` especifique un modelo con capacidad de razonamiento (actualmente, `amazon.nova-2-lite-v1:0:256k`).
+ **Gestión de errores:** si se utiliza `reasoning_effort` con modelos no compatibles, se producirá un error: `ConfigValidationError: "Reasoning mode is enabled but model '{model_type}' does not support reasoning. Please use a reasoning-capable model or disable reasoning mode."`

**Opciones disponibles**:


| Opción | Comportamiento | Límite de tokens | Caso de uso | 
| --- |--- |--- |--- |
| null (por defecto) | Desactiva el modo de razonamiento | N/A | Evaluación estándar sin sobrecarga de razonamiento | 
| low | Permite razonar con restricciones | 4000 tokens para el razonamiento interno | Escenarios que requieren un razonamiento conciso; optimiza para una mayor velocidad y rentabilidad | 
| high | Permite razonar sin restricciones | El razonamiento interno no tiene un límite de tokens | Problemas complejos que requieren un análisis exhaustivo y un razonamiento paso a paso | 

**¿Cuándo habilitar el razonamiento?**  
**Utilice el modo de razonamiento (`low`, `medium` o `high`) en estos casos**:
+ Tareas complejas de resolución de problemas (matemáticas, acertijos de lógica, programación).
+ Preguntas analíticas de varios pasos que requieran un razonamiento intermedio.
+ Tareas en las que las explicaciones detalladas o el pensamiento paso a paso mejoren la precisión.
+ Escenarios en los que se dé prioridad a la calidad de la respuesta por encima de la velocidad.

**Utilice el modo sin razonamiento (omita el parámetro) en estos casos**:
+ Preguntas y respuestas sencillas o consultas fácticas.
+ Tareas de escritura creativa.
+ Tareas en las que los tiempos de respuesta más rápidos sean fundamentales.
+ Evaluación comparativa del rendimiento, en la que debe excluirse la sobrecarga de razonamiento.
+ Priorización de la rentabilidad cuando el razonamiento no mejore el rendimiento de la tarea.

**Solución de problemas**  
**Error: “Reasoning mode is enabled but model does not support reasoning"**

**Causa**: el parámetro `reasoning_effort` está establecido en un valor que no es null, pero el valor especificado para `model_type` no admite el razonamiento.

**Solución**:
+ Compruebe que el tipo de modelo sea `amazon.nova-2-lite-v1:0:256k`.
+ Si utiliza un modelo diferente, cámbielo a un modelo que pueda razonar o elimine el parámetro `reasoning_effort` de la fórmula