

# 레시피 파라미터 이해
<a name="customize-fine-tune-evaluate-understand-modify"></a>

**실행 구성**  
다음은 일반적인 실행 구성과 관련 파라미터에 대한 설명입니다.

```
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`: (필수) 평가 작업에 대한 설명이 포함된 이름입니다. AWS 콘솔에서 작업을 식별하는 데 도움이 됩니다.
+ `model_type`: (필수) 사용할 Amazon Nova 모델 변형을 지정합니다. 이 필드는 수동으로 수정하지 마세요. 옵션에는 다음이 포함됩니다.
  + `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`: (필수) 기본 모델 경로 또는 훈련 후 체크포인트의 S3 경로입니다. 옵션에는 다음이 포함됩니다.
  + `nova-micro/prod`
  + `nova-lite/prod`
  + `nova-pro/prod`
  + `nova-lite-2/prod`
  + (훈련 후 체크포인트의 S3 경로) `s3://<escrow bucket>/<job id>/outputs/checkpoints`
+ `replicas`: (필수) 분산 훈련에 사용할 컴퓨팅 인스턴스의 수입니다. 다중 노드는 지원되지 않으므로 이 값은 1로 설정해야 합니다.
+ `data_s3_path`: (필수) 입력 데이터세트의 S3 경로입니다. *사용자 제공 데이터세트* 또는 *평가형 LLM* 레시피를 사용하는 경우가 아니면 이 파라미터를 비워 둡니다.
+ `output_s3_path`: (필수) 출력 평가 아티팩트를 저장할 S3 경로입니다. 출력 S3 버킷은 작업을 생성하는 계정과 동일한 계정에서 생성해야 합니다.
+ `mlflow_tracking_uri`: (선택 사항) MLflow 실행/실험을 추적하기 위한 MLFlow 추적 서버 ARN. SageMaker AI 실행 역할에서 추적 서버에 액세스할 수 있는 권한이 있는지 확인하세요.

**평가 구성**  
다음은 모델 평가 구성과 관련 파라미터에 대한 설명입니다.

```
evaluation:
  task: mmlu
  strategy: zs_cot
  subtask: mathematics
  metric: accuracy
```
+ `task`: (필수) 사용할 평가 벤치마크 또는 태스크를 지정합니다.

  지원되는 태스크 목록:
  + mmlu
  + mmlu\$1pro
  + bbh
  + gpqa
  + math
  + strong\$1reject
  + gen\$1qa
  + ifeval
  + llm\$1judge
  + humaneval
  + mm\$1llm\$1judge
  + rubric\$1llm\$1judge
  + aime\$12024
  + calendar\$1scheduling
  + humaneval
+ `strategy`: (필수) 평가 접근 방식을 정의합니다.
  + zs\$1cot: 제로샷 생각의 사슬 - 명시적인 예시 없이, 단계별 추론을 수행하도록 대형 언어 모델에 지시하는 접근 방식입니다.
  + zs: 제로샷 - 사전 훈련 예시 없이 문제를 해결하는 접근 방식입니다.
  + gen\$1qa: 사용자 제공 데이터세트 레시피에 특화된 전략입니다.
  + judge: Amazon Nova 평가형 LLM 및 mm\$1llm\$1judge에 특정한 전략.
+ `subtask`: (선택 사항, 제거 가능) 특정 평가 태스크에 대한 특정 하위 태스크를 지정합니다. 태스크에 하위 태스크가 없는 경우 레시피에서 이를 제거합니다.
+ `metric`: (필수) 사용할 평가 지표입니다.
  + accuracy: 정답 비율입니다.
  + exact\$1match: (`math` 벤치마크의 경우) 입력 예측 문자열이 참조와 정확히 일치하는 비율을 반환합니다.
  + deflection: (`strong reject` 벤치마크의 경우) 기본 모델에 대한 상대 편향과 중요도 지표의 차이를 반환합니다.
  + pass@1: (`humaneval` 벤치마크의 경우) 모델의 최고 신뢰도 예측이 정답과 일치하는 사례의 비율을 측정하는 데 사용되는 지표입니다.
  + `all`: 다음 지표를 반환합니다.
    + `gen_qa` 및 사용자 제공 데이터세트 벤치마크의 경우 다음 지표를 반환합니다.
      + `rouge1`: 생성된 텍스트와 참조 텍스트 간의 유니그램(단일 단어) 중복을 측정합니다.
      + `rouge2`: 생성된 텍스트와 참조 텍스트 간의 바이그램(2개 연속 단어) 중복을 측정합니다.
      + `rougeL`: 텍스트 간에 가장 긴 공통 부분 수열을 측정하며, 일치 항목 간의 간격을 허용합니다.
      + `exact_match`: 생성된 텍스트가 문자별로 참조 텍스트와 정확히 일치하는지 여부를 나타내는 이진 점수(0 또는 1)입니다.
      + `quasi_exact_match`: exact\$1match와 유사하지만 일반적으로 대소문자, 구두점 및 공백 차이를 무시하는 더 관대한 일치 방식입니다.
      + `f1_score`: 정밀도와 재현율의 조화 평균으로, 예측된 답변과 참조 답변 간의 단어 중복을 측정합니다.
      + `f1_score_quasi`: f1\$1score와 유사하지만 사소한 차이를 무시하는 정규화된 텍스트 비교를 사용하는 더 관대한 일치 방식입니다.
      + `bleu`: 생성된 텍스트와 참조 텍스트 간의 n그램 일치 정밀도를 측정하며, 일반적으로 번역 평가에 사용됩니다.
    + `llm_judge` 및 `mm_llm_judge`의 경우 자체 제공 데이터세트 벤치마크를 가져오고 다음 지표를 반환합니다.
      + `a_scores`: 순방향 및 역방향 평가 패스에서 `response_A`가 승리한 횟수입니다.
      + `a_scores_stderr`: 쌍별 판단에서 `response_A scores`의 표준 오차입니다.
      + `b_scores`: 순방향 및 역방향 평가 패스에서 `response_B`가 승리한 횟수입니다.
      + `b_scores_stderr`: 쌍별 판단에서 `response_B scores`의 표준 오차입니다.
      + `ties`: `response_A`와 `response_B`가 동일한 것으로 평가되는 판단 수입니다.
      + `ties_stderr`: 쌍별 판단에서 ties의 표준 오차입니다.
      + `inference_error`: 올바르게 평가되지 못한 판단 수입니다.
      + `inference_error_stderr`: 판단 간 추론 오류의 표준 오차입니다.
      + `score`: `response_B`에 대한 순방향 및 역방향 패스의 승리 횟수에 기반한 집계 점수입니다.
      + `score_stderr`: 쌍별 판단에서 집계 점수의 표준 오차입니다.
      + `winrate`: Bradley-Terry 확률을 사용하여 계산된, response\$1B가 response\$1A보다 선호될 확률입니다.
      + `lower_rate`: 부트스트랩 샘플링에서 추정된 승률의 하한(2.5번째 백분위수)입니다.

**추론 구성**  
다음은 추론 구성과 관련 파라미터에 대한 설명입니다. 모든 파라미터는 선택 사항입니다.

```
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`: 생성할 최대 토큰 수입니다. 이는 정수여야 합니다.
+ `top_k`: 고려할 확률이 가장 높은 토큰의 수입니다. 이는 정수여야 합니다.
+ `top_p`: 토큰 샘플링을 위한 누적 확률 임곗값입니다. 0.0\$11.0 범위의 부동 소수점 수여야 합니다.
+ `temperature`: 토큰 선택의 무작위성입니다. 값이 클수록 무작위성이 커집니다. 결과를 결정론적으로 만들려면 0을 사용합니다. 이 값은 최소값이 0인 부동 소수점 수여야 합니다.
+ `top_logprobs`: 추론 응답에서 반환할 상위 logprobs 수. 이 값은 0\$120의 정수여야 합니다. Logprobs에는 메시지 콘텐츠에서 반환된 각 출력 토큰의 고려된 출력 토큰 수와 로그 확률이 포함됩니다.
+ `reasoning_effort`: 추론 가능 모델의 추론 동작을 제어합니다. `model_type`이 추론 가능 모델(현재 `amazon.nova-2-lite-v1:0:256k`)을 지정하는 경우에만 `reasoning_effort`를 설정합니다. 사용 가능한 옵션은 `null`(설정하지 않은 경우 기본값, 추론 비활성화), `low` 또는 `high`입니다.

`humaneval`의 경우 다음 추론 구성을 사용하는 것이 좋습니다.

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

**MLFlow 구성**  
다음은 MLFlow 구성 및 관련 파라미터에 대한 설명입니다. 모든 파라미터는 선택 사항입니다.

```
run:
  mlflow_tracking_uri: ""
  mlflow_experiment_name: ""
  mlflow_run_name: ""
```
+ `mlflow_tracking_uri`: (선택 사항) MLflow 추적 서버의 위치(SMHP에만 필요)
+ `mlflow_experiment_name`: (선택 사항) 관련 ML 실행을 그룹화하는 실험의 이름
+ `mlflow_run_name`: (선택 사항) 실험 내 특정 훈련 실행의 사용자 지정 이름