2024 구글IO 강의 세번째 순서, Android 온디바이스 생성형 AI의 작동원리에 관한 내용을 정리해보겠습니다.
온디바이스 생성형 AI는 사용자의 스마트폰, 태블릿, 컴퓨터에서 서버 요청 없이 명령처리가 가능합니다.
이 온디바이스 생성형 AI의 핵심 장단점을 뽑아보자면,
우선 장점으로 서버요청 없이 디바이스 내부에서 실행되는 기능이기 때문에 민감한 사용자 데이터를 처리할 때 외부 전송 없이 디바이스 내에서 로컬로 처리된다는 점입니다.
그리고 인터넷 연결이 미약한 환경 또는 앞으로 우리가 예측할 수 없는 신호 감소 환경에서도 완전한 기능을 제공할 수 있다는 것입니다.
마지막으로 서버에 요청하는 것이 아니기 때문에 추가 비용이 발생하지 않는다는 것입니다.
그리고 단점으로는, 역시 클라우드 기반 AI 대비 낮은 연산능력을 뽑을 수 있습니다. 클라우드 기반의 AI는 필요에 따라서 GPU 서버를 증설하거나 기타 서버 성능을 증설하는 방법으로 쉽게 해결이 가능하지만, 모바일의 경우 단말기마다 성능차이가 너무 다양하고 또 모바일 단말기의 성능은 클라우드 서버를 따라가지 못하는 만큼 이로인한 결과 반환 성능에 있어 차이가 있을 수 밖에 없습니다.
즉, 이러한 장단점들이 시사하는 바로는 정확도 측면에서 미세한 조정이 필요하다는 것입니다. 그리고 사용자가 필요로 하는 모든 상황에 적합하지 않을 수 있다는 점도 시사하고 있습니다.
그러면 온디바이스 생성형 AI는 어떤 환경에서 활용했을 때 가장 좋을까요?
예를 들자면 텍스트를 요약하거나 개요를 제공하는 등 컨텐츠를 소비하는 영역과, 메세지 앱 내에서 답장 내용을 제안하거나 텍스트로 표현할 수 있는 톤이나 메세지 스타일을 변경하는 등 컨텐츠를 생성하는 영역, 대화 또는 텍스트에서 내포된 내용들을 토대로 컨텐츠를 분류하는 환경등이 있을 겁니다.
그리고 안드로이드에서 이러한 환경을 제공해주기 위해 Gemini Nano라는 모델을 사용하게 됩니다.
Gemini Nano는 구글의 Gemini 모델 중 온디바이스용으로 개발된 Gemini 모델입니다. 만약 개발자가 개발하고 있는 앱에 안드로이드 단말기 내에 AI 기능을 사용하고자 할 때 이 Gemini Nano 모델을 사용하게 됩니다.
Gemini Nano는 최소 안드로이드 14 이상 운영체제에 탑재된 AICore라는 기능을 사용해서 동작하게 되구요, 실제 개발자는 Google AI Edge SDK를 사용해 AICore에 접근할 수 있다고 합니다.
이 AICore는 모든 안드로이드 단말기에서 되는 것이 아니라 하드웨어의 GPU 및 NPU 성능도 보장되어야 하기 때문에 현재 작성시점 기준으로 구글의 Pixel 8 Pro와 삼성의 갤럭시S24 시리즈 단말기에서만 호환이 가능하다고 합니다.
본 내용은 강의 내용을 제가 최대한 번역하고 요약해서 작성한 내용입니다.
저와 같이 평상시 모바일 개발을 하시는 분들이라면 보통 기능들은 물론이고 만약 이런 온디바이스 AI 기능을 구축하고자 할 때 모델 배포, 성능, 메모리 이슈등을 고민하지 않을 수 없을 겁니다.
하지만 이러한 문제를 AICore를 통해 해결할 수 있다고 이 강의에서 소개했습니다.
AICore는 AI모델을 보다 효율적으로 사용할 수 있도록 설계된 안드로이드 시스템 기능입니다. 이 AICore는 모델 관리, 실행 시간, 보안 기능 등을 처리해서 개발자가 개발한 앱에 AI를 통합하는 작업을 간소화한다고 합니다.
AICore는 기본적으로 Gemini Nano 모델과 하드웨어 가속장치를 사용해 각 앱을 대표해서 모든 상호 통신을 핸들링하는 원리로 작동합니다. 따라서 앱에서는 제체 모델을 연결할 필요 없이 생성형 AI 워크로드에서 돌아갈 수 있게 SDK만 연결하면 됩니다.
그리고 AICore는 각 단말기 별로 최적화된 시스템 이미지 형태로 존재하기 때문에 사용자는 구글 플레이에서 자동 업데이트만 활성화하면 AICore 업데이트에 따른 AI 모델을 직접 다운받지 않아도 됩니다.
위 사진이 바로 AICore의 아키텍처 다이어그램입니다.
AICore에 있어서 가장 중요한 블록은 바로 Gemini Nano 블록입니다. AICore는 미세조정을 위한 레이어인 Low-Rank Adaptation(LoRA)를 포함하고 있습니다. LoRA는 사용자의 사용방향에 맞춰 Gemini Nano 모델을 미세조정하는 기능을 담당합니다. 즉, 이 LoRA를 통해 AI 모델을 미세조정하면 앱에서는 같은 기능이라도 사용자의 니즈에 맞춘 맞춤형 AI 기능으로 제공할 수 있다는 뜻입니다.
마지막으로 AICore는 사용자가 입력한 프롬프트 내용과 결과를 클라이언트 앱에 반환되기 전 안드로이드 자체 보안 필터를 거쳐 반환되도록 하고 직접적으로 인터넷 접속이 불가능하게 하는 등 보안조치를 기반으로 설계했다고 합니다.
올해초 갤럭시S24 시리즈가 출시되었을 때 온디바이스 AI와 관련해서 구글과 협력해 단말기 내 기능을 한층 강화했다는 내용은 알고 있었지만, 대략적이나마 기본 원리를 깨우치고 갈 수 있어서 올해 제가 들은 구글IO 강의 중에서 가장 유익한 강의였던 것 같습니다.
다음에는 Getpack Glance를 사용한 Android 위젯 구축에 대한 내용을 작성하도록 하겠습니다.