Cloud Storage를 마운트된 파일 시스템으로 사용

Cloud Storage FUSE를 사용하면 학습 데이터를 Cloud Storage 버킷에 로드하고 마운트된 파일 시스템처럼 커스텀 학습 작업에서 해당 데이터에 액세스할 수 있습니다. Cloud Storage를 파일 시스템으로 사용하면 다음과 같은 이점이 있습니다.

  • 학습 데이터는 복제본에 다운로드되는 대신 학습 작업으로 스트리밍되므로 작업 실행이 시작될 때 데이터 로드 및 설정 작업이 더 빨라질 수 있습니다.
  • 학습 작업은 API 호출, 응답 처리, 클라이언트 측 라이브러리와의 통합 없이 대규모로 입력과 출력을 처리할 수 있습니다.
  • Cloud Storage FUSE는 대규모 파일 순차 읽기와 분산 학습 시나리오에서 높은 처리량을 제공합니다.

사용 사례

다음과 같은 경우 학습 데이터를 저장하는 데 Cloud Storage를 사용하는 것이 좋습니다.

  • 학습 데이터는 이미지, 텍스트, 동영상과 같은 구조화되지 않은 데이터입니다.
  • 학습 데이터는 TFRecord와 같은 형식의 구조화된 데이터입니다.
  • 학습 데이터에는 원시 동영상과 같은 대용량 파일이 포함됩니다.
  • 분산 학습을 사용합니다.

작동 원리

커스텀 학습 작업은 Cloud Storage 버킷에 루트 /gcs 디렉터리의 하위 디렉터리로 액세스할 수 있습니다. 예를 들어 학습 데이터가 gs://example-bucket/data.csv에 있는 경우 다음과 같이 Python 학습 애플리케이션에서 버킷을 읽고 쓸 수 있습니다.

버킷 읽기

with open('/gcs/example-bucket/data.csv', 'r') as f:
  lines = f.readlines()

버킷에 쓰기

with open('/gcs/example-bucket/epoch3.log', 'a') as f:
  f.write('success!\n')

버킷 액세스 권한

기본적으로 커스텀 학습 작업은 Vertex AI 커스텀 코드 서비스 에이전트를 사용하여 동일한 Google Cloud 프로젝트 내의 모든 Cloud Storage 버킷에 액세스할 수 있습니다. 버킷에 대한 액세스를 제어하려면 작업에 커스텀 서비스 계정을 할당하면 됩니다. 이 경우 Cloud Storage 버킷에 대한 액세스 권한은 커스텀 서비스 계정의 Cloud Storage 역할과 연결된 권한을 기반으로 부여됩니다.

예를 들어 커스텀 학습 작업에 버킷 A에 대한 읽기 및 쓰기 액세스 권한을 부여하되 버킷 B에 대한 읽기 액세스 권한만 부여하려면 다음 역할이 있는 서비스 계정을 작업에 할당하면 됩니다.

  • 버킷 A에 roles/storage.objectAdmin
  • 버킷 B에 roles/storage.objectViewer

학습 작업이 버킷 B에 쓰기를 시도하면 '권한 거부됨' 오류가 반환됩니다.

Cloud Storage 역할에 대한 자세한 내용은 Cloud Storage에 대한 IAM 역할을 참조하세요.

권장사항

  • 디렉터리 이름을 바꾸지 마세요. 이름 바꾸기 작업은 Cloud Storage FUSE에서 원자적이지 않습니다. 작업이 중단되면 일부 파일이 이전 디렉터리에 유지됩니다.
  • 불필요하게 닫거나(close()) 파일을 플러시(flush())하지 않습니다. 파일을 닫거나 플러시하면 파일이 Cloud Storage로 푸시되어 비용이 발생합니다.

성능 최적화 가이드라인

Cloud Storage를 파일 시스템으로 사용할 때 읽기 처리량을 최적화하려면 다음 가이드라인을 구현하는 것이 좋습니다.

  • 버킷에서 객체를 찾고 열어서 발생하는 지연 시간을 줄이려면 더 크고 작은 파일에 데이터를 저장하세요.
  • 동시 학습을 사용하여 대역폭 사용률을 극대화합니다.
  • 자주 액세스하는 파일을 캐시하여 읽기 성능을 개선합니다.

제한사항

Cloud Storage FUSE와 POSIX 파일 시스템 사이의 차이점을 포함하여 Cloud Storage FUSE의 제한사항을 알아보려면 다른 파일 시스템과의 차이점을 참조하세요.

Cloud Storage에 데이터 로드

Cloud Storage로 데이터를 전송하는 옵션에 대한 자세한 내용은 데이터 전송 옵션을 참조하세요.

다음 단계