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

1. Zanim zaczniesz

Jednym z najbardziej ekscytujących przełomów w uczeniu maszynowym w ostatnim czasie są duże modele językowe (LLM). Można ich używać do generowania tekstu, tłumaczenia i odpowiadania na pytania w wyczerpujący i informacyjny sposób. Duże modele językowe, takie jak LaMDAPaLM od Google, są trenowane na ogromnych ilościach danych tekstowych, co pozwala im uczyć się statystycznych wzorców i relacji między słowami i zwrotami. Dzięki temu mogą generować tekst podobny do tego napisanego przez człowieka i tłumaczyć języki z dużą dokładnością.

Modele LLM zajmują dużo miejsca i zwykle wymagają dużej mocy obliczeniowej, co oznacza, że są zwykle wdrażane w chmurze i stanowią spore wyzwanie dla uczenia maszynowego na urządzeniu (ODML) ze względu na ograniczoną moc obliczeniową urządzeń mobilnych. Na nowoczesnym urządzeniu z Androidem można jednak uruchamiać modele LLM o mniejszej skali (np. GPT-2) i osiągać imponujące wyniki.

Oto demonstracja działania wersji modelu Google PaLM z 1,5 mld parametrów na Google Pixel 7 Pro bez przyspieszania odtwarzania.

PaLM na Pixelu 7 Pro

Z tego ćwiczenia w Codelabs dowiesz się, jak za pomocą tych narzędzi i technik utworzyć aplikację opartą na LLM (na przykładzie modelu GPT-2):

  • KerasNLP do wczytywania wytrenowanego modelu LLM
  • Dostrajanie modelu LLM za pomocą KerasNLP
  • TensorFlow Lite do konwertowania, optymalizowania i wdrażania LLM na Androidzie

Wymagania wstępne

  • średnio zaawansowana znajomość Keras i TensorFlow Lite,
  • Podstawowa wiedza na temat programowania aplikacji na Androida

Czego się nauczysz

  • Jak używać KerasNLP do wczytywania wytrenowanego modelu LLM i jego dostrajania
  • Jak skwantyzować i przekonwertować model LLM na TensorFlow Lite
  • Jak przeprowadzić wnioskowanie na przekonwertowanym modelu TensorFlow Lite

Czego potrzebujesz

  • Dostęp do Colab
  • Najnowsza wersja Androida Studio
  • Nowoczesne urządzenie z Androidem z ponad 4 GB pamięci RAM.

2. Konfiguracja

Aby pobrać kod do tego ćwiczenia:

  1. Otwórz repozytorium GitHub dla tego laboratorium.
  2. Aby pobrać cały kod do tych ćwiczeń z programowania, kliknij Code > Download zip (Kod > Pobierz plik ZIP).

obraz repozytorium,

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

3. Uruchamianie aplikacji wyjściowej

  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 się uruchomić na urządzeniu z Androidem. Aplikacja nazywa się „Automatyczne uzupełnianie”. Interfejs jest dość prosty: możesz wpisać kilka słów w polu tekstowym i kliknąć Wygeneruj. Aplikacja przeprowadzi wnioskowanie na modelu LLM i wygeneruje dodatkowy tekst na podstawie Twoich danych wejściowych.

Obecnie, jeśli po wpisaniu kilku słów klikniesz Wygeneruj, nic się nie stanie. Dzieje się tak, ponieważ nie korzysta jeszcze z dużego modelu językowego.

zrzut ekranu aplikacji startowej

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

5. Ukończ aplikację na Androida

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

Uruchamianie aplikacji

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

dodawanie modelu do Android Studio,

  1. W menu nawigacyjnym kliknij execute.png Uruchom i poczekaj, aż aplikacja się wczyta.
  2. Wpisz w polu tekstowym kilka słów kluczowych, a potem kliknij Wygeneruj.

zrzut ekranu gotowej aplikacji;

6. Uwagi dotyczące odpowiedzialnej AI

Jak wspomnieliśmy w oryginalnym ogłoszeniu dotyczącym OpenAI GPT-2, model GPT-2 ma istotne ograniczenia i wady. Obecnie LLM mają pewne dobrze znane problemy, takie jak halucynacje, obraźliwe wyniki, sprawiedliwość i uprzedzenia. Wynika to z faktu, że modele te są trenowane na danych z prawdziwego świata, co sprawia, że odzwierciedlają rzeczywiste problemy.

Te ćwiczenia z programowania zostały utworzone wyłącznie w celu zademonstrowania, jak tworzyć aplikacje oparte na dużych modelach językowych za pomocą narzędzi TensorFlow. Model utworzony w tym laboratorium kodu służy wyłącznie do celów edukacyjnych i nie jest przeznaczony do użytku produkcyjnego.

Używanie LLM w środowisku produkcyjnym wymaga starannego doboru zbiorów danych treningowych i kompleksowych środków bezpieczeństwa. Aby dowiedzieć się więcej o odpowiedzialnej AI w kontekście LLM, obejrzyj sesję techniczną Bezpieczne i odpowiedzialne tworzenie generatywnych modeli językowych na Google I/O 2023 i zapoznaj się z zestawem narzędzi do odpowiedzialnej AI.

7. Podsumowanie

Gratulacje! Udało Ci się stworzyć aplikację, która generuje spójny tekst na podstawie danych wprowadzanych przez użytkownika, uruchamiając wstępnie wytrenowany duży model językowy wyłącznie na urządzeniu.

Więcej informacji