

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Neptune ML의 모델 하이퍼파라미터 구성 사용자 지정
<a name="machine-learning-customizing-hyperparams"></a>

Neptune ML 모델 훈련 작업을 시작하면 Neptune ML은 이전 [데이터 처리](machine-learning-on-graphs-processing.md) 작업에서 추론한 정보를 자동으로 사용합니다. 이 정보를 사용하여 하이퍼파라미터 구성 범위를 생성합니다. 이 범위는 [SageMaker AI 하이퍼파라미터 조정 작업](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html)을 생성하는 데 사용되는 하이퍼파라미터 구성 범위를 생성하여 작업에 맞게 여러 모델을 훈련시킵니다. 이렇게 하면 훈련할 모델에 대해 긴 하이퍼파라미터 값 목록을 지정할 필요가 없습니다. 대신 작업 유형, 그래프 유형 및 조정 작업 설정을 기반으로 모델 하이퍼파라미터 범위와 기본값이 선택됩니다.

하지만 데이터 처리 작업에서 생성되는 JSON 구성 파일을 수정하여 기본 하이퍼파라미터 구성을 재정의하고 사용자 지정 하이퍼파라미터를 제공할 수도 있습니다.

Neptune ML [modelTraining API](machine-learning-api-modeltraining.md)를 사용하면 `maxHPONumberOfTrainingJobs`, `maxHPOParallelTrainingJobs`, `trainingInstanceType` 같은 여러 상위 수준 하이퍼파라미터 조정 작업 설정을 제어할 수 있습니다. 모델 하이퍼파라미터를 보다 세밀하게 제어하기 위해 데이터 처리 작업에서 생성하는 `model-HPO-configuration.json` 파일을 사용자 지정할 수 있습니다. 파일은 처리 작업 출력을 위해 지정한 Amazon S3 위치에 저장됩니다.

파일을 다운로드하고 편집하여 기본 하이퍼파라미터 구성을 재정의하고 동일한 Amazon S3 위치에 다시 업로드할 수 있습니다. 파일 이름을 변경하지 말고 편집할 때 이 지침을 주의 깊게 따르세요.

Amazon S3에서 파일을 다운로드하려면:

```
aws s3 cp \
  s3://(bucket name)/(path to output folder)/model-HPO-configuration.json \
  ./
```

편집을 마쳤으면 파일을 원래 위치로 다시 업로드합니다.

```
aws s3 cp \
  model-HPO-configuration.json \
  s3://(bucket name)/(path to output folder)/model-HPO-configuration.json
```

## `model-HPO-configuration.json` 파일 구조
<a name="machine-learning-hyperparams-file-structure"></a>

이 `model-HPO-configuration.json` 파일은 훈련할 모델, 기계 학습 `task_type`, 다양한 모델 훈련 실행 시 변경되거나 수정되어야 하는 하이퍼파라미터를 지정합니다.

하이퍼파라미터는 하이퍼파라미터 조정 작업이 간접적으로 호출될 때 하이퍼파라미터에 부여되는 우선순위를 나타내는 다양한 Tier에 속하는 것으로 분류됩니다.
+ Tier-1 하이퍼파라미터가 1순위입니다. `maxHPONumberOfTrainingJobs`를 10보다 작은 값으로 설정하면 Tier-1 하이퍼파라미터만 조정되고 나머지는 기본값을 사용합니다.
+ Tier-2 하이퍼파라미터는 우선순위가 낮으므로, 조정 작업의 총 훈련 작업이 10개 이상/50개 미만인 경우 Tier-1과 Tier-2 하이퍼파라미터가 모두 조정됩니다.
+ 총 훈련 작업이 50개 이상인 경우에만 Tier-3 하이퍼파라미터가 Tier-1 및 Tier-2와 함께 조정됩니다.
+ 마지막으로, 고정 하이퍼파라미터는 전혀 조정되지 않고 항상 기본값을 사용합니다.

### `model-HPO-configuration.json` 파일 예제
<a name="machine-learning-hyperparams-file-sample"></a>

다음은 샘플 `model-HPO-configuration.json` 파일입니다.

```
{
  "models": [
    {
      "model": "rgcn",
      "task_type": "node_class",
      "eval_metric": {
        "metric": "acc"
      },
      "eval_frequency": {
          "type":  "evaluate_every_epoch",
          "value":  1
      },
      "1-tier-param": [
        {
            "param": "num-hidden",
            "range": [16, 128],
            "type": "int",
            "inc_strategy": "power2"
        },
        {
          "param": "num-epochs",
          "range": [3,30],
          "inc_strategy": "linear",
          "inc_val": 1,
          "type": "int",
          "node_strategy": "perM"
        },
        {
          "param": "lr",
          "range": [0.001,0.01],
          "type": "float",
          "inc_strategy": "log"
        }
      ],
      "2-tier-param": [
        {
          "param": "dropout",
          "range": [0.0,0.5],
          "inc_strategy": "linear",
          "type": "float",
          "default": 0.3
        },
        {
          "param": "layer-norm",
          "type": "bool",
          "default": true
        }
      ],
      "3-tier-param": [
        {
          "param": "batch-size",
          "range": [128, 4096],
          "inc_strategy": "power2",
          "type": "int",
          "default": 1024
        },
        {
          "param": "fanout",
          "type": "int",
          "options": [[10, 30],[15, 30], [15, 30]],
          "default": [10, 15, 15]
        },
        {
          "param": "num-layer",
          "range": [1, 3],
          "inc_strategy": "linear",
          "inc_val": 1,
          "type": "int",
          "default": 2
        },
        {
          "param": "num-bases",
          "range": [0, 8],
          "inc_strategy": "linear",
          "inc_val": 2,
          "type": "int",
          "default": 0
        }
      ],
      "fixed-param": [
        {
          "param": "concat-node-embed",
          "type": "bool",
          "default": true
        },
        {
          "param": "use-self-loop",
          "type": "bool",
          "default": true
        },
        {
          "param": "low-mem",
          "type": "bool",
          "default": true
        },
        {
          "param": "l2norm",
          "type": "float",
          "default": 0
        }
      ]
    }
  ]
}
```

### `model-HPO-configuration.json` 파일 요소
<a name="machine-learning-hyperparams-file-elements"></a>

이 파일에는 단일 모델-구성 객체를 포함하는 `models`로 이름이 지정된 단일 최상위 배열이 있는 JSON 객체가 포함되어 있습니다. 파일을 사용자 지정할 때는 `models` 배열에 모델-구성 객체가 하나만 있어야 합니다. 파일에 둘 이상의 모델-구성 객체가 포함된 경우 조정 작업이 실패하고 경고가 표시됩니다.

모델-구성 객체에는 다음과 같은 최상위 요소가 포함되어 있습니다.
+ **`model`**   –   (*문자열*) 훈련할 모델 유형입니다(**수정 금지**). 유효값은 다음과 같습니다.
  + `"rgcn"`   –   노드 분류 및 회귀 작업과 이기종 연결 예측 작업의 기본값입니다.
  + `"transe"`   –   KGE 연결 예측 작업의 기본값입니다.
  + `"distmult"`   –   KGE 연결 예측 작업의 대체 모델 유형입니다.
  + `"rotate"`   –   KGE 연결 예측 작업의 대체 모델 유형입니다.

  일반적으로 모델 유형마다 적용 가능한 하이퍼파라미터가 크게 달라서 훈련 작업이 시작된 후 구문 분석 오류가 발생할 수 있으니 `model` 값을 직접 수정하지 마세요.

  모델 유형을 변경하려면 `model-HPO-configuration.json` 파일에서 변경하는 대신 [modelTraining API](machine-learning-api-modeltraining.md#machine-learning-api-modeltraining-create-job)의 `modelName` 파라미터를 사용하세요.

  사용하려는 모델의 기본 모델 구성 템플릿을 복사한 후 `model-HPO-configuration.json` 파일에 붙여넣어 모델 유형을 변경하고 하이퍼파라미터를 세밀하게 조정할 수 있습니다. 추론된 작업 유형이 여러 모델을 지원하는 경우 `model-HPO-configuration.json` 파일과 동일한 Amazon S3 위치에 이름이 `hpo-configuration-templates`인 폴더가 있습니다. 이 폴더에는 작업에 적용할 수 있는 다른 모델의 기본 하이퍼파라미터 구성이 모두 들어 있습니다.

  예를 들어, `KGE` 연결 예측 작업의 모델 및 하이퍼파라미터 구성을 기본 `transe` 모델에서 `distmult` 모델로 변경하려면 `hpo-configuration-templates/distmult.json` 파일의 콘텐츠를 `model-HPO-configuration.json` 파일에 붙여넣은 후 필요에 따라 하이퍼파라미터를 편집하면 됩니다.
**참고**  
`modelTraining` API에서 `modelName` 파라미터를 설정하고 `model-HPO-configuration.json` 파일의 `model` 및 하이퍼파라미터 사양도 변경한 경우 둘이 다르면 `model-HPO-configuration.json` 파일의 `model` 값이 우선하며 `modelName` 값은 무시됩니다.
+ **`task_type`**   –   (*문자열*) 데이터 처리 작업에 의해 유추되거나 데이터 처리 작업에 직접 전달된 기계 학습 작업 유형입니다(**수정 금지**). 유효값은 다음과 같습니다.
  + `"node_class"`
  + `"node_regression"`
  + `"link_prediction"`

  데이터 처리 작업은 내보낸 데이터 세트와 생성된 훈련 작업 구성 파일에서 데이터 세트의 속성을 검사하여 작업 유형을 유추합니다.

  이 값은 변경할 수 없습니다. 다른 작업을 훈련시키려면 [새 데이터 처리 작업을 실행해야 합니다](machine-learning-on-graphs-processing.md). `task_type` 값이 예상과 다르면 데이터 처리 작업에 대한 입력이 올바른지 확인해야 합니다. 여기에는 데이터 내보내기 프로세스에서 생성된 훈련 작업 구성 파일뿐만 아니라 `modelTraining` API에 대한 파라미터도 포함됩니다.
+ **`eval_metric`**   –   (*문자열*) 평가 지표는 모델 성능을 평가하고 HPO 실행 전반에서 가장 성능이 좋은 모델을 선택하는 데 사용해야 합니다. 유효값은 다음과 같습니다.
  + `"acc"`   –   표준 분류 정확도입니다. 이는 단일 레이블 분류 작업의 기본값입니다. 단, 데이터 처리 중에 불균형한 레이블이 발견된 경우 기본값은 `"F1"`입니다.
  + `"acc_topk"`   –   올바른 레이블이 상위 **`k`** 예측 항목 중 나타나는 횟수입니다. `topk`에 추가 키로 전달하여 **`k`** 값을 설정할 수도 있습니다.
  + `"F1"`   –   [F1 점수](https://en.wikipedia.org/wiki/F-score)입니다.
  + `"mse"`   –   회귀 작업용 [평균 제곱 오차 지표](https://en.wikipedia.org/wiki/Mean_squared_error)입니다.
  + `"mrr"`   –   [평균 역수 순위 지표](https://en.wikipedia.org/wiki/Mean_reciprocal_rank)입니다.
  + `"precision"`   –   참 양성과 예측된 양성의 비율로 계산(`= true-positives / (true-positives + false-positives)`)된 모델 정밀도입니다.
  + `"recall"`   –   참 양성과 실제 양성의 비율로 계산(`= true-positives / (true-positives + false-negatives)`)된 모델 재현율입니다.
  + `"roc_auc"`   –   [ROC 곡선](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) 아래 면적입니다. 다중 레이블 분류의 기본값입니다.

  예를 들어, 지표를 `F1`으로 변경하려면 `eval_metric` 값을 다음과 같이 변경하면 됩니다.

  ```
  "  eval_metric": {
      "metric": "F1",
    },
  ```

  또는 지표를 `topk` 정확도 점수로 바꾸려면 다음과 같이 `eval_metric`을 변경하세요.

  ```
    "eval_metric": {
      "metric": "acc_topk",
      "topk": 2
    },
  ```
+ **`eval_frequency`**   –   (*객체*) 훈련 중에 검증 세트에 대한 모델의 성능을 확인해야 하는 빈도를 지정합니다. 검증 성능에 따라 조기 중단을 시작하고 최상의 모델을 저장할 수 있습니다.

  `eval_frequency` 객체에는 두 요소, 즉 `"type"` 및 `"value"`가 있습니다. 예제:

  ```
    "eval_frequency": {
      "type":  "evaluate_every_pct",
      "value":  0.1
    },
  ```

  유효한 `type` 값은 다음과 같습니다.
  + **`evaluate_every_pct`**   –   각 평가에서 완료해야 할 훈련 비율을 지정합니다.

    `evaluate_every_pct`의 경우, `"value"` 필드에는 해당 백분율을 나타내는 0에서 1 사이의 부동 소수점 숫자가 포함됩니다.

    
  + **`evaluate_every_batch`**   –   각 평가에 대해 완료해야 하는 훈련 배치의 수를 지정합니다.

    `evaluate_every_batch`의 경우, `"value"` 필드에는 해당 배치 수를 나타내는 정수가 포함됩니다.
  + **`evaluate_every_epoch`**   –   새 epoch가 자정에 시작되는 평가당 epoch 수를 지정합니다.

    `evaluate_every_epoch`의 경우, `"value"` 필드에는 해당 epoch 수를 나타내는 정수가 포함됩니다.

  `eval_frequency`의 기본 설정은 다음과 같습니다.

  ```
    "eval_frequency": {
      "type":  "evaluate_every_epoch",
      "value":  1
    },
  ```
+ **`1-tier-param`**   –   (*필수*) Tier-1 하이퍼파라미터의 배열입니다.

  하이퍼파라미터를 조정하지 않으려면 빈 배열로 설정하면 됩니다. SageMaker AI 하이퍼파라미터 조정 작업에서 시작한 총 훈련 작업 수에는 영향을 주지 않습니다. 이는 1개 이상 10개 미만인 경우 모든 훈련 작업이 동일한 하이퍼파라미터 세트로 실행된다는 의미일 뿐입니다.

  반면, 모든 하이퍼파라미터를 이 배열에 넣으면 조정 가능한 모든 하이퍼파라미터를 동일한 중요도로 취급할 수 있습니다.
+ **`2-tier-param`**   –   (*필수*) Tier-2 하이퍼파라미터의 배열입니다.

  이러한 파라미터는 `maxHPONumberOfTrainingJobs` 값이 10보다 큰 경우에만 조정됩니다. 그렇지 않으면 기본값으로 고정됩니다.

  훈련 예산이 최대 10개의 훈련 작업이거나 다른 이유로 Tier-2 하이퍼파라미터를 원하지 않지만 조정 가능한 모든 하이퍼파라미터를 조정하려는 경우, 이 값을 빈 배열로 설정할 수 있습니다.
+ **`3-tier-param`**   –   (*필수*) Tier-3 하이퍼파라미터의 배열입니다.

  이러한 파라미터는 `maxHPONumberOfTrainingJobs` 값이 50보다 큰 경우에만 조정됩니다. 그렇지 않으면 기본값으로 고정됩니다.

  Tier-3 하이퍼파라미터를 원하지 않는 경우 이 값을 빈 배열로 설정할 수 있습니다.
+ **`fixed-param`**   –   (*필수*) 기본값만 사용하고 훈련 작업에 따라 달라지지 않는 고정된 하이퍼파라미터의 배열입니다.

  모든 하이퍼파라미터를 변경하려는 경우 이 값을 빈 배열로 설정하고 모든 Tier를 변경할 수 있을 만큼 `maxHPONumberOfTrainingJobs` 값을 큰 값으로 설정하거나 모든 하이퍼파라미터를 Tier-1으로 설정할 수 있습니다.

각 하이퍼파라미터를 `1-tier-param`, `2-tier-param`, `3-tier-param`, `fixed-param`으로 나타내는 JSON 객체에는 다음 요소가 포함됩니다.
+ **`param`**   –   (*문자열*) 하이퍼파라미터의 이름입니다(**변경 금지**).

  [Neptune ML의 유효한 하이퍼파라미터 이름 목록](#machine-learning-hyperparams-list)을 참조하세요.
+ **`type`**   –   (*문자열*) 하이퍼파라미터 유형입니다(**변경 금지**).

  유효한 형식은 `bool`, `int`, `float`입니다.
+ **`default`**   –   (*문자열*) 하이퍼파라미터의 기본값입니다.

  새 기본값을 설정할 수 있습니다.

조정 가능한 하이퍼파라미터에는 다음 요소도 포함될 수 있습니다.
+ **`range`**   –   (*배열*) 조정 가능한 연속 하이퍼파라미터의 범위입니다.

  이 배열은 두 값, 즉 범위의 최소값과 최대값(`[min, max]`)으로 구성된 배열이어야 합니다.
+ **`options`**   –   (*배열*) 조정 가능한 범주형 하이퍼파라미터용 옵션입니다.

  이 배열에는 고려해야 할 모든 옵션이 포함되어야 합니다.

  ```
    "options" : [value1, value2, ... valuen]
  ```
+ **`inc_strategy`**   –   (*문자열*) 연속 조정 가능한 하이퍼파라미터 범위의 증분 변경 유형입니다(**변경 금지**).

  유효한 값은 `log`, `linear`, `power2`입니다. 범위 키가 설정된 경우에만 적용됩니다.

  이를 수정하면 하이퍼파라미터의 전체 범위를 조정에 사용하지 못할 수 있습니다.
+ **`inc_val`**   –   (*부동*) 연속 조정 가능한 하이퍼파라미터의 연속 증분값이 달라지는 정도입니다(**변경 금지**).

  범위 키가 설정된 경우에만 적용됩니다.

  이를 수정하면 하이퍼파라미터의 전체 범위를 조정에 사용하지 못할 수 있습니다.
+ **`node_strategy`**   –   (*문자열*) 이 하이퍼파라미터의 유효 범위가 그래프의 노드 수에 따라 변경되어야 함을 나타냅니다(**변경 금지**).

  유효한 값은 `"perM"`(백만 개당), `"per10M"`(천만 개당), `"per100M"`(1억 개당)입니다.

  이 값을 변경하는 대신 `range`를 변경하세요.
+ **`edge_strategy`**   –   (*문자열*) 이 하이퍼파라미터의 유효 범위가 그래프의 엣지 수에 따라 변경되어야 함을 나타냅니다(**변경 금지**).

  유효한 값은 `"perM"`(백만 개당), `"per10M"`(천만 개당), `"per100M"`(1억 개당)입니다.

  이 값을 변경하는 대신 `range`를 변경하세요.

### Neptune ML의 모든 하이퍼파라미터 목록
<a name="machine-learning-hyperparams-list"></a>

다음 목록에는 모든 모델 유형 및 작업에 대해 Neptune ML의 어느 곳에서나 설정할 수 있는 모든 하이퍼파라미터가 포함되어 있습니다. 전체 모델 유형에 전부 적용할 수 있는 것은 아니므로, 사용 중인 모델의 템플릿에 나타나는 하이퍼파라미터만 `model-HPO-configuration.json` 파일에 설정해야 합니다.
+ **`batch-size`**   –   원 포워드 패스에서 사용하는 대상 노드의 배치 크기입니다. *유형*: `int`.

  이 값을 훨씬 더 큰 값으로 설정하면 GPU 인스턴스 훈련 시 메모리 문제가 발생할 수 있습니다.
+ **`concat-node-embed`**   –   모델의 표현성을 높이기 위해 처리된 특성을 학습 가능한 초기 노드 임베딩과 결합하여 노드의 초기 표현을 가져올지 여부를 나타냅니다. *유형*: `bool`.
+ **`dropout`**   –   드롭아웃 계층에 적용된 드롭아웃 확률입니다. *유형*: `float`.

  
+ **`edge-num-hidden`**   –   엣지 특성 모듈의 숨겨진 계층 크기 또는 단위 수입니다. `use-edge-features`가 `True`로 설정된 경우에만 사용합니다. *유형*: float.
+ **`enable-early-stop`**   –   조기 중단 기능을 사용할지 여부를 전환합니다. *유형*: `bool`. *기본값*: `true`.

  이 부울 파라미터를 사용하면 조기 중단 기능을 끌 수 있습니다.
+ **`fanout`**   –   이웃 샘플링 중에 대상 노드에 대해 샘플링할 이웃 수입니다. *유형*: `int`.

  이 값은 `num-layers`와 밀접하게 연관되어 있으며, 항상 동일한 하이퍼파라미터 계층에 있어야 합니다. 각 잠재적 GNN 계층에 대해 팬아웃을 지정할 수 있기 때문입니다.

  이 하이퍼파라미터로 인해 모델 성능이 크게 달라질 수 있으므로, 고정하거나 Tier-2 또는 Tier-3 하이퍼파라미터로 설정해야 합니다. 이 값을 크게 설정하면 GPU 인스턴스 훈련 시 메모리 문제가 발생할 수 있습니다.
+ **`gamma`**   –   점수 함수의 여백 값입니다. *유형*: `float`.

  이는 `KGE` 연결 예측 모델에만 적용됩니다.
+ **`l2norm`**   –   가중치에 L2 정규화 패널티를 부과하는 옵티마이저에서 사용되는 가중치 감소 값입니다. *유형*: `bool`.
+ **`layer-norm`**   –   `rgcn` 모델에 계층 정규화를 사용할지 여부를 나타냅니다. *유형*: `bool`.
+ **`low-mem`**   –   속도가 저하되는 관계형 메시지 전달 함수를 저용량 메모리 방식으로 구현할지 여부를 나타냅니다. *유형*: `bool`.

  
+ **`lr`**   –   학습률입니다. *유형*: `float`.

  이는 Tier-1 하이퍼파라미터로 설정되어야 합니다.
+ **`neg-share`**   –   연결 예측에서 양수로 샘플링된 엣지가 음수 엣지 샘플을 공유할 수 있는지 여부를 나타냅니다. *유형*: `bool`.
+ **`num-bases`**   –   `rgcn` 모델의 기저 분해를 위한 기저 수입니다. 그래프의 엣지 유형 수보다 적은 `num-bases` 값을 사용하면 `rgcn` 모델에 대한 정규화기 역할을 합니다. *유형*: `int`.
+ **`num-epochs`**   –   실행할 훈련 epoch의 수입니다. *유형*: `int`.

  epoch는 그래프를 통한 완전한 훈련 과정을 말합니다.
+ **`num-hidden`**   –   숨겨진 계층의 크기 또는 단위 수입니다. *유형*: `int`.

  이렇게 하면 특성이 없는 노드의 초기 임베딩 크기도 설정됩니다.

  `batch-size`를 줄이지 않고 훨씬 큰 값으로 설정하면 GPU 인스턴스 훈련 시 메모리 부족 문제가 발생할 수 있습니다.
+ **`num-layer`**   –   모델 내 GNN 계층 수 입니다. *유형*: `int`.

  이 값은 팬아웃 파라미터와 밀접하게 연관되어 있으므로, 팬아웃이 동일한 하이퍼파라미터 계층에 설정된 후에 나와야 합니다.

  이로 인해 모델 성능이 크게 달라질 수 있으므로, 고정하거나 Tier-2 또는 Tier-3 하이퍼파라미터로 설정해야 합니다.
+ **`num-negs`**   –   연결 예측에서 양수 샘플당 음수 샘플 수입니다. *유형*: `int`.
+ **`per-feat-name-embed`**   –   특성을 결합하기 전에 각 특성을 독립적으로 변환하여 각 특성을 포함할지 여부를 나타냅니다. *유형*: `bool`.

  `true`로 설정하면 노드의 변환된 모든 특성이 연결되어 `num_hidden` 차원으로 변환되기 전에 노드당 각 특성이 고정된 차원 크기로 독립적으로 변환됩니다.

  `false`로 설정하면 특성별 변환 없이 특성이 연결됩니다.
+ **`regularization-coef`**   –   연결 예측에서 정규화 손실 계수입니다. *유형*: `float`.
+ **`rel-part`**   –   `KGE` 연결 예측에 관계 파티션을 사용할지 여부를 나타냅니다. *유형*: `bool`.
+ **`sparse-lr`**   –   학습 가능 노드 임베딩의 학습률입니다. *유형*: `float`.

  학습 가능한 초기 노드 임베딩은 특성이 없거나 `concat-node-embed`가 설정된 노드에 사용됩니다. 희소 학습 가능한 노드 임베딩 계층의 파라미터는 학습률이 다를 수 있는 별도의 옵티마이저를 사용하여 훈련됩니다.
+ **`use-class-weight`**   –   불균형 분류 작업에 클래스 가중치를 적용할지 여부를 나타냅니다. `true`로 설정하면 레이블 수를 사용하여 각 클래스 레이블의 가중치를 설정합니다. *유형*: `bool`.
+ **`use-edge-features`**   –   메시지 전달 중에 엣지 특성을 사용할지 여부를 나타냅니다. `true`로 설정하면 특성이 있는 엣지 유형의 RGCN 계층에 사용자 지정 엣지 특성 모듈이 추가됩니다. *유형*: `bool`.
+ **`use-self-loop`**   –   `rgcn` 모델 훈련에 자체 루프를 포함할지 여부를 나타냅니다. *유형*: `bool`.
+ **`window-for-early-stop`**   –   조기 중단을 결정하기 위해 최근 검증 점수 수를 평균으로 제어합니다. 기본값은 3이고, 유형은 int입니다. 또한 [Neptune ML의 모델 훈련 프로세스 조기 중단](machine-learning-improve-model-performance.md#machine-learning-model-training-early-stop) 섹션도 참조하세요. *유형*: `int`. *기본값*: `3`.

  을(를) 참조하세요.

## Neptune ML에서 하이퍼파라미터 사용자 지정
<a name="machine-learning-hyperparams-editing"></a>

`model-HPO-configuration.json` 파일을 편집할 때 가장 일반적으로 수행해야 하는 변경 사항은 다음과 같습니다.
+ `range` 하이퍼파라미터의 최대값 및/또는 최소값을 편집합니다.
+ 하이퍼파라미터를 `fixed-param` 섹션으로 이동하고 해당 기본값을 원하는 고정 값으로 설정하여 하이퍼파라미터를 고정 값으로 설정합니다.
+ 하이퍼파라미터를 특정 Tier에 배치하고, 범위를 편집하고, 기본값이 적절하게 설정되었는지 확인하여 하이퍼파라미터의 우선순위를 변경합니다.