import wandbwith wandb.init() as run: run.log( { "a": 1, # "a"는 고유한 메트릭입니다 "b": { "c": "hello", # "b.c"는 고유한 메트릭입니다 "d": [1, 2, 3], # "b.d"는 고유한 메트릭입니다 }, } )
W&B는 중첩된 값을 자동으로 평탄화합니다. 즉, 사전을 전달하면 W&B가 이를 점(.)으로 구분된 이름으로 변환합니다. 설정 값의 경우 이름에 점을 최대 3개까지 사용할 수 있습니다. summary 값의 경우 점을 최대 4개까지 사용할 수 있습니다.
메트릭 이름은 GraphQL에서 부과하는 특정 명명 제약을 따라야 합니다. 자세한 내용은 메트릭 명명 제약을 참조하세요.Workspace가 갑자기 느려졌다면, 최근 Runs에서 의도치 않게 수천 개의 새 메트릭을 로깅했는지 확인하세요. (이 경우는 섹션에 플롯이 수천 개 있는데, 각 플롯에 표시되는 run이 한두 개뿐인지 보면 가장 쉽게 확인할 수 있습니다.) 그렇다면 해당 Runs를 삭제한 다음, 원하는 메트릭만 포함해 다시 생성하는 것을 고려하세요.
이 기준을 초과하는 run 수는 프로젝트 워크스페이스나 Runs table과 관련된 오퍼레이션의 속도를 저하시킬 수 있으며, 특히 run을 그룹화하거나 run 중에 많은 수의 고유한 메트릭을 수집할 때 그 영향이 더 큽니다. 메트릭 수 섹션도 참조하세요.팀이 최근 run 집합처럼 동일한 run 집합에 자주 액세스하는 경우, 자주 사용하지 않는 run을 일괄 이동하여 새 “archive” 프로젝트로 옮기고 작업 중인 프로젝트에는 더 적은 수의 run만 남겨 두는 것을 고려하세요.
워크스페이스에 섹션이 수백 개 있으면 성능이 저하될 수 있습니다. 메트릭을 상위 수준으로 그룹화해 섹션을 만들고, 메트릭마다 섹션을 하나씩 만드는 안티패턴은 피하는 것이 좋습니다.섹션이 너무 많아 성능이 느리다면, 접미사 대신 접두사를 기준으로 섹션을 만들도록 워크스페이스 설정을 사용하는 것이 좋습니다. 이렇게 하면 섹션 수를 줄이고 성능을 개선할 수 있습니다.
run당 5,000개에서 100,000개의 메트릭을 로깅하는 경우, W&B에서는 수동 워크스페이스를 사용할 것을 권장합니다. 수동 모드에서는 서로 다른 메트릭 집합을 탐색할 때 원하는 대로 패널을 한꺼번에 쉽게 추가하거나 제거할 수 있습니다. 더 집중된 플롯 집합을 사용하면 워크스페이스가 더 빠르게 로드됩니다. 플롯되지 않은 메트릭도 평소와 같이 계속 수집되고 저장됩니다.워크스페이스를 수동 모드로 재설정하려면, 워크스페이스의 작업 () 메뉴를 클릭한 다음 워크스페이스 재설정을 클릭합니다. 워크스페이스를 재설정해도 run에 저장된 메트릭에는 영향을 주지 않습니다. 워크스페이스 패널 관리를 참조하세요.
리포트는 패널, 텍스트, 미디어를 원하는 대로 배치해 자유 형식으로 구성할 수 있어, 인사이트를 동료와 쉽게 공유할 수 있습니다.반면 워크스페이스는 수백 개에서 수십만 개의 run 전반에 걸친 수십 개에서 수천 개의 메트릭을 높은 밀도와 성능으로 분석할 수 있게 해줍니다. 워크스페이스는 리포트와 비교해 캐싱, 쿼리, 로딩 기능이 더 최적화되어 있습니다. 워크스페이스는 프레젠테이션보다 분석이 주된 목적의 프로젝트이거나, 20개 이상의 플롯을 함께 보여줘야 하는 경우에 권장됩니다.
데이터 크기가 너무 큽니다. 데이터가 크면 트레이닝 루프에 1ms를 초과하는 오버헤드가 발생할 수 있습니다.
네트워크 속도와 W&B 백엔드 구성 방식
wandb.Run.log()를 초당 몇 차례 이상 호출하는 경우. 이는 wandb.Run.log()가 호출될 때마다 트레이닝 루프에 약간의 지연 시간이 추가되기 때문입니다.
잦은 로깅 때문에 트레이닝 run이 느려지고 있나요? 로깅 전략을 바꿔 성능을 개선하는 방법은 이 Colab에서 확인하세요.
W&B는 요청 속도 제한 외에 별도의 제한을 명시하지 않습니다. W&B Python SDK는 제한을 초과한 요청에 대해 지수 백오프와 재시도를 자동으로 수행합니다. W&B Python SDK는 명령줄에 “Network failure”를 표시합니다. 유료가 아닌 계정의 경우, 사용량이 합리적인 임계값을 크게 초과하는 예외적인 상황에서는 W&B가 연락을 드릴 수 있습니다.
W&B SaaS Cloud API는 시스템 무결성을 유지하고 서비스 가용성을 보장하기 위해 요청 속도 제한을 적용합니다. 이 조치는 공유 인프라에서 특정 사용자 한 명이 사용 가능한 리소스를 독점하지 못하게 하여, 모든 사용자가 서비스를 이용할 수 있도록 합니다. 여러 가지 이유로 더 낮은 요청 속도 제한이 적용될 수 있습니다.
요청 속도 제한은 변경될 수 있습니다.
요청 속도 제한에 걸리면 HTTP 429Rate limit exceeded 오류가 반환되며, 응답에는 요청 속도 제한 HTTP 헤더가 포함됩니다.
wandb.Run.log()는 트레이닝 데이터를 W&B에 로그합니다. 이 API는 온라인 또는 오프라인 동기화를 통해 사용됩니다. 어느 경우든 롤링 시간 창을 기준으로 계산되는 요청 속도 제한 할당량이 적용됩니다. 여기에는 총 요청 크기와 요청 속도에 대한 제한이 포함되며, 후자는 일정 시간 동안의 요청 수를 의미합니다.W&B는 W&B 프로젝트별로 요청 속도 제한을 적용합니다. 따라서 팀에 프로젝트가 3개 있다면 각 프로젝트에는 자체 요청 속도 제한 할당량이 있습니다. 유료 플랜을 사용하는 사용자는 무료 플랜보다 더 높은 요청 속도 제한이 적용됩니다.요청 속도 제한에 걸리면 HTTP 429Rate limit exceeded 오류를 받게 되며, 응답에는 요청 속도 제한 HTTP 헤더가 포함됩니다.
W&B Models UI 및 SDK의 Public API는 데이터를 쿼리하고 수정하기 위해 서버에 GraphQL 요청을 보냅니다. SaaS Cloud의 모든 GraphQL 요청에 대해 W&B는 인증되지 않은 요청에는 IP 주소별로, 인증된 요청에는 사용자별로 요청 속도 제한을 적용합니다. 이 제한은 고정된 시간 구간 내의 요청 속도(초당 요청 수)를 기준으로 하며, 기본 제한은 사용 중인 가격 플랜에 따라 결정됩니다. 프로젝트 경로를 지정하는 관련 SDK 요청(예: 리포트, run, 아티팩트)의 경우, W&B는 데이터베이스 쿼리 시간을 기준으로 프로젝트별 요청 속도 제한을 적용합니다.Teams 및 Enterprise 플랜 사용자는 Free 플랜 사용자보다 더 높은 요청 속도 제한을 적용받습니다.
W&B Models SDK의 Public API를 사용하는 중 요청 속도 제한에 도달하면, 표준 출력에 해당 오류를 나타내는 메시지가 표시됩니다.요청 속도 제한에 걸리면 HTTP 429Rate limit exceeded 오류를 받으며, 응답에는 요청 속도 제한 HTTP 헤더가 포함됩니다.
W&B Models SDK의 public API를 사용해 대량의 데이터를 가져오는 경우, 요청 사이에 최소 1초 이상 기다리는 것이 좋습니다. HTTP 429Rate limit exceeded 오류가 발생하거나 응답 헤더에 RateLimit-Remaining=0이 표시되면, 다시 시도하기 전에 RateLimit-Reset에 지정된 초 수만큼 기다리세요.
W&B는 성능 문제를 गंभीर하게 다루며, 지연 관련 보고는 모두 조사합니다. 조사를 더 빠르게 진행할 수 있도록, 로딩 속도가 느릴 때는 주요 메트릭과 성능 이벤트를 캡처하는 W&B의 내장 성능 로거를 실행해 주세요. 로딩이 느린 페이지의 URL에 &PERF_LOGGING 매개변수를 추가한 다음, 콘솔 출력을 account team 또는 지원팀과 공유하세요.