Aether: Gemma 4로 구축한 로컬 Android 어시스턴트
요약
Gemma 4 E2B 모델을 활용하여 구축한 로컬 Android 어시스턴트 'Aether'를 소개합니다. 클라우드 연결 없이 기기 내에서 모든 텍스트 생성을 처리하며, 개인정보 보호와 오프라인 작동에 최적화되어 있습니다.
핵심 포인트
- Gemma 4 E2B 모델과 LiteRT를 사용하여 로컬 추론 구현
- 4비트 가중치 적용으로 메모리 점유율을 1.5GB 미만으로 유지
- 128K 컨텍스트 윈도우와 하이브리드 어텐션으로 빠른 처리 속도 확보
- 네이티브 함수 호출을 통한 향후 Android 제어 기능 확장 계획
이 게시물은 Gemma 4 Challenge: Build with Gemma 4를 위한 제출물입니다.
내가 만든 것
저는 Aether를 만들었습니다. 이것은 로컬 Android 어시스턴트입니다. 기존의 기본 클라우드 어시스턴트를 완전히 오프라인 방식의 대안으로 대체합니다. 평소와 똑같이 실행할 수 있습니다. 전원 버튼을 길게 누르면 Aether가 즉시 나타납니다. 모든 과정은 기기에서 직접 이루어집니다.
이 앱은 ACTION_ASSIST 인텐트(intent)를 사용하여 기본 Android 어시스턴트로 네이티브하게 등록됩니다. 음성 입력을 위해 Android에 내장된 음성 인식 기능을 사용합니다.
기반으로는 오픈 소스인 FriedGPT 코드베이스를 사용했습니다. 로컬 추론 (local inference)을 위한 깨끗한 경계를 만들기 위해 기존의 모든 클라우드 API 경로를 제거했습니다. 사용자의 채팅 기록과 텍스트 데이터는 완전히 휴대폰에만 머무릅니다.
코드
Aether는 Apache 2.0 라이선스 하에 오픈 소스로 제공됩니다. GitHub에서 아키텍처 (architecture)와 마이그레이션 경로를 확인할 수 있습니다:
https://github.com/arjuncodess/aether
Gemma 4를 어떻게 사용했는가
이 프로젝트를 위해 Gemma 4 E2B 모델을 사용했습니다. E2B는 Effective 2 Billion (유효 20억 파라미터)을 의미합니다. Hugging Face에서 LiteRT-LM 버전을 다운로드했습니다. 앱은 이 모델을 로컬 저장소에서 직접 로드합니다.
Gemma 4는 휴대폰에서 직접 모든 텍스트 생성 (text generation)을 처리합니다. 이는 전체 채팅 경험의 핵심 두뇌 역할을 합니다. 새로운 아키텍처는 거대한 128K 컨텍스트 윈도우 (context window)를 특징으로 합니다. 이는 모델이 대화의 흐름을 놓치지 않고 기기 로컬 채팅 기록에 있는 이전 메시지들을 쉽게 기억할 수 있음을 의미합니다.
이 모델이 모바일에 완벽하게 적합한 이유
휴대폰에서 모델을 실행하는 것은 어렵습니다. 엄격한 메모리 제한이 있기 때문입니다. 앱이 RAM을 너무 많이 사용하면 Android 시스템은 즉시 해당 앱을 종료합니다.
Gemma 4 E2B는 이 문제를 완벽하게 해결합니다. LiteRT를 통해 레이어별 임베딩 (Per-Layer Embeddings)과 4비트 가중치 (4-bit weights)를 사용합니다. 이를 통해 메모리 점유율 (memory footprint)을 1.5GB 미만으로 유지합니다. 덕분에 다른 앱을 열어둔 상태에서도 모델이 백그라운드에서 부드럽게 실행됩니다.
또한 하이브리드 어텐션 메커니즘 (hybrid attention mechanism)을 사용합니다. 이는 로컬 슬라이딩 윈도우 (local sliding windows)와 글로벌 어텐션 (global attention)을 혼합한 방식입니다. 이를 통해 문맥 (context)을 희생하지 않으면서도 빠른 처리 속도를 얻을 수 있습니다. 덕분에 비행기 모드에서도 즉각적으로 작동하는 스마트한 어시스턴트를 경험할 수 있습니다.
향후 로드맵 (Future Roadmap)
현재 버전은 단지 첫 번째 단계일 뿐입니다. 추적하고 수정해야 할 버그가 아주 많습니다. UI 디자인을 개선하고 이를 매일 사용하는 제품 (daily-driver product)으로 다듬고 싶습니다.
다음 주요 기능은 도구 레이어 (tool layer)를 추가하는 것입니다. Gemma 4는 기본적으로 네이티브 함수 호출 (native function calling)을 지원합니다. 저는 이러한 기능들을 오프라인 Android 동작에 매핑할 계획입니다. 곧 Aether는 알람을 설정하고, 앱을 실행하며, 캘린더를 관리하고, 클립보드를 제어하게 될 것입니다.
로컬 모델에 시스템 접근 권한을 부여하는 것은 믿을 수 없을 정도로 안전합니다. 이는 당신의 개인 데이터를 거대 AI 기업에 넘겨주는 것보다 훨씬 더 나은 선택입니다.
로컬 모델은 당신의 삶을 프라이빗하게 유지해 줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기