TL;DR
BigMoeOnEdge는 모바일 RAM 한계보다 큰 MoE 모델을 실행하기 위해 각 토큰이 실제로 라우팅하는 전문가만 플래시에서 스트리밍해 가져오는 접근을 적용했으며, 라우터 훅이 선택된 전문가를 관찰하면 리더가 해당 텐서 슬라이스를 스토리지에서 읽어 연산 전에 포인터를 재결합하는 방식으로 동작한다. 안드로이드 폰 실험에서 단순 mmap은 약 0.1 tok/s로 페이지 캐시 스래싱을 보였지만 전문가 스트리밍은 데모 앱에서 3.8 tok/s, CLI에서는 5 tok/s 이상을 관측해 수십배 성능 차이를 확인했고 gpt-oss-120b 같은 대형 모델도 1~2 tok/s로 로드·생성되는 사례가 보고되었다. 구현은 llama.cpp와 gguf·eval-callback API를 통해 공개 리포지토리로 제공되며 스트리밍 출력이 완전 레지던시 방식과 바이트 단위로 동일함을 테스트로 보장해 정합성을 확보했으나 모바일의 메모리 리클레임 동작과 스토리지 I/O 한계가 처리량을 결정하는 주요 제약으로 남아 있어 추가 측정이 필요하다.
실용적 조언
- 모바일에서 동일한 실험을 반복할 경우 mmap과 스트리밍 경로 모두에서 바이트 단위 동일성 검증을 수행해 출력 정합성을 보장해야 한다.
- 데모 앱보다 CLI 경로에서 더 높은 처리량이 관찰되었으므로 초기 성능 실험은 CLI 환경에서도 병행해 측정할 것을 권장한다.
- 모바일 메모리 리클레임 동작이 결과에 큰 영향을 줄 수 있으므로 다양한 안드로이드 기기와 OS 버전에서 페이지 캐시·리클레임 행태를 측정해 병목 요인을 규명해야 한다.
섹션별 상세
이미지 분석

이미지에는 BigMoeOnEdge 인터페이스가 보이며 상단에 선택된 모델 명과 프롬프트 입력창, 중앙에 'Loading model...' 상태가 나타나 토큰 처리 중 모델 로드 단계임을 확인할 수 있다. 하단에는 현재 토큰 처리율이 0.00 tok/s로 표시되고 compute·flash wait·cache mgmt 지연 바가 있어 앱이 실시간으로 성능 계측 데이터를 노출하고 있음을 보여준다.
앱 화면 스크린샷으로 BigMoeOnEdge UI에서 모델 선택, 프롬프트 입력, 로딩 상태와 토큰 처리율 관련 메트릭이 표시되어 있다.
용어 해설
- 혼합 전문가(MoE)(Mixture of Experts (MoE))
- — Mixture of Experts는 각 토큰마다 전체 네트워크가 아니라 일부 '전문가' 서브네트워크만 활성화되는 아키텍처로, 토큰별로 선택된 전문가에 대해서만 계산과 가중치 접근이 이루어지기 때문에 전체 모델의 모든 가중치를 메모리에 상주시킬 필요가 없다. 라우터가 각 층에서 선택한 전문가를 결정하면 해당 전문가의 텐서 슬라이스만 로드해 연산 전 포인터를 재결합하는 방식으로 동작한다. 이 방식을 통해 큰 모델을 제한된 RAM 환경에서 부분적으로 실행할 수 있다.
- 메모리 맵 파일 I/O(mmap)
- — mmap은 디스크 파일을 프로세스 주소 공간에 매핑해 파일 I/O를 가상 메모리 접근으로 처리하는 기법으로, 커널은 페이지 캐시를 통해 매핑된 페이지를 관리한다. 대규모 모델을 mmap으로 그대로 실행하면 페이지 캐시 스래싱이 발생해 실질적인 처리량이 극도로 저하될 수 있다. 게시물에서는 단순 mmap이 안드로이드 환경에서 약 0.1 tok/s 수준으로 성능 병목을 일으킨다고 보고되었다.
- GGUF 파일/API(GGUF)
- — GGUF는 모델 가중치와 메타데이터를 담는 포맷 및 로드 API로, 게시물에서는 gguf API를 통해 스트리밍·평가 콜백 경로로 모든 실행이 흐르도록 구성해 llama.cpp 상위 모듈로 통합했다. 이 구조는 업스트림 업그레이드를 단순 버전 변경으로 유연하게 처리할 수 있게 하며, 파일 단위 접근으로 필요한 텐서 슬라이스만 불러오는 스트리밍 구현과 결합되었다. 공개 API를 이용해 스트리밍된 출력의 정합성을 검증하는 방식이 사용되었다.
- 라우터 훅(Router hook)
- — 라우터 훅은 각 토큰 처리 시 어떤 전문가(expert)가 선택되었는지를 관찰하고 그 정보를 외부로 제공하는 콜백 지점으로, 선택된 전문가 목록을 기반으로 필요한 텐서 슬라이스를 스토리지에서 읽어오는 판독기(reader)를 트리거한다. 이 훅은 토큰별 라우팅 결정과 실제 데이터 로드 시점을 연결해 메모리 거주 단위를 '전문가 단위'로 전환하게 한다. 게시물에서는 이 훅을 통해 필요한 슬라이스만 플래시에서 직접 스트리밍하는 것이 핵심으로 제시되었다.
언급된 도구
로컬 CPU 환경에서 LLM 추론을 수행하는 런타임으로, 게시물에서는 서브모듈로 사용해 스트리밍 실행 경로와 통합했다.
모델 가중치와 메타데이터 로드·호출을 위한 파일/API 포맷으로 스트리밍 구현의 입출력 경로에 사용되었다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.