카테고리 없음

갤럭시 폰에 구글 미디어파이프 LLM Inference 구동하기

Y00nseo 2024. 8. 29. 21:39

윈도우 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 포맷으로 변환해야 한다 (아래 노트북 참고)

https://colab.research.google.com/github/googlesamples/mediapipe/blob/main/examples/llm_inference/conversion/llm_conversion.ipynb?hl=ko#scrollTo=lr1N_v3yUk9E

 

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