가장 중요한 ML 자산을 체계화하기 위한 버전 태그와 아티팩트 활용
Weights & Biases에서 모델, 코드, 데이터셋, 아티팩트를 추적하고 체계화하는 방법 입문서
이 글은 AI로 번역되었습니다. 오역이 있을 경우 댓글로 알려주세요.
Created on September 15|Last edited on September 15
Comment
여러 환경에 흩어진 비라벨 아티팩트들은 바쁜 ML 플랫폼 엔지니어가 원하는 모델과 데이터셋을 쉽게 식별하고 가져오는 일을 방해하지만, 제대로 조직화되고 큐레이션된 중앙 아티팩트 저장소는 ML 플랫폼 엔지니어, 실무자, 그리고 프로그램 워크플로우가 필요한 아티팩트를 손쉽게 검색하고 찾을 수 있게 해준다. AI 모델의 학습, 파인튜닝, 관리에 대한 시스템 오브 레코드로서, Weights & Biases는 게시와 공유에 이상적인 Registry를 제공하며, 쉽게 찾다 모든 ML 모델과 데이터셋

머신러닝 아티팩트의 맥락에서, 발견 가능성 사용자와 애플리케이션이 게시된 모델과 데이터셋을 얼마나 쉽게 찾고, 접근하고, 이해할 수 있는지를 의미한다. Weights & Biases는 최근 아티팩트의 발견 가능성을 높이고 ML 팀의 업무를 크게 수월하게 하는 여러 개선 사항을 도입했다. 아티팩트 버전 태그 지원과, GUI와 SDK 모두에서 해당 태그를 활용해 아티팩트 버전을 더 쉽게 검색·필터링·그룹화할 수 있는 기능은, 실험 이후의 ML 워크플로우를 한층 원활하고 효율적으로 만들어 주며, 모델이 학습에서 프로덕션 배포에 이르기까지의 여정을 매끄럽게 해준다.
CI/CD 파이프라인 최적화와 ML 라이프사이클의 실험 이후 추적 단계에 초점을 맞춰, Weights & Biases는 발견 가능성 제고와 모델 관리 개선에 투자해 왔습니다. 이 블로그 포스트에서는 다음을 다룹니다:
- 발견 가능성이 효과적인 MLOps 워크플로우에 왜 필수적인지 살펴보기
- Registry, 별칭, 태그를 깊이 알아보기: 머신러닝 아티팩트를 관리하고 쉽게 식별하는 최적의 조합
- 새로운 아티팩트 버전 태그 기능을 사용하는 방법을 살펴보세요.
- 그리고 별칭과 새로운 아티팩트 버전 태그가 ML 워크플로우를 어떻게 촉진하는지 보여 주는 몇 가지 비즈니스 활용 사례도 논의합니다.
왜 이것이 중요한지부터 시작해 보겠습니다.
발견 가능성이 왜 중요한가?
발견 가능성이 향상되면 ML 라이프사이클의 여러 단계에서 이점이 생기며, 모델 품질과 배포 속도 모두가 개선됩니다. Weights & Biases의 발견 가능성 기능에 집중하기에 앞서, 아티팩트의 발견 가능성이 ML 조직에 왜 그토록 중요한지 먼저 살펴보겠습니다.
효율성
모델을 쉽게 찾아볼 수 있으면 시간과 자원을 절약할 수 있습니다. 팀은 모델을 찾아다니거나 새로 만드는 데 시간을 쓰는 대신, 기존 모델을 빠르게 발견하고 재사용할 수 있습니다. 이는 개발, 평가, 배포 과정을 가속화하고, 팀이 기존 성과를 기반으로 구축하며 그 이점을 활용할 수 있게 합니다.
협업
발견 가능성을 지원하는 아티팩트 레지스트리는 팀원 간의 협업을 강화합니다. 조직 전반의 ML 엔지니어와 플랫폼 엔지니어는 모델, 인사이트, 문서를 손쉽게 공유할 수 있어 팀워크와 지식 공유가 촉진됩니다. 별칭, 태그, 메타데이터는 모두 사용자와 팀이 필요할 때 필요한 아티팩트와 정보를 빠르게 찾는 데 도움이 됩니다.
이러한 정보에 대한 접근성은 신규 팀원이 리포지토리를 탐색하고 빠르게 익숙해지는 온보딩 단계에서 특히 유용합니다. 발견 가능성이 촉진하는 협업의 또 다른 예로, ML 실무자가 새 프로젝트를 시작하기 전에 아티팩트 레지스트리를 확인해 다른 사용자나 팀이 도움이 되거나 관련될 수 있는 모델이나 아티팩트를 이미 게시했는지 살펴보는 경우를 들 수 있습니다. 유사하거나 동일한 작업이 이미 존재하고 쉽게 찾을 수 있다면, 중복 작업이 발생할 가능성은 줄어듭니다.
일관성과 표준화
발견 가능성은 표준화된 모델과 관행이 조직 전체에서 일관되게 활용되도록 돕습니다. 여러 사용자나 팀이 각자 다른 방식으로 일하다 보면, 여러 환경에 흩어진 아티팩트를 각자 해석하며 돌아가는 ‘와일드 웨스트’ 같은 상황으로 흐르기 쉽습니다.
거버넌스와 컴플라이언스
많은 산업에서는 머신러닝 모델의 사용과 관련해 엄격한 규제와 컴플라이언스 요건이 있습니다. 발견 가능한 레지스트리를 사용하면 모든 모델과 기타 아티팩트가 필요한 컴플라이언스와 거버넌스 기준을 충족하는지 감사하고 확인하기가 더 쉬워집니다.
예를 들어, ML 플랫폼 엔지니어의 능동적인 큐레이션과 아티팩트 레지스트리의 필터링 기능을 결합하면, 유효한 라이선스를 가진 외부 소스의 베이스 모델만 ML 엔지니어가 접근하도록 사전에 강제할 수 있습니다. 사용에 적합한 라이선스가 없는 모델은 아예 제외하거나 아티팩트 ���그로 식별할 수 있습니다. 그리고 라이선스 문제를 넘어, 올바른 사용자만 올바른 아티팩트를 발견할 수 있도록 보장하는 것은 보안 환경을 유지하는 데 무엇보다 중요합니다.
모델 성능 개선
모델을 발견 가능하게 만들면 서로 다른 모델을 쉽게 비교하고 특정 작업에 가장 성능이 좋은 모델을 선택할 수 있습니다. 이를 통해 팀은 과거의 성공과 실패에서 학습하여 모델 성능을 지속적으로 개선할 수 있습니다.
지식 보존
팀에는 이직이나 이동이 자주 발생하며, 핵심 구성원이 떠나면 중요한 지식이 사라질 수 있습니다. 발견 가능한 레지스트리는 모델, 메타데이터, 성능 지표를 중앙에서 저장하고 공유할 수 있는 공간을 제공하여 지식 보존에 도움이 됩니다.
확장성
조직이 성장하고 아티팩트 수가 늘어날수록, 뛰어난 발견 가능성을 갖춘 시스템은 아티팩트 레포지토리가 효과적으로 확장되도록 보장합니다. 발견 가능성이 없으면 많은 수의 모델을 관리하는 일이 혼란스럽고 비효율적으로 변할 수 있습니다.

Weights & Biases가 도움이 되는 방법
모델과 데이터셋에 대한 버저닝, 별칭, 계보 추적, 거버넌스를 제공하며 저장하는 중앙 레포지토리로서, W&B 레지스트리 ML 조직 전반의 발견 가능성을 높여 주는 다양한 기능을 제공합니다. 물론 발견 가능성을 향상시키는 표준화된 명명 규칙과 메타데이터 활용 기법도 있지만, 이러한 방법은 대개 우아하지 못하고 더 많은 코딩 작업과 잠재적 문제를 수반합니다.
아티팩트를 식별하고 참조하는 주요 방법인 아티팩트, 별칭, 태그를 간단히 살펴보고, 이들이 아티팩트를 더 쉽게 발견하고 사용자와 자동화된 워크플로에서 더 손쉽게 활용하도록 어떻게 돕는지 파고들어 보겠습니다.
레지스트리
레지스트리를 …라고 생각하면 도움이 될 수 있습니다 북마크된 아티팩트 카탈로그. 일반적으로 이는 CI/CD 워크플로에 핵심적인 최고 성능 모델과 가장 효과적인 학습 데이터셋처럼, 여러 사용자와 팀이 공유할 때 가장 큰 가치를 제공하는 자산들입니다. 다른 모델 레지스트리가 모델만을 위한 경직된 저장소로 조직을 제한하는 반면, Weights & Biases는 모든 아티팩트 유형을 지원하며, ML 플랫폼 엔지니어가 조직에 가장 적합한 레지스트리 구조를 유연하게 설계할 수 있도록 합니다.
거버넌스와 보안이 갖춰진 환경에서 Registry는 같은 팀이나 같은 프로젝트에 속해 있지 않더라도 엔터프라이즈 전반의 사용자가 모델과 데이터셋을 공유할 수 있게 해줍니다. 적절한 권한을 가진 사용자는 팀, 아티팩트 이름, 태그로 Registry를 검색해 모델, 데이터셋, 기타 아티팩트를 찾을 수 있습니다. 도서관이 듀이 십진분류법으로 책을 쉽게 찾게 하듯, Registry는 기본 및 사용자 지정 레지스트리, 아티팩트 컬렉션, 별칭, 태그를 활용해 권한이 있는 경우 모든 머신러닝 아티팩트를 쉽게 찾고 쉽게 사용할 수 있도록 합니다.
Registry는 직관적인 인터페이스를 제공해 레지스트리와 컬렉션 관리를 쉽게 만들어 줍니다. 즉, 상세한 아티팩트 정보, 강력한 라인리지 추적, 그리고 ML 파이프라인을 더 잘 이해하고 시각화하는 데 도움이 되는 의존성 그래프를 손쉽게 확인할 수 있습니다. 앞서 언급했듯, 거버넌스와 컴플라이언스는 발견 가능성 향상의 큰 수혜를 받습니다. 이는 아티팩트를 더 쉽게 찾게 해 줄 뿐만 아니라, 어떤 실행(run)이 어떤 아티팩트를 사용했거나 생성했는지 파악하기도 쉽게 만들어 줍니다. 라인리지 그래프(및 Weights & Biases에서 제공되는 보조 데이터)는 주어진 아티팩트에 대한 정확한 “레시피”를 제공하여, 어떤 모델이든 재현하고, 감사 요청에 대응하며, 업계 및 사내 정책을 준수할 수 있게 해줍니다.
별칭
별칭은 컬렉션에서 특정 아티팩트 버전을 식별하거나 참조할 수 있게 해주는 고유 식별자입니다. W&B 실행이 생성하는 모든 아티팩트에는 생성된 순서에 따라 자동으로 버전 별칭이 부여됩니다. 최신 아티팩트 버전을 빠르게 식별할 수 있으면 유용한데, W&B는 컬렉션에서 가장 최근 아티팩트 버전에 “Latest” 별칭을 자동으로 적용하여 이를 쉽게 만들어줍니다.
아티팩트에 별칭을 추가하는 방법은 SDK를 사용하거나 UI에서 수행할 수 있습니다. 또 다른 일반적인 사용 사례로는 실험 중에 생성된 최고 성능의 모델 체크포인트에 “best” 같은 별칭을 프로그램matically 적용하는 것이 있습니다. 여러 모델 체크포인트가 생성되는 경우, 실행이 끝난 뒤 메타데이터를 일일이 확인하는 대신 실행 중에 어떤 체크포인트가 가장 좋은 성능을 냈는지 추적할 수 있으면 유용합니다.
별칭은 고유성이 보장되므로 특정 아티팩트 버전을 검색하고 가져올 때 매우 유용합니다. 하지만 검색 필터를 기준으로 여러 아티팩트 버전을 추적하고 가져와야 할 때도 있습니다. 그럴 때는 태그가 해답입니다.
태그
여러 아티팩트 버전이 공통 속성을 공유해 그룹화와 필터링이 가능하다면, 태그를 사용하는 것이 가장 효과적입니다.
별칭과 마찬가지로 태그도 아티팩트 버전에 프로그램 방식으로나 UI를 통해 추가할 수 있습니다. 하지만 별칭과 달리 태그는 Weights & Biases가 자동으로 생성하지 않으며, 항상 사용자가 직접 만듭니다. 태그는 아티팩트 버전에만 국한되지 않고, 아티팩트 컬렉션이나 실험 실행과 같은 W&B Models 내부의 다른 오브젝트에도 사용할 수 있습니다. 특히 모델과 데이터셋 버전을 다룰 때처럼 세밀한 버전 수준에서 매우 유용합니다.
태그는 겉보기에는 단순하지만, 신중하고 포괄적인 태깅 전략은 ML 라이프사이클 전반에서 발견 가능성을 높여 줍니다. 그리고 발견 가능성이 높아지면 생산성도 함께 올라갑니다.
아티팩트 버전 태그를 활용한 비즈니스 활용 사례를 아래에서 살펴보겠습니다.
올바른 아티팩트를 찾는 방법
별칭과 태그가 유용한 W&B Models의 영역은 여러 곳에 있지만, 우리의 시스템 오브 레코드의 중심인 Registry에 초점을 맞춰 살펴보겠습니다.
UI에서 손쉬운 검색
기본 레지스트리든 커스텀 레지스트리든, 모든 레지스트리에는 “Search collection names, tags, and version tags.”라고 표시된 검색창이 있습니다.
네, 정말 이 정도로 쉽습니다.
찾고자 하는 오브젝트에 연결된 라벨만 입력하면, 해당 항목들이 검색 결과의 가장 눈에 잘 띄는 위치에 나타납니다. UI 검색은 Registry 아티팩트를 수동으로 선별하거나 특정 아티팩트를 추적하려는 ML 플랫폼 엔지니어, 그리고 다른 사람이 남긴 유용한 작업이나 모델 학습에 사용할 표준화된 데이터셋을 찾는 ML 엔지니어에게 특히 유용합니다. 웹 브라우저를 W&B의 주된 인터페이스로 사용하는 사용자라면, 아티팩트 계층에서 손쉽게 검색 결과를 끌어내는 이 직관적인 절차를 통해 큰 이점을 얻을 수 있습니다.

SDK를 통한 검색 및 조회
지속적 통합과 지속적 배포(CI/CD)와 같은 프로그래밍 방식 워크플로는 원하는 모델과 데이터셋을 찾기 위해 SDK를 사용합니다.
물론 SDK를 사용하면 이름과 별칭으로 개별 아티팩트를 식별하고 다운로드할 수 있습니다. 이제 약간의 추가 작업만으로 태그 또는 태그 조합으로 아티팩트 버전을 필터링하고 for 루프로 손쉽게 가져올 수 있습니다. 아래의 간단한 코드 스니펫을 확인해 보세요. 특정 컬렉션(“Artifact Demo Models”)에서 태그 “us-west-2”가 달린 모든 아티팩트 버전을 필터링하는 방법을 보여줍니다.
import wandbdef main():api = wandb.Api()production_versions = api.artifacts(type_name="model", name="wandb-registry-model/Artifact Demo Models", tags=['us-west-2'])for pv in production_versions:print("Artifact Version: " + str(pv.name) + "\nTags: " + str(pv.tags) + "\n")if __name__ == "__main__":main()
비즈니스 활용 사례
모델과 데이터셋의 검색 가능성이 왜 중요한지, 그리고 Weights & Biases가 Artifacts와 Registry를 통해 검색 가능성을 극대화하는 방법을 살펴보았습니다. 이제 이러한 기능을 조직이 비즈니스 목표를 달성하는 데 어떻게 활용하는지 살펴보겠습니다.
별칭
사용자는 새로운 모델 버전이 컬렉션에 추가될 때, 또는 “candidate”나 “production” 같은 특정 별칭이 아티팩트 버전에 수동 또는 프로그래밍 방식으로 적용될 때 Automations를 트리거할지 선택할 수 있습니다. Automation은 사용자 지정 페이로드를 포함한 웹훅 호출 또는 W&B Launch 작업을 트리거할 수 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다. 여기에서 Automations로 CI/CD 워크플로를 시작하기.
컬렉션 내 특정 모델 버전이 평가 과정을 통과해 “production” 또는 “champion”으로 라벨링되었다면, 보통 단일 아티팩트 버전이 하나의 프로덕션 환경에 배포되는 시나리오를 의미합니다. 한 버전으로 충분할 경우에는 일반적으로 별칭을 사용하는 것이 가장 적합합니다.
팀이 …을 보장하도록 하는 것 최신 버전 사용 공유 데이터셋을 사용하면 일관성이 보장됩니다. 세분화된 거래 데이터셋은 여러 팀에 매우 가치가 높으며 소매 기업의 다양한 머신러닝 사용 사례를 지원합니다. 예를 들어 구매 데이터는 계절성 수요 예측 모델과 고객 이탈 예측 모델을 학습하는 데 활용될 수 있습니다.
하지만 앞서 살펴본 것처럼, 하나의 컬렉션 안에 있는 여러 아티팩트 버전이 프로덕션 배포나 중요한 내부 워크플로에 모두 관련될 경우, 버전 태그는 새로운 가능성을 열어 줍니다.
태그
여러 개의 모델을 생성했는데 모두 같은 컬렉션에 속해 있다고 가정해 봅시다. 이때 버전 번호나 Registry에 추가된 순서는 어떤 모델을 배포할지 결정하는 데 중요하지 않습니다. 대신 여러 모델을 프로덕션 환경에 배포하지만, 각 프로덕션 모델은 서로 다른 리전으로 배포됩니다.
위의 코드 스니펫을 참고하면, 태그를 사용해 각 모델의 리전을 “north_america”, “south_america”, “emea”, “apac”, “africa”처럼 라벨링할 수 있고, 추가 태그로 “production” 또는 “candidate” 모델임을 표시할 수 있습니다. 프로덕션 모델이 여러 개 존재하는 경우에는 별칭보다 태그를 사용해 조회하는 방식이 더 우아한 해결책이 됩니다. 북미 리전의 프로덕션 모델만 접근하려면 검색에 “north_america”와 “production” 두 태그를 함께 포함하면 됩니다.
이 예시에서처럼 “production” 모델이 여러 개 존재할 때는 별칭 대신 태그를 어떻게 활용할 수 있는지 쉽게 추론할 수 있습니다. 다른 예로는 특정 컴퓨팅 환경에서 학습했거나 해당 환경에서 사용하도록 의도된 모델, 혹은 목적은 같지만 고객이 다른 모델들이 있습니다. 고유하지 않은 값으로 여러 아티팩트를 필터링하는 것이 유용한 모든 상황은 태그의 훌륭한 활용 사례입니다.
대규모 언어 모델(LLM)을 파인튜닝하면 특정 작업이나 도메인에 맞게 모델을 맞춤화할 수 있으며, 더 작고 특화된 데이터셋으로 추가 학습해 정확도, 성능, 그리고/또는 적합성을 향상시킵니다. 파인튜닝에는 Llama나 Mistral 같은 베이스 모델과 Alpaca 또는 내부 데이터셋 같은 학습 데이터를 각각 선택하는 과정이 필요합니다. 최상의 결과를 얻기 위해 하나의 프로젝트에서 여러 베이스 모델과 여러 데이터셋을 함께 활용하는 경우도 있습니다.
이 프로젝트에 연결된 모든 파인튜닝 모델은 서로 다른 입력 아티팩트 조합을 사용할 수 있지만, 모두 동일한 프로젝트에 속하므로 같은 컬렉션에 추가할 수 있습니다. 모델을 구분하기 위해 베이스 모델과 학습 데이터셋을 나타내는 태그를 함께 적용할 수 있습니다. 이렇게 하면 W&B 인터페이스에서 태그로 손쉽게 검색할 수 있을 뿐 아니라, SDK에서 서로 다른 베이스 모델과 학습 데이터셋을 지정해 모델을 쉽게 조회하고 비교할 수 있습니다.
W&B Registry의 핵심 장점 중 하나는 모델뿐 아니라 데이터셋과 기타 모든 유형의 아티팩트도 저장할 수 있다는 점입니다. 학습 데이터셋은 형태와 크기가 제각각이며, 하나의 컬렉션에 함께 보관할 만큼 유사하지만 검색 용이성을 위해 서로 다른 태그가 필요한 경우가 있는 것은 모델과 마찬가지입니다. 많은 파인튜닝 데이터셋은 LLM이 생성합니다. 버전 태그를 사용하면 동일한 프롬프트로, 동일한 목적을 위해 생성되었지만 서로 다른 LLM이 생성한 데이터셋을 식별할 수 있습니다. 동일한 컬렉션 내에서 여러 데이터셋에 버전 태그를 활용할 수 있는 또 다른 예는 언어 구분입니다. 데이터셋의 용도는 완전히 같더라도, 태그를 통해 영어인지 일본어인지 식별할 수 있습니다.
결론
엔터프라이즈 규모의 머신러닝 조직에서 아티팩트의 검색 용이성은 성공의 핵심입니다. 모델 학습에 사용할 적절한 데이터셋을 찾는 신입 ML 엔지니어부터, Registry에 게시된 최신 후보 모델을 평가하는 자동화된 CI/CD 워크플로까지, 아티팩트를 최대한 쉽게 찾을 수 있게 하는 것은 모두에게 이점을 제공합니다.
별칭은 컬렉션 내에서 아티팩트를 식별하고 Automations를 트리거하는 매우 중요한 역할을 하지만, 고유해야 한다는 특성은 동시에 한계이기도 합니다. 아티팩트를 더 복잡한 전략으로 구성하고 검색해야 할 때는 버전 태그가 새로운 가능성을 열어 줍니다. W&B Registry는 더 효율적이고 구조화된 아티팩트 저장소를 위한 토대를 제공합니다. 아티팩트 버전 태그는 검색 용이성을 크게 향상시키고, Weights & Biases를 AI 모델의 학습, 파인튜닝, 관리에 최적의 시스템 오브 레코드로 만들어 주는 일련의 개선 사항 중 최신 기능입니다.
시작하기
Add a comment