Weights & Biases가 감사 및 규제 준수를 돕는 방법
W&B Artifacts로 팀의 모델을 감사 가능하게 만드세요
이 글은 AI가 번역한 기사입니다. 오역이 있을 경우 댓글로 알려주세요
Created on September 12|Last edited on September 12
Comment
Weights & Biases에 합류하기 전, 저는 호주 전역의 주요 병원에서 사용되는 제품을 만드는 의료 회사에서 일했습니다. 의료 분야의 AI 스타트업에서 일할 때 꼭 기억해야 할 점이 하나 있는데, 바로 준수와 감사에 정말 엄격하다는 것입니다!
우리의 경우, 딥러닝 모델이 X-ray 또는 CT 스캔에서 이상 소견을 탐지하는 역할을 했습니다. 다시 말해: AI는 인간의 삶에 직접적인 영향을 미쳤다그래서 모델 변경과 관련해서는 모든 것이 상당히 엄격했습니다. 모든 모든 변경 사항은 규제 기관의 승인을 받아야 했고, 모든 절차는 기록되어야 했습니다. 데이터 수집, 데이터 정제, 모델 학습, 모델 평가 등 모든 프로세스는 오류에 대비한 완전한 검증 가능 상태여야 했습니다.
W&B를 도입하기 전
통합하기 전에 Weights & Biases, 상황은 정말 꽤 혼란스러웠다. 모든 모델 변경 사항을 기록하려면 대형 Excel 시트를 유지해야 했다. 이 Excel 시트는 대략 다음과 같은 형태였다:

표 1: 모델 변경 사항 기록용 Excel 시트
또한 회사가 서로 다른 세 가지 모델 (하나는 X-ray용, 다른 하나는 CT scan용, 마지막 하나는 MRI용) 50곳이 넘는 서로 다른 고객의 다양한 문제를 해결하다 보니, 이 Excel 시트들이 얼마나 방대하고 엉망이 되었는지 짐작할 수 있을 것이다!
그다음을 넘어서는 부분에서는 호주 의료 규제 가이드라인 상당히 엄격하다. 내가 근무하던 의료 회사는 거의 매년 감사 대상이 되었다는 뜻이다. 즉, 모든 프로세스가 교차 검증을 거쳤다. 여기에는 데이터 수집, 데이터 정제, 모델 학습, 모델 평가, 데이터 누수 등이 모두 포함되었다.
당시 감사팀이 물었지만 내가 답하지 못했던 질문 하나가 기억난다:
고객에게 공유하는 모델이 3개월 전에 당신이 학습한 바로 그 모델과 동일하다는 것을 어떻게 확인할 수 있나요? 혹시 잘못된 파일을 공유했거나, 팀의 다른 누군가가 덮어쓴 것은 아닐까요?
예시를 통해 한 번 시각화해 보겠습니다:

그림 1: 단순한 실제 사용 사례
일단 내가 머신 러닝 엔지니어 어떤 의료 회사에서. 나는 모델을 학습한다 ResNet-34 이제 프로덕션 준비가 완료되어 클라이언트 A, B, C의 세 곳과 공유해야 합니다.
먼저 이 모델과 모든 절차를 표 1과 유사한 엑셀 시트에 기록으로 관리합니다. 이제 최종 버전을 클라이언트들과 공유해야 합니다.
이걸 보통 어떤 방법으로 할 수 있나요?
- 모델을 Google Drive에 저장하고 세 클라이언트와 링크를 공유할까요?
- AWS나 GCP 같은 프라이빗 클라우드에 모델을 저장하고, 클라이언트가 모델을 다운로드하도록 할까요?
- 세 클라이언트 각각에게 모델 사본을 개별적으로 공유하세요.
민감한 데이터와 모델의 경우, 세 가지 방법 모두 적절하지 않습니다. 왜일까요?
세 가지 방법 모두 수동 단계가 포함되어 있어 오류가 발생할 가능성이 있습니다. 내가 실수로 잘못된 모델을 Google Drive나 프라이빗 클라우드에 업로드하면 어떻게 될까요? 업로드하려던 모델 아티팩트의 이름이 checkpoint-100.pth.tar 그 대신 제가 업로드했습니다 checkpoint-10.pth.tar?
무엇이든 가능합니다! 특히 중대한 감사를 받고 규정과 컴플라이언스 관행을 따라야 한다면 더욱 그렇습니다. 이런 경우에는 방법이 반드시 오류에 강하고 확실해야 합니다.
W&B 통합 이후
Weights & Biases Artifacts 구원이 나타났습니다! 이제 학습 과정에 Weights & Biases를 통합해 runs와 metrics를 기록하고, 성능 점수와 함께 최적의 모델도 저장할 수 있습니다!
잠깐만요, 그런데 이게 어떻게 도움이 되죠?

그림 2: 모델 아티팩트를 공유하는 중앙 허브로서 W&B 활용
고객에게 모델을 직접 공유하는 대신, 중간 단계로 모델 아티팩트를 저장해둘 수 있습니다 Weights & Biases!
W&B Artifacts란 무엇인가요?
W&B Artifacts는 데이터셋과 모델을 손쉽게 버전 관리할 수 있도록 설계되었습니다. 파일을 W&B에 저장하든, 이미 보유한 버킷을 W&B가 추적하도록 하든 상관없이 사용할 수 있습니다. 데이터셋이나 모델 파일을 추적하기 시작하면, W&B가 모든 수정 사항을 자동으로 기록하여 파일 변경 이력을 완전하고 감사 가능한 형태로 제공합니다. 그렇게 하면 데이터셋을 발전시키고 모델을 학습하는 중요한 일에 집중할 수 있고, 세부 변경 사항을 일일이 추적하는 번거로운 작업은 W&B가 대신 처리합니다.
좋아요! Weights & Biases가 버전 관리와 스토리지를 대신해 줄 수 있군요. 그런데 어떤 이점이 있나요?
Weights & Biases를 사용하면 각 고객에게 올바른 모델 버전을 확실하게 전달할 수 있습니다. 사람이 개입하지 않기 때문에 위험을 최소화할 수 있습니다. 또한 정기적인 감사와 엄격한 컴플라이언스 지침을 따라야 하는 기업의 경우, W&B 공유만으로도 run_id 이렇게 하면 configs, 모델, 데이터 Artifacts를 포함한 모든 항목을 Weights & Biases에서 접근할 수 있어 문제를 해결할 수 있습니다.
💡
코드 네 줄만으로 W&B Artifacts를 아주 쉽게 기록할 수 있습니다.
wandb.init()artifact = wandb.Artifact(<enter_filename>, type='model')artifact.add_file(<file_path>)wandb.run.log_artifact(artifact)
왜 Weights & Biases를 사용해야 할까요?
- 프로세스가 자동화됩니다코드 몇 줄만으로도 모든 모델과 데이터셋을 W&B를 사용해 올바르게 버전 관리하고 저장할 수 있습니다.
- 오류 발생 가능성 최소화: 사람이 개입하지 않으므로, 각 고객은 학습 중에 자동으로 저장된 것과 동일한 모델 사본을 확실하게 받게 됩니다.
- 모든 것이 재현 가능하고 추적 가능합니다: 파이프라인에 Weights & Biases를 통합하면 모든 실험을 재현할 수 있습니다. 따라서 회사가 감사를 받게 되더라도, 필요한 것은 다음뿐입니다: 실험 ID를 공유하세요그 시점에 사용된 학습 스크립트의 로그, 프로덕션에 배포된 모델 버전, 모델의 성능 점수 등 모든 정보를 포함합니다! 이것을 확인하세요 대시보드 예를 들어
- 모든 것이 한곳에 있습니다: Weights & Biases와 연동하면 로그, 소스 코드 파일, 메트릭 로그, 모델 버전, 데이터셋 버전이 모두 한곳에 모입니다! 몇 달, 몇 년이 지나도 전체를 한눈에 파악하기가 매우 쉬워집니다. 더 이상 Excel 스프레드시트나 노트북 등을 따로 관리할 필요가 없습니다.
- 프라이빗 클라우드에 호스팅하기: 데이터가 민감하다면, 가중치와 바이어스 또한 모든 작업을 로컬에서 실행하고 모델 및 데이터 아티팩트를 AWS/GCP 또는 기타 클라우드 제공업체의 개인 버킷에 저장하는 옵션도 제공합니다. 참고하세요 여기 자세한 내용은 다음을 참고하세요.
- 추적 모든 것: Weights & Biases는 W&B 시스템 외부에 저장된 파일도 추적할 수 있습니다! 이를 다음과 같이 부릅니다 참조 Artifacts. Reference Artifacts는 민감한 데이터를 다룰 때 특히 유용하며, 사용자가 관리하는 개인 S3 버킷, GCS 버킷, HTTP 파일 서버, 또는 NFS 공유에 저장할 수 있습니다. 코드와 스크린샷이 포함된 GCP에서 Reference 파일을 추적하는 예시는 다음 가이드를 참고하세요 Reference Artifacts 가이드.
앞으로의 실험을 체계화하는 간단한 프레임워크
이 섹션에서는 AWS에 모델 Artifacts를 저장하고, 규제 준수를 위해 Weights & Biases를 사용해 모델과 데이터셋을 버전 관리하는 방법을 보여주는 간단한 예제를 살펴보겠습니다.
이 노트북은 학습 실행을 시작하며, 그 과정에서 모델 체크포인트가 자동으로 기록되도록 합니다 W&B Artifacts 기본값으로 프로젝트 이름은 다음과 같이 설정됩니다 "Artifacts”. 이 설정은 다음을 업데이트하여 변경할 수 있습니다 PROJECT Config Dict의 키-값 쌍
그러니까 지금부터는 우리가 항상 통제할 수 있습니다. 이 학습 프로세스는 다음과 같습니다:

그림 3: W&B가 실험 재현을 매우 쉽게 만드는 방법
W&B 통합이 적용된 이 최소 학습 예제에서는 다음과 같은 일이 진행됩니다:
- W&B는 모든 소스 파일의 사본을 저장합니다 실행이 기록된 시점의 상태입니다. 재현성을 높이기 위한 코드 스냅샷으로 이해하면 됩니다. GitHub 커밋과 비슷하지만, 개인적으로는 더 편리하다고 봅니다. 6개월 뒤에 모델 구성과 소스 코드에 대해 질문받더라도, Weights & Biases를 참조하기만 하면 됩니다. run_id 모든 것에 접근할 수 있도록.

그림 4: 소스 코드 파일
- 전체 각 에포크가 끝날 때마다 모델 가중치가 Weights & Biases에 저장됩니다개인적으로 W&B의 가장 훌륭한 기능 중 하나라고 봅니다. 실행과 함께 모델 가중치를 저장할 수 있다는 것은 언제든지 소스 코드뿐 아니라 모델 가중치에도 접근할 수 있다는 뜻입니다. 감사 및 컴플라이언스 측면에서도 완벽합니다!

그림 5: W&B 모델 Artifacts
- 위에서 볼 수 있듯이, 모든 Artifact는 각 Run에 연결됩니다이 경우, 해당 실행의 이름은 `charmed-haze-1이제 해당 Run을 클릭하기만 하면 모든 Metrics, 소스 코드 파일, 그리고 Artifacts에 다시 접근할 수 있습니다.

그림 6: W&B 간단한 대시보드
예시에서 볼 수 있듯이, Weights & Biases 은 사용자가 실험을 재현하고, 모델 Config와 Weights를 기록하며, 소스 코드 파일을 저장하고, 단일 Weights & Biases를 사용할 수 있도록 정말 쉽게 만들어 줍니다 run_id 한곳에서 모든 것을 한 번에 확인하는 중앙 허브로 사용할 수 있습니다!
이제는 표 1과 같은 엑셀 시트가 더 이상 필요 없습니다. 모든 정보가 W&B의 메타데이터로 이미 저장되기 때문입니다. Metric 정보, 성능 점수, 모델 Weights, 데이터셋 버전, 학습 진행 일시, 학습을 트리거한 사용자, 그리고 모든 소스 코드 파일까지 모두 포함됩니다.
따라서 감사인이 “6개월 전에 학습된 모델의 학습 프로세스는 어떻게 되었나요?”라고 묻더라도, 우리는 다음 덕분에 변경 로그를 확보하고 있습니다. Weights & Biases 관련 정보가 모두 담겨 있습니다!
그렇다면 모델 아티팩트를 고객과 공유하는 방법은 어떨까요?
위에서 설명한 모든 내용만으로는 Figure 1에서 보았던 문제를 아직 해결하지 못합니다. 그렇다면 이제 W&B에 저장된 모델 Artifact를 고객과 어떻게 공유할 수 있을까요?

그림 7: 사람 개입 없이 고객과 모델 아티팩트를 공유하기
해당 프로세스는 위의 Figure 7에서 설명했습니다. 우리는 모델 아티팩트를 추출하고, 이를 코드로 자동 처리하여 비공개 AWS/GCP 버킷에 저장합니다. 이후 이 버킷에 대한 접근 권한을 고객에게 제공하고, 그곳에서 모델 Weights를 내려받도록 할 수 있습니다.
이 스크립트가 정상 작동하려면 다음을 확인하세요:
- AWS에 활성 계정이 있습니다

그림 8: 코드로 모델 Artifact를 AWS에 업로드하기
W&B에서 모델 Artifact 다운로드하기: 먼저 프로젝트와 Artifact 이름을 다음에 제공합니다 Config이를 바탕으로 Weights & Biases에서 Artifact의 를 포함한 아티팩트 정보를 가져옵니다 다이제스트. 아티팩트의 다이제스트는 해당 내용물의 체크섬입니다. 어떤 아티팩트가 다른 파일과 동일한 다이제스트를 가진다면, 두 파일의 내용이 동일하다는 뜻입니다.
- AWS에서 파일 존재 여부 확인하기: 다음으로, 동일한 이름의 파일이 AWS에 존재하는지 확인합니다. 존재할 경우, S3의 MetaData에 저장된 해당 파일의 Digest 정보를 가져옵니다. 이 Digest 값을 Artifacts의 digest 값과 비교하여 서로 다르면 W&B Artifact를 S3에 업로드하고, 같으면 아무 작업도 수행하지 않습니다.
- 모델 Artifact와 다이제스트를 함께 S3에 업로드하기: 파일이 AWS에 존재하지 않거나 새 버전이 있는 경우에도 파일을 S3에 업로드하고 다이제스트를 메타데이터로 추가합니다.

그림 9: W&B Artifact를 S3에 업로드할 때 메타데이터 추가하기.
코드 기반으로 모든 작업을 자동화함으로써 사람의 개입을 완전히 제거했습니다. 그 결과 이 프로세스는 오류에 강하고, 컴플라이언스와 감사 목적에 매우 적합해졌습니다.
결론
이 보고서에서 저는 통합 이전과 이후가 어떻게 달라졌는지에 대한 제 경험을 공유했습니다 Weights & Biases 이전 회사에서.
보시다시피, …와의 통합을 통해 Weights & Biases 프로세스를 훨씬 매끄럽고 오류에 강하게 만들어 줍니다! 또한 사람의 개입 없이 Weights & Biases에서 모델 Artifact를 바로 클라이언트와 공유하는 방법의 예도 살펴보았습니다!
마지막으로, 이 글에서도 코드를 공유했습니다 레포 여러분의 각 회사에도 동일한 프로세스를 적용해 보실 수 있을 것입니다. 질문이 있으시면 언제든지 다음 주소로 연락해 주세요: aman@wandb.com.
Add a comment