1. Zanim zaczniesz
Jednym z najbardziej ekscytujących przełomów w dziedzinie uczenia maszynowego 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 LaMDA i PaLM od Google, są trenowane na ogromnych ilościach danych tekstowych, co pozwala im uczyć się wzorców statystycznych i relacji między słowami i frazami. Dzięki temu mogą generować tekst podobny do tego napisanego przez człowieka i tłumaczyć języki z dużą dokładnością.
LLM są bardzo duże pod względem pamięci i zwykle zużywają dużo 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 prezentacja działania wersji modelu Google PaLM z 1,5 miliarda parametrów na Google Pixelu 7 Pro bez przyspieszania odtwarzania.

Z tego ćwiczenia dowiesz się, jak za pomocą tych technik i narzędzi utworzyć aplikację opartą na LLM (na przykładzie modelu GPT-2):
- KerasNLP do wczytywania wstępnie wytrenowanego modelu LLM
- KerasNLP do dostrajania modelu LLM
- TensorFlow Lite do konwersji, optymalizacji i wdrażania LLM na Androidzie
Wymagania wstępne
- średnio zaawansowana znajomość Keras i TensorFlow Lite,
- Podstawowa wiedza o programowaniu na Androida
Czego się nauczysz
- Jak używać KerasNLP do wczytywania wstępnie 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 Android Studio
- Nowoczesne urządzenie z Androidem z ponad 4 GB pamięci RAM.
2. Konfiguracja
Aby pobrać kod do tego ćwiczenia:
- Otwórz repozytorium GitHub tego ćwiczenia.
- Aby pobrać cały kod do tych ćwiczeń z programowania, kliknij Code > Download zip (Kod > Pobierz plik ZIP).

- Rozpakuj pobrany plik ZIP, aby wyodrębnić folder główny
examplesze wszystkimi potrzebnymi zasobami.
3. Uruchamianie aplikacji startowej
- Zaimportuj folder
examples/lite/examples/generative_ai/androiddo Android Studio. - Uruchom emulator Androida, a potem w menu nawigacyjnym kliknij
Uruchom.
Uruchamianie aplikacji i jej poznawanie
Aplikacja powinna się uruchomić na urządzeniu z Androidem. Aplikacja nazywa się „Autouzupełnianie”. Interfejs jest dość prosty: możesz wpisać kilka słów materiału wyjściowego 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 LLM.

4. Przygotowywanie LLM do wdrożenia na urządzeniu
- Otwórz Colab i przejdź przez notatnik (który jest hostowany w repozytorium GitHub TensorFlow Codelabs).
5. Ukończ aplikację na Androida
Po przekonwertowaniu modelu GPT-2 na TensorFlow Lite możesz wdrożyć go w aplikacji.
Uruchamianie aplikacji
- Przeciągnij plik modelu
autocomplete.tflitepobrany w ostatnim kroku do folderuapp/src/main/assets/w Android Studio.

- W menu nawigacyjnym kliknij
Uruchom, a następnie poczekaj, aż aplikacja się wczyta. - Wpisz w polu tekstowym kilka słów kluczowych, a potem kliknij Wygeneruj.

6. Uwagi dotyczące odpowiedzialnej AI
Jak wspomnieliśmy w pierwotnym 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.
To ćwiczenie zostało utworzone wyłącznie w celu pokazania, jak utworzyć aplikację opartą na dużych modelach językowych przy użyciu narzędzi TensorFlow. Model utworzony w tym samouczku ma charakter wyłącznie edukacyjny 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ą Safe and Responsible Development with Generative Language Models (Bezpieczne i odpowiedzialne opracowywanie generatywnych modeli językowych) na konferencji Google I/O 2023 i zapoznaj się z zestawem narzędzi do odpowiedzialnej AI.
7. Podsumowanie
Gratulacje! Udało Ci się utworzyć aplikację, która generuje spójny tekst na podstawie danych wejściowych użytkownika, uruchamiając wstępnie wytrenowany duży model językowy wyłącznie na urządzeniu.