Google PDE: 머신러닝, AI 및 데이터 서빙 — 학습 가이드
다음의 일부입니다: Google Professional Data Engineer — 학습 가이드. 검증된 답안으로 연습하기: Google 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
개요
Google Cloud에서 프로덕션 등급의 머신러닝 및 데이터 서빙 시스템을 구축하려면 체계적인 데이터 모델링, 견고한 파이프라인, 운영상의 가드레일이 필요합니다. 이 섹션에서는 BigQuery ML에서의 모델 개발, Vertex AI에서의 관리형 수명 주기(데이터 세트, 학습, 파이프라인, 엔드포인트, 특성 공학, 모니터링), 예측 경로 설계(배치 대 온라인), 특성 저장소 및 특정 시점 정확성(point-in-time correctness), 라벨링 및 편향 제어, 벡터 검색 및 검색 증강 생성(RAG) 패턴, 리니지 및 거버넌스, 드리프트 모니터링 및 재학습 트리거, 분석 서빙 레이어, 개인 정보 보호를 고려한 데이터 사용에 대해 다룹니다. 설계 결정, 확장 전략, 그리고 피해야 할 일반적인 실패 모드에 중점을 둡니다.
BigQuery ML 및 특성 공학
BigQuery ML을 사용하면 SQL에서 직접 학습, 평가, 예측을 수행할 수 있어 데이터 이동을 없애고 모델 개발을 분석 데이터 세트와 일치시킬 수 있습니다.
모델 생성: CREATE MODEL을 명시적 레이블 열 및 특성 변환과 함께 사용하여 데이터 유출(leakage)을 방지하고 입력을 표준화합니다. 예시: CREATE OR REPLACE MODEL ds.churn_model OPTIONS( model_type=‘logistic_reg’, input_label_cols=[‘churned’], l1_reg=0.0, l2_reg=1.0, data_split_method=‘AUTO’ ) TRANSFORM( standardize(tenure_months) AS tenure_std, quantile_bucketize(monthly_spend, 10) AS spend_bkt, one_hot_encoder(region) AS region_ohe, ml.feature_cross(struct(bucketize(lat, 60), bucketize(lon, 60))) AS latlon_cross, (xx + yy) AS r2 – 유용할 경우 원형 결정 경계 지원 추가 ) AS SELECT churned, tenure_months, monthly_spend, region, lat, lon, x, y FROM ds.customer_features;
평가: ML.EVALUATE를 사용하여 모델 유형에 적합한 측정항목(예: 분류의 경우 ROC AUC, 회귀의 경우 RMSE)을 가져옵니다. 기준선과 신뢰 구간을 추적하고, 평가 데이터 세트를 시간 순서대로 유지하여 미래 성능을 근사화합니다. SELECT * FROM ML.EVALUATE(MODEL ds.churn_model, TABLE ds.eval_features);
예측: BigQuery에서 온라인과 유사한 스코어링을 위해 ML.PREDICT를 사용하거나, 다른 곳에서 서빙하기 위해 모델을 내보냅니다. 동기식 스코어링에 BigQuery를 사용할 때는 모델 지연 시간 예산을 고려하십시오. QPS가 높은 API의 경우 관리형 엔드포인트에 배포합니다. SELECT user_id, predicted_churn FROM ML.PREDICT(MODEL ds.churn_model, TABLE ds.scoring_candidates);
특성 변환: 재현성을 위해, 그리고 전처리 과정을 모델 아티팩트에 고정하기 위해 선언적 TRANSFORM 함수(standardize, one_hot_encoder, bucketize, quantile_bucketize, ml.feature_cross)를 사용하는 것이 좋습니다. 변환은 멱등성(idempotent)과 결정성(deterministic)을 유지해야 합니다.
운영 고려사항 및 실패 모드:
- 스트리밍 삽입 및 쿼리 최신성: BigQuery 스트리밍은 최종적 일관성(eventual consistency)을 가집니다. 방금 작성된 행을 반드시 포함해야 하는 실시간 집계의 경우, 측정된 스트리밍 버퍼 지연 시간을 초과하는 시간 지연을 두고 쿼리를 실행하십시오. 보수적인 시작점은 관찰된 평균 가용성 지연의 약 2배를 기다리거나, BigQuery에 데이터를 적재하기 전에 Dataflow에서 워터마크 및 지연 데이터 처리를 설계하는 것입니다.
- 비용 및 동시성: 주문형 슬롯 동시성 제한이 병목 현상이 되면, 고정 요금 또는 탄력적 예약(flexible reservations)으로 전환하고 예측 가능한 용량을 보장하기 위해 워크로드 관리(예약 계층 구조 및 할당)를 구현하십시오.
- 데이터 품질: 형식이 잘못된 행이 포함된 GCS 배치 로드의 경우, Dataflow를 사용하여 레코드를 파싱하고 검증하여 올바른 행은 BigQuery에 쓰고 잘못된 행은 검사를 위해 데드-레터(dead-letter) 테이블에 쓰십시오. 소수의 잘못된 행 때문에 BigQuery가 전체 파일을 거부하는 상황을 피하십시오.
Vertex AI 수명 주기, 예측 경로, 피처 스토어
Vertex AI는 학습, 파이프라인, 모델 레지스트리, 엔드포인트, 모니터링을 위한 엔드투엔드 관리형 서비스를 제공합니다.
데이터 세트 및 학습: 데이터 세트와 메타데이터를 등록하고, 적절한 경우 커스텀 학습 작업이나 AutoML을 사용합니다. 제약 조건에 따라 알고리즘을 선택합니다:
- 리소스 제약이 있는 단일 VM 워크로드는 메모리/CPU 요구량이 낮아 단순한 모델(예: 선형 회귀 또는 로지스틱 회귀)에 유리합니다.
- 고차원 작업은 특성 선택이나 중복 특성 결합을 통해 정확도 손실을 최소화하면서 학습 속도를 높일 수 있습니다.
- 정상(positive) 예시가 드물고 향후 이상 현상이 알려진 비정상 시그니처와 유사할 것으로 예상될 때 비지도 이상 감지가 적합합니다.
파이프라인: Vertex AI Pipelines를 구현하여 데이터 준비, 학습, 평가, 배포 게이트를 코드화합니다. 재현성을 보장하기 위해 파라미터, 코드 커밋 SHA, 컨테이너 다이제스트, 데이터 세트 스냅샷을 영구 저장합니다.
엔드포인트 및 예측:
- 온라인 예측은 짧은 지연 시간이 필요한 워크로드에 사용됩니다. 최소 및 최대 복제본과 자동 확장 정책을 구성하고, P95에서 모델 지연 시간을 프로파일링하여 그에 맞게 SLO를 설정합니다. 안전한 출시를 위해 카나리 배포와 트래픽 분할을 추가합니다.
- 배치 예측은 처리량 우선 작업(예: 야간 스코어링)에 사용됩니다. 배치는 요청당 오버헤드를 피하고 대용량 처리 시 비용이 저렴하지만 지연 시간은 더 깁니다.
피처 엔지니어링 및 피처 스토어: 다음과 같은 용도로 Vertex AI Feature Store를 사용합니다:
- 학습용 오프라인 저장소는 BigQuery에 저장합니다.
- 온라인 저장소는 엔터티 ID를 통한 짧은 지연 시간의 조회를 위해 사용합니다. 동일한 변환 로직(예: Dataflow 라이브러리 또는 특성 정의)을 공유하고 특성 타임스탬프를 사용하여 데이터 유출을 방지함으로써 학습-서빙 일관성을 유지합니다. 시간적 조인(temporal join)으로 특정 시점 정확성을 유지합니다:
undefined
설계 시 고려사항(Trade-offs):
- 온라인 저장소 지연 시간 vs. 최신성: Bigtable 기반 온라인 저장소는 짧은 지연 시간을 제공합니다. 백필과 스트리밍 업서트가 멱등성을 갖도록 보장해야 합니다. 과도한 쓰기 스큐나 핫 키는 성능을 저하시키므로, 트래픽을 고르게 분산하도록 엔터티 ID를 설계해야 합니다.
- 배치 vs. 온라인: 배치는 서빙 복잡성과 비용을 줄이지만 오래된 예측을 제공할 수 있습니다. 동적인 동작(예: 추천)의 경우, 주기적인 재학습과 서빙 시점의 최신 특성 사용을 결합합니다.
데이터 품질, 라벨링, 편향, 개인정보 보호, 거버넌스
높은 품질의 라벨과 엄격한 거버넌스는 신뢰할 수 있는 모델의 기반이 됩니다.
라벨링 및 불균형:
- 명확한 라벨링 가이드라인을 사용하고 QA 샘플링을 수행합니다. 주석자 간 일치도를 추적합니다.
- 층화 샘플링, 가중치 재조정 또는 리샘플링으로 클래스 불균형을 해결합니다. 전체 정확도뿐만 아니라 클래스별 정밀도/재현율을 모니터링합니다.
- null 값을 의도적으로 보존합니다. 모델이 숫자 입력을 요구하는 경우, null을 명시적으로 인코딩하고(예: “was_null” 표시자와 함께 0으로 인코딩) 다운스트림 영향을 검증합니다. 유용한 정보가 담긴 결측치를 조용히 삭제하지 않도록 합니다.
과적합 및 일반화:
- 완화 방법으로는 더 다양한 학습 데이터 사용, 더 작은 특성 집합, 더 강한 정규화 등이 있습니다.
- 신경망에는 조기 종료와 교차 검증이 필수적입니다. 아키텍처나 하드웨어 확장이 불가능할 때 서브샘플링을 통해 학습 시간을 줄일 수 있습니다.
거버넌스 및 리니지:
- Vertex ML Metadata, Model Registry, Data Catalog로 리니지를 추적합니다. 데이터 세트 버전, 변환, 하이퍼파라미터, 환경을 기록합니다.
- 승인 워크플로: 배포 전 사람의 승인을 요구하며, Model Registry 상태와 정책 확인 기능이 있는 Cloud Build/Deploy를 사용합니다. 아티팩트는 Artifact Registry에 저장하고, 컨테이너에 서명하며, 단계적 출시를 위해 Binary Authorization을 적용합니다.
모니터링, 드리프트, 재학습:
- 예측 스큐, 특성 드리프트, 성능 저하에 대한 모델 모니터링을 활성화합니다. 분포 측정항목(예: PSI, KL 다이버전스)을 사용하고, 라벨이 나중에 도착하는 경우 실제 값 지연을 고려한 평가를 사용합니다.
- 통계적으로 유의미한 드리프트, SLO 위반 또는 비즈니스 이벤트 기간을 기반으로 재학습 트리거를 설정합니다. 재학습 파이프라인은 자동화하되, 평가 및 편향 확인을 통해 프로모션을 제어합니다.
- 업스트림 스키마 변경으로 인한 조용한 데이터 드리프트를 주의해야 합니다. 스키마 계약을 강제하고 누락되거나 변경된 특성에 대해 알림을 설정합니다.
개인정보 보호를 고려한 설계:
- Data Catalog 정책 태그를 사용하여 데이터를 분류하고, BigQuery에서 열 및 행 수준 보안과 데이터 마스킹 정책을 적용합니다.
- 데이터 수집을 최소화하고, 목적 제한에 따라 데이터 보존 및 삭제 SLA를 구현합니다.
- DLP를 적용하여 데이터를 탐색하고 비식별화합니다. CMEK로 데이터를 암호화하고, VPC Service Controls로 서비스를 격리하며, 세분화된 IAM을 보장하고 최소 권한 원칙에 따라 전용 서비스 계정을 사용합니다.
- 모니터링 및 로깅 시 개인 식별 정보(PII)를 수정하고 불필요한 경우 페이로드 로깅을 피합니다.
벡터 검색, RAG 파이프라인, 분석 서빙 레이어
최신 검색 및 서빙 시스템에는 벡터 네이티브 구성 요소와 검증된 분석 저장소가 모두 필요합니다.
벡터 검색 및 임베딩:
- 대규모의 지연 시간이 짧은 최근접 이웃 검색에는 Vertex AI Vector Search 또는 BigQuery 벡터 검색을 사용하고, 앱 중심의 시맨틱과 트랜잭션 요구사항에는 pgvector를 사용하는 AlloyDB for PostgreSQL을 선택합니다.
- Vertex Pipelines를 사용하여 임베딩을 일괄 생성하고, 벡터를 밀집된 메타데이터와 함께 저장하며, 지연 시간을 제한하기 위해 지능적으로 파티셔닝하고 인덱싱합니다(예: 문서 도메인별).
검색 증강 생성(RAG) 파이프라인:
- Dataflow 또는 Dataproc을 통해 콘텐츠를 수집하고, 텍스트를 추출, 청크화, 임베딩하여 벡터 저장소에 인덱싱합니다. 추적성을 위해 원본 소스(source-of-truth) 참조를 유지합니다.
- 최신성 전략을 구현합니다: 주기적인 재임베딩, 소스 업데이트 시 무효화, 인덱스 교체 전 품질 검증을 위한 카나리 인덱싱.
- 검색 품질(적중률, MRR, nDCG)과 콘텐츠 안전성을 모니터링하고, 제한된 데이터에 대한 가드레일 및 액세스 제어를 시행합니다.
분석 서빙 레이어 및 데이터 제품:
- BigQuery에서 bronze/silver/gold 데이터 제품을 큐레이션하고, 파티셔닝과 클러스터링을 사용하여 스캔 비용을 최소화합니다. 구체화된 뷰(Materialized view)는 일반적인 쿼리를 가속화할 수 있습니다.
- 지연 시간이 짧은 키-값 또는 높은 QPS의 카운터에는 잘 분산된 행 키를 사용하는 Bigtable을 사용하고, 접두사에 솔팅(salting) 또는 해싱을 적용하여 핫스팟(hot-spotting)을 방지합니다.
- OLTP 워크로드와 강력한 일관성이 필요한 경우 Cloud SQL 또는 Spanner를 사용하고, 예약된 ELT를 통해 분석 작업을 BigQuery로 오프로드합니다.
- 스트리밍 설계: Pub/Sub → Dataflow → BigQuery/Bigtable(자동 확장 사용). 백로그 및 워터마크 측정항목을 모니터링합니다. 기본 자동 확장은 비용을 제어하면서 탄력적인 부하를 처리하기에 충분합니다.
운영 팁:
- 특정 BigQuery 테이블 삽입 작업에 대한 알림을 트리거하려면, 고급 필터를 사용하여 관련 Cloud Logging 항목을 Pub/Sub으로 내보낸 다음 해당 구독에서 알림을 연결합니다: resource.type=“bigquery_resource” protoPayload.methodName=“jobservice.jobcompleted” protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId=“target_table”
실제 문제 시나리오
패션 마켓플레이스인 AcmeStyle은 시간별로 변하는 사용자 선호도에 맞춰 사이트 내 추천을 최신 상태로 유지하고자 합니다. 클릭 및 구매 행동을 스트리밍하고 이를 카탈로그 컨텍스트와 혼합하여 짧은 지연 시간과 제어된 비용으로 추천을 새로고침해야 합니다.
접근 방식:
- 스트림 수집 및 품질 게이트
- 웹 및 모바일의 이벤트 수집에 Pub/Sub을 사용합니다. Dataflow 스트리밍 작업은 스키마를 검증하고, 카탈로그 데이터로 보강한 후 다음을 기록합니다:
- 정리된 이벤트를 오프라인 분석 및 학습을 위해 BigQuery 파티션된 테이블(event_date)에 기록합니다.
- 집계된 사용자-특성 업데이트를 user_id를 키로 하여 Vertex AI Feature Store(온라인 스토어)에 기록합니다. 근거: Pub/Sub은 생산자와 소비자를 분리합니다. Dataflow는 멱등성 있는 업서트(upsert)로 정확히 한 번(exactly-once) 시맨틱을 제공합니다. 파티션된 BigQuery는 비용과 보존을 관리합니다. 온라인 스토어는 밀리초 단위의 조회를 가능하게 합니다.
- 특정 시점 정확성(point-in-time correctness)을 갖춘 특성 정의
- 명시적인 event_time을 사용하여 롤링 CTR, 브랜드 선호도, 최신성과 같은 특성을 정의하고 다음 위치에 구체화합니다:
- feature_ts <= label_ts로 제한된 시간적 조인(temporal join)을 사용한 학습을 위해 BigQuery의 오프라인 스토어에 구체화합니다.
- 오래된 값(stale value)을 방지하기 위해 TTL이 설정된 서빙용 온라인 스토어에 구체화합니다. 근거: 명확한 타임스탬프는 레이블 유출(label leakage)을 방지합니다. 오프라인/온라인에 걸쳐 일관된 정의는 학습-서빙 패리티(training-serving parity)를 보장합니다.
- 모델 학습 및 리니지(lineage)
- 다음 작업을 수행하는 Vertex AI Pipeline을 구현합니다:
- 시간 창(예: 최근 30일)을 사용하여 BigQuery에서 학습 데이터를 추출합니다.
- 서빙에 사용된 것과 동일한 변환을 적용합니다(공유 라이브러리 사용).
- 순위 모델을 학습하고, 메타데이터(데이터세트 스냅샷 ID, 코드 커밋 SHA, 하이퍼파라미터)를 ML Metadata에 로깅하며 모델을 Model Registry에 등록합니다. 근거: 파이프라인은 실행을 재현 가능하고 감사 가능하게 만듭니다. Model Registry는 버전과 승인을 중앙에서 관리합니다.
- 배치 및 온라인 예측 경로
- 백필(backfill) 및 A/B 테스트를 위해 전체 카탈로그-사용자 매트릭스를 점수화하여 BigQuery에 기록하는 야간 배치 예측을 수행합니다.
- 다음 작업을 수행하는 Vertex 엔드포인트를 통한 온라인 예측을 수행합니다:
- 온라인 스토어에서 최신 사용자 특성을 가져옵니다.
- 재고 및 가용성으로 필터링된 상위 K개의 후보를 점수화합니다.
- 급증하는 트래픽을 흡수하기 위해 짧은 기간 동안 결과를 캐시합니다. 근거: 배치는 폭넓은 적용 범위와 비용 효율성을 제공하고, 온라인은 가치가 높은 세션의 최신 행동을 포착합니다. 자동 확장 엔드포인트는 지연 시간 SLO를 유지하고, 캐싱은 테일 레이턴시(tail latency)와 비용을 줄입니다.
- 모니터링, 드리프트 감지, 재학습 정책
- 특성 드리프트 및 예측 편향에 대한 모델 모니터링을 활성화하고, 학습 기준선과 분포를 비교합니다. CTR/CVR SLO를 추적하고 성능 저하 시 알림을 보냅니다.
- 과거 데이터와 신규 데이터를 결합한 롤링 윈도우를 사용하여 지속적으로 재학습합니다. 드리프트가 임계값을 초과하거나 최소 주 1회 재학습을 트리거합니다. 근거: 패션 트렌드는 빠르게 변합니다. 과거 데이터와 최신 신호를 혼합하면 최신 상태를 유지하면서 학습을 안정화할 수 있습니다.
- 개인정보 보호 및 거버넌스
- Data Catalog 정책 태그로 PII 열을 태그하고, BigQuery에서 열 수준 보안을 적용하며 필요한 경우 마스킹합니다. 원시 이벤트에 DLP 스캔을 실행하고 필요한 필드만 저장합니다.
- Model Registry 승인 상태와 통합된 Cloud Build 트리거를 통해 스테이징에서 프로덕션으로 모델을 승격할 때 사람의 승인을 요구합니다. 근거: 최소 권한 액세스는 위험을 줄입니다. 배포에 게이트를 설정하면 규정 준수와 안전을 보장합니다.
- 비용 및 용량 제어
- BigQuery 예약을 사용하여 학습 기간 동안 예측 가능한 슬롯 용량을 보장합니다.
- 백로그에 따라 Dataflow 작업자를 자동으로 확장하고, 핫스팟을 방지하기 위해 user_id 접두사를 해싱하여 특성 저장소의 핫 키를 샤딩합니다. 근거: 예측 가능한 용량은 경합을 방지합니다. 자동 확장은 지출을 수요에 맞춥니다. 균형 잡힌 키는 짧은 지연 시간의 업데이트를 유지합니다.
이 설계는 서빙을 위한 스트리밍 특성과 최신 데이터에 대한 정기적인 재학습을 통합하여 추천을 최신 상태로 유지하는 동시에, 대규모 환경에서 정확성, 거버넌스, 예측 가능한 성능을 유지합니다.
← 워크플로 오케스트레이션 및 파이프라인 자동화 · 모든 도메인 · 데이터 거버넌스 →
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →