Unity 온디바이스 RAG 앱
llama.cpp를 C-ABI 래퍼로 Unity에 직접 통합해 Galaxy S25에서 문서 질의응답(RAG)을 돌리는 Android 앱
2026
Summary요약
문제
LLM과 임베딩 모델을 서버 없이 Android 단말 안에서 돌려 문서 질의응답을 하는 앱이 목표였습니다. 기존 Unity용 LLM 패키지가 쓰려던 모델 아키텍처를 지원하지 않아 런타임을 직접 붙여야 했고, 임베딩 모델 2.2GB와 IL2CPP AOT 제약이 걸림돌이었습니다.
역할
개인 프로젝트로 전 과정을 구현했습니다. llama.cpp를 C-ABI 래퍼와 P/Invoke로 Unity에 직접 통합하고 Android arm64로 빌드했으며, 토큰 스트리밍 콜백을 static으로 두어 IL2CPP AOT에 대응했습니다. KURE-v1 임베딩 모델을 ONNX FP16으로 변환하고 SentencePiece 토크나이저를 C#으로 포팅했습니다. LangGraph로 설계한 파이프라인을 C# 상태기계로 이식하고, 검색 점수 임계값 라우팅과 API 폴백, 골든 Q&A 자동 판정을 넣었습니다.
성과
임베딩 모델을 2.2GB에서 1.1GB로 경량화했고, Galaxy S25 실기기에서 검증했습니다.