메인 콘텐츠로 건너뛰기
이 클래스들은 머신러닝 실험을 추적하고 아티팩트를 관리하며 SDK 동작 방식을 구성하기 위한 핵심 구성 요소입니다. 이러한 기본 클래스를 사용하면 메트릭을 로깅하고, 모델 체크포인트를 저장하며, 데이터셋 버전을 관리하고, 완전한 재현성과 협업 기능을 갖춘 실험 설정을 관리할 수 있습니다.
ML 실험에서 이 클래스들을 사용하는 방법에 대한 자세한 내용은 ExperimentsArtifacts 문서를 참조하세요.

핵심 클래스

ClassDescription
Run메트릭, 설정, 출력이 포함된 단일 ML 실험을 나타내는 W&B의 기본 연산 단위입니다.
Artifact자동 중복 제거 및 계보 추적 기능을 갖춘 데이터셋과 모델의 버전 관리를 위한 유연하고 경량의 구성 요소입니다.
SettingsW&B SDK에 대한 설정을 관리하여 로깅부터 API 상호작용까지의 동작을 제어합니다.

시작하기

실험 추적하기

메트릭을 로깅하면서 머신 러닝 실험을 생성하고 추적하세요:
import wandb

# 새 run 초기화
with wandb.init(project="my-experiments", config={"learning_rate": 0.001}) as run:
    # 설정 접근
    config = run.config
    
    # 트레이닝 중 메트릭 로깅
    for epoch in range(10):
        metrics = train_one_epoch()  # 트레이닝 로직
        run.log({
            "loss": metrics["loss"],
            "accuracy": metrics["accuracy"],
            "epoch": epoch
        })
    
    # 요약 메트릭 로깅
    run.summary["best_accuracy"] = max_accuracy

모델 아티팩트 버전 관리

메타데이터와 함께 버전이 지정된 모델 아티팩트를 생성하여 로깅합니다:
import wandb

with wandb.init(project="my-models") as run:
    # 모델 학습
    model = train_model()
    
    # 모델에 대한 아티팩트 생성
    model_artifact = wandb.Artifact(
        name="my-model",
        type="model",
        description="ResNet-50 trained on ImageNet subset",
        metadata={
            "architecture": "ResNet-50",
            "dataset": "ImageNet-1K",
            "accuracy": 0.95
        }
    )
    
    # 아티팩트에 모델 파일 추가
    model_artifact.add_file("model.pt")
    model_artifact.add_dir("model_configs/")
    
    # W&B에 아티팩트 로깅
    run.log_artifact(model_artifact)

SDK 설정 구성

특정 요구사항에 맞게 W&B SDK 동작을 구성합니다.
import wandb

# 프로그래밍 방식으로 설정 구성
wandb.Settings(
    project="production-runs",
    entity="my-team",
    mode="offline",  # 오프라인으로 실행, 나중에 동기화
    save_code=True,   # 소스 코드 저장
    quiet=True        # 콘솔 출력 감소
)

# 또는 환경 변수 사용
# export WANDB_PROJECT=production-runs
# export WANDB_MODE=offline

# 사용자 정의 설정으로 초기화
with wandb.init() as run:
    # 실험 코드를 여기에 작성하세요
    pass
데이터셋, 모델, 평가 간의 관계를 추적합니다:
import wandb

with wandb.init(project="ml-pipeline") as run:
    # 데이터셋 아티팩트 사용
    dataset = run.use_artifact("dataset:v1")
    dataset_dir = dataset.download()
    
    # 데이터셋을 사용하여 모델 학습
    model = train_on_dataset(dataset_dir)
    
    # 데이터셋 리니지가 포함된 모델 아티팩트 생성
    model_artifact = wandb.Artifact(
        name="trained-model",
        type="model"
    )
    model_artifact.add_file("model.pt")
    
    # 자동 리니지 추적으로 로그 기록
    run.log_artifact(model_artifact)