목록 보기
Apache Beam으로 머신러닝 데이터 파이프라인 구축하기 2편 - 개발 및 최적화
AI

Apache Beam으로 머신러닝 데이터 파이프라인 구축하기 2편 - 개발 및 최적화

스캐터랩 핑퐁
스캐터랩 핑퐁
2022년 6월 9일

두줄요약

Apache Beam 파이프라인을 Composite PTransform으로 모듈화하고 병렬 처리 병목을 최적화했습니다.\nShared Object, 배치, Side Input으로 ML 추론과 Faiss 벡터 검색의 메모리·처리 문제를 다뤘습니다.

구조와 흐름

  • PCollection의 분산 데이터 추상화와 ParDo·Combine 기반 PTransform 처리
  • DoFn 처리 로직을 Composite PTransform으로 묶어 재사용·스키마 추적·테스트 단위 확보
  • ML 추론 결과 임베딩으로 Faiss 인덱스 구축과 벡터 검색 수행

성능/운영 포인트

  • key space 확장으로 병렬도 향상
  • High Fanout 구간의 Reshuffle 적용으로 Fusion 방지와 분산 처리 유도
  • 데이터 축소 작업의 전방 배치, process 내부 과도한 로깅 회피, 외부 통신 배치 처리

해결 방법

  • Shared Class와 단일 SDK 컨테이너 옵션을 통한 모델·인덱스 메모리 사용량 제어
  • BatchElements 기반 입력 배치와 TFX RunInference 활용으로 GPU 활용도 개선
  • 대용량 임베딩 집계 대신 Side Input으로 PCollection 전달 후 Faiss 인덱스 생성

주의할 점

  • Worker 내 다수 Process·Thread 생성에 따른 모델 복제와 GPU OOM 위험
  • Shared Object의 스레드 간 공유와 Process 간 미공유 특성
  • Worker 간 gRPC·protobuf 직렬화 과정의 단일 Element 2GB 제한

다음 읽기

#Apache Beam 주제를 이어서 읽기

Apache Beam으로 머신러닝 데이터 파이프라인 구축하기 3편 - RunInference로 모델 추론하기

Apache Beam RunInference로 Dataflow 기반 대규모 모델 추론 파이프라인을 구성하는 방법을 소개했습니다.\n가변 길이 입력의 패딩 처리와 배치·GPU 지표 관리 포인트를 설명합니다.

스캐터랩 핑퐁
스캐터랩 핑퐁
AI

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...