Google Cloud의 AI 및 ML 워크로드를 위한 스토리지 설계

Last reviewed 2024-03-20 UTC

인공지능(AI)머신러닝(ML) 워크로드를 위해 Google Cloud Storage 서비스를 선택할 때는 각 특정 작업에 대해 올바른 스토리지 옵션 조합을 선택하도록 주의해야 합니다. 이러한 신중한 선택은 데이터 세트를 업로드하거나, 모델을 학습 및 조정하거나, 모델을 프로덕션에 배치하거나, 데이터 세트와 모델을 아카이브에 저장할 때 적용됩니다. 간단히 말해, AI 및 ML 워크로드의 각 단계에 적절한 지연 시간, 확장, 비용을 제공하는 최고의 스토리지 서비스를 선택해야 합니다.

정보에 입각한 선택을 돕기 위해 이 문서에서는 주요 AI 및 ML 워크로드에 Google Cloud에서 제공되는 다양한 스토리지 옵션을 사용 및 통합하는 방법에 대한 설계 안내를 제공합니다.

그림 1은 기본 스토리지 옵션을 요약한 것입니다. 다이어그램에 표시된 것처럼 일반적으로 파일 크기가 더 크거나, 초당 입출력 작업 수(IOPS)가 낮거나 지연 시간이 길 때 Cloud Storage를 선택합니다. 그러나 더 높은 IOPS, 더 작은 파일 크기, 더 짧은 지연 시간이 필요한 경우에는 대신 Filestore를 선택합니다.

그림 1: 기본 AI 및 ML 스토리지 고려사항

파일 크기가 더 크거나, IOPS가 낮거나, 지연 시간이 긴 경우 Cloud Storage를 선택합니다. 더 높은 IOPS, 더 작은 파일 크기 또는 짧은 지연 시간이 필요한 경우 Filestore를 선택합니다.

AI 및 ML 워크로드 단계 개요

AI 및 ML 워크로드는 준비, 학습, 제공, 보관처리라는 4가지 기본 단계로 구성됩니다. AI 및 ML 워크로드의 수명 주기에서 사용할 스토리지 옵션을 선택해야 하는 네 가지 경우입니다. 대부분의 경우 남은 단계에 대해 준비 단계에서 선택한 것과 동일한 스토리지 옵션을 계속 사용하는 것이 좋습니다. 이 권장사항을 따르면 스토리지 서비스 간 데이터 세트 복사를 줄일 수 있습니다. 그러나 이 일반 규칙에는 몇 가지 예외가 있으며 이는 이 가이드의 뒷부분에서 설명합니다.

일부 스토리지 솔루션은 각 단계에서 다른 솔루션보다 더 잘 작동하며 최상의 결과를 얻기 위해 추가 스토리지 옵션과 결합해야 할 수 있습니다. 스토리지 선택의 효과는 데이터 세트 속성, 필요한 컴퓨팅 및 스토리지 리소스의 규모, 지연 시간, 기타 요소에 따라 달라집니다. 다음 표에서는 단계를 설명하고 각 단계에서 권장되는 스토리지 옵션을 간략하게 설명합니다. 이 테이블의 시각적 표현과 추가 세부정보는 결정 트리를 참조하세요.

표 1: AI 및 ML 워크로드의 스테이지 및 단계에 대한 스토리지 추천
단계 단계 스토리지 권장사항

준비

데이터 준비

  • 데이터를 업로드하고 수집합니다.
  • 모델을 학습시키기 전에 데이터를 올바른 형식으로 변환합니다.

Cloud Storage

  • 높은 스토리지 지연 시간(수십 밀리초)을 허용할 수 있는 대용량 파일(50MB 이상)

Filestore Zonal

  • 더 작은 파일(50MB 미만)과 짧은 스토리지 지연 시간(약 1밀리초)이 포함된 더 작은 데이터 세트

학습

  1. 모델 개발
    • 노트북을 사용하고 반복적인 시행착오를 적용하여 모델을 개발합니다.
  2. 모델 학습
    • 그래픽 처리 장치(Cloud GPU) 또는 Tensor Processing Unit(Cloud TPU)을 소규모 및 대규모로 사용하여 학습 데이터 세트를 반복적으로 읽습니다.
    • 모델 개발 및 학습에 반복 프로세스를 적용합니다.

Cloud Storage

  • 준비 단계에서 Cloud Storage를 선택하는 경우 Cloud Storage에서 데이터를 학습시키는 것이 가장 좋습니다.

로컬 SSD 또는 Filestore를 사용하는 Cloud Storage

  • 준비 단계에서 Cloud Storage를 선택했지만 소규모 I/O 요청이나 작은 파일을 지원해야 하는 경우 학습 태스크를 보완할 수 있습니다. 이렇게 하려면 일부 데이터를 Cloud Storage에서 로컬 SSD 또는 Filestore 영역으로 이동합니다.

Filestore

  • 준비 단계에서 Filestore를 선택하는 경우 Filestore에서 데이터를 학습시키는 것이 가장 좋습니다.
  • Filestore 학습 태스크를 보완하기 위해 로컬 SSD 캐시를 만듭니다.
  1. 체크포인트 작업 및 다시 시작
    • 노드 실패 후 학습을 다시 시작할 수 있도록 체크포인트를 만들어 모델 학습 중에 주기적으로 상태를 저장합니다.
    • I/O 패턴과 체크포인트에서 저장해야 하는 데이터 양에 따라 선택합니다.

Cloud Storage

  • 준비 단계에서 Cloud Storage를 선택하는 경우 체크포인트 작업 후 다시 시작할 때 Cloud Storage를 사용하는 것이 가장 좋습니다.
  • 처리량과 스레드 수가 많은 워크로드에 적합합니다.

Filestore Zonal

  • 준비 단계에서 Filestore를 선택하는 경우 체크포인트 작업 후 다시 시작할 때 Filestore를 사용하는 것이 가장 좋습니다.
  • 지연 시간, 높은 클라이언트당 처리량, 낮은 스레드 수에 적합합니다.

서빙

  • 모델을 저장합니다.
  • 시작 시 Cloud GPU 또는 Cloud TPU를 실행하는 인스턴스에 모델을 로드합니다.
  • 생성된 이미지와 같은 모델 추론의 결과를 저장합니다.
  • 선택적으로 모델 추론에 사용되는 데이터 세트를 저장하고 로드합니다.

Cloud Storage

  • Cloud Storage에서 모델을 학습시키는 경우 Cloud Storage를 사용하여 모델을 서빙하는 것이 가장 좋습니다.
  • 모델로 생성된 콘텐츠를 Cloud Storage에 저장합니다.

Filestore

  • Filestore에서 모델을 학습시키는 경우 모델 서빙에 Filestore를 사용하는 것이 가장 좋습니다.
  • 작은 파일을 생성할 때 내구성과 짧은 지연 시간이 필요하면 Filestore 영역(영역) 또는 Filestore Enterprise(리전)를 선택합니다.

보관 파일

  • 학습 데이터와 모델을 더 오랜 기간 동안 보관합니다.

Cloud Storage

  • 여러 스토리지 클래스, 자동 클래스 또는 객체 수명 주기 관리를 통해 스토리지 비용을 최적화합니다.
  • Filestore를 사용하는 경우 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과 GKE 모두 HPC 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에 적합한 스토리지 서비스

AI 및 ML 워크로드에 초기 스토리지를 선택할 때 고려할 수 있는 세 가지 옵션은 Cloud Storage, Filestore, NetApp Volumes입니다.

객체 스토리지가 필요하면 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는 짧은 지연 시간, 멀티테비바이트 볼륨, 초당 GB의 처리량을 지원합니다.

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는 포괄적인 데이터 지속성 및 관리 기능 제품군이 있는 네트워크 블록 스토리지 서비스입니다. 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, 다른 클라우드 제공업체 간에 데이터를 복사할 수도 있습니다. Storage Transfer Service를 사용하면 데이터를 소스 위치에서 대상 위치로 안전하게 복사하고 변경된 데이터를 주기적으로 전송할 수 있습니다. 또한 데이터 무결성 검증, 자동 재시도, 부하 분산도 제공합니다.

Storage Transfer Service에 대한 자세한 내용은 Storage Transfer Service란 무엇인가요?를 참조하세요.

명령줄 인터페이스 옵션

Filestore와 Cloud Storage 간에 데이터를 이동할 때 다음 도구를 사용할 수 있습니다.

  • gcloud storage(권장): 최적의 처리량과 전체 gcloud CLI 명령어 모음을 사용하여 Cloud Storage 버킷과 객체를 만들고 관리합니다.
  • gsutil: Cloud Storage 구성요소를 관리하고 유지보수합니다. 처리량을 높이려면 미세 조정이 필요합니다.

AI 및 ML 단계에 스토리지 선택 매핑

이 섹션에서는 표 1에 제공된 요약을 바탕으로 AI 및 ML 워크로드의 각 단계에 대한 구체적인 권장사항과 안내를 살펴봅니다. 목표는 이러한 선택의 근거를 이해하고 각 AI 및 ML 단계에 가장 적합한 스토리지 옵션을 선택하는 것입니다. 이 분석을 수행하면 AI 및 ML을 위한 스토리지 추천 섹션에서 다루는 세 가지 주요 권장사항이 생성됩니다.

다음 그림은 AI 및 ML 워크로드의 네 가지 주요 단계에 권장되는 스토리지 옵션을 보여주는 결정 트리를 보여줍니다. 다이어그램 다음에는 각 단계와 각 단계에서 수행할 수 있는 선택사항에 대한 자세한 설명이 나와 있습니다.

그림 3: 각 AI 및 ML 단계의 스토리지 옵션

AI 및 ML 워크로드의 4가지 주요 단계에 권장되는 스토리지 옵션을 보여주는 결정 트리입니다.

준비

이 초기 단계에서는 데이터의 영구적인 신뢰 소스로 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 영역으로 이동하여 Cloud Storage 학습 작업을 보완할 수 있습니다.

학습 단계의 Filestore

데이터를 학습시킬 때 Filestore를 선택하는 주요 이유는 다음과 같습니다.

  • 데이터를 준비할 때 Filestore를 사용하면 대부분의 경우 Filestore에서 데이터를 계속 학습시켜야 합니다.
  • Filestore는 낮은 지연 시간, 높은 클라이언트당 처리량을 제공하고 적은 수의 스레드를 사용하지만 여전히 고성능을 요구하는 애플리케이션에 적합합니다.
  • Filestore에서 학습 태스크를 보완해야 하는 경우 필요에 따라 로컬 SSD 캐시를 만드는 것이 좋습니다.

파일 크기 및 요청 크기

데이터 세트를 학습에 사용할 수 있도록 준비한 다음에는 다양한 스토리지 옵션을 평가하는 데 도움이 되는 두 가지 기본 옵션이 있습니다.

큰 파일이 포함되어 있고 큰 요청 크기로 액세스되는 데이터 세트

이 옵션에서 학습 작업은 주로 50MB 이상의 더 큰 파일로 구성됩니다. 학습 작업은 요청당 1~16MB의 파일을 수집합니다. Cloud Storage가 제공된 가속기를 유지할 수 있을 만큼 파일이 충분히 크기 때문에 이 옵션에 Cloud Storage FUSE와 함께 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 영역 서비스 등급이 합리적인 저비용 선택이 될 수 있지만, 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에 대한 자세한 내용은 다음 리소스를 참조하세요.

기여자

저자:

  • 딘 힐데브랜드 | CTO실 기술 이사
  • 션 데링턴 | 스토리지 부문 그룹 아웃바운드 제품 관리자
  • 리차드 헨드릭스 | 아키텍처 센터 직원

다른 참여자: 쿠마르 다나고팔 | 크로스 프로덕트 솔루션 개발자