Run.config를 작업 입력으로 캡처하지만, Launch SDK는 run config에서 특정 키만 제어하거나 JSON 또는 YAML 파일을 입력으로 지정할 수 있는 함수를 제공합니다.
Launch SDK 함수를 사용하려면
wandb-core가 필요합니다. 자세한 내용은 wandb-core README를 참조하세요.Run 객체 재구성하기
wandb.init이 반환하는 Run 객체는 기본적으로 재구성할 수 있습니다. Launch SDK는 작업을 시작할 때 Run.config 객체의 어느 부분까지 재구성할 수 있을지 사용자 지정할 수 있는 방법을 제공합니다.
launch.manage_wandb_config는 작업이 Run.config 객체의 입력값을 받도록 설정합니다. 선택적 include 및 exclude 옵션은 중첩된 설정 객체 내 경로 접두사를 받습니다. 예를 들어, 작업에서 사용하는 라이브러리의 옵션 중 최종 사용자에게 노출하고 싶지 않은 항목이 있을 때 유용합니다.
include 접두사가 제공되면 설정에서 include 접두사와 일치하는 경로만 입력값을 받을 수 있습니다. exclude 접두사가 제공되면 exclude 목록과 일치하는 경로는 입력값에서 제외됩니다. 경로가 include와 exclude 접두사 모두와 일치하면 exclude 접두사가 우선 적용됩니다.
앞선 예제에서 ["trainer.private"] 경로는 trainer 객체의 private 키를 필터링하고, ["trainer"] 경로는 trainer 객체 아래에 있지 않은 모든 키를 필터링합니다.
이름에
.이 포함된 키를 필터링하려면 . 앞에 \를 붙여 이스케이프해서 사용하세요.예를 들어, r"trainer\.private"는 trainer 객체 아래의 private 키가 아니라 trainer.private 키를 필터링합니다.위의 r 접두사는 raw string을 의미합니다.trainer 매개변수 4개만 재정의할 수 있습니다.
run config 입력값에 액세스하기
Run.config를 통해 입력값에 액세스할 수 있습니다. 작업 코드에서 wandb.init이 반환하는 Run에는 입력값이 자동으로 설정됩니다. 다음을 사용하세요
파일 재구성하기
Launch의 Sweeps는 설정 파일 입력을 sweep 파라미터로 사용하는 기능을 지원하지 않습니다. sweep 파라미터는
Run.config 객체를 통해 제어해야 합니다.launch.manage_config_file 함수는 설정 파일을 Launch 작업의 입력으로 추가하는 데 사용할 수 있습니다. 이렇게 하면 작업을 시작할 때 설정 파일 내의 값을 수정할 수 있습니다.
기본적으로 launch.manage_config_file을 사용하면 run config 입력값은 캡처되지 않습니다. launch.manage_wandb_config를 호출하면 이 동작이 재정의됩니다.
다음 예제를 살펴보겠습니다:
config.yaml 파일과 함께 실행된다고 가정해 보겠습니다:
launch.manage_config_file 호출은 config.yaml 파일을 작업의 입력으로 추가하므로, W&B CLI 또는 UI에서 실행할 때 재구성할 수 있게 됩니다.
include 및 exclude 키워드 인수는 launch.manage_wandb_config와 같은 방식으로 설정 파일에서 허용되는 입력 키를 필터링하는 데 사용할 수 있습니다.
설정 파일 입력값에 액세스
launch.manage_config_file이 호출되면 launch가 입력값을 사용해 설정 파일 내용을 패치합니다. 패치된 설정 파일은 작업 환경에서 사용할 수 있습니다.
작업의 Launch drawer UI 맞춤 설정
launch.manage_wandb_config 또는 launch.manage_config_file call에 스키마를 포함하세요. 스키마는 JSON Schema 형태의 Python dict이거나 Pydantic 모델 클래스일 수 있습니다.
- JSON 스키마
- Pydantic 모델
다음 예제는 다음 속성을 포함하는 스키마를 보여줍니다.일반적으로 다음 JSON Schema 속성을 지원합니다.
seed: 정수trainer: 일부 키가 지정된 딕셔너리trainer.learning_rate: 0보다 커야 하는 부동소수점 수trainer.batch_size: 16, 64, 256 중 하나여야 하는 정수trainer.dataset:cifar10또는cifar100중 하나여야 하는 문자열
| 속성 | 필수 | 참고 |
|---|---|---|
type | 예 | number, integer, string, object 중 하나여야 합니다 |
title | 아니요 | 속성의 표시 이름을 재정의합니다 |
description | 아니요 | 속성에 대한 도움말 텍스트를 제공합니다 |
enum | 아니요 | 자유 입력 텍스트 항목 대신 드롭다운 선택 항목을 만듭니다 |
minimum | 아니요 | type이 number 또는 integer인 경우에만 허용됩니다 |
maximum | 아니요 | type이 number 또는 integer인 경우에만 허용됩니다 |
exclusiveMinimum | 아니요 | type이 number 또는 integer인 경우에만 허용됩니다 |
exclusiveMaximum | 아니요 | type이 number 또는 integer인 경우에만 허용됩니다 |
properties | 아니요 | type이 object이면 중첩된 설정을 정의하는 데 사용됩니다 |
