Google AI Edge 스택으로 파인 튜닝된 Gemma 270m 모델 배포

이 튜토리얼에서는 Android 샘플 앱에 맞춤 Gemma 모델을 배포하는 엔드 투 엔드 프로세스를 안내합니다.

이 튜토리얼에서는 다음 단계를 진행합니다.

  1. 미세 조정된 모델로 시작
  2. AI Edge Torch 라이브러리를 사용하여 미세 조정된 모델을 변환합니다.
    1. 이렇게 하면 HuggingFace 체크포인트가 .litertlm 파일로 변환됩니다.
  3. 파인 튜닝된 모델의 품질 평가
  4. adb 명령어를 실행하여 맞춤 모델을 테스트 기기에 푸시합니다.
    1. 이렇게 하면 .litertlm 형식의 모델이 로컬 테스트를 위해 Android 기기로 푸시됩니다.
  5. 해적 Gemma 샘플 앱을 실행합니다.
    1. 그러면 LiteRT-LM Kotlin 라이브러리를 사용하여 샘플 Android 앱에서 미세 조정된 모델에 대한 추론이 실행됩니다.

1단계: 미세 조정된 모델로 시작하기

이 튜토리얼에서는 미세 조정된 모델로 시작합니다. 기본 모델과 미세 조정된 모델 간의 명확한 차이를 보여주기 위해 기본 Gemma270m 모델을 가져와 해적처럼 말하도록 미세 조정했습니다.

사전 미세 조정된 Pirate Gemma 모델은 https://huggingface.co/erintwalsh/pirate-gemma에서 확인할 수 있습니다.

모델 미세 조정에 관한 자세한 내용은 Gemma CookbookUnsloth 가이드를 참고하세요.

2단계: 명령줄에서 커스텀 모델 변환 및 실행

이제 HuggingFace에 커스텀 모델을 게시했으므로 AI Edge Torch 라이브러리를 사용하여 해당 모델을 다운로드하고 .litertlm 형식으로 변환할 수 있습니다.

기본 요건

기기에 uv 도구와 Python 3.11 이상이 설치되어 있어야 합니다.

모델 변환

uv tool install litert-torch-nightly

litert-torch export_hf \
  --model=[YOUR-HF-USERNAME]/pirate-gemma \
  --output_dir=/tmp/pirate-gemma \
  --externalize_embedder

로컬에서 모델 실행

uv tool install litert-lm

litert-lm run  \
  /tmp/pirate-gemma/model.litertlm \
  --prompt="Where is the nearest buried treasure?"

3단계: 모델 품질 평가

미세 조정 품질 평가

모델을 로컬에서 실행한 후에는 AI Edge 평가 CLI 도구를 사용하여 미세 조정의 LiteRT-LM 모델 품질을 분석할 수 있습니다. 이 도구는 공개 데이터 세트를 사용하여 원래 HF 모델과 변환된 LiteRT-LM 모델 간의 변환 후 품질 패리티 검증을 기본적으로 제공합니다. 공개 데이터 세트 외에도 자체 데이터와 특정 측정항목을 사용하여 맞춤 평가 작업을 만들 수 있습니다. LLM-as-a-Judge를 사용하여 이 미세 조정된 모델을 평가하는 맞춤 작업 예시를 참고하세요.

uv tool install ai-edge-eval

GEMINI_API_KEY="your_actual_api_key_here"
ai_edge_eval \
  --framework custom \
  --runner litert-lm \
  --model-path /path/to/your/model.litertlm \
  --custom-tasks-file pirate_gemma_custom_task.py \
  --tasks pirate_gemma_eval \
  --output-dir /tmp/results

4단계: 로컬 모델을 테스트 기기에 푸시

이러한 adb 안내를 사용하여 방금 실행한 모델을 실제 Android 기기에 푸시합니다.

adb shell rm -r /data/local/tmp/llm/ # Remove any previously loaded models

adb shell mkdir -p /data/local/tmp/llm/

adb push /tmp/pirate-gemma/model.litertlm  /data/local/tmp/llm/pirate-gemma.litertlm

5단계: Captain Gemma 샘플 앱으로 맞춤 모델에서 추론 실행

Captain Gemma는 기기에서 모델과 인터페이스하는 방법을 보여주는 앱입니다. GitHub에서 찾아 저장소를 클론하여 Android 스튜디오에서 실행합니다.

Captain Gemma 샘플 앱을 열고 기기에서 실행합니다. Android Compose 요소를 사용하여 Android 기기에서 미세 조정된 모델에 대한 추론을 실행하는 방법을 보여주는 앱입니다. 앱은 사용자로부터 텍스트 입력을 받아 미세 조정된 Gemma 모델의 해적 지혜를 반환합니다.

방금 .litertlm 파일을 푸시한 테스트 기기에서 앱을 실행합니다. 질문을 입력하면 흰색 말풍선에 모델의 출력이 표시됩니다.

샘플 앱의 기본 화면

샘플 코드

Captain Gemma 샘플 코드에서 LiteRT-LM API를 사용하여 모델을 설정하고 추론을 실행하는 예를 참고하세요.

6단계: 모델 배포

맞춤 모델의 로컬 테스트를 완료하고 배포할 준비가 되면 다음과 같은 모델 호스팅 옵션이 있습니다.

  • .litertlm 파일을 이전에 만든 HuggingFace 모델 저장소에 푸시하고 HuggingFace API를 사용하여 앱에서 다운로드할 수 있습니다.
  • 앱에서 모델 URL을 가져오고 Android 또는 iOS용으로 다운로드할 수 있는 API를 제공하는 Firebase와 같은 호스팅 서비스를 사용할 수 있습니다.