피드로 돌아가기
How I built a fully offline AI assistant on Android with Gemma 4 E2B
Dev.toDev.to
AI/ML

Gemma 4 E2B 기반 1.5GB 온디바이스 AI 비서 설계 및 구현

How I built a fully offline AI assistant on Android with Gemma 4 E2B

Manoj H M2026년 5월 24일11advanced

Context

Cloud LLM 기반 에이전트의 고질적인 네트워크 지연, 호출 비용, 오프라인 작동 불가 문제를 해결하기 위한 온디바이스 아키텍처 탐색. 특히 모바일 기기의 제한적인 RAM(1.5~2GB 가용 메모리) 환경에서 멀티모달 기능을 유지하며 구동 가능한 최적의 모델 크기와 양자화 전략 확보가 핵심 과제임.

Technical Solution

  • RAM 제약 해결을 위해 INT4 양자화가 적용된 1.5GB 규모의 Gemma 4 E2B 모델 채택으로 OOM 방지 및 가용 메모리 최적화
  • MediaPipe LLM API 및 LiteRT-LM 기반의 flutter_gemma 플러그인을 통한 Vision 입력 네이티브 처리 및 멀티모달 파이프라인 구축
  • APK 용량 최적화를 위해 Gradle packaging 설정을 통한 미사용 WebGPU 및 Image Generator 네이티브 라이브러리(*.so) 제거로 185MB에서 152MB로 경량화
  • 임베딩 모델로 Gecko 110M을 선택하여 EmbeddingGemma 300M 대비 3배의 경량화를 달성하며 PDF RAG 성능 유지
  • sqlite-vec 및 HNSW 인덱스를 활용한 완전 오프라인 벡터 저장소 구축 및 Syncfusion 기반 PDF 텍스트 추출 파이프라인 설계
  • LLM을 Intent Classification 레이어로 활용하여 구조화된 JSON을 생성하고, Kotlin MethodChannel을 통해 Android Native Intent로 연결하는 도구 실행 구조 설계

- 모바일 LLM 도입 시 타겟 기기의 실제 가용 RAM을 확인하고 INT4 수준의 양자화 적용 검토 - 멀티모달 라이브러리 도입 시 미사용 네이티브 바이너리를 Gradle exclude로 제거하여 배포 크기 최소화 - RAG 구현 시 단순 유사도 검색의 한계를 인지하고, 쿼리의 의미적 중첩이 낮은 경우를 대비한 폴백 전략 수립 - LLM의 출력을 구조화된 JSON으로 제한하여 네이티브 API 호출의 결정론적 실행 보장

원문 읽기