인공지능(AI) 및 머신러닝(ML) 워크로드를 위해 Google Cloud Storage 서비스를 선택할 때는 각 특정 작업에 대해 올바른 스토리지 옵션 조합을 선택하도록 주의해야 합니다. 데이터 세트를 업로드하거나, 모델을 학습 및 조정하거나, 모델을 프로덕션에 배치하거나, 데이터 세트와 모델을 보관 파일에 저장할 때는 신중하게 선택해야 합니다. 즉, AI 및 ML 워크로드의 각 단계에 적절한 지연 시간, 확장성, 비용을 제공하는 최적의 스토리지 서비스를 선택해야 합니다.
이 문서에서는 충분한 정보를 바탕으로 선택할 수 있도록 Google Cloud에서 제공하는 다양한 스토리지 옵션을 주요 AI 및 ML 워크로드에 사용하고 통합하는 방법에 대한 설계 가이드를 제공합니다.
그림 1은 기본 스토리지 옵션의 요약을 보여줍니다. 다이어그램에 표시된 것처럼 일반적으로 파일 크기가 더 크거나, 초당 입출력 작업 수(IOPS)가 낮거나 지연 시간이 길 때 Cloud Storage를 선택합니다. 하지만 IOPS가 높거나, 파일 크기가 작거나, 지연 시간이 짧은 경우 Filestore를 대신 선택하세요.
그림 1: 기본 AI 및 ML 스토리지 고려사항
AI 및 ML 워크로드 단계 개요
AI 및 ML 워크로드는 준비, 학습, 서빙, 보관이라는 네 가지 기본 단계로 구성됩니다. AI 및 ML 워크로드의 수명 주기에서 사용할 스토리지 옵션을 선택해야 하는 네 가지 경우입니다. 대부분의 경우 준비 단계에서 선택한 것과 동일한 스토리지를 나머지 단계에서도 계속 사용하는 것이 좋습니다. 이 권장사항을 따르면 스토리지 서비스 간에 데이터 세트를 복사하는 작업을 줄일 수 있습니다. 그러나 이 일반적인 규칙에는 몇 가지 예외가 있으며 이는 이 가이드의 뒷부분에 설명되어 있습니다.
일부 스토리지 솔루션은 각 단계에서 다른 솔루션보다 더 효과적이며 최상의 결과를 얻으려면 추가 스토리지 옵션을 함께 사용해야 할 수도 있습니다. 스토리지 선택의 효과는 데이터 세트 속성, 필요한 컴퓨팅 및 스토리지 리소스의 규모, 지연 시간, 기타 요인에 따라 다릅니다. 다음 표에는 단계와 각 단계에 권장되는 스토리지 옵션에 관한 간단한 요약이 나와 있습니다. 이 표의 시각적 표현과 추가 세부정보는 결정 트리를 참조하세요.
표 1: AI 및 ML 워크로드의 스테이지 및 단계에 대한 스토리지 추천
단계 | 단계 | 스토리지 권장사항 |
---|---|---|
준비 |
데이터 준비
|
Cloud Storage
Filestore Zonal
|
학습 |
|
Cloud Storage
로컬 SSD 또는 Filestore가 포함된 Cloud Storage
Filestore
|
|
Cloud Storage
Filestore Zonal
|
|
서빙 |
|
Cloud Storage
Filestore
|
보관 파일 |
|
Cloud Storage
|
이 표의 기본 가정에 관한 자세한 내용은 다음 섹션을 참조하세요.
기준
AI 및 ML 워크로드에 사용할 스토리지 옵션을 좁히려면 먼저 다음 질문에 답변하세요.
- AI 및 ML I/O 요청 크기와 파일 크기가 작은, 중간, 큰 크기 중 어디에 속하나요?
- AI 및 ML 워크로드가 I/O 지연 시간 및 첫 바이트까지의 시간(TTFB)에 민감하나요?
- 단일 클라이언트, 집계된 클라이언트 또는 둘 다에 높은 읽기 및 쓰기 처리량이 필요한가요?
- 가장 큰 규모의 AI 및 ML 학습 워크로드에 필요한 최대 Cloud GPU 또는 Cloud TPU 수는 얼마인가요?
이전 질문에 답변하는 것 외에도 AI 및 ML 워크로드를 최적화하는 데 도움이 되는 컴퓨팅 옵션과 가속기를 선택할 수 있습니다.
컴퓨팅 플랫폼 고려사항
Google Cloud는 AI 및 ML 워크로드를 실행하는 세 가지 기본 방법을 지원합니다.
- Compute Engine: 가상 머신(VM)은 모든 Google 관리형 스토리지 서비스 및 파트너 서비스를 지원합니다. Compute Engine은 Local SSD, Persistent Disk, Cloud Storage, Cloud Storage FUSE, NetApp Volumes, Filestore를 지원합니다. Compute Engine의 대규모 학습 작업을 위해 Google은 SchedMD와 협력하여 Slurm 스케줄러 개선사항을 제공했습니다.
Google Kubernetes Engine(GKE): GKE는 널리 사용되는 프레임워크, 워크로드, 데이터 처리 도구와 통합되는 AI용 플랫폼입니다. GKE는 로컬 SSD, 영구 볼륨, Cloud Storage FUSE, Filestore에 대한 지원을 제공합니다.
Vertex AI: Vertex AI는 AI 및 ML 워크로드에 엔드 투 엔드 솔루션을 제공하는 완전 관리형 AI 플랫폼입니다. Vertex AI는 Cloud Storage와 네트워크 파일 시스템(NFS) 파일 기반 스토리지를 모두 지원합니다(예: Filestore, NetApp Volumes).
Compute Engine과 GKE 모두 Cluster Toolkit을 사용하여 Google Cloud 권장사항을 준수하는 반복 가능한 턴키 클러스터를 배포하는 것이 좋습니다.
가속기 고려사항
AI 및 ML 워크로드의 스토리지 옵션을 선택할 때는 태스크에 적합한 가속기 처리 옵션도 선택해야 합니다. Google Cloud는 NVIDIA Cloud GPU와 커스텀식으로 개발한 Google Cloud TPU라는 두 가지 가속기 옵션을 지원합니다. 두 가지 가속기 유형 모두 머신러닝 워크로드를 표준 프로세서보다 효율적으로 처리하는 데 사용되는 특정 목적을 위해 설계된 직접 회로(ASIC)입니다.
Cloud GPU와 Cloud TPU 가속기에는 몇 가지 중요한 스토리지 차이가 있습니다. Cloud GPU를 사용하는 인스턴스는 최대 200GBps의 원격 스토리지 처리량을 제공하는 로컬 SSD를 지원합니다. Cloud TPU 노드와 VM은 로컬 SSD를 지원하지 않으며 원격 스토리지 액세스만 사용합니다.
가속기 최적화 머신 유형에 대한 자세한 내용은 가속기 최적화 머신 계열을 참조하세요. Cloud GPU에 대한 자세한 내용은 Cloud GPU 플랫폼을 참조하세요. Cloud TPU에 대한 자세한 내용은 Cloud TPU 소개를 참조하세요. Cloud TPU와 Cloud GPU 중에서 선택하는 방법에 관한 자세한 내용은 Cloud TPU를 사용해야 하는 경우를 참조하세요.
스토리지 옵션
앞서 표 1에서 요약한 대로 AI 및 ML 워크로드에 객체 스토리지 또는 파일 스토리지를 사용한 후 이 스토리지 옵션을 블록 스토리지로 보완합니다. 그림 2에는 AI 및 ML 워크로드에 초기 스토리지 옵션을 선택할 때 고려할 수 있는 세 가지 일반적인 옵션인 Cloud Storage, Filestore, Google Cloud NetApp Volumes가 표시됩니다.
그림 2: Google Cloud에서 제공하는 AI 및 ML에 적합한 스토리지 서비스
객체 스토리지가 필요한 경우 Cloud Storage를 선택합니다. Cloud Storage는 다음을 제공합니다.
- 비정형 데이터 및 객체의 스토리지 위치입니다.
- Cloud Storage JSON API와 같은 API를 사용하여 스토리지 버킷에 액세스합니다.
- 데이터를 저장하는 영구 스토리지입니다.
- 초당 테라바이트의 처리량이지만 스토리지 지연 시간이 더 깁니다.
파일 스토리지가 필요한 경우 Filestore와 NetApp Volumes의 두 가지 옵션을 선택할 수 있으며 다음과 같은 제공합니다.
- Filestore
- NFS 기반 엔터프라이즈 고성능 파일 스토리지입니다.
- 데이터를 저장하는 영구 스토리지입니다.
- 스토리지 지연 시간이 짧고 처리량이 26GBps입니다.
- NetApp Volumes
- NFS 및 서버 메시지 블록(SMB)과 호환되는 파일 스토리지
- NetApp ONTAP 스토리지 소프트웨어 도구를 사용하는 옵션으로 관리할 수 있습니다.
- 데이터를 저장하는 영구 스토리지입니다.
- 처리량은 4.5GBps입니다.
AI 및 ML 워크로드의 첫 번째 옵션으로 다음 스토리지 옵션을 사용하세요.
다음 스토리지 옵션을 사용하여 AI 및 ML 워크로드를 보완하세요.
이러한 스토리지 옵션 간에 데이터를 전송해야 하는 경우 데이터 전송 도구를 사용하면 됩니다.
Cloud Storage
Cloud Storage는 구조화되지 않은 데이터의 데이터 준비, AI 모델 학습, 데이터 서빙, 백업, 보관처리에 중점을 둔 완전 관리형 객체 스토리지 서비스입니다. Cloud Storage의 이점은 다음과 같습니다.
- 전 세계적으로 엑사바이트까지 확장 가능한 무제한 스토리지 용량
- 매우 높은 처리량 성능
- AI 및 ML 워크로드를 위한 지역 및 이중 리전 스토리지 옵션
Cloud Storage는 처리량을 초당 테라바이트 이상으로 확장하지만 Filestore 또는 로컬 파일 시스템보다 지연 시간(수십 밀리초)이 상대적으로 깁니다. 개별 스레드 처리량은 초당 약 100~200MB로 제한됩니다. 즉, 수백~수천 개의 개별 스레드를 사용해야만 높은 처리량을 얻을 수 있습니다. 또한 높은 처리량을 얻으려면 큰 파일과 큰 I/O 요청을 사용해야 합니다.
Cloud Storage는 다양한 프로그래밍 언어의 클라이언트 라이브러리를 지원하지만 Cloud Storage FUSE도 지원합니다. Cloud Storage FUSE를 사용하면 Cloud Storage 버킷을 로컬 파일 시스템에 마운트할 수 있습니다. Cloud Storage FUSE를 사용하면 애플리케이션이 표준 파일 시스템 API를 사용하여 버킷에서 읽거나 버킷에 쓸 수 있습니다. Cloud Storage의 규모, 실행 가능성, 성능에 따라 학습 데이터, 모델, 체크포인트를 저장하고 액세스할 수 있습니다.
Cloud Storage에 관해 자세히 알아보려면 다음 리소스를 참조하세요.
Filestore
Filestore는 완전 관리형 NFS 파일 기반 스토리지 서비스입니다. AI 및 ML 워크로드에 사용되는 Filestore 서비스 등급은 다음과 같습니다.
- 엔터프라이즈 등급: 리전 가용성이 필요한 미션 크리티컬 워크로드에 사용됩니다.
- 영역 등급: 높은 IOPS 및 처리량 성능 요구사항과 함께 영역 가용성이 필요한 고성능 애플리케이션에 사용됩니다.
- 기본 등급: 파일 공유, 소프트웨어 개발, 웹 호스팅, 기본 AI 및 ML 워크로드에 사용됩니다.
Filestore는 지연 시간이 짧은 I/O 성능을 제공합니다. I/O 액세스 요구사항이 적거나 작은 파일이 있는 데이터 세트에 적합합니다. 그러나 Filestore는 필요에 따라 대규모 I/O 또는 대용량 파일 사용 사례도 처리할 수 있습니다. Filestore는 최대 약 100TB까지 수직 확장할 수 있습니다. 데이터를 반복적으로 읽는 AI 학습 워크로드의 경우 로컬 SSD와 함께 FS-Cache를 사용하여 읽기 처리량을 향상시킬 수 있습니다.
Filestore에 대한 자세한 내용은 Filestore 개요를 참조하세요. Filestore 서비스 등급에 대한 자세한 내용은 서비스 등급을 참조하세요. Filestore 성능에 관한 자세한 내용은 인스턴스 성능 최적화 및 테스트를 참조하세요.
Google Cloud NetApp Volumes
NetApp Volumes는 NFS, SMB, 멀티 프로토콜 환경을 지원하는 고급 데이터 관리 기능이 포함된 완전 관리형 서비스입니다. NetApp Volumes는 짧은 지연 시간, 테비바이트급 볼륨, 초당 기가바이트 처리량을 지원합니다.
NetApp Volumes에 대한 자세한 내용은 Google Cloud NetApp Volumes란?을 참조하세요. NetApp Volumes 성능에 관한 자세한 내용은 예상 성능을 참조하세요.
블록 스토리지
기본 스토리지를 선택한 후 블록 스토리지를 사용하여 성능을 보완하고, 스토리지 옵션 간에 데이터를 전송하고, 지연 시간이 짧은 작업의 이점을 활용할 수 있습니다. 블록 스토리지는 로컬 SSD와 Persistent Disk라는 두 가지 스토리지 옵션을 제공합니다.
로컬 SSD
로컬 SSD는 VM 또는 컨테이너에 로컬 스토리지를 직접 제공합니다. Cloud GPU가 포함된 대부분의 Google Cloud 머신 유형에는 일정량의 로컬 SSD가 포함되어 있습니다. 로컬 SSD 디스크는 Cloud GPU에 물리적으로 연결되므로 잠재적으로 수백만에 달하는 IOPS로 지연 시간이 짧은 액세스를 제공합니다. 반면 Cloud TPU 기반 인스턴스에는 로컬 SSD가 포함되지 않습니다.
로컬 SSD는 고성능을 제공하지만 각 스토리지 인스턴스는 임시입니다. 따라서 인스턴스를 중지하거나 삭제하면 로컬 SSD 드라이브에 저장된 데이터가 손실됩니다. 로컬 SSD는 임시적 특성이 있으므로 데이터에 내구성이 더 필요한 경우 다른 유형의 스토리지를 고려하세요.
그러나 학습 데이터의 양이 매우 적은 경우 Cloud Storage에서 GPU의 로컬 SSD로 학습 데이터를 복사하는 것이 일반적입니다. 로컬 SSD가 더 낮은 I/O 지연 시간을 제공하고 학습 시간을 단축하기 때문입니다.
로컬 SSD에 대한 자세한 내용은 로컬 SSD 정보를 참조하세요. Cloud GPU 인스턴스 유형에서 사용할 수 있는 로컬 SSD 용량에 대한 자세한 내용은 GPU 플랫폼을 참조하세요.
Persistent Disk
Persistent Disk는 포괄적인 데이터 지속성 및 관리 기능이 포함된 네트워크 블록 스토리지 서비스입니다. 부팅 디스크로 사용하는 것 외에도 스크래치 스토리지와 같은 AI 워크로드에 Persistent Disk를 사용할 수 있습니다. 영구 디스크는 다음 옵션으로 제공됩니다.
- 표준: 효율적이고 안정적인 블록 스토리지를 제공합니다.
- 균형: 비용 효율적이고 안정적인 블록 스토리지를 제공합니다.
- SSD: 빠르고 안정적인 블록 스토리지를 제공합니다.
- 익스트림: IOPS를 맞춤설정할 수 있는 최고 성능의 블록 스토리지 옵션을 제공합니다.
Persistent Disk에 관한 자세한 내용은 Persistent Disk를 참조하세요.
데이터 전송 도구
AI 및 ML 태스크를 실행할 때는 한 위치에서 다른 위치로 데이터를 복사해야 하는 경우가 있습니다. 예를 들어 데이터가 Cloud Storage에서 시작되는 경우 다른 곳으로 이동하여 모델을 학습시킨 후 체크포인트 스냅샷이나 학습된 모델을 Cloud Storage로 다시 복사할 수 있습니다. Filestore에서 대부분의 태스크를 실행한 후 보관처리 목적으로 데이터와 모델을 Cloud Storage로 이동할 수도 있습니다. 이 섹션에서는 Google Cloud의 스토리지 서비스 간에 데이터를 이동하는 옵션을 설명합니다.
Storage Transfer Service
Storage Transfer Service를 사용하면 Cloud Storage, Filestore, NetApp Volumes 간에 데이터를 전송할 수 있습니다. 이 완전 관리형 서비스를 사용하면 온프레미스 파일 스토리지와 객체 스토리지 저장소, Google Cloud 스토리지 간에 데이터를 복사하고 다른 클라우드 제공업체에서 데이터를 가져올 수도 있습니다. Storage Transfer Service를 사용하면 소스 위치에서 대상 위치로 데이터를 안전하게 복사하고 변경된 데이터를 주기적으로 전송할 수 있습니다. 또한 데이터 무결성 검증, 자동 재시도, 부하 분산도 제공합니다.
Storage Transfer Service에 대한 자세한 내용은 Storage Transfer Service란 무엇인가요?를 참조하세요.
명령줄 인터페이스
Filestore와 Cloud Storage 간에 데이터를 이동할 때는 Google Cloud CLI를 사용해야 합니다. gcloud CLI를 사용하면 최적의 처리량과 전체 명령어 모음을 사용하여 Cloud Storage 버킷과 객체를 만들고 관리할 수 있습니다.
스토리지 옵션을 AI 및 ML 단계에 매핑
이 섹션에서는 표 1에 제공된 요약을 확장하여 AI 및 ML 워크로드의 각 단계에 관한 구체적인 권장사항과 안내를 살펴봅니다. 이 섹션의 목표는 이러한 선택의 근거를 이해하고 각 AI 및 ML 단계에 가장 적합한 스토리지 옵션을 선택하는 데 도움을 드리는 것입니다. 이 분석의 결과는 AI 및 ML을 위한 스토리지 권장사항 섹션에서 살펴보는 세 가지 기본 권장사항입니다.
다음 그림은 AI 및 ML 워크로드의 네 가지 주요 단계에 권장되는 스토리지 옵션을 보여주는 결정 트리를 보여줍니다. 다이어그램 다음에는 각 단계와 각 단계에서 선택할 수 있는 옵션에 관한 자세한 설명이 나옵니다.
그림 3: 각 AI 및 ML 단계의 스토리지 옵션
준비
이 초기 단계에서 Cloud Storage 또는 Filestore를 데이터의 영구적인 정보 소스로 사용할지 선택해야 합니다. 데이터 집약적인 학습을 위한 잠재적 최적화를 선택할 수도 있습니다. 조직의 여러 팀에 서로 다른 워크로드와 데이터 세트 유형이 있을 수 있으며, 이로 인해 각 팀에서 서로 다른 스토리지 결정을 내릴 수 있습니다. 이러한 다양한 니즈를 충족하기 위해 Cloud Storage와 Filestore 간에 스토리지 선택을 적절히 조합하여 사용할 수 있습니다.
준비 단계의 Cloud Storage
- 워크로드에 50MB 이상의 대용량 파일이 포함되어 있습니다.
- 워크로드에 더 낮은 IOPS가 필요합니다.
워크로드는 수십 밀리초의 더 긴 스토리지 지연 시간을 허용할 수 있습니다.
Cloud Storage API 또는 Cloud Storage FUSE 및 파일 API의 하위 집합을 통해 데이터 세트에 액세스해야 합니다.
Cloud Storage에서 워크로드를 최적화하려면 Regional Storage지를 선택하고 컴퓨팅 리소스와 동일한 리전에 버킷을 배치하면 됩니다. 하지만 안정성이 더 높거나 서로 다른 두 리전에 있는 가속기를 사용하는 경우 이중 리전 스토리지를 선택하는 것이 좋습니다.
준비 단계의 Filestore
다음 조건 중 하나라도 해당하는 경우 Filestore를 선택하여 데이터를 준비해야 합니다.
- 워크로드에 50MB 미만의 작은 파일이 포함되어 있습니다.
- 워크로드에 더 높은 IOPS가 필요합니다.
- 워크로드에서 무작위 I/O 및 메타데이터 액세스에 대한 스토리지 요구사항을 충족하려면 1밀리초 미만의 짧은 지연 시간이 필요합니다.
- 사용자가 데이터를 보고 관리하려면 완전한 POSIX 지원을 제공하는 데스크톱과 유사한 환경이 필요합니다.
- 사용자는 소프트웨어 개발과 같은 다른 태스크를 실행해야 합니다.
준비 단계의 기타 고려사항
이 단계에서 옵션을 선택하기가 어렵다면 다음 사항을 고려하여 결정을 내리세요.
- 데이터 세트에서 Dataflow, Spark, BigQuery와 같은 다른 AI 및 ML 프레임워크를 사용하려는 경우 이러한 유형의 프레임워크에 포함된 커스텀 통합 때문에 Cloud Storage가 논리적인 선택입니다.
- Filestore의 최대 용량은 약 100TB입니다. 이보다 큰 데이터 세트로 모델을 학습시켜야 하거나 세트를 여러 개의 100TB 인스턴스로 나눌 수 없는 경우 Cloud Storage를 사용하는 것이 더 좋습니다.
데이터 준비 단계에서 많은 사용자는 액세스 효율성을 개선하고 무작위 읽기 요청을 방지하기 위해 데이터를 대규모 청크로 재구성합니다. 스토리지 시스템에서 I/O 성능 요구사항을 더 줄이기 위해 많은 사용자가 파이프라이닝, 학습 최적화를 사용하여 I/O 스레드 수를 늘리거나, 둘 다 사용합니다.
기차
학습 단계에서는 일반적으로 준비 단계에서 선택한 기본 스토리지 옵션을 재사용합니다. 기본 스토리지 옵션만으로 학습 워크로드를 처리할 수 없는 경우 기본 스토리지를 보완해야 할 수 있습니다. 필요에 따라 로컬 SSD와 같은 보조 스토리지를 추가하여 워크로드의 균형을 맞출 수 있습니다.
이 단계에서 Cloud Storage 또는 Filestore를 사용하는 방법에 관한 권장사항을 제공하는 것 외에도 이 섹션에서는 이러한 권장사항에 관한 자세한 내용을 제공합니다. 세부정보는 다음과 같습니다.
- 파일 크기 및 요청 크기 가이드
- 기본 스토리지 선택을 보완해야 하는 경우에 대한 제안
- 이 단계에서 두 가지 주요 워크로드(데이터 로딩, 체크포인트 작업 및 다시 시작)의 구현 세부정보에 대한 설명
학습 단계의 Cloud Storage
데이터를 학습할 때 Cloud Storage를 선택하는 주된 이유는 다음과 같습니다.
- 데이터를 준비할 때 Cloud Storage를 사용하는 경우 Cloud Storage에서 데이터를 학습하는 것이 가장 좋습니다.
- Cloud Storage는 처리량, 단일 VM 처리량이 높지 않은 워크로드 또는 필요에 따라 많은 스레드를 사용하여 처리량을 늘리는 워크로드에 적합합니다.
학습 단계를 위한 로컬 SSD 또는 Filestore가 포함된 Cloud Storage
데이터를 학습할 때 로컬 SSD 또는 Filestore와 함께 Cloud Storage를 선택하는 주된 이유는 작은 I/O 요청이나 작은 파일을 지원해야 할 때입니다. 이 경우 일부 데이터를 로컬 SSD 또는 Filestore Zonal로 이동하여 Cloud Storage 학습 태스크를 보완할 수 있습니다.
학습 단계의 Filestore
데이터를 학습할 때 Filestore를 선택하는 주된 이유는 다음과 같습니다.
- 데이터를 준비할 때 Filestore를 사용하면 대부분의 경우 Filestore에서 데이터를 계속 학습시켜야 합니다.
- Filestore는 낮은 지연 시간, 높은 클라이언트당 처리량을 제공하고 적은 수의 스레드를 사용하지만 여전히 고성능을 요구하는 애플리케이션에 적합합니다.
- Filestore에서 학습 태스크를 보완해야 하는 경우 필요에 따라 로컬 SSD 캐시를 만드는 것이 좋습니다.
파일 크기 및 요청 크기
데이터 세트를 학습할 준비가 되면 다양한 스토리지 옵션을 평가하는 데 도움이 되는 두 가지 기본 옵션이 있습니다.
대용량 파일을 포함하고 대용량 요청 크기로 액세스되는 데이터 세트
이 옵션에서는 학습 작업이 주로 50MB 이상의 대용량 파일로 구성됩니다. 학습 작업은 요청당 1MB~16MB의 파일을 수집합니다. 일반적으로 이 옵션에는 Cloud Storage FUSE와 함께 Cloud Storage를 사용하는 것이 좋습니다. 파일이 충분히 커서 Cloud Storage에서 가속기를 계속 제공할 수 있기 때문입니다. 이 옵션으로 최대 성능을 얻기 위해서는 수백 개에서 수천 개의 스레드가 필요할 수 있습니다.
하지만 다른 애플리케이션에 전체 POSIX API가 필요하거나 워크로드가 필요한 많은 수의 스레드에 적합하지 않은 경우 Filestore가 좋은 대안입니다.
중소 크기의 파일을 포함하거나 작은 요청 크기로 액세스되는 데이터 세트
이 옵션을 사용하면 다음 두 가지 방법 중 하나로 학습 작업을 분류할 수 있습니다.
- 크기가 50MB 미만인 소형~중형 파일 다수
- 파일 크기는 크지만 비교적 작은 읽기 요청 크기(예: 1MB 미만)로 데이터를 순차적으로 또는 무작위로 읽는 데이터 세트 이 사용 사례의 예시는 시스템이 멀티 기가바이트 또는 멀티 테라바이트 파일에서 한 번에 100KB 미만을 읽는 경우입니다.
POSIX 기능 때문에 이미 Filestore를 사용하고 있는 경우 학습을 위해 Filestore에 데이터를 보관하는 것이 좋습니다. Filestore는 데이터에 대한 I/O 지연 시간이 짧은 액세스를 제공합니다. 지연 시간이 줄면 전체 학습 시간이 단축되고 모델 학습 비용이 절감될 수 있습니다.
Cloud Storage를 사용하여 데이터를 저장하는 경우 학습 전에 데이터를 로컬 SSD 또는 Filestore에 복사하는 것이 좋습니다.
데이터 로드 중
데이터를 로드하는 동안 Cloud GPU 또는 Cloud TPU는 데이터 배치를 반복적으로 가져와 모델을 학습시킵니다. 이 단계는 배치의 크기와 요청 순서에 따라 캐시 친화적일 수 있습니다. 이 시점에서의 목표는 최대 효율성과 최소 비용으로 모델을 학습하는 것입니다.
학습 데이터의 크기가 페타바이트로 확장되는 경우 데이터를 여러 번 다시 읽어야 할 수 있습니다. 이러한 규모의 처리에는 GPU 또는 TPU 가속기의 집중적인 처리가 필요합니다. 그러나 Cloud GPU와 Cloud TPU가 유휴 상태가 아니라 데이터를 적극적으로 처리하고 있는지 확인해야 합니다. 그러지 않으면 한 위치에서 다른 위치로 데이터를 복사하는 동안 비용이 많이 들고 유휴 상태인 가속기를 사용하게 됩니다.
데이터 로드의 경우 다음을 고려하세요.
- 동시 로드: 학습을 동시에 실행하는 방법에는 여러 가지가 있으며 각 방법은 필요한 전체 스토리지 성능과 각 인스턴스에서 데이터를 로컬로 캐싱해야 하는 필요성에 영향을 미칠 수 있습니다.
- 단일 학습 작업의 최대 Cloud GPU 또는 Cloud TPU 수: 가속기 및 VM 수가 늘어남에 따라 스토리지 시스템에 미치는 영향이 상당할 수 있으며 Cloud GPU 또는 Cloud TPU가 유휴 상태인 경우 비용이 증가할 수 있습니다. 하지만 가속기 수를 늘리면서 비용을 최소화할 수 있는 방법이 있습니다. 사용하는 동시 로드 유형에 따라 유휴 가속기를 방지하는 데 필요한 총 읽기 처리량 요구사항을 늘려 비용을 최소화할 수 있습니다.
Cloud Storage 또는 Filestore에서 이러한 개선사항을 지원하려면 오버로드된 스토리지 시스템에서 I/O를 오프로드할 수 있도록 각 인스턴스에 로컬 SSD를 추가해야 합니다.
하지만 Cloud Storage에서 각 인스턴스의 로컬 SSD로 데이터를 미리 로드하는 데는 문제가 수반됩니다. 데이터가 전송되는 동안 유휴 가속기에 비용이 증가할 수 있습니다. 데이터 전송 시간과 가속기 유휴 비용이 높은 경우 로컬 SSD가 있는 Filestore를 대신 사용하면 비용을 절감할 수 있습니다.
- 인스턴스당 Cloud GPU 수: 각 인스턴스에 더 많은 Cloud GPU를 배포하면 NVLink를 사용하여 Cloud GPU 간 처리량을 늘릴 수 있습니다. 그러나 사용 가능한 로컬 SSD 및 스토리지 네트워킹 처리량이 항상 선형적으로 증가하는 것은 아닙니다.
- 스토리지 및 애플리케이션 최적화: 스토리지 옵션과 애플리케이션에는 최적의 실행을 위한 특정 성능 요구사항이 있습니다. 클라우드 GPU 또는 클라우드 TPU를 바쁘게 유지하고 효율적으로 운영하는 것과 같은 데이터 로딩 최적화와 이러한 스토리지 및 애플리케이션 시스템 요구사항을 균형 있게 조정하는 것이 중요합니다.
체크포인트 작업 및 다시 시작
체크포인트 작업 및 다시 시작의 경우 학습 작업은 인스턴스 장애를 빠르게 복구할 수 있도록 주기적으로 상태를 저장해야 합니다. 오류가 발생하면 작업을 다시 시작하고 최신 체크포인트를 수집한 후 학습을 재개해야 합니다. 체크포인트 작업을 만들고 수집하는 데 사용되는 정확한 메커니즘은 일반적으로 TensorFlow 또는 PyTorch와 같은 프레임워크에 따라 다릅니다. 일부 사용자는 체크포인트 작업의 효율성을 높이기 위해 복잡한 프레임워크를 빌드했습니다. 이러한 복잡한 프레임워크로 인해 체크포인트를 더 자주 수행할 수 있습니다.
그러나 대부분의 사용자는 일반적으로 Cloud Storage 또는 Filestore와 같은 공유 스토리지를 사용합니다. 체크포인트를 저장할 때는 한 번에 3~5개의 체크포인트만 저장하면 됩니다. 체크포인트 워크로드는 대부분 쓰기 작업, 여러 삭제 작업으로 구성되며, 실패가 발생했을 때 빈도가 낮은 읽기 작업이 이루어지는 것이 이상적입니다. 복구 중 I/O 패턴에는 집중적이고 빈번한 쓰기, 빈번한 삭제, 잦은 체크포인트 읽기 작업이 포함됩니다.
각 GPU 또는 TPU에서 만들어야 하는 체크포인트의 크기도 고려해야 합니다. 체크포인트 크기는 비용 효율적이고 시의적절하게 학습 작업을 완료하는 데 필요한 쓰기 처리량을 결정합니다.
비용을 최소화하려면 다음 항목을 늘려 보세요.
- 체크포인트 빈도
- 체크포인트에 필요한 집계 쓰기 처리량
- 다시 시작 효율성
서빙
AI 추론이라고도 하는 모델을 서빙할 때 기본 I/O 패턴은 모델을 Cloud GPU 또는 Cloud TPU 메모리에 로드할 수 있도록 읽기 전용입니다. 이 단계의 목표는 프로덕션에서 모델을 실행하는 것입니다. 모델은 학습 데이터보다 훨씬 작으므로 여러 인스턴스에서 모델을 복제하고 확장할 수 있습니다. 이 단계에서는 고가용성과 영역 및 리전 장애에 대한 보호가 중요하므로 다양한 장애 시나리오에 모델을 사용할 수 있는지 확인해야 합니다.
많은 생성형 AI 사용 사례에서 모델에 대한 입력 데이터는 매우 작을 수 있으며 영구적으로 저장할 필요가 없을 수도 있습니다. 경우에 따라 모델에 대량의 데이터를 실행해야 할 수 있습니다(예: 과학적 데이터 세트). 이 경우 데이터 세트 분석 중에 제공된 Cloud GPU 또는 Cloud TPU를 유지할 수 있는 옵션을 선택하고 추론 결과를 저장할 영구 위치를 선택해야 합니다.
모델을 서빙할 때 두 가지 기본 옵션이 있습니다.
서빙 단계의 Cloud Storage
데이터를 서빙할 때 Cloud Storage를 선택하는 주된 이유는 다음과 같습니다.
- Cloud Storage에서 모델을 학습시킬 때, 모델을 서빙 시 Cloud Storage에 그대로 두어 마이그레이션 비용을 절약할 수 있습니다.
- 생성된 콘텐츠를 Cloud Storage에 저장할 수 있습니다.
- Cloud Storage는 여러 리전에서 AI 추론이 발생하는 경우에 적합합니다.
- 이중 리전 및 멀티 리전 버킷을 사용하여 리전 장애 시 모델 가용성을 제공할 수 있습니다.
서빙 단계의 Filestore
데이터를 서빙할 때 Filestore를 선택하는 주된 이유는 다음과 같습니다.
- Filestore에서 모델을 학습시킬 때 모델을 서빙 시 Filestore에 그대로 두어 마이그레이션 비용을 절약할 수 있습니다.
- 서비스수준계약(SLA)이 99.99%의 가용성을 제공하기 때문에 Filestore Enterprise 서비스 등급은 리전의 여러 영역 간에 모델을 서빙하려는 경우 고가용성을 위한 좋은 선택입니다.
- Filestore Zonal 서비스 등급은 AI 및 ML 워크로드에 고가용성이 요구되지 않는 경우에만 합리적인 저가 옵션이 될 수 있습니다.
- 교차 리전 복구가 필요한 경우 모델을 원격 백업 위치 또는 원격 Cloud Storage 버킷에 저장한 후 필요에 따라 모델을 복원할 수 있습니다.
- Filestore는 작은 파일을 생성하거나 파일 API가 필요할 때 모델에 지연 시간이 짧은 액세스 권한을 제공하는 내구성과 가용성이 높은 옵션을 제공합니다.
보관처리
보관처리 단계의 I/O 패턴은 '한 번 쓰기, 드물게 읽기'입니다. 생성한 다양한 학습 데이터 세트와 다양한 버전의 모델을 저장하는 것이 목표입니다. 이러한 증분 버전의 데이터와 모델을 백업 및 재해 복구 목적으로 사용할 수 있습니다. 또한 이러한 항목은 장기간 동안 견고한 장소에 보관해야 합니다. 데이터와 모델에 대한 액세스 권한이 자주 필요하지는 않지만 필요할 때 이러한 항목을 사용할 수 있도록 하는 것이 좋습니다.
매우 뛰어난 내구성, 광범위한 확장성, 저렴한 비용 때문에 객체 데이터를 장기간 저장하기에 가장 좋은 옵션은 Cloud Storage입니다. 데이터 세트, 모델, 백업 파일에 액세스하는 빈도에 따라 Cloud Storage는 다음과 같은 접근 방식으로 다양한 스토리지 클래스를 통해 비용 최적화를 제공합니다.
- 자주 액세스하는 데이터를 Standard Storage에 저장합니다.
- 월별로 액세스하는 데이터는 Nearline Storage에 저장합니다.
- 3개월마다 액세스하는 데이터는 Coldline Storage에 저장합니다.
- 연 1회 액세스하는 데이터는 Archive Storage에 저장합니다.
객체 수명 주기 관리를 사용하면 데이터를 콜드 스토리지 클래스로 이동하거나 특정 기준에 따라 데이터를 삭제하는 정책을 만들 수 있습니다. 데이터에 얼마나 자주 액세스할지 확실하지 않으면 자동 클래스 기능을 사용하여 액세스 패턴에 따라 스토리지 클래스 간에 자동으로 데이터를 이동할 수 있습니다.
데이터가 Filestore에 있는 경우 보관처리 목적으로 데이터를 Cloud Storage로 이동하는 것이 좋습니다. 하지만 다른 리전에 Filestore 백업을 만들어 Filestore 데이터를 추가로 보호할 수 있습니다. 로컬 파일 및 파일 시스템 복구를 위해 Filestore 스냅샷을 만들 수도 있습니다. Filestore 백업에 대한 자세한 내용은 백업 개요를 참조하세요. Filestore 스냅샷에 대한 자세한 내용은 스냅샷 개요를 참조하세요.
AI 및 ML을 위한 스토리지 권장사항
이 섹션에서는 이전 섹션인 스토리지 옵션을 AI 및 ML 단계에 매핑에서 제공된 분석을 요약합니다. 이 문서에서는 대부분의 AI 및 ML 워크로드에 권장되는 세 가지 기본 스토리지 옵션 조합에 관한 세부정보를 제공합니다. 세 가지 옵션은 다음과 같습니다.
Cloud Storage 선택
Cloud Storage는 다른 모든 스토리지 제품과 비교할 때 용량당 가격이 가장 낮은 스토리지를 제공합니다. 대규모 클라이언트로 확장되며 리전 및 이중 리전 액세스 접근성과 가용성을 제공하며 Cloud Storage FUSE를 통해 액세스할 수 있습니다. 학습용 컴퓨팅 플랫폼이 같은 리전에 있으면 Regional Storage를 선택해야 하고, 안정성이 더 높거나 서로 다른 두 리전에 있는 Cloud GPU 또는 Cloud TPU를 사용하려면 이중 Regional Storage를 선택해야 합니다.
Cloud Storage는 장기 데이터 보관 및 스토리지 성능 요구사항이 낮은 워크로드에 가장 적합합니다. 하지만 Filestore 및 로컬 SSD와 같은 다른 옵션은 전체 POSIX 지원이 필요하거나 Cloud Storage가 성능 병목 현상이 되는 특정 경우에 유용한 대안입니다.
로컬 SSD 또는 Filestore가 포함된 Cloud Storage 선택
데이터 집약적인 학습 또는 체크포인트 작업 및 다시시작 워크로드의 경우 I/O 집약적 학습 단계에서 더 빠른 스토리지 서비스를 사용하는 것이 합리적일 수 있습니다. 일반적인 선택에는 데이터를 로컬 SSD 또는 Filestore로 복사하는 것이 포함됩니다. 이 작업은 Cloud GPU 또는 Cloud TPU에 데이터를 계속 제공하여 전체 작업 런타임을 줄이고 체크포인트 작업이 완료되는 동안 인스턴스가 중단되지 않도록 합니다. 또한 체크포인트를 더 자주 만들면 백업으로 사용할 수 있는 체크포인트가 더 많아집니다. 이렇게 백업 수가 증가하면 유용한 데이터가 도착하는 전체 속도가 상승합니다(goodput이라고도 함). 프로세서를 최적화하고 goodput을 늘리는 이 조합을 사용하면 모델 학습의 전체 비용이 절감됩니다.
로컬 SSD 또는 Filestore를 활용할 때는 고려해야 할 장단점이 있습니다. 다음 섹션에서는 각 방법의 장점과 단점을 설명합니다.
로컬 SSD의 장점
- 데이터 전송 후 높은 처리량 및 IOPS
- 낮은 수준에서 최소한의 추가 비용
로컬 SSD의 단점
- 데이터가 로드되는 동안 Cloud GPU 또는 Cloud TPU는 유휴 상태로 유지됩니다.
- 모든 인스턴스의 모든 작업에서 데이터 전송이 이루어져야 합니다.
- 일부 Cloud GPU 인스턴스 유형에서만 사용할 수 있습니다.
- 스토리지 용량이 제한적입니다.
- 체크포인트 작업을 지원하지만 체크포인트를 Cloud Storage와 같은 내구성 있는 스토리지 옵션으로 수동으로 전송해야 합니다.
Filestore의 장점
- 데이터를 한 번 전송한 후 여러 작업과 사용자 간에 공유할 수 있는 공유 NFS 스토리지를 제공합니다.
- Cloud GPU 또는 Cloud TPU 요금을 결제하기 전에 데이터가 전송되므로 유휴 Cloud GPU 또는 Cloud TPU 시간은 없습니다.
- 스토리지가 대용량입니다.
- 수천 개의 VM에 대해 빠른 체크포인트 작업을 지원합니다.
- Cloud GPU, Cloud TPU, 기타 모든 Compute Engine 인스턴스 유형을 지원합니다.
Filestore의 단점
- 높은 초기 비용. 하지만 컴퓨팅 효율성이 향상되면 전반적인 학습 비용이 절감될 가능성이 있습니다.
선택 사항인 로컬 SSD를 사용하는 Filestore 선택
Filestore는 지연 시간이 짧고 전체 POSIX 지원이 필요한 AI 및 ML 워크로드에 가장 적합합니다. Filestore는 소규모 파일 또는 소규모 I/O 학습 작업에 권장되는 선택사항일 뿐만 아니라 AI 및 ML 노트북, 소프트웨어 개발, 기타 여러 애플리케이션에 반응성 높은 환경을 제공할 수 있습니다. 고성능 학습 및 체크포인트의 영구 스토리지를 위해 영역에 Filestore를 배포할 수도 있습니다. 영역에 Filestore를 배포하면 장애 발생 시 빠른 다시 시작도 가능합니다. 또는 Filestore를 리전별로 배포하여 가용성이 높은 추론 작업을 지원할 수 있습니다. 로컬 SSD 캐싱을 지원하기 위해 FS-Cache가 선택적으로 추가되면 학습 데이터 읽기를 빠르게 반복하여 워크로드를 최적화할 수 있습니다.
다음 단계
스토리지 옵션, AI, ML에 관한 자세한 내용은 다음 리소스를 참조하세요.
- 클라우드 워크로드에 최적화된 스토리지 전략 설계
- Cloud Storage 제품 개요
- Cloud Storage FUSE
- Filestore 개요
- 로컬 SSD 정보
- Storage Transfer Service 개요
- Vertex AI 소개
- Vertex AI Pipelines의 네트워크 도달성 확장
- 동영상 -- 더 큰 데이터 세트에 더 쉽고 빠르게 액세스하여 Vertex AI | Google Cloud에서 ML 모델 학습을 가속화하세요
- AI 학습에서 Cloud Storage를 파일 시스템으로 사용
- Vertex AI에서 커스텀 모델 학습을 위한 데이터 읽기 및 저장 | Google Cloud 블로그
- Google Cloud의 AI 및 ML 워크로드와 관련된 원칙 및 권장사항에 관한 개요는 아키텍처 프레임워크의 AI 및 ML 관점을 참고하세요.
참여자
저자:
기타 참여자: 쿠마르 다나고팔 | 크로스 프로덕트 솔루션 개발자