이 기능을 사용하려면 python>=3.8이 필요합니다.
MLFlow에서 데이터 임포트하기
importer.collect_runs()는 MLFlow 서버의 모든 run을 수집합니다. 특정 하위 집합만 업로드하려면 직접 runs iterable을 구성해 importer에 전달할 수 있습니다.
Databricks MLflow에서 임포트하는 경우 먼저 Databricks CLI를 구성해야 할 수 있습니다.이전 단계에서
mlflow-tracking-uri="databricks"를 설정하세요.artifacts=False를 전달할 수 있습니다:
Namespace를 전달하면 됩니다:
데이터 내보내기
- 데이터 내보내기: Jupyter Notebook에서 맞춤형 분석을 위해 데이터프레임을 가져옵니다. 데이터를 탐색한 뒤에는 새 분석 run을 만들고 결과를 로깅해 분석 결과를 동기화할 수 있습니다. 예:
wandb.init(job_type="analysis") - 기존 Runs 업데이트: W&B run과 연결되어 로깅된 데이터를 업데이트할 수 있습니다. 예를 들어, 아키텍처나 원래 로깅되지 않았던 하이퍼파라미터 같은 추가 정보를 포함하도록 여러 Runs의 설정을 업데이트할 수 있습니다.
API 키 생성
- 개인 API 키
- 서비스 계정 API 키
사용자 ID에 속한 개인 API 키를 만들려면 다음 단계를 따르세요.
- W&B에 로그인한 다음 사용자 프로필 아이콘 > User Settings를 클릭합니다.
- Create new API key를 클릭합니다.
- API 키를 식별할 수 있는 설명적인 이름을 입력합니다.
- Create를 클릭합니다.
- 표시된 API 키를 즉시 복사해 안전하게 저장합니다.
API 키를 안전하게 저장하고 관리하기
권장 저장 방법
- Secrets manager: AWS Secrets Manager, HashiCorp Vault, Azure Key Vault, 또는 Google Secret Manager와 같은 전용 시크릿 관리 시스템을 사용하세요.
- Password manager: 신뢰할 수 있는 비밀번호 관리 애플리케이션을 사용하세요.
- OS-level keychains: macOS Keychain, Windows Credential Manager, 또는 Linux secret service에 키를 저장하세요. 프로덕션 환경에는 권장되지 않습니다.
피해야 할 사항
- Git과 같은 버전 관리 시스템에 API 키를 절대 커밋하지 마세요.
- API 키를 평문 설정 파일에 저장하지 마세요.
ps와 같은 OS 명령의 출력에 표시되므로, 명령줄 인수로 API 키를 전달하지 마세요.- 이메일, 채팅 또는 기타 암호화되지 않은 채널을 통해 API 키를 공유하지 마세요.
- 소스 코드에 API 키를 하드코딩하지 마세요.
환경 변수
SDK 버전 호환성
wandb 또는 weave SDK로 인증할 때 API 키 길이 오류가 발생할 수 있습니다.
해결 방법: 최신 SDK 버전으로 업데이트하세요.
-
wandbSDK v0.22.3+ -
weaveSDK v0.52.17+
WANDB_API_KEY 환경 변수를 사용해 API 키를 설정하세요.
run 경로 찾기
<entity>/<project>/<run_id> 형식의 run 경로가 필요한 경우가 많습니다. 앱 UI에서 run 페이지를 열고 Overview 탭 을 클릭해 run 경로를 확인하세요.
run 데이터 내보내기
| Attribute | Meaning |
|---|---|
run.config | 트레이닝 run의 하이퍼파라미터나 데이터셋 Artifact를 생성하는 run의 전처리 방법처럼, run의 설정 정보가 담긴 딕셔너리입니다. 이를 run의 inputs라고 생각하면 됩니다. |
run.history() | 모델이 트레이닝되는 동안 loss처럼 변하는 값을 저장하는 딕셔너리 목록입니다. run.log() command는 이 객체에 값을 추가합니다. |
run.summary | run의 결과를 요약한 정보가 담긴 딕셔너리입니다. accuracy, loss 같은 스칼라 값일 수도 있고 큰 파일일 수도 있습니다. 기본적으로 run.log()는 로깅된 시계열의 마지막 값으로 summary를 설정합니다. summary의 내용은 직접 설정할 수도 있습니다. summary를 run의 outputs라고 생각하면 됩니다. |
api.flush()를 호출해 업데이트된 값을 가져오세요.
run의 다양한 속성 이해하기
run.config
run.summary
샘플링
samples __ 인수로 변경할 수 있습니다). 큰 run의 모든 데이터를 내보내려면 run.scan_history() 방법을 사용할 수 있습니다. 자세한 내용은 API 레퍼런스를 참조하세요.
여러 run 쿼리하기
- 데이터프레임 및 CSV
- MongoDB 스타일
이 예제 스크립트는 프로젝트를 찾아 name, 설정, summary 통계가 포함된 run CSV를 출력합니다.
<entity>와 <project>를 각각 사용자의 W&B entity와 프로젝트 이름으로 바꾸세요.api.runs를 호출하면 반복 가능한 Runs 객체가 반환되며, 목록처럼 동작합니다. 기본적으로 이 객체는 필요에 따라 한 번에 50개의 run을 순서대로 로드하지만, per_page 키워드 인수로 페이지당 로드할 개수를 변경할 수 있습니다.
api.runs는 order 키워드 인수도 받습니다. 기본 정렬 순서는 -created_at입니다. 결과를 오름차순으로 정렬하려면 +created_at를 지정하세요. 설정이나 summary 값으로도 정렬할 수 있습니다. 예를 들어 summary.val_acc 또는 config.experiment_name입니다.
오류 처리
wandb.CommError가 발생합니다. 원본 예외는 exc 속성을 통해 확인할 수 있습니다.
API를 통해 최신 git 커밋 조회
wandb-metadata.json 파일에서도 확인할 수 있습니다. Public API를 사용하면 run.commit으로 git 해시를 조회할 수 있습니다.
run 중에 run 이름과 ID 조회하기
wandb.init()를 호출한 후에는 스크립트에서 다음과 같이 무작위 run ID 또는 사람이 읽을 수 있는 run 이름에 액세스할 수 있습니다:
- 고유한 run ID(8자 해시):
run.id - 무작위 run 이름(사람이 읽기 쉬움):
run.name
- Run ID: 생성된 해시를 그대로 두세요. 이 값은 프로젝트의 모든 run에서 고유해야 합니다.
- Run name: 짧고 읽기 쉬우며, 가능하면 고유한 값이어야 합니다. 그래야 차트의 서로 다른 선을 구분할 수 있습니다.
- Run notes: run에서 무엇을 하고 있는지 간단히 설명하기에 아주 좋은 곳입니다.
wandb.init(notes="여기에 노트 입력")로 설정할 수 있습니다. - Run tags: run tags에서 항목을 동적으로 추적하고, UI에서 필터를 사용해 table을 관심 있는 runs만 보이도록 좁혀 보세요. 스크립트에서 tags를 설정한 다음 UI에서 편집할 수 있으며, Runs table과 run 페이지의 Overview 탭 모두에서 가능합니다. 자세한 지침은 여기를 참조하세요.
Public API 예시
matplotlib 또는 seaborn에서 시각화할 수 있도록 데이터 내보내기
run에서 메트릭 조회
"<entity>/<project>/<run_id>"에 저장된 run에서 run.log({"accuracy": acc})로 기록된 타임스탬프와 정확도를 출력합니다.
run 필터링
날짜
run에서 특정 메트릭 조회
keys 인수를 사용하세요. run.history()를 사용할 때 기본 샘플 수는 500입니다. 특정 메트릭이 포함되지 않은 로깅된 step은 출력 데이터프레임에서 NaN으로 표시됩니다. keys 인수를 사용하면 API가 나열된 메트릭 키가 포함된 step을 더 자주 샘플링합니다.
두 run 비교하기
run1과 run2의 설정 매개변수 중 서로 다른 항목이 출력됩니다.
run이 종료된 후 해당 run의 메트릭 업데이트
0.9로 설정합니다. 또한 이전 run의 정확도 히스토그램을 numpy_array의 히스토그램으로 변경합니다.
완료된 run의 메트릭 이름 바꾸기
열 이름 변경은 테이블에만 적용됩니다. 차트에서는 여전히 메트릭의 원래 이름이 사용됩니다.
기존 run의 설정 업데이트
시스템 리소스 사용량을 CSV 파일로 내보내기
샘플링되지 않은 메트릭 데이터 조회
run.scan_history()를 사용하면 로깅된 모든 데이터 포인트를 조회할 수 있습니다. 다음은 이력에 로깅된 모든 loss 데이터 포인트를 다운로드하는 예제입니다.
이력에서 페이지 단위 데이터 조회
scan_history의 페이지 크기를 줄여 볼 수 있습니다. 기본 페이지 크기는 500이므로, 가장 적합한 값을 찾을 수 있도록 다양한 크기를 사용해 볼 수 있습니다:
프로젝트의 모든 run에서 메트릭을 CSV 파일로 내보내기
<entity>와 <project>를 각각 W&B entity와 프로젝트 이름으로 바꾸세요.
run의 시작 시간 조회
완료된 run에 파일 업로드
run에서 파일 다운로드
run의 모든 파일 다운로드
특정 sweep의 run 조회
sweep에서 최적의 run 조회
best_run은 sweep 설정의 메트릭 매개변수에서 정의한 가장 좋은 메트릭을 가진 run입니다.
sweep에서 가장 성능이 좋은 모델 파일 다운로드
model.h5에 저장한 run들로 구성된 sweep에서 검증 정확도가 가장 높은 모델 파일을 다운로드합니다.