Skip to main content

Microsoft Azure에서 Reference Artifacts 사용하기

원활한 머신러닝 실험을 위한 아티팩트 참조 심층 분석 이 글은 AI로 번역되었습니다. 오역 가능성이 있으면 댓글로 알려주세요.
Created on September 12|Last edited on September 12

소개

머신러닝 프로젝트를 진행할 때는 다양한 데이터셋, 모델, 그리고 기타 파일들을 추적하고 체계적으로 정리해야 합니다. 특히 대용량 파일을 다루거나 여러 팀원이 함께 작업할 경우, 이 작업은 금방 복잡해지고 부담스러워질 수 있습니다.
다행히도, wandb 라이브러리는 다음을 활용하여 이러한 파일을 손쉽게 추적하고 관리할 수 있는 방법을 제공합니다 Reference Artifacts. 이 글에서는 다음을 사용하는 방법을 살펴보겠습니다 wandb 추적하기 위해 Reference Artifacts Azure에 저장된

사전 준비 사항

Weights & Biases Python 라이브러리를 사용해 이 튜토리얼을 시작하기 전에 몇 가지가 필요합니다. wandb, Azure 생태계에서. Azure 생태계를 막 사용하기 시작했고 아직 Azure Storage의 데이터를 사용해 어떤 모델도 학습하지 않고 있다면:
  • 올바른 권한 설정: 로컬 환경(원격 VM, Jupyter Notebook 등)이 원격 스토리지에 연결되도록 구성했는지 확인하세요. 사용할 특정 Azure Blob Storage 컨테이너에 대해 필요한 읽기/쓰기 권한을 보유해야 합니다.
  • 적절한 라이브러리를 설치하세요(예: azure-storage-blob) 그리고 스크립트와 로컬 환경이 읽기/쓰기 명령을 실행할 수 있도록 적절한 액세스 키를 설정하세요.
  • Blob 내부의 메타데이터와 디렉터리 구조를 체계적으로 정리하여 각 파일에 올바른 정보와 라벨을 연결할 수 있도록 하세요. 예를 들어, CSV 파일을 사용할 수 있습니다 (train.csv) 데이터셋의 모든 파일 이름을 ID 및 관련 메타데이터(이미지 크기, 동물 클래스 등)와 함께 나열하는 것입니다.
  • Blob 버전 관리 활성화(선택 사항)파일을 수정하거나 삭제한 후에도 해당 파일의 내용을 복구할 수 있도록 하려면, 원격 Blob에 파일을 업로드하기 전에 Blob 버전 관리를 활성화하는 것을 고려하세요. Azure에서는 Azure CLI, Azure PowerShell, 또는 Python, .NET, Java, JavaScript용 Azure SDK를 통해 Blob 버전 관리를 제어할 수 있습니다.

W&B로 외부 파일 추적 이해하기

머신러닝과 딥러닝에서 데이터는 핵심이며, 그 관리는 효과적인 워크플로의 필수 구성 요소입니다. 데이터는 종종 외부의 다양한 위치, 예를 들어 클라우드 스토리지 버킷(예: Azure Blob Storage), NFS 공유, HTTP 파일 서버 등에 저장됩니다. Weights & Biases의 강력한 기능 중 하나는 wandb 도구 체인의 강점은 이러한 외부 파일을 추적할 수 있는 기능이며, 이를 다음과 같이 부릅니다 Reference Artifact (이 부분은 뒤에서 자세히 설명합니다) 다음 섹션)
Reference Artifact은 W&B 시스템 외부에 저장된 파일의 메타데이터를 기록할 수 있게 해줍니다. 이 기능을 통해 데이터를 이동하거나 복사할 필요 없이 URL, 파일 크기, 체크섬과 같은 정보를 추적할 수 있습니다. 그 결과, 기존의 데이터 저장 전략을 방해하지 않으면서도 견고한 추적 시스템을 구축할 수 있습니다.
실제로는 어떻게 동작할까요? 실행(run) 밖에서 Artifact을(를) 기록하면 W&B는 매번 새로운 실행을 생성합니다. 모든 Artifact은 어떤 실행에 속하며, 그 실행은 다시 프로젝트(Project)에 속합니다. 선택적으로, Artifact은 컬렉션(collection)에 속할 수 있고 특정 타입(type)을 가질 수도 있습니다.
실행(run) 밖에서 Artifact을(를) 기록하는 작업은 W&B CLI로 손쉽게 수행할 수 있습니다. The wandb 아티팩트 put 명령은 아티팩트를 W&B 서버로 업로드할 때 사용합니다. 프로젝트 이름, 아티팩트 이름, 그리고 필요하다면 타입을 지정하면 됩니다. 구문은 다음과 같습니다. put 일반(Reference Artifact가 아닌) 아티팩트에 사용하는 명령은 다음과 같습니다:
$ wandb artifact put --name project/artifact_name --type TYPE PATH

Reference Artifact은 무엇인가요?

Reference Artifacts 특정한 유형의 Artifact로, 다음과 같은 파일을 추적하는 방법으로 사용됩니다 아니요 직접 저장됨 wandb. 전체 파일을 업로드하는 대신, wandb 서버에서 Reference Artifact는 파일의 위치와 같은 메타데이터와 관련된 메타데이터만 저장합니다. 이는 대용량 파일을 다루거나 여러 팀원이 동일한 파일에 접근해야 할 때 특히 유용합니다.
다음과 같이 생각할 수 있습니다 Reference Artifact 다른 위치(예: Azure Blob Storage)에 저장된 실제 데이터를 가리키는 포인터와 비슷합니다. The Reference Artifact 자체 데이터는 포함하지 않고, 대신 데이터의 위치(URL), 크기, 체크섬 같은 메타데이터만 저장합니다. 따라서 이를 디리퍼런스(또는 다운로드)할 때에는 Reference Artifact저장된 위치에서 실제 데이터를 가져옵니다.
이 방법을 사용하면 클라우드 스토리지에 있는 대규모 데이터셋과 모델을 Weights & Biases로 이동하거나 복사하지 않고도 관리하고 버전 관리를 할 수 있어, 전체 과정이 효율적이고 간소화됩니다.

Azure Reference Artifact 생성 및 추적 wandb

이제 W&B로 외부 파일을 추적하는 기본 개념을 이해했으니, Azure Blob Storage와 함께 이를 어떻게 사용하는지 자세히 살펴보겠습니다.
Azure Blob Storage는 성능과 유연성으로 인해 ML 엔지니어들이 선호하는 확장 가능하고 안전한 데이터 저장 솔루션입니다. W&B를 사용하면 Azure Blob Storage에 저장된 데이터와 모델에 대한 참조를 추적할 수 있습니다. 이러한 Artifact 참조는 기본 클라우드 스토리지 제공업체의 세부 사항을 추상화하여, 기존 데이터 아키텍처에 원활하게 통합되도록 합니다.
예를 들어, 다음과 비슷한 Blob 스토리지 구조로 작업하고 있다면 my-bucket/classic_data 데이터셋과 your my-bucket/models/cnn/ 모델의 경우에도 W&B로 이러한 리소스를 추적하는 일은 아주 간단합니다.
다음은 Azure Blob Storage에 저장된 데이터셋을 참조하는 Artifact를 생성하는 예시입니다:
import wandb

artifact = wandb.Artifact('mnist:latest', type='dataset') # dataset, model, etc.
artifact.add_reference('https://foo.blob.core.windows.net/my-bucket/classic_data')
이 명령은 다음과 같은 응답을 출력합니다:
[ArtifactManifestEntry(path='mnist/train.csv', digest=0x8DB3A2AB1A1245',
ref='https://foo.blob.core.windows.net/my-bucket', birth_artifact_id=None, size=3,
extra={'etag':'0x8DB3A2AB1A1245', versionID: '2023-05-23T05:12:1123146Z'},
local_path=None)]
그런 다음 Artifact를 저장합니다:
artifact.save()
Azure Artifact에 대한 참조를 추가한 후 Jupyter 노트북 출력 화면截图
우리의 손글씨 예시(위 스크린샷이 아님)에서 새 Reference Artifact mnist:latest 일반적인 Artifact와 유사하게 동작합니다. 다만 이 객체는 Azure Blob Storage 객체에 대한 메타데이터만으로 구성되며, ETag, 크기, 그리고(블롭에서 객체 버전 관리가 활성화된 경우) 버전 ID 같은 정보를 포함합니다.
W&B는 사용 중인 클라우드 제공자에 따라 자격 증명을 찾기 위해 기본 메커니즘을 사용합니다. Azure의 경우, 다음을 따르면 됩니다 Azure 인증 가이드 사용되는 자격 증명에 대해 더 자세히 이해하려면.
다시 말해, W&B를 사용하면 기존 워크플로에 거의 영향을 주지 않으면서 Azure Blob Storage에서 ML 프로젝트의 데이터와 모델을 견고하고 효율적으로 추적할 수 있습니다. 다음 섹션에서는 이러한 Reference Artifact와 상호작용하는 방법과 ML 프로젝트에서 이를 효과적으로 활용하는 방법을 살펴보겠습니다.

Reference Artifact 사용 방법

만들고 나면 Reference Artifact을 만들고 나면, 어떻게 상호작용하는지, 어떤 방식으로 동작하는지, 그리고 워크플로에 어떻게 통합하면 되는지 궁금하실 겁니다. 걱정하지 마세요. 이 섹션에서 차근차근 알아보겠습니다.
A Reference Artifact 여러 측면에서 일반 Artifact와 유사하게 동작합니다. Weights & Biases 사용자 인터페이스에서 내용을 확인하고 탐색하며, 종속성을 검토하고 버전 기록을 확인할 수 있습니다. 다만, 핵심적인 차이점은 Reference Artifact 자체적으로 데이터를 저장하지 않고, 대신 Azure Blob Storage에 저장된 파일에 대한 메타데이터만 보관합니다.

Reference Artifact 상호작용하기

Reference Artifact가 가리키는 실제 데이터를 가져오려면, 해당 아티팩트를 다운로드하면 됩니다. 아티팩트가 생성될 때 기록된 메타데이터를 W&B가 사용하여 Azure Blob Storage에서 파일을 가져옵니다. 다음은 Reference Artifact를 다운로드하는 방법입니다:
import wandb

run = wandb.init(project="mnist-azure", job_type="sample-data")
artifact = run.use_artifact('mnist:latest')
artifact_dir = artifact.download()
# all files available locally in the mnist directory
위 코드에서는 Azure Blob Storage에서 데이터를 가져와 로컬에서 사용할 수 있도록 하며, 아티팩트가 기록되었을 당시의 데이터 상태를 정확히 재현합니다. 특히 Blob 버전 관리가 활성화되어 있다면, 시간이 지나 Blob의 내용이 변하더라도 특정 모델이 학습에 사용한 데이터의 정확한 버전을 언제든 추적하고 복원할 수 있어 매우 강력합니다.
자세한 작업 방법 알아보기 아티팩트 다운로드하기 여기

워크플로에 Reference Artifact 통합하기:

이제 이러한 Reference Artifact를 일반적인 ML 워크플로에 어떻게 통합할 수 있는지 살펴보겠습니다. Azure Blob Storage에 저장된 데이터셋이 학습 작업에 사용된다고 가정해 보세요. 다음은 W&B로 해당 데이터셋을 추적하는 방법입니다. 다운로드한 아티팩트를 다루는 방법이 필요하다면 다음 내용을 참고하세요. 이 페이지.
import wandb

run = wandb.init()
artifact = wandb.Artifact('mnist', type='dataset')
artifact.add_reference('https://foo.blob.core.windows.net/my-bucket/classic_data')
run.use_artifact(artifact)
artifact_dir = artifact.download()

# Perform training here...

이 코드에서는 run.use_artifact(artifact) 아티팩트를 추적하는 동시에 해당 실행의 입력으로 표시합니다. 블롭의 파일이 변경되면 새 아티팩트 버전이 기록됩니다.
이 시점에서, 여러분은 W&B를 사용했습니다 Reference Artifact 입력 데이터셋과 출력 모델이 모두 Azure Blob Storage에 외부 저장되어 있어도 둘 다를 추적할 수 있습니다. 이를 통해 데이터와 모델 관리는 Azure Blob Storage의 유연성을 그대로 유지하면서, ML 실험을 견고하게 추적할 수 있습니다.
이 전략을 적용하면 데이터, 모델, 그리고 학습 실행 간의 계보가 명확해져, 머신러닝 프로젝트에서 재현성과 협업을 보장하는 데 매우 중요합니다.

결론

이 블로그 글에서는 다음 방법을 살펴보았습니다 wandb 추적하기 위해 Reference Artifacts Azure에 저장되어 있습니다. 이를 통해 Reference Artifacts, 대용량 파일을 직접 업로드하지 않고도 쉽게 추적하고 관리할 수 있습니다 wandb이는 대용량 데이터셋을 다룰 때나 여러 팀원이 동일한 파일에 접근해야 할 때 특히 유용합니다. 머신러닝 파이프라인을 전체적으로 조망할 수 있어 ML 실험의 기록을 명확하고 감사 가능하며 재현 가능하게 유지할 수 있습니다. 실험의 각 단계에서 데이터셋과 모델의 버전 관리된 스냅샷을 제공하므로, 문제 해결과 성능 개선에 도움이 될 뿐만 아니라 팀 내·팀 간 협업과 커뮤니케이션에도 기여합니다.

GCP 또는 AWS를 사용하나요?

Weights & Biases는 Azure에서 ML, DL, AI 워크플로만 가속하는 것이 아닙니다. Google Cloud Platform이나 Amazon Web Services를 사용 중이라면 해당 클라우드도 동일하게 지원합니다. 이들 클라우드 호스팅 환경에서 외부 파일을 추적하는 방법을 알아보세요. 여기.



이 글은 AI로 번역된 기사입니다. 오역 가능성이 있다면 댓글로 알려 주세요. 원문 보고서는 아래 링크에서 확인할 수 있습니다: 원문 보고서 보기