메인 콘텐츠로 건너뛰기
W&B를 사용하여 코드를 저장하고, 여러 run 간 코드를 비교하고, 로컬 변경 사항을 확인하고, Jupyter 세션 이력을 캡처하세요.

코드 저장 활성화

팀 또는 조직의 코드 저장을 설정하세요. 팀 및 조직 제어에 대해서는 개인정보 보호 설정 구성에 설명되어 있습니다.
기본적으로 W&B는 모든 팀에서 코드 저장을 비활성화합니다. 팀에서 이 기능을 켜려면 먼저 조직 관리자가 조직 수준에서 이를 활성화해야 합니다. 조직 섹션을 참조하세요.

팀 관리자로서 팀의 코드 저장을 활성화하려면 팀 Settings 페이지를 열고 Privacy 섹션으로 이동한 다음, 해당 팀의 run에 대해 Enable code saving by default를 설정하세요. 이 옵션은 조직 관리자가 조직 전체에 코드 저장 제한을 강제 적용하지 않은 경우에만 사용 가능합니다. 내비게이션 단계는 팀의 개인정보 보호 설정 구성을 참조하세요.

조직

조직 관리자가 조직의 코드 저장을 사용 설정하려면 Settings로 이동하여 Privacy 섹션으로 이동한 다음, Enforce default code saving restrictions를 켜서 모든 팀에서 코드 저장이 기본적으로 꺼진 상태로 유지되도록 하세요. 이 설정이 강제 적용되는 동안에는 팀 관리자가 팀에 대해 Enable code saving by default를 켤 수 없습니다. 조직 제어 기능의 전체 목록은 모든 팀에 개인정보 보호 설정 강제 적용을 참조하세요.

코드 저장

run을 생성한 소스 코드를 아티팩트로 캡처하세요. 코드 아티팩트는 프로젝트의 워크스페이스에서 볼 수 있습니다. 코드를 저장하는 방법은 두 가지입니다. 세밀하게 제어하는 방식과 자동 방식입니다.

세밀한 제어

wandb.Run.log_code()를 사용해 특정 파일이나 디렉터리를 아티팩트로 로깅할 수 있습니다. 기본적으로 W&B는 현재 디렉터리를 순회하며 .py로 끝나는 모든 파일을 로깅합니다. 다음 예시는 wandb.Run.log_code()를 사용해 현재 디렉터리를 로깅하는 방법을 보여줍니다.
import wandb

with wandb.init() as run:
    # 현재 디렉토리를 코드 아티팩트로 기록합니다
    run.log_code(root=".")
다음 예시는 코드를 기록할 때 포함할 파일과 제외할 파일을 지정하기 위해 include_fn=exclude_fn= 매개변수와 함께 wandb.Run.log_code()를 사용하는 방법을 보여줍니다:
import wandb

with wandb.init() as run:
    run.log_code(
         root="../",
         include_fn=lambda path: path.endswith(".py") or path.endswith(".ipynb"),
         exclude_fn=lambda path, root: os.path.relpath(path, root).startswith(
             "cache/"
         ),
    )
W&B가 저장하는 소스 코드 파일의 유형과 저장 위치를 더 세부적으로 제어하려면 레퍼런스 문서를 참조하세요.

코드 자동 캡처

현재 디렉터리와 하위 디렉터리의 모든 코드를 자동으로 캡처하려면 wandb.init(settings=wandb.Settings(code_dir=))를 사용하세요. 기본적으로 W&B는 다음을 캡처합니다:
  • .py로 끝나는 파일
  • requirements.txt
  • Dockerfile
  • wandb/ 또는 .wandb/ 아래에 있는 항목은 제외
다음 예시에서는 현재 디렉터리와 하위 디렉터리의 모든 코드를 캡처하는 방법을 보여줍니다:
import wandb

with wandb.init(settings=wandb.Settings(code_dir=".")) as run:
    # 트레이닝 코드를 여기에 작성하세요
. 대신 캡처할 디렉터리의 경로를 입력하면 다른 디렉터리를 지정할 수도 있습니다.

로컬 변경 사항 보기

W&B는 Git 저장소에 스테이징된 변경 사항이나 스테이징되지 않은 변경 사항이 있는 상태에서 코드를 로깅하면 diff 파일을 생성하며, W&B UI에서 이러한 변경 사항을 확인할 수 있습니다. W&B는 diff 파일 이름을 diff.patch 또는 diff_<sha>.patch로 지정합니다. 이 파일에는 HEAD를 기준으로 아직 Git에 커밋되지 않은 로컬 코드 변경 사항이 포함됩니다. diff 파일을 보려면 다음 단계를 따르세요.
  1. 프로젝트의 워크스페이스로 이동합니다.
  2. 왼쪽 사이드바에서 워크스페이스를 클릭합니다.
  3. run 선택기에서 diff를 보려는 run을 선택합니다.
  4. run Overview 페이지에서 Files 탭을 선택합니다.
  5. 파일 목록에서 diff.patch 또는 diff_<sha>.patch 파일을 선택합니다.
  6. 목록에서 파일을 선택해 해당 파일의 diff를 펼칩니다.
W&B는 여러 run에 걸친 diff를 볼 수 있도록 unifiedsplit의 두 가지 모드를 지원합니다.
  • Unified 뷰는 diff를 단일 창에 표시합니다.
    Diff 패치 unified 뷰
  • Split 뷰는 diff를 두 개의 창에 나란히 표시합니다.
    Diff 패치 split 뷰
diff 뷰 오른쪽 위의 Download 버튼 아래에서 Unified 또는 Split 버튼을 선택해 두 뷰 사이를 전환하세요.

Jupyter 세션 이력

W&B는 Jupyter 노트북 세션에서 실행한 코드의 이력을 저장합니다. Jupyter에서 wandb.init()를 호출하면 W&B가 후크를 추가해 현재 세션에서 실행한 코드 이력이 포함된 Jupyter 노트북을 자동으로 저장합니다.
  1. 코드가 있는 프로젝트 워크스페이스로 이동합니다.
  2. 프로젝트 사이드바에서 Artifacts 탭을 선택합니다.
  3. code 아티팩트를 펼칩니다.
  4. Files 탭을 선택합니다.
Jupyter 세션 이력
그러면 세션에서 실행된 셀과 IPython의 display 메서드를 호출해 생성된 모든 출력이 표시됩니다. 이를 통해 특정 run에서 Jupyter 내에서 정확히 어떤 코드가 실행되었는지 확인할 수 있습니다. 가능하면 W&B는 노트북의 최신 버전도 저장하며, 이 파일은 code 디렉터리에서도 찾을 수 있습니다.
Jupyter 세션 출력

run 간 코드 비교

서로 다른 W&B run에서 사용된 코드를 비교합니다:
  1. 페이지 오른쪽 상단에 있는 Add panels 버튼을 선택합니다.
  2. TEXT AND CODE 드롭다운을 펼친 후 Code를 선택합니다.
코드 비교 패널