이 참조 아키텍처에서는 Cloud Vision으로 이미지 파일을 처리하고 처리된 결과를 BigQuery에 저장하는 Dataflow 파이프라인을 배포하는 사용 사례, 설계 대안, 설계 고려사항에 대해 알아봅니다. 저장된 결과를 대규모 데이터 분석에 사용하고 BigQuery ML 기본 제공 모델을 학습시킬 수 있습니다.
이 참조 아키텍처 문서는 데이터 엔지니어와 데이터 과학자를 대상으로 합니다.
아키텍처
다음 다이어그램은 이 참조 아키텍처의 시스템 흐름을 보여줍니다.
앞의 다이어그램에 표시된 것처럼 정보는 다음과 같이 전달됩니다.
수집 및 트리거: 이미지가 시스템에 처음 입력되는 시스템 흐름의 첫 번째 단계입니다. 이 단계에서는 다음 작업이 발생합니다.
- 클라이언트가 이미지 파일을 Cloud Storage 버킷에 업로드합니다.
- 파일이 업로드될 때마다 Cloud Storage는 Pub/Sub에 메시지를 게시하여 자동으로 입력 알림을 보냅니다.
처리: 이 단계는 수집 및 트리거 단계 바로 뒤에 옵니다. 새 입력 알림마다 다음 작업이 발생합니다.
- Dataflow 파이프라인은 이러한 파일 입력 알림을 수신 대기하고, Pub/Sub 메시지에서 파일 메타데이터를 추출하고, 처리할 파일 참조를 Vision API에 전송합니다.
- Vision API가 이미지를 읽고 주석을 만듭니다.
- Dataflow 파이프라인은 Vision API에서 생성된 주석을 BigQuery 테이블에 저장합니다.
저장 및 분석: 흐름의 마지막 단계입니다. 이 단계에서 저장된 결과를 사용하여 다음 작업을 할 수 있습니다.
- BigQuery 테이블을 쿼리하고 저장된 주석을 분석합니다.
- BigQuery ML 또는 Vertex AI를 사용하여 모델을 빌드하고 저장된 주석을 기반으로 예측을 실행합니다.
- Dataflow 파이프라인에서 추가 분석을 실행합니다 (이 다이어그램에는 표시되지 않음).
사용 제품
이 참조 아키텍처에는 다음과 같은 Google Cloud 제품이 사용됩니다.
사용 사례
Vision API는 이미지 라벨링, 얼굴 및 랜드마크 인식, 광학 문자 인식, 선정적인 콘텐츠 태그 지정 등 여러 가지 처리 기능을 지원합니다. 이러한 각 기능은 다양한 업계에 적용할 수 있는 여러 사용 사례를 지원합니다. 이 문서에는 Vision API를 사용해 가능한 작업에 대한 몇 가지 간단한 예시가 포함되어 있지만, 가능한 응용 분야는 매우 광범위합니다.
Vision API는 REST API와 RPC API를 통해 선행 학습된 강력한 머신러닝 모델을 제공합니다. 이미지에 라벨을 할당하고 사전 정의된 수백만 개의 카테고리로 분류할 수 있습니다. 객체를 감지하고 인쇄 및 필기 텍스트를 읽고 이미지 카탈로그에 유용한 메타데이터를 구축하도록 도와줍니다.
이 아키텍처는 사용하기 전에 모델 학습이 필요하지 않습니다. 특정 데이터로 학습된 맞춤 모델이 필요한 경우 Vertex AI를 사용하면 이미지 분류 및 객체 감지와 같은 컴퓨터 비전 목표를 위해 AutoML 또는 맞춤 모델을 학습시킬 수 있습니다. 또는 Vertex AI Vision을 사용하여 컴퓨터 비전 애플리케이션을 빌드, 배포, 관리할 수 있는 엔드 투 엔드 애플리케이션 개발 환경을 사용할 수 있습니다.
설계 대안
Google Cloud Storage 버킷에 이미지를 저장하는 대신 이미지를 생성하는 프로세스에서 Pub/Sub와 같은 메시징 시스템에 직접 이미지를 게시할 수 있으며 Dataflow 파이프라인으로 이미지를 직접 Vision API에 전송할 수 있습니다.
이 설계 대안은 비교적 작은 크기의 이미지를 분석해야 하는 지연 시간에 민감한 사용 사례에 적합한 솔루션이 될 수 있습니다. Pub/Sub는 메시지의 최대 크기를 10MB로 제한합니다.
많은 이미지를 일괄 처리해야 하는 경우 특별히 설계된 asyncBatchAnnotate API를 사용할 수 있습니다.
설계 고려사항
이 섹션에서는 이 참조 아키텍처의 설계 고려사항을 설명합니다.
보안, 개인정보 보호, 규정 준수
신뢰할 수 없는 소스에서 수신한 이미지에는 멀웨어가 포함될 수 있습니다. Vision API는 분석하는 이미지를 기반으로 어떤 작업도 실행하지 않으므로 이미지 기반 멀웨어는 API에 영향을 미치지 않습니다. 이미지를 스캔해야 하는 경우 Dataflow 파이프라인을 변경하여 스캔 단계를 추가합니다. 동일한 결과를 얻기 위해 Pub/Sub 주제에 별도의 구독을 사용하고 별도의 프로세스에서 이미지를 스캔할 수도 있습니다.
자세한 내용은 Cloud Storage에 업로드된 파일의 멀웨어 검사 자동화를 참고하세요.
Vision API는 인증에 Identity and Access Management(IAM)를 사용합니다. Vision API에 액세스하려면 보안 주체에게 사용자가 분석하려는 파일이 포함된 버킷에 대한 Cloud Storage > 스토리지 객체 뷰어(roles/storage.objectViewer) 액세스 권한이 필요합니다.
AI 및 ML 워크로드와 관련된 보안 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 보안을 참조하세요.
비용 최적화
짧은 지연 시간 처리 및 비동기 일괄 처리와 같은 다른 옵션과 비교할 때 이 참조 아키텍처는 API 요청을 일괄 처리하여 스트리밍 파이프라인에서 이미지를 처리하는 비용 효율적인 방법을 사용합니다. 설계 대안 섹션에 언급된 지연 시간이 짧은 직접 이미지 스트리밍은 Pub/Sub 및 Dataflow 비용이 추가되어 더 비쌀 수 있습니다. 몇 초 또는 몇 분 이내에 처리할 필요가 없는 이미지 처리의 경우 Dataflow 파이프라인을 일괄 처리 모드로 실행할 수 있습니다. 일괄 모드에서 파이프라인을 실행하면 스트리밍 파이프라인을 실행하는 비용에 비해 비용을 절감할 수 있습니다.
Vision API는 모든 기능에 오프라인 비동기 일괄 이미지 주석을 지원합니다. 비동기 요청은 배치당 최대 2,000개의 이미지를 지원합니다. 이에 따라 Vision API는 Cloud Storage 버킷에 저장된 JSON 파일을 반환합니다.
Vision API는 이미지를 분석하기 위한 여러 기능도 제공합니다. 가격은 이미지당 기능당 가격입니다. 비용을 줄이려면 솔루션에 필요한 특정 기능만 요청하세요.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
AI 및 ML 워크로드와 관련된 비용 최적화 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 비용 최적화를 참조하세요.
성능 최적화
Vision API는 리소스 집약적인 API입니다. 따라서 이미지를 대규모로 처리하는 경우 API 호출을 신중하게 조정해야 합니다. Dataflow 파이프라인은 API 요청을 일괄 처리하고, 할당량 도달과 관련된 예외를 적절하게 처리하며, API 사용량의 커스텀 측정항목을 생성합니다. 이러한 측정항목은 API 할당량 증가가 필요한지 또는 요청 빈도를 줄이기 위해 Dataflow 파이프라인 매개변수를 조정해야 하는지 결정하는 데 도움이 될 수 있습니다. Vision API의 할당량 상향 요청에 대한 자세한 내용은 할당량 및 한도를 참고하세요.
Dataflow 파이프라인에는 처리 지연 시간에 영향을 줄 수 있는 여러 매개변수가 있습니다. 이러한 매개변수에 대한 자세한 내용은 Dataflow 및 Vision API를 사용한 ML 비전 분석 솔루션 배포를 참조하세요.
AI 및 ML 워크로드와 관련된 성능 최적화 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 성능 최적화를 참조하세요.
배포
이 아키텍처를 배포하려면 Dataflow 및 Vision API를 사용한 ML 비전 분석 솔루션 배포를 참조하세요.
다음 단계
- Dataflow 자세히 알아보기
- BigQuery ML 자세히 알아보기
- BigQuery 안정성 이해 가이드에서 BigQuery 안정성에 대해 자세히 알아보세요.
- 점프 스타트 솔루션: BigQuery를 사용한 데이터 웨어하우스에서 데이터를 저장하는 방법을 알아봅니다.
- Vision API 기능 목록을 검토합니다.
- Dataflow 및 Vision API를 사용한 ML 비전 분석 솔루션 배포 방법 알아보기
- Google Cloud에서 AI 및 ML 워크로드와 관련된 아키텍처 원칙 및 권장사항에 대한 개요는 Well-Architected Framework의 AI 및 ML 관점을 참조하세요.
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 Cloud 아키텍처 센터를 확인하세요.
참여자
저자:
- 마수드 하산 | 사이트 안정성 엔지니어링 관리자
- Sergei Lilichenko | 솔루션 설계자
- 락쉬마난 세투 | 기술계정 관리자
기타 참여자:
- 지연 강 | 고객 엔지니어
- 수닐 쿠마르 장 바하두르 | 고객 엔지니어