메인 콘텐츠로 건너뛰기
W&B Public API는 W&B에 저장된 데이터를 쿼리하고 내보내며 업데이트할 수 있도록 하는 프로그래밍 방식의 액세스를 제공합니다. 이 API는 사후 분석, 데이터 내보내기, runs, 아티팩트, 스윕의 프로그래밍 방식 관리를 위해 사용합니다. 기본 SDK가 트레이닝 중 실시간 로깅을 처리하는 반면, Public API를 사용하면 과거 데이터를 조회하고 메타데이터를 업데이트하며 아티팩트를 관리하고 완료된 Experiments에 대한 분석을 수행할 수 있습니다. 기본 Api 클래스가 대부분의 기능에 대한 진입점 역할을 합니다.
모델 트레이닝과 파인튜닝은 W&B Python SDK에서 따로 수행합니다. 데이터가 W&B에 이후에 로그된 뒤 이를 조회하고 관리할 때는 Public API를 사용하세요.

사용 가능한 컴포넌트

ComponentDescription
ApiPublic API의 주요 진입점입니다. 조직 전체에 걸쳐 run, 프로젝트, 아티팩트를 조회할 수 있습니다.
Runs히스토리, 로그, 메트릭을 포함한 개별 트레이닝 run에 접근하고 관리합니다.
Artifacts모델 아티팩트, 데이터셋 및 기타 버전 관리된 파일을 조회하고 다운로드합니다.
Sweeps하이퍼파라미터 스윕 데이터를 조회하고 최적화 결과를 분석합니다.
Projects프로젝트를 관리하고 프로젝트 수준 메타데이터와 설정에 접근합니다.
Reports프로그래밍 방식으로 W&B Reports에 접근하고 관리합니다.
Team팀 정보를 조회하고 팀 수준 리소스를 관리합니다.
User사용자 프로필 및 사용자별 데이터에 접근합니다.
Filesrun과 연결된 파일을 다운로드하고 관리합니다.
History트레이닝 중에 기록된 상세 시계열 메트릭에 접근합니다(Run.history 참조).
Automations자동화된 워크플로우 및 작업을 관리합니다.
Integrations타사 인테그레이션을 구성하고 관리합니다.

일반적인 활용 사례

데이터 내보내기 및 분석

  • Jupyter 노트북에서 분석할 수 있도록 run 이력을 DataFrame으로 내보내기
  • 사용자 정의 시각화나 리포트 작성을 위해 메트릭 다운로드
  • 여러 실험에 걸친 결과 집계

사후 업데이트

  • 완료된 run의 메타데이터를 업데이트
  • 완료된 실험에 태그 또는 노트를 추가
  • run 설정이나 요약을 수정

아티팩트 관리

  • 버전 또는 별칭으로 아티팩트 조회
  • 프로그래밍 방식으로 모델 체크포인트 다운로드
  • 아티팩트 계보 및 종속성 추적

스윕 분석

  • 스윕 결과와 최고 성능 run 조회
  • 하이퍼파라미터 검색 결과 내보내기
  • 파라미터 중요도 분석

인증

Public API는 Python SDK와 동일한 인증 메커니즘을 사용합니다. 여러 가지 방법으로 인증할 수 있습니다: WANDB_API_KEY 환경 변수를 사용하여 API 키를 설정합니다:
export WANDB_API_KEY=your_api_key
Api 클래스를 초기화할 때 API 키를 직접 전달하세요:
api = Api(api_key="your_api_key")
또는 현재 세션을 인증하려면 wandb.login()을 호출하세요:
import wandb

wandb.login()
api = Api()

사용 예

이름과 별칭으로 아티팩트 다운로드

다음 예제는 이름과 별칭을 사용해 W&B에 로깅된 아티팩트를 가져온 뒤, 그 내용을 다운로드하는 방법을 보여줍니다.
import wandb

api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
artifact.download()

레지스트리에서 아티팩트 다운로드

다음 예제는 W&B Registry에서 연결된 아티팩트를 가져오는 방법을 보여줍니다.
import wandb

REGISTRY = "<registry_name>"
COLLECTION = "<collection_name>"
VERSION = "<version>"

api = wandb.Api()
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"

# 아티팩트 가져오기
fetched_artifact = api.artifact(name = artifact_name)

# 아티팩트 다운로드. 다운로드된 콘텐츠의 경로를 반환
downloaded_path = fetched_artifact.download()

W&B Registry 쿼리

MongoDB와 유사한 필터를 사용하여 W&B Registry, 컬렉션 및 Artifacts를 쿼리할 수 있습니다. 다음 예제는 정규식을 사용해 이름을 기준으로 컬렉션을 필터링하는 방법을 보여줍니다.
import wandb

# wandb API 초기화
api = wandb.Api()

# 레지스트리에 관계없이 컬렉션 이름에 `yolo` 문자열이 
# 포함된 모든 컬렉션 필터링
collection_filters = {
    "name": {"$regex": "yolo"}
}

# 필터 조건에 일치하는 모든 컬렉션의 이터러블 반환
collections = api.registries().collections(filter=collection_filters)
레지스트리, 컬렉션 또는 아티팩트를 쿼리하는 방법에 대한 자세한 내용은 레지스트리 항목 찾기를 참조하세요.