머신러닝 모델이 학습되면 다음 단계는 이를 사용하여 새로운 데이터에 대한 예측을 수행하는 것입니다. 추론이라고 하는 이 프로세스에는 애플리케이션의 지연 시간 및 처리량 요구사항에 크게 의존하는 전략이 필요합니다. 오프라인 추론 또는 비동기식 처리라고도 하는 일괄 추론은 즉각적인 실시간 응답이 필요하지 않은 경우 대량의 데이터에 대한 예측을 생성하는 강력하고 매우 효율적인 방법입니다.
일괄 추론은 학습된 머신러닝 모델을 사용하여 대규모의 관찰 세트 또는 '배치'에 대한 예측을 한 번에 생성하는 프로세스입니다.
예측이 단일 데이터 포인트에 대해 도착하는 대로 이루어지는 온라인 추론과 달리 일괄 추론은 일정 기간 동안 수집된 데이터를 기반으로 작동합니다. 이 접근 방식은 짧은 지연 시간보다 높은 처리량과 계산 효율성을 우선시합니다. 처리가 오프라인에서 이루어지며 사용자 요청에 대한 직접적인 응답이 아니기 때문에 정적 추론이라고도 합니다. 예측이 생성되어 나중에 사용할 수 있도록 저장됩니다.
일괄 추론과 온라인 추론 중에서 선택하는 것은 머신러닝 시스템을 설계할 때 내리는 기본적인 아키텍처 결정입니다. 각 접근 방식은 서로 다른 목적을 수행하며 서로 다른 성능 특성에 최적화되어 있습니다.
기능 | 일괄 추론 | 온라인 추론 |
데이터 처리 | 단일 작업에서 대규모 데이터 포인트 모음을 함께 처리합니다. | 단일 데이터 포인트 또는 매우 작은 데이터 포인트 그룹이 도착하는 대로 처리합니다. |
기본 최적화 | 높은 처리량과 비용 효율성 | 짧은 지연 시간과 즉각적인 응답성 |
지연 시간 | 지연 시간이 길어 예측을 즉시 사용할 수 없습니다(몇 분에서 몇 시간). | 지연 시간이 매우 짧아 예측이 밀리초 단위로 반환됩니다. |
호출 | 일정(예: 크론 작업) 또는 요청 시 트리거됩니다. | 직접적인 사용자 요청 또는 시스템의 이벤트에 의해 트리거됩니다. |
컴퓨팅 사용률 | 강력한 컴퓨팅 리소스를 짧은 기간 동안 사용한 다음 0으로 축소할 수 있습니다. | 요청을 수락할 준비가 된 서버 또는 엔드포인트가 항상 실행되어야 합니다. |
사용 사례 | 전자상거래 사이트의 모든 사용자에게 매일 제품 추천을 생성합니다. | 단일 신용카드 거래가 사기인지 여부를 실시간으로 예측합니다. |
동의어 | 오프라인 추론, 비동기 처리, 정적 추론 | 실시간 추론, 동기 처리, 동적 추론 |
기능
일괄 추론
온라인 추론
데이터 처리
단일 작업에서 대규모 데이터 포인트 모음을 함께 처리합니다.
단일 데이터 포인트 또는 매우 작은 데이터 포인트 그룹이 도착하는 대로 처리합니다.
기본 최적화
높은 처리량과 비용 효율성
짧은 지연 시간과 즉각적인 응답성
지연 시간
지연 시간이 길어 예측을 즉시 사용할 수 없습니다(몇 분에서 몇 시간).
지연 시간이 매우 짧아 예측이 밀리초 단위로 반환됩니다.
호출
일정(예: 크론 작업) 또는 요청 시 트리거됩니다.
직접적인 사용자 요청 또는 시스템의 이벤트에 의해 트리거됩니다.
컴퓨팅 사용률
강력한 컴퓨팅 리소스를 짧은 기간 동안 사용한 다음 0으로 축소할 수 있습니다.
요청을 수락할 준비가 된 서버 또는 엔드포인트가 항상 실행되어야 합니다.
사용 사례
전자상거래 사이트의 모든 사용자에게 매일 제품 추천을 생성합니다.
단일 신용카드 거래가 사기인지 여부를 실시간으로 예측합니다.
동의어
오프라인 추론, 비동기 처리, 정적 추론
실시간 추론, 동기 처리, 동적 추론
일괄 추론 파이프라인은 원시 상태의 데이터를 실행 가능한 예측으로 이동시키는 구조화된 자동화된 워크플로입니다. 이 프로세스는 일반적으로 워크플로 관리자 또는 예약 시스템에 의해 조정되는 다음 주요 단계로 나눌 수 있습니다.
이 프로세스는 시간이 지남에 따라 데이터를 축적하는 것으로 시작됩니다. 사용자 활동 로그, 거래 기록, 센서 측정값 등을 포함할 수 있는 이 입력 데이터는 다양한 소스에서 수집되어 중앙 집중식 스토리지 위치에 저장됩니다. 이러한 데이터는 Google Cloud Storage와 같은 서비스에 빌드된 데이터 레이크나 BigQuery와 같은 데이터 웨어하우스에 저장되는 경우가 많습니다.
추론 파이프라인은 트리거에 의해 시작됩니다. 이 트리거는 다음과 같을 수 있습니다.
트리거되면 작업이 전체 원시 입력 데이터 배치를 로드합니다. 그런 다음 필요한 전처리와 특성 추출 단계를 수행하여 데이터를 머신러닝 모델이 예상하는 정확한 형식으로 변환합니다. 여기에는 누락된 값 정리, 숫자 특성 조정, 범주형 변수 인코딩과 같은 작업이 포함될 수 있습니다.
시스템은 Vertex AI Model Registry와 같은 중앙 저장소에서 학습된 머신러닝 모델을 검색합니다. 그런 다음 전처리된 데이터 배치가 모델에 공급되며, 모델은 세트의 모든 단일 관찰에 대해 추론을 실행하여 해당 예측을 생성합니다.
그런 다음 모델의 출력인 예측 컬렉션이 스토리지 시스템에 기록됩니다. 이 대상은 예측이 사용되는 방식에 따라 선택됩니다. 일반적인 대상에는 분석을 위해 결과를 BigQuery 테이블에 로드하거나, 애플리케이션에서 빠르게 조회할 수 있도록 Cloud SQL 데이터베이스에 로드하거나, Cloud Storage에 파일로 저장하는 것이 포함됩니다.
이제 예측이 저장되고 준비되었으므로 다운스트림 시스템에서 이를 사용할 수 있습니다. 비즈니스 인텔리전스 도구는 결과를 쿼리하여 예측된 고객 행동의 대시보드를 만들 수 있습니다. 웹 애플리케이션의 백엔드는 사전 계산된 제품 추천을 로드하여 사용자에게 표시할 수 있으며, 마케팅 자동화 플랫폼은 이탈할 것으로 예측되는 고객 목록을 가져와 새로운 캠페인으로 타겟팅할 수 있습니다.
많은 엔터프라이즈 사용 사례에서 일괄 추론은 실시간 처리에 비해 상당한 이점을 제공할 수 있습니다.
비용 효율성
일괄 처리를 사용하면 컴퓨팅 리소스 사용을 최적화할 수 있습니다. 강력한 하드웨어에서 대규모 작업을 짧은 기간 동안 실행한 다음 리소스를 종료하여 지속적으로 실행되는 서버를 유지보수하는 데 드는 비용을 절감할 수 있습니다.
높은 처리량과 확장성
일괄 시스템은 테라바이트 규모의 데이터를 효율적으로 확장하고 처리하도록 설계되었습니다. 이를 통해 온라인 시스템에서 너무 느리거나 비용이 많이 들 수 있는 매우 큰 데이터 세트에 복잡한 모델을 적용할 수 있습니다.
운영의 단순성
일괄 추론 파이프라인은 가용성이 높고 지연 시간이 짧은 온라인 추론 시스템보다 빌드 및 유지보수가 더 간단할 수 있습니다. 일반적으로 일시적인 장애에 복원력이 더 우수하며 작업이 실패할 경우 쉽게 다시 실행할 수 있습니다.
복잡한 특성 추출 가능
일괄 추론은 짧은 지연 시간 요구사항에 제약받지 않으므로 입력 데이터에 대해 더 복잡하고 컴퓨팅 집약적인 특성 엔지니어링을 수행할 수 있으며, 이는 종종 더 정확한 모델로 이어집니다.
리소스 활용도 개선
일괄 작업을 예약하여 사용량이 많지 않은 시간대에 실행하면 유휴 컴퓨팅 용량을 활용하고 가상 머신에 대한 스팟 가격을 낮출 수 있습니다.
일괄 추론은 예측이 실시간으로 생성될 필요 없이 제품 또는 서비스를 개선하는 많은 핵심 비즈니스 프로세스에 선호되는 방법입니다. 이 접근방식은 다양한 산업 전반에서 대규모 데이터 문제를 해결하는 데 매우 효과적일 수 있습니다.
업종 | 해결해야 할 문제 | 예제 솔루션 |
전자상거래 및 소매업 | 전체 사용자층을 대상으로 매일 맞춤형 제품 추천을 생성하여 사용자가 사이트를 방문할 때 빠르게 검색할 수 있도록 준비합니다. | Vertex AI 일괄 예측은 추천 모델을 실행하고 결과를 Cloud SQL 또는 Bigtable과 같은 빠른 조회 데이터베이스에 로드할 수 있습니다. |
통신 및 SaaS | 전체 고객 데이터베이스에서 사용 패턴을 분석하여 다음 달에 이탈할 위험이 높은 고객을 파악합니다. | BigQuery ML을 사용하면 데이터 웨어하우스에 저장된 고객 데이터에 대해 직접 분류 모델을 실행하고, 그 결과를 고객 유지팀을 위한 새 테이블에 쓸 수 있습니다. |
금융 및 보험 | 금융 시장 동향을 예측하거나 전체 자산 포트폴리오의 위험 점수를 계산합니다. 이는 주기적으로 수행되는 컴퓨팅 집약적인 작업입니다. | Vertex AI 일괄 예측은 복잡한 시계열 모델을 일정에 따라 실행하여 전략 보고서와 대시보드에 필요한 데이터를 제공할 수 있습니다. |
물류 및 공급망 | 주간 판매 및 물류 데이터를 기반으로 복잡한 수요 예측 시뮬레이션을 실행하여 수백 개의 창고에서 재고 수준을 최적화합니다. | Google Kubernetes Engine(GKE)은 특정 라이브러리 및 하드웨어 요구사항을 충족하는 특수 시뮬레이션 모델을 실행하는 데 필요한 맞춤형 고성능 환경을 제공합니다. |
의료 서비스 | 매일 대량으로 생성되는 의료 이미지(예: X선 또는 CT 스캔)를 분석하여 잠재적인 이상 징후를 감지하고 방사선 전문의가 나중에 검토할 수 있도록 합니다. | GPU 가속기가 탑재된 GKE는 대규모 이미지 세트에서 딥 러닝 컴퓨터 비전 모델을 실행하는 데 이상적이며, 최대한의 제어와 성능을 제공합니다. |
법률 및 규정 준수 | 수백만 개의 기존 문서를 처리하고 분류하여 핵심 항목을 추출하고, 감정을 평가하고, 전체 코퍼스를 검색 및 분석 가능하게 만듭니다. | Dataflow를 사용하면 텍스트를 전처리하고 추론을 실행하는 확장 가능한 NLP 파이프라인을 빌드할 수 있으며, GKE는 보다 맞춤화된 모델 요구사항에 사용할 수 있습니다. |
업종
해결해야 할 문제
예제 솔루션
전자상거래 및 소매업
전체 사용자층을 대상으로 매일 맞춤형 제품 추천을 생성하여 사용자가 사이트를 방문할 때 빠르게 검색할 수 있도록 준비합니다.
Vertex AI 일괄 예측은 추천 모델을 실행하고 결과를 Cloud SQL 또는 Bigtable과 같은 빠른 조회 데이터베이스에 로드할 수 있습니다.
통신 및 SaaS
전체 고객 데이터베이스에서 사용 패턴을 분석하여 다음 달에 이탈할 위험이 높은 고객을 파악합니다.
BigQuery ML을 사용하면 데이터 웨어하우스에 저장된 고객 데이터에 대해 직접 분류 모델을 실행하고, 그 결과를 고객 유지팀을 위한 새 테이블에 쓸 수 있습니다.
금융 및 보험
금융 시장 동향을 예측하거나 전체 자산 포트폴리오의 위험 점수를 계산합니다. 이는 주기적으로 수행되는 컴퓨팅 집약적인 작업입니다.
Vertex AI 일괄 예측은 복잡한 시계열 모델을 일정에 따라 실행하여 전략 보고서와 대시보드에 필요한 데이터를 제공할 수 있습니다.
물류 및 공급망
주간 판매 및 물류 데이터를 기반으로 복잡한 수요 예측 시뮬레이션을 실행하여 수백 개의 창고에서 재고 수준을 최적화합니다.
Google Kubernetes Engine(GKE)은 특정 라이브러리 및 하드웨어 요구사항을 충족하는 특수 시뮬레이션 모델을 실행하는 데 필요한 맞춤형 고성능 환경을 제공합니다.
의료 서비스
매일 대량으로 생성되는 의료 이미지(예: X선 또는 CT 스캔)를 분석하여 잠재적인 이상 징후를 감지하고 방사선 전문의가 나중에 검토할 수 있도록 합니다.
GPU 가속기가 탑재된 GKE는 대규모 이미지 세트에서 딥 러닝 컴퓨터 비전 모델을 실행하는 데 이상적이며, 최대한의 제어와 성능을 제공합니다.
법률 및 규정 준수
수백만 개의 기존 문서를 처리하고 분류하여 핵심 항목을 추출하고, 감정을 평가하고, 전체 코퍼스를 검색 및 분석 가능하게 만듭니다.
Dataflow를 사용하면 텍스트를 전처리하고 추론을 실행하는 확장 가능한 NLP 파이프라인을 빌드할 수 있으며, GKE는 보다 맞춤화된 모델 요구사항에 사용할 수 있습니다.
Vertex AI는 Google Cloud의 관리형 머신러닝 플랫폼으로, 일괄 추론을 위한 간소화된 서버리스 접근방식을 제공합니다. 이 프로세스는 작업을 구성하고 플랫폼에서 기본 인프라를 처리하도록 하는 데 중점을 둡니다.
시작하기 전에 다음 세 가지가 필요합니다.
Google Cloud 콘솔, gcloud 명령줄 도구 또는 Vertex AI SDK를 사용하여 프로그래매틱 방식으로 작업을 시작할 수 있습니다. 작업을 만들 때 다음 구성을 제공합니다.
작업을 제출하면 Vertex AI가 작업을 처리합니다. 지정된 컴퓨팅 리소스를 자동으로 프로비저닝하고, 모델을 통해 입력 데이터를 실행하고, 예측을 생성하여 지정된 출력 위치에 저장합니다. 작업이 완료되면 Vertex AI는 모든 리소스를 자동으로 0으로 축소하므로 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다. Google Cloud 콘솔에서 직접 작업 진행 상황을 모니터링하고 로그를 볼 수 있습니다.
작업 상태가 '성공'으로 표시되면 예측이 준비된 것입니다. 이제 Cloud Storage의 출력 파일 또는 BigQuery의 새 테이블에 다운스트림 애플리케이션, 분석 도구 또는 BI 대시보드가 액세스할 수 있습니다.
일괄 추론에 Google Kubernetes Engine(GKE)을 사용하면 제어 및 이식성을 극대화할 수 있으므로 기존 Kubernetes 전문 지식이나 특수한 요구사항이 있는 팀에 적합합니다. 설정에는 추론 로직을 컨테이너화하고 Kubernetes 리소스로 실행을 관리하는 작업이 포함됩니다.
1단계: 추론 애플리케이션을 컨테이너화합니다. 첫 번째 단계는 예측 코드를 컨테이너 이미지로 패키징하는 것입니다.
2단계: Kubernetes 작업을 정의합니다. 장기 실행 배포 대신 Kubernetes 작업 또는 CronJob 매니페스트(YAML 파일)를 사용하여 일괄 작업을 정의합니다. 이 파일은 다음을 지정합니다.
3단계: GKE 클러스터에서 작업을 실행합니다. kubectl을 사용하여 매니페스트를 GKE 클러스터에 적용합니다. 그러면 GKE의 컨트롤 플레인이 클러스터의 적합한 노드에서 추론 컨테이너를 실행하도록 포드를 예약합니다. 반복 작업의 경우 CronJob 리소스는 사전 정의된 일정(예: 매일 새벽 2시의 경우 0 2 * * *)에 따라 자동으로 새 작업을 만듭니다.
4단계: 데이터 처리를 구현하고 결과를 저장합니다. 관리형 Vertex AI 접근 방식과 달리 컨테이너 내부의 애플리케이션 코드는 모든 데이터 I/O를 처리합니다. 스크립트에는 데이터 소스(예: Cloud Storage 버킷)에 연결하여 데이터를 읽고 최종 예측을 선택한 대상 (예: Cloud SQL 데이터베이스)에 다시 쓰는 로직이 포함되어야 합니다.