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

사용 가능한 컴포넌트

Component설명
ApiPublic API의 주요 진입 지점입니다. 조직 전체의 실행, 프로젝트, 아티팩트를 조회합니다.
Runs개별 학습 실행에 액세스하고 history, 로그, 메트릭을 관리합니다.
Artifacts모델 아티팩트, 데이터셋 및 기타 버전 관리된 파일을 조회하고 다운로드합니다.
Sweeps하이퍼파라미터 스윕 데이터를 조회하고 최적화 결과를 분석합니다.
Projects프로젝트를 관리하고 프로젝트 수준 메타데이터와 설정에 액세스합니다.
Reports프로그래밍 방식으로 W&B Reports를 조회하고 관리합니다.
Team팀 정보를 조회하고 팀 수준 리소스를 관리합니다.
User사용자 프로필 및 사용자별 데이터에 액세스합니다.
Files실행과 연결된 파일을 다운로드하고 관리합니다.
History학습 중에 로깅된 상세 시계열 메트릭에 액세스합니다(Run.history 참조).
Automations자동화된 워크플로와 작업을 관리합니다.
Integrations서드파티 통합을 구성하고 관리합니다.

주요 사용 사례

데이터 내보내기 및 분석

  • Jupyter 노트북에서 분석할 수 있도록 실행 기록을 DataFrame으로 내보내기
  • 사용자 지정 시각화나 보고서 작성을 위해 메트릭 다운로드하기
  • 여러 실험 전반에 걸쳐 결과 집계하기

사후 업데이트

  • 완료된 실행의 메타데이터 업데이트
  • 완료된 실험에 태그나 노트 추가
  • 실행 구성 또는 요약 수정

아티팩트 관리

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

스윕 분석

  • 스윕 결과와 최고 성능 실행 확인
  • 하이퍼파라미터 탐색 결과 내보내기
  • 파라미터 중요도 분석

인증

Public API는 Python SDK와 동일한 인증 메커니즘을 사용합니다. 여러 가지 방법으로 인증할 수 있습니다: WANDB_API_KEY 환경 변수를 사용하여 API key를 설정합니다:
export WANDB_API_KEY=your_api_key
Api 클래스를 초기화할 때 API key를 직접 전달하세요:
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 레지스트리에서 링크된 아티팩트를 가져오는 방법을 보여줍니다.
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 레지스트리 쿼리

MongoDB와 유사한 필터를 사용하여 W&B 레지스트리, 컬렉션, 아티팩트를 쿼리할 수 있습니다. 다음 예제는 정규식을 사용해 컬렉션을 이름으로 필터링하는 방법을 보여줍니다.
import wandb

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

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

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