AI
Apache Beam으로 머신러닝 데이터 파이프라인 구축하기 3편 - RunInference로 모델 추론하기
두줄요약
Apache Beam RunInference로 Dataflow 기반 대규모 모델 추론 파이프라인을 구성하는 방법을 소개했습니다.\n가변 길이 입력의 패딩 처리와 배치·GPU 지표 관리 포인트를 설명합니다.
구조와 흐름
- Apache Beam의 RunInference를 통한 Dataflow 기반 대규모 Bulk Inference 파이프라인 구성
- ModelHandler의 모델 로드·입력 배치 처리와 RunInference PTransform의 실제 추론 수행 분리
- PyTorch·TensorFlow·Scikit-learn 모델 지원 및 KeyedModelHandler를 통한 입력 키 보존
선택 이유
- Shared Class, BatchElements, DoFn을 직접 조합하던 기존 구현의 복잡도 추상화
- 데이터 규모에 따른 분산 처리와 GPU 리소스 할당을 비즈니스 로직에서 분리
주의할 점
- 기본 PyTorch 핸들러의 torch.stack은 가변 길이 문장 Tensor 배치에 부적합
- 언어 모델 입력에는 pad_sequence 기반 패딩을 포함한 커스텀 run_inference 로직 필요
- 배치 크기 1 설정은 GPU 활용률과 파이프라인 성능 저하 가능성
성능/운영 포인트
- ModelHandler의 batch_elements_kwargs로 최소·최대 배치 크기 조정
- Dataflow Resource Hint를 통한 GPU 타입·개수·메모리 지정
- Dataflow Metrics에서 평균 배치 크기와 모델 추론 시간 확인
