Wdrażanie dostrojonego modelu Gemma 270 m za pomocą stosu Google AI Edge

Ten samouczek przeprowadzi Cię przez cały proces wdrażania dostosowanego modelu Gemma w przykładowej aplikacji na Androida.

W tym samouczku:

  1. zaczniesz od dostrojonego modelu,
  2. skonwertujesz dostrojony model za pomocą biblioteki AI Edge Torch,
    1. spowoduje to przekonwertowanie punktu kontrolnego HuggingFace na plik .litertlm,
  3. ocenisz jakość dostrojonego modelu,
  4. uruchomisz polecenia adb, aby przesłać model niestandardowy na urządzenie testowe,
    1. spowoduje to przesłanie modelu w formacie .litertlm na urządzenie z Androidem w celu przeprowadzenia testów lokalnych,
  5. uruchomisz przykładową aplikację Pirate Gemma
    1. spowoduje to użycie biblioteki LiteRT-LM Kotlin do uruchomienia wnioskowania na dostrojonym modelu w przykładowej aplikacji na Androida.

Krok 1. Zacznij od dostrojonego modelu

W tym samouczku zaczniemy od dostrojonego modelu. Aby pokazać wyraźną różnicę między modelem podstawowym a dostrojonym, wzięliśmy podstawowy model Gemma270m i dostroiliśmy go tak, aby mówił jak pirat.

Model Pirate Gemma, który został wstępnie dostrojony, znajdziesz pod adresem https://huggingface.co/erintwalsh/pirate-gemma.

Więcej informacji o dostrajaniu modelu znajdziesz w przewodnikach Gemma Cookbook i Unsloth.

Krok 2. Skonwertuj i uruchom model niestandardowy w wierszu poleceń

Gdy masz już model niestandardowy opublikowany w HuggingFace, możesz użyć biblioteki AI Edge Torch, aby pobrać i przekonwertować ten model do formatu .litertlm.

Wymagania wstępne

Upewnij się, że na urządzeniu masz zainstalowane narzędzie uv i Pythona w wersji 3.11 lub nowszej.

Konwertowanie modelu

uv tool install litert-torch-nightly

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

Lokalne uruchamianie modelu

uv tool install litert-lm

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

Krok 3. Ocena jakości modelu

Ocena jakości dostrajania

Gdy model będzie działać lokalnie, możesz użyć narzędzia AI Edge Evaluation CLI, aby przeanalizować jakość dostrajania modelu LiteRT-LM. To narzędzie oferuje wbudowaną weryfikację równości jakości po konwersji między oryginalnym modelem HF a przekonwertowanym modelem LiteRT-LM z użyciem publicznych zbiorów danych. Oprócz publicznych zbiorów danych możesz tworzyć niestandardowe zadania oceny, używając własnych danych i konkretnych danych. Zobacz przykład zadania niestandardowego do oceny tego dostrojonego modelu za pomocą 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

Krok 4. Przesyłanie modelu lokalnego na urządzenie testowe

Aby przesłać model, który właśnie został uruchomiony, na fizyczne urządzenie z Androidem, postępuj zgodnie z tymi instrukcjami dotyczącymi adb.

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

Krok 5. Uruchamianie wnioskowania na modelu niestandardowym za pomocą przykładowej aplikacji Captain Gemma

Captain Gemma to aplikacja, która pokazuje, jak korzystać z modelu na urządzeniu. Znajdź ją na GitHubie i sklonuj repozytorium, aby uruchomić ją w Android Studio.

Otwórz przykładową aplikację Captain Gemma i uruchom ją na urządzeniu. Jest to aplikacja, która używa elementów Android Compose do demonstrowania uruchamiania wnioskowania na dostrojonym modelu na urządzeniu z Androidem. Aplikacja pobiera tekst od użytkownika i zwraca piracką mądrość dostrojonego modelu Gemma.

Uruchom aplikację na urządzeniu testowym, na które właśnie przesłano plik .litertlm. Wpisz zapytanie i zobacz wynik modelu w białym polu mowy.

Główny ekran przykładowej aplikacji

Przykładowy kod

Przykłady konfigurowania modelu i uruchamiania wnioskowania za pomocą interfejsów API LiteRT-LM znajdziesz w przykładowym kodzie aplikacji Captain Gemma.

Krok 6. Wdrażanie modelu

Gdy skończysz testowanie lokalne modelu niestandardowego i będziesz gotowy do wdrożenia, możesz skorzystać z tych opcji hostowania modelu:

  • Możesz przesłać plik .litertlm do utworzonego wcześniej repozytorium modelu HuggingFace i pobrać go w aplikacji za pomocą interfejsów API HuggingFace
  • Możesz użyć usługi hostingowej, takiej jak Firebase, która udostępnia interfejsy API umożliwiające aplikacji pobieranie adresu URL modelu i pobieranie go na Android lub iOS.