한국어를 가장 잘하는 RAG 임베딩 모델인 BGE-M3를 처음부터 구현하기
(blog.sionic.ai)한국어를 가장 잘 하는 RAG 전용 임베딩 모델인 BGE-M3를, Huggingface에서 제공하는 Python 구현체를 넘어, TensorFlow/Keras를 사용해 엔터프라이즈 환경에서 대규모 서빙이 가능한 형태로 재구현해보는 블로그 글입니다.
- 엔터프라이즈 서빙 지원
- Java/Scala 기반 Hadoop-Spark 환경에서 대규모 분산 처리 가능
- Kotlin/Spring Boot를 통한 고성능 서버 구현
- TensorFlow Serving을 통한 대규모 프로덕션 환경 지원
- TensorFlow Lite를 통한 모바일/임베디드 환경 지원
- 모델 구조의 단순화
- Dense Layer와 LayerNorm만으로 핵심 구조 구현
- 복잡한 Python 의존성 제거
- 경량화된 구조로 높은 처리량 확보
- 구현 특징
- Word/Position/Token Type 임베딩을 기본 Dense Layer로 구현
- 24개의 Transformer 블록을 순수 TensorFlow 연산으로 구성
- Multi-Head Self-Attention을 커스텀 구현하여 성능 최적화
- 실제 활용 사례
- 대규모 Hadoop 환경에서의 분산 임베딩 처리
- Spring Boot 기반 연합 학습 및 RAG 서비스
- Apple Neural Engine 활용 모바일 추론
- 엔터프라이즈급 TensorFlow Serving 배포
글에서 설명하는 구현 방식은 Python 종속성을 제거하고 TensorFlow의 네이티브 기능만을 활용하여, 대규모 엔터프라이즈 환경에서 안정적인 서비스가 가능한 것이 특징입니다.
글 자체는 그렇게 어렵지 않은데, 설명에 첨부된 코드들이 다소 불완전해서, 해당 방식으로 구현된 전체 코드가 공유 되어 있으면 더 좋을 것 같네요.