이 튜토리얼에 필요한 코드에 액세스하려면 아래 드롭다운을 펼치세요. 코드를 복사해 이 튜토리얼과 같은 디렉터리에 있는 서로 다른 세 개의 파일에 붙여 넣으세요. 다음 섹션에서는 이 파일들을 읽어 W&B Sandbox 환경에서 PyTorch 모델을 트레이닝하는 스크립트를 실행합니다.
PyTorch 트레이닝 모델 스크립트
다음 코드를 requirements.txt 파일에 복사하여 붙여넣으세요. 이 파일에는 트레이닝 스크립트에 필요한 의존성이 들어 있습니다.
requirements.txt
torchpandasucimlreposcikit-learnpyyaml
다음 코드를 hyperparameters.yaml라는 YAML 파일에 복사하여 붙여넣으세요. 이 파일에는 트레이닝 스크립트용 하이퍼파라미터가 들어 있습니다.
다음 코드 스니펫은 샌드박스를 생성하고, 그 안에 트레이닝 스크립트와 의존성을 복사한 뒤, 트레이닝 스크립트를 실행하고, 생성된 모델 파일을 다운로드하는 방법을 보여줍니다. 다음 섹션에서는 코드를 한 줄씩 설명합니다.다음 코드를 Python 파일에 복사해 붙여넣고 실행하세요. 이전 단계에서 만든 train.py, requirements.txt, hyperparameters.yaml 파일과 같은 디렉터리에 저장하세요.
train_in_sandbox.py
from pathlib import Pathfrom wandb.sandbox import Sandbox, NetworkOptions# 샌드박스에 마운트할 파일. 샌드박스 내부 경로와# 각 파일의 내용을 바이트 형태의 딕셔너리로 지정mounted_files = [ {"mount_path": "train.py", "file_content": Path("train.py").read_bytes()}, {"mount_path": "requirements.txt", "file_content": Path("requirements.txt").read_bytes()}, ]print("Starting sandbox...")with Sandbox.run( mounted_files=mounted_files, container_image="python:3.13", network=NetworkOptions(egress_mode="internet"), max_lifetime_seconds=3600) as sandbox: sandbox.write_file("hyperparameters.yaml", Path("hyperparameters.yaml").read_bytes()).result() # 의존성 설치 print("Installing dependencies...") sandbox.exec(["pip", "install", "-r", "requirements.txt"], check=True).result() # 스크립트 실행 print("Running script...") result = sandbox.exec(["python", "train.py", "--config", "hyperparameters.yaml"]).result() print(result.stdout) print(result.stderr) print(f"Exit code: {result.returncode}") # 생성된 모델 파일을 로컬에 저장 print("Downloading zoo_wandb.pth...") model_data = sandbox.read_file("zoo_wandb.pth").result() Path("zoo_wandb.pth").write_bytes(model_data) print("Saved zoo_wandb.pth")
(12행) 샌드박스를 시작합니다. 샌드박스는 python:3.13 컨테이너 이미지를 사용하고, 인터넷 액세스가 가능하며, 최대 수명은 3600초(1시간)로 설정됩니다.
(18행) hyperparameters.yaml 파일을 샌드박스에 작성합니다. 이렇게 하면 트레이닝 스크립트(train.py)가 실행될 때 하이퍼파라미터에 액세스할 수 있습니다.
(22행) 의존성을 설치합니다. 트레이닝 스크립트에 필요한 의존성을 설치하기 위해 샌드박스 내부에서 pip install -r requirements.txt 명령을 실행합니다.
(26행) 트레이닝 스크립트를 실행합니다. 트레이닝 프로세스를 시작하기 위해 샌드박스 내부에서 python train.py --config hyperparameters.yaml 명령을 실행합니다. 이 스크립트는 UCI Zoo 데이터셋으로 PyTorch 모델을 트레이닝하고, 트레이닝된 모델을 zoo_wandb.pth라는 이름의 파일에 저장합니다.
(27~29행) 출력과 종료 코드를 출력합니다. 트레이닝 스크립트 실행이 완료되면 디버깅 및 검증을 위해 표준 출력, 표준 오류, 종료 코드를 콘솔에 출력합니다.
(33~34행) 생성된 모델 파일을 다운로드합니다. read_file() 메서드를 사용해 샌드박스에서 zoo_wandb.pth 파일을 조회하고 로컬에 저장합니다.