피드로 돌아가기
Embedding 685 million texts in 32 minutes
Dev.toDev.to
AI/ML

8x A100 기반 6.85억 건 텍스트 임베딩 32분 완성

Embedding 685 million texts in 32 minutes

Coach Danis2026년 5월 20일10advanced

Context

대규모 말뭉치 처리 시 반복적인 필터링과 모델 수정으로 인한 잦은 재처리 필요성 발생. 기존 Python 기반 파이프라인은 GIL로 인한 CPU 병목과 추론 서버 중심의 아키텍처(HTTP/gRPC 오버헤드)로 인해 GPU 리소스를 완전히 활용하지 못하는 한계 노출.

Technical Solution

  • Serving 중심의 API 구조를 배제하고 파일-투-파일(File-to-File) 전용 엔진 설계
  • Python GIL 제약을 극복하기 위해 TensorRT 기반의 컴파일된 추론 경로 채택
  • CPU 코어 전수 할당 및 RAM 최적화를 통한 데이터 전처리-추론-쓰기 단계의 병렬 처리 구현
  • .zst, .gz 압축 파일 직접 읽기 및 .npy, .parquet 출력으로 I/O 효율 극대화
  • 하드웨어 포화 상태 유지를 위해 불필요한 추상화 계층을 제거한 Low-level 최적화 수행

- GPU 워크로드 설계 시 CPU-GPU 간 데이터 전송 단계의 GIL 병목 여부 검토 - 고정된 대량 데이터 처리 시 HTTP/gRPC 오버헤드가 없는 Direct File I/O 구조 고려 - TensorRT 등 컴파일 기반 추론을 통해 런타임 오버헤드 제거 및 처리량 극대화 적용 - 데이터셋 변경 빈도가 높을 경우 '실행 시간'을 '빌드 단계' 수준으로 낮추는 최적화 전략 수립

원문 읽기