Duże modele językowe na urządzeniu wykorzystujące Keras i TensorFlow Lite

1. Zanim zaczniesz

Jednym z najciekawszych przełomowych przełomów w dziedzinie systemów uczących się są duże modele językowe (LLM). Można ich używać do generowania tekstu, tłumaczenia różnych języków oraz odpowiadania na pytania w wyczerpujący i przydatny sposób. LLM, takie jak Google LaMDA i PaLM, są trenowane na ogromnych ilościach danych tekstowych, co pozwala im poznawać wzorce statystyczne oraz zależności między słowami i wyrażeniami. Dzięki temu mogą generować tekst, który jest podobny do tekstu pisanego przez człowieka, i z dużą dokładnością tłumaczyć różne języki.

LLM są bardzo duże pod względem ilości miejsca na dane i zwykle pochłaniają dużą moc obliczeniową, co oznacza, że są zwykle wdrażane w chmurze i sprawiają, że w przypadku uczenia maszynowego na urządzeniu (ODML) jest to dość trudne ze względu na ograniczoną moc obliczeniową urządzeń mobilnych. Można jednak uruchamiać LLM na mniejszą skalę (np. GPT-2) na nowoczesnych urządzeniach z Androidem i nadal osiągnąć imponujące wyniki.

Oto demonstracja uruchomienia na telefonie Google Pixel 7 Pro wersji modelu Google PaLM z 1,5 miliardem parametrów bez przyspieszania odtwarzania.

PaLM na Pixelu 7 Pro

W ramach tego ćwiczenia w programie poznasz techniki i narzędzia do tworzenia aplikacji opartej na LLM (z użyciem przykładowego modelu GPT-2) przy użyciu:

  • KerasNLP w celu wczytania wytrenowanego modelu LLM
  • KerasNLP w celu dostrajania LLM
  • TensorFlow Lite do konwersji, optymalizacji i wdrażania LLM na Androidzie.

Wymagania wstępne

  • Średniozaawansowani użytkownicy Keras i TensorFlow Lite
  • Podstawowa wiedza o programowaniu aplikacji na Androida

Czego się nauczysz

  • Jak wczytać i dostroić wytrenowany model LLM za pomocą KerasNLP
  • Jak kwantyzować i przekonwertować LLM na TensorFlow Lite
  • Jak uruchamiać wnioskowanie na podstawie przekonwertowanego modelu TensorFlow Lite

Czego potrzebujesz

  • Dostęp do Colab
  • Najnowsza wersja Android Studio
  • nowoczesne urządzenie z Androidem i ponad 4 GB pamięci RAM,

2. Konfiguracja

Aby pobrać kod do tego ćwiczenia z programowania:

  1. Aby przeprowadzić ten moduł, przejdź do repozytorium GitHub.
  2. Kliknij Kod > Pobierz plik ZIP, aby pobrać cały kod do tego ćwiczenia z programowania.

obraz repozytorium

  1. Rozpakuj pobrany plik ZIP, aby rozpakować folder główny examples ze wszystkimi potrzebnymi zasobami.

3. Uruchom aplikację startową

  1. Zaimportuj folder examples/lite/examples/generative_ai/android do Android Studio.
  2. Uruchom Emulator Androida, a następnie w menu nawigacyjnym kliknij execute.png Uruchom.

Uruchamianie i poznawanie aplikacji

Aplikacja powinna uruchomić się na urządzeniu z Androidem. Ta aplikacja nazywa się „Autouzupełnianie”. Interfejs jest dość prosty: wystarczy wpisać kilka słów początkowych w polu tekstowym i kliknąć Wygeneruj. aplikacja następnie wykorzystuje wnioskowanie z LLM i generuje dodatkowy tekst na podstawie Twoich danych wejściowych.

Jeśli obecnie po wpisaniu kilku słów klikniesz Wygeneruj, nic się nie stanie. Dzieje się tak, ponieważ nie został jeszcze uruchomiony LLM.

zrzut ekranu aplikacji startowej

4. Przygotowywanie LLM do wdrożenia na urządzeniu

5. Dokończ tworzenie aplikacji na Androida

Po przekonwertowaniu modelu GPT-2 na TensorFlow Lite możesz w końcu wdrożyć go w aplikacji.

Uruchom aplikację

  1. Przeciągnij plik z modelem autocomplete.tflite pobrany w ostatnim kroku do folderu app/src/main/assets/ w Android Studio.

dodaj model do Android Studio

  1. Kliknij execute.png Uruchom w menu nawigacyjnym i poczekaj na wczytanie aplikacji.
  2. Wpisz słowa wstępne w polu tekstowym i kliknij Wygeneruj.

zrzut ekranu z gotową aplikacją

6. Uwagi na temat odpowiedzialnej AI

Jak wspomnieliśmy w pierwotnym ogłoszeniu OpenAI GPT-2, model GPT-2 ma ważne zastrzeżenia i ograniczenia. Dzisiejsze modele LLM zasadniczo wiążą się z pewnymi dobrze znanymi wyzwaniami, takimi jak halucynacje, obraźliwe treści, obiektywność i uprzedzenia. Dzieje się tak, ponieważ modele te są trenowane na danych ze świata rzeczywistego, dzięki czemu odzwierciedlają rzeczywiste problemy.

To ćwiczenie w Codelabs ma jedynie pokazać, jak utworzyć aplikację opartą na modelach LLM za pomocą narzędzi TensorFlow. Model stworzony w ramach tego ćwiczenia z programowania jest przeznaczony wyłącznie do celów edukacyjnych i nie jest przeznaczony do zastosowań produkcyjnych.

Wykorzystanie w środowisku produkcyjnym LLM wymaga przemyślanego doboru zbiorów danych treningowych i kompleksowych środków ograniczających bezpieczeństwo. Aby dowiedzieć się więcej o odpowiedzialnej AI w kontekście LLM, obejrzyj sesję techniczną na temat bezpiecznego i odpowiedzialnego rozwoju z użyciem modeli językowych na konferencji Google I/O 2023 oraz obejrzyj zestaw narzędzi do odpowiedzialnej AI.

7. Podsumowanie

Gratulacje! Udało Ci się stworzyć aplikację, która generuje spójny tekst na podstawie danych wejściowych użytkownika. W tym celu uruchomisz wytrenowany duży model językowy (LLM) tylko na urządzeniu.

Więcej informacji