윈도우 os 로컬에서 갤럭시 Z플립 기기로 진행하였습니다.
환경 설정
1. 안드로이드 스튜디오 설치 및 환경설정
아래 링크에서 안드로이드 스튜디오 설치
미디어파이프 llm inference 깃허브에서 사용한 Android Studio Hedgehog 버전으로 설치한다
아래 링크에서 안드로이드 스튜디오의 이전 릴리즈 버전들을 다운할 수 있다
https://developer.android.com/studio/archive
Android 스튜디오 다운로드 자료실 | Android Studio | Android Developers
이 페이지에는 Android 스튜디오 출시 관련 다운로드 자료실이 포함되어 있습니다.
developer.android.com
경로 추가
내 pc > 속성 > 고급 시스템 설정 > 환경 변수
안드로이드 sdk 경로 (C:\Users\username\AppData\Local\Android\Sdk) path에 추가
트러블 슈팅
안드로이드 스튜디오 이전에 설치한 버전이랑 충돌해 둘 다 삭제 후 재설치
2. 미디어파이프 git 해오기
git clone https://github.com/google-ai-edge/mediapipe-samples
vs 코드 터미널에 작업 폴더를 만든다
작업 폴더 루트로 들어가 git한다

3. 안드로이드 스튜디오에서 git 해온 경로의 프로젝트 열기
안드로이드 스튜디오를 연다
Open an existing Android Studio project 선택
mediapipe/examples/llm_inference/android directory 경로 선택
Gradle Sync 할지 묻는 팝업창이 뜨면 ok 버튼 누름

4. 모바일 기기 pc 연결
모바일 기기를 usb로 연결한다
가이드
https://developer.android.com/studio/run/device.html
usb 드라이버 설치
https://developer.android.com/studio/run/oem-usb
Install OEM USB drivers | Android Studio | Android Developers
Discover links to the web sites for several original equipment manufacturers (OEMs), where you can download the appropriate USB driver for your device.
developer.android.com
usb 드라이버가 경로에 없어 따로 다운받음

https://developer.android.com/studio/run/win-usb
Get the Google USB Driver | Android Studio | Android Developers
The Google USB Driver is required to perform adb debugging on Windows with Google devices.
developer.android.com

설치 완료

연결 완료
5. llm 모델 다운
모델은 허깅페이스와 kaggle에서 다운로드 할 수 있다
허깅페이스에서 모델 다운 시 TF lite 포맷으로 변환해야 한다 (아래 노트북 참고)
llm_conversion.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
캐글은 이미 미디어파이프에 적합한 형식이라 바로 쓸 수 있다
https://www.kaggle.com/models/google/gemma/tfLite
Google | Gemma | Kaggle
Gemma is a family of lightweight, open models built from the research and technology that Google used to create the Gemini models.
www.kaggle.com
기존 젬마에서 업데이트된 gemma 1.1 - 2b - cpu - int8 을 llm inference 경로 안에 다운해준다.
#!/bin/bash
# Export your Kaggle username and API key
# export KAGGLE_USERNAME=
# export KAGGLE_KEY=
curl -L -u $KAGGLE_USERNAME:$KAGGLE_KEY\
-o ~/Downloads/model.tar.gz\
https://www.kaggle.com/api/v1/models/google/gemma/tfLite/gemma-2b-it-cpu-int8/1/download
캐글 설정에서 api 키 만들기
유저네임과 키 정의해주고 코드 실행

코드 에러나서 수정
#!/bin/bash
# Export your Kaggle username and API key
KAGGLE_USERNAME={jangyoonseo}
KAGGLE_KEY={kaggle.json}
curl -L -u $KAGGLE_USERNAME:$KAGGLE_KEY\
-o ~/Downloads/model.tar.gz\
https://www.kaggle.com/api/v1/models/google/gemma/tfLite/gemma-2b-it-cpu-int8/1/download
$env:KAGGLE_USERNAME = "jangyoonseo"
$env:KAGGLE_KEY = "kaggle.json"
$kaggleCreds = "$($env:KAGGLE_USERNAME):$($env:KAGGLE_KEY)"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($kaggleCreds))
Invoke-WebRequest -Uri "https://www.kaggle.com/api/v1/models/google/gemma/tfLite/gemma-2b-it-cpu-int8/1/download" `
-Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} `
-OutFile "$env:USERPROFILE\Downloads\model.tar.gz"

에러남
캐글 가이드 보고 캐글 api 키 경로 변경

6. 모바일 기기 내 모델 삽입
MODEL_PATH = '/data/local/tmp/llm/model.bin