Ten przewodnik ma na celu pomóc Ci w integrowaniu z aplikacją rozwiązań Google opartych na generatywnej sztucznej inteligencji i uczeniu maszynowym (AI/ML). Zawiera on wskazówki, które pomogą Ci poruszać się po różnych dostępnych rozwiązaniach wykorzystujących sztuczną inteligencję i systemy uczące się, aby wybrać to, które najlepiej odpowiada Twoim potrzebom. Celem tego dokumentu jest pomoc w określeniu, którego narzędzia użyć i dlaczego, z uwzględnieniem Twoich potrzeb i przypadków użycia.
Aby pomóc Ci wybrać rozwiązanie AI/ML najlepiej dopasowane do Twoich potrzeb, ten dokument zawiera przewodnik po rozwiązaniach. Po udzieleniu odpowiedzi na serię pytań dotyczących celów i ograniczeń projektu przewodnik pomoże Ci wybrać najbardziej odpowiednie narzędzia i technologie.
Ten przewodnik pomoże Ci wybrać najlepsze rozwiązanie AI do Twojej aplikacji. Weź pod uwagę te czynniki: typ danych (tekst, obrazy, dźwięk, film), złożoność zadania (od prostego podsumowywania po złożone zadania wymagające specjalistycznej wiedzy) oraz rozmiar danych (krótkie dane wejściowe w porównaniu z dużymi dokumentami). Pomoże Ci to zdecydować, czy chcesz korzystać z Gemini Nano na urządzeniu, czy z opartych na chmurze technologii AI Firebase (Gemini Flash, Gemini Pro lub Imagen).
Wykorzystywanie potencjału wnioskowania na urządzeniu
Podczas dodawania funkcji AI i ML do aplikacji na Androida możesz wybrać różne sposoby ich udostępniania – na urządzeniu lub w chmurze.
Rozwiązania działające na urządzeniu, takie jak Gemini Nano, zapewniają wyniki bez dodatkowych kosztów, zwiększają prywatność użytkowników i zapewniają niezawodne działanie offline, ponieważ dane wejściowe są przetwarzane lokalnie. Te korzyści mogą być kluczowe w przypadku niektórych zastosowań, takich jak streszczenie wiadomości, co sprawia, że rozwiązania działające na urządzeniu są priorytetem przy wyborze odpowiednich rozwiązań.
Gemini Nano umożliwia przeprowadzanie wnioskowania bezpośrednio na urządzeniu z Androidem. Jeśli pracujesz z tekstem lub obrazami, zacznij od GenAI API w ML Kit, aby skorzystać z gotowych rozwiązań. Interfejsy API generatywnej AI w ML Kit korzystają z modelu Gemini Nano i są dostosowane do konkretnych zadań wykonywanych na urządzeniu. Interfejsy API ML Kit GenAI są idealnym rozwiązaniem do wdrażania w produkcji Twoich aplikacji ze względu na ich interfejs wyższego poziomu i skalowalność. Te interfejsy API umożliwiają implementowanie przypadków użycia, takich jak podsumowanie, sprawdzanie poprawności i przepisywanie tekstu, a także generowanie opisów obrazów.
Aby korzystać z zaawansowanych możliwości interfejsów API ML Kit GenAI, rozważ dostęp eksperymentalny do Gemini Nano. Gemini Nano Experimental Access zapewnia łatwiejszy dostęp do niestandardowych promptów w Gemini Nano.
W przypadku tradycyjnych zadań uczenia maszynowego możesz stosować własne modele niestandardowe. Aby usprawnić proces tworzenia aplikacji, udostępniamy zaawansowane narzędzia, takie jak ML Kit, MediaPipe, LiteRT i funkcje dostarczania w Google Play.
W przypadku aplikacji wymagających wysoce wyspecjalizowanych rozwiązań możesz użyć własnego modelu niestandardowego, np. Gemma lub innego modelu dostosowanego do konkretnego przypadku użycia. Uruchom model bezpośrednio na urządzeniu użytkownika za pomocą LiteRT, który udostępnia wstępnie zaprojektowane architektury modeli w celu zoptymalizowania wydajności.
Możesz też rozważyć stworzenie rozwiązania hybrydowego, wykorzystując modele na urządzeniu i w chmurze.
Aplikacje mobilne często korzystają z modeli lokalnych w przypadku niewielkich danych tekstowych, takich jak rozmowy na czacie czy artykuły na blogu. W przypadku większych źródeł danych (np. plików PDF) lub gdy potrzebna jest dodatkowa wiedza, konieczne może być rozwiązanie oparte na chmurze z bardziej wydajnymi modelami Gemini.
Integracja zaawansowanych modeli Gemini
Deweloperzy Androida mogą zintegrować zaawansowane funkcje generatywnej AI od Google, w tym potężne modele Gemini Pro, Gemini Flash i Imagen, w swoich aplikacjach za pomocą pakietu SDK Firebase AI Logic. Ten pakiet SDK został zaprojektowany z myślą o większych potrzebach dotyczących danych i zapewnia większą funkcjonalność oraz elastyczność dzięki dostępowi do tych wydajnych, multimodalnych modeli AI.
Dzięki pakietowi SDK Firebase AI Logic deweloperzy mogą z minimalnym nakładem pracy wywoływać modele AI Google po stronie klienta. Modele te, takie jak Gemini Pro i Gemini Flash, wykonują wnioskowanie w chmurze i umożliwiają aplikacjom na Androida przetwarzanie różnych danych wejściowych, w tym obrazów, dźwięku, filmów i tekstu. Gemini Pro świetnie radzi sobie z rozwiązywaniem złożonych problemów i analizowaniem obszernych zbiorów danych, a seria Gemini Flash zapewnia większą szybkość i okno kontekstu wystarczające do większości zadań.
Kiedy używać tradycyjnych systemów uczących się
Generatywne AI jest przydatne do tworzenia i edytowania treści, takich jak tekst, obrazy i kod, ale wiele problemów w rzeczywistych sytuacjach lepiej rozwiązywać za pomocą tradycyjnych technik uczenia maszynowego (ML). Te sprawdzone metody doskonale sprawdzają się w zadaniach związanych z prognozowaniem, klasyfikacją, wykrywaniem i interpretowaniem wzorców w dotychczasowych danych, często z większą wydajnością, niższym kosztem obliczeniowym i prostszą implementacją niż modele generatywne.
Tradycyjne frameworki ML zapewniają niezawodne, zoptymalizowane i często bardziej praktyczne rozwiązania do tworzenia aplikacji, które koncentrują się na analizowaniu danych wejściowych, identyfikowaniu cech lub dokonywaniu prognoz na podstawie wyuczonych wzorców, a nie na generowaniu zupełnie nowych wyników. Narzędzia takie jak ML Kit, LiteRT i MediaPipe od Google zapewniają zaawansowane funkcje dostosowane do tych zastosowań niegeneracyjnych, zwłaszcza w środowiskach obliczeń mobilnych i peryferyjnych.
Rozpoczynanie integracji z ML Kit
ML Kit oferuje gotowe do wdrożenia rozwiązania zoptymalizowane pod kątem urządzeń mobilnych, które umożliwiają wykonywanie typowych zadań związanych z systemami uczącymi się. Nie wymagają one znajomości systemów uczących się. Ten łatwy w użyciu pakiet SDK na urządzenia mobilne zapewnia dostęp do technologii uczenia maszynowego Google bezpośrednio w aplikacjach na Androida i iOS, dzięki czemu możesz skupić się na rozwoju funkcji, a nie na trenowaniu i optymalizowaniu modelu. MLKit udostępnia gotowe interfejsy API i modele do użycia w przypadku takich funkcji jak skanowanie kodów kreskowych, rozpoznawanie tekstu (OCR), wykrywanie twarzy, oznaczanie obrazów etykietami, wykrywanie i śledzenie obiektów, identyfikacja języka oraz inteligentna odpowiedź.
Modele te są zwykle optymalizowane pod kątem wykonywania na urządzeniu, co zapewnia niską latencję, funkcje offline i lepszą ochronę prywatności użytkowników, ponieważ dane często pozostają na urządzeniu. Wybierz ML Kit, aby szybko dodać do swojej aplikacji mobilnej sprawdzone funkcje uczenia maszynowego bez konieczności trenowania modeli czy generowania danych wyjściowych. Jest to idealne rozwiązanie do skutecznego ulepszania aplikacji o „inteligentne” funkcje za pomocą zoptymalizowanych modeli Google lub wdrażania niestandardowych modeli TensorFlow Lite.
Zapoznaj się z naszą szczegółową dokumentacją i przewodnikami na stronie dla deweloperów ML Kit.
Wdrażanie niestandardowych systemów uczących się za pomocą LiteRT
Aby mieć większą kontrolę lub wdrażać własne modele uczenia maszynowego, użyj niestandardowego pakietu uczenia maszynowego utworzonego na podstawie LiteRT i usług Google Play. Ten pakiet zapewnia podstawowe elementy niezbędne do wdrażania wydajnych funkcji ML. LiteRT to zestaw narzędzi zoptymalizowany pod kątem efektywnego uruchamiania modeli TensorFlow na urządzeniach mobilnych, wbudowanych i peryferyjnych o ograniczonych zasobach. Umożliwia on uruchamianie znacznie mniejszych i szybszych modeli, które zużywają mniej pamięci, energii i miejsca na dane. Środowisko wykonawcze LiteRT jest zoptymalizowane pod kątem różnych akceleratorów sprzętowych (GPU, DSP, NPU) na urządzeniach brzegowych, co umożliwia wnioskowanie o małej latencji.
Wybierz LiteRT, gdy chcesz efektywnie wdrażać wytrenowane modele ML (zazwyczaj do klasyfikacji, regresji lub wykrywania) na urządzeniach o ograniczonej mocy obliczeniowej lub żywotności baterii, takich jak smartfony, urządzenia IoT czy mikrokontrolery. Jest to preferowane rozwiązanie do wdrażania niestandardowych lub standardowych modeli predykcyjnych na urządzeniach brzegowych, gdzie szybkość i oszczędność zasobów mają kluczowe znaczenie.
Dowiedz się więcej o wdrożeniu ML za pomocą LiteRT.
Dodawanie do aplikacji funkcji postrzegania w czasie rzeczywistym za pomocą MediaPipe
MediaPipe udostępnia oparte na uczeniu maszynowym rozwiązania typu open source, które można dostosować do różnych platform i wykorzystywać do strumieniowego przesyłania multimediów na żywo. Korzystaj z optymalizowanych, gotowych narzędzi do wykonywania złożonych zadań, takich jak śledzenie dłoni, szacowanie postawy, wykrywanie siatki twarzy i wykrywanie obiektów. Wszystkie te narzędzia umożliwiają wydajną interakcję w czasie rzeczywistym nawet na urządzeniach mobilnych.
Bazujące na grafie przepływy danych MediaPipe można w dużej mierze dostosowywać, co pozwala dostosować rozwiązania do aplikacji na Androida, iOS, komputery i serwery oraz do aplikacji internetowych. Wybierz MediaPipe, gdy aplikacja musi natychmiast interpretować dane z czujników, zwłaszcza strumienie wideo, w przypadku takich zastosowań jak rozpoznawanie gestów, efekty rozszerzonej rzeczywistości, śledzenie aktywności fizycznej czy sterowanie awatarem. Wszystko to służy do analizowania i interpretowania danych wejściowych.
Poznaj rozwiązania i zacznij tworzyć je za pomocą MediaPipe.
Wybór metody: na urządzeniu lub w chmurze
Podczas integrowania funkcji AI/ML w aplikacji na Androida należy podjąć ważną decyzję, czy przetwarzanie ma odbywać się bezpośrednio na urządzeniu użytkownika, czy w chmurze. Narzędzia takie jak ML Kit, Gemini Nano i TensorFlow Lite umożliwiają korzystanie z funkcji na urządzeniu, a interfejsy API Gemini Cloud z Firebase AI Logic zapewniają wydajne przetwarzanie w chmurze. Dokonanie właściwego wyboru zależy od wielu czynników związanych z przypadkiem użycia i potrzebami użytkowników.
Podjęcie decyzji ułatwi Ci rozważenie tych kwestii:
- Łączność i funkcje offline: jeśli aplikacja musi działać niezawodnie bez połączenia z internetem, idealnie sprawdzą się rozwiązania na urządzeniu, takie jak Gemini Nano. Przetwarzanie w chmurze wymaga dostępu do sieci.
- Prywatność danych: w przypadkach, gdy dane użytkownika muszą pozostać na urządzeniu ze względów związanych z prywatnością, przetwarzanie na urządzeniu daje wyraźną przewagę, ponieważ umożliwia przechowywanie informacji wrażliwych lokalnie.
- Możliwości modelu i złożoność zadania: modele oparte na chmurze są często znacznie większe, wydajniejsze i częściej aktualizowane, dzięki czemu nadają się do bardzo złożonych zadań AI lub do przetwarzania większych danych wejściowych, w przypadku których najważniejsze są wysoka jakość danych wyjściowych i rozbudowane możliwości. Prostsze zadania mogą być dobrze wykonywane przez modele na urządzeniu.
- Uwzględnienie kosztów: interfejsy API w chmurze są zwykle płatne w zależności od wykorzystania, co oznacza, że koszty mogą się zmieniać wraz z liczbą wnioskowań lub ilością przetwarzanych danych. Chociaż wnioskowanie na urządzeniu jest zazwyczaj bezpłatne, wiąże się z kosztami rozwoju i może wpływać na zasoby urządzenia, takie jak czas pracy na baterii i ogólna wydajność.
- Zasoby urządzenia: modele na urządzeniu zajmują miejsce na urządzeniu użytkownika. Warto też wiedzieć, czy dane modele na urządzeniu, takie jak Gemini Nano, są zgodne z urządzeniami, aby mieć pewność, że odbiorcy docelowi będą mogli korzystać z tych funkcji.
- Dostosowanie i dostrajanie: jeśli potrzebujesz możliwości dostosowania modeli do konkretnego przypadku użycia, rozwiązania działające w chmurze zapewniają zwykle większą elastyczność i szersze opcje dostosowywania.
- Spójność na różnych platformach: jeśli spójne funkcje AI na wielu platformach, w tym na iOS, są kluczowe, pamiętaj, że niektóre rozwiązania na urządzeniu, takie jak Gemini Nano, mogą nie być jeszcze dostępne na wszystkich systemach operacyjnych.
Po dokładnym przeanalizowaniu wymagań związanych z przypadkiem użycia i dostępnych opcji możesz znaleźć idealne rozwiązanie AI/ML, które pozwoli Ci ulepszać aplikację na Androida i zapewniać użytkownikom inteligentne i spersonalizowane wrażenia.
Przewodnik po rozwiązaniach AI/ML
Z tego przewodnika dowiesz się, jakie narzędzia dla programistów są odpowiednie do integracji technologii AI/ML w projektach na Androida.
Jaki jest główny cel funkcji AI?
- A) generowanie nowych treści (tekst, opisy obrazów) lub wykonywanie prostych operacji na tekście (podsumowywanie, sprawdzanie poprawności lub przepisywanie tekstu)? → Otwórz Generatywna AI.
- B) Czy analizujesz istniejące dane/dane wejściowe w celu prognozowania, klasyfikowania, wykrywania, rozpoznawania wzorów lub przetwarzania strumieni danych w czasie rzeczywistym (np. wideo lub dźwięku)? → Otwórz Tradycyjne metody uczenia maszynowego i postrzegania
Tradycyjne uczenie maszynowe i postrzeganie
Musisz analizować dane wejściowe, identyfikować cechy lub tworzyć prognozy na podstawie wzorców, a nie generować zupełnie nowych danych wyjściowych.
Jakie zadanie wykonujesz?
- A) Czy potrzebujesz szybkiej integracji gotowych, typowych funkcji mobilnego ML?
(np. skanowanie kodów kreskowych, rozpoznawanie tekstu (OCR), wykrywanie twarzy, oznaczanie obrazów, wykrywanie i śledzenie obiektów, identyfikacja języka, podstawowe inteligentne odpowiedzi)
- → Użyj: ML Kit (tradycyjne interfejsy API)
- Uzasadnienie: najłatwie integrować z dotychczasowymi zadaniami dotyczącymi uczenia się maszynowego na urządzeniach mobilnych, często zoptymalizowanymi pod kątem korzystania na urządzeniu (mała opóźnienia, tryb offline, prywatność).
- B) Czy do zadań związanych z postrzeganiem potrzebujesz przetwarzać dane strumieniowe w czasie rzeczywistym (np. wideo lub audio)? (np. śledzenie dłoni, szacowanie postawy, siatki twarzy, wykrywanie obiektów i ich segmentacja w czasie rzeczywistym w filmie)
- → Użyj: MediaPipe
- Dlaczego: framework do tworzenia wydajnych systemów przetwarzania danych w czasie rzeczywistym na różnych platformach.
- C) Czy potrzebujesz wydajnego działania własnego modelu ML (np. do klasyfikacji, regresji, wykrywania) na urządzeniu, przy priorytetowym traktowaniu wydajności i niskiego zużycia zasobów?
- → Użyj: LiteRT (TensorFlow Lite Runtime).
- Uzasadnienie: zoptymalizowany czas wykonywania w celu efektywnego wdrażania niestandardowych modeli na urządzeniach mobilnych i peryferyjnych (mały rozmiar, szybkie wnioskowanie, przyspieszenie sprzętowe).
- D) Czy musisz wytrenować własny niestandardowy model ML do konkretnego zadania?
- → Użyj: LiteRT (środowisko wykonawcze TensorFlow Lite) + trening niestandardowego modelu.
- Uzasadnienie: zapewnia narzędzia do trenowania i wdrażania niestandardowych modeli zoptymalizowanych pod kątem urządzeń mobilnych i peryferyjnych.
- E) Czy potrzebujesz zaawansowanej klasyfikacji treści, analizy nastawienia lub tłumaczenia wielu języków z uwzględnieniem subtelności?
- Zastanów się, czy tradycyjne modele ML (możliwe do wdrożenia za pomocą LiteRT lub chmury) są odpowiednie, czy też zaawansowane NLU wymaga modeli generatywnych (wróć do „Start”, wybierz odpowiedź A). W przypadku klasyfikacji, analizy nastawienia lub tłumaczenia w chmurze:
- → Użyj: rozwiązań działających w chmurze (np. Interfejs API Google Cloud Natural Language, interfejs API Google Cloud Translation, dostępny potencjalnie za pomocą niestandardowego backendu lub Vertex AI). (mają one niższą priorytet niż opcje na urządzeniu, jeśli kluczowe są funkcje offline lub prywatność).
- Uzasadnienie: rozwiązania w chmurze oferują zaawansowane modele i obsługę wielu języków, ale wymagają połączenia z internetem i mogą wiązać się z kosztami.
Generatywna AI
Musisz utworzyć nowe treści, streścić, przepisać lub wykonać złożone zadania polegające na zrozumieniu lub interakcji.
Czy potrzebujesz, aby sztuczna inteligencja działała offline, czy też zależy Ci na maksymalnej prywatności danych (przechowywaniu danych użytkownika na urządzeniu) lub chcesz unikać kosztów wnioskowania w chmurze?
- A) Tak, jeśli zależy Ci na maksymalnej prywatności lub braku kosztów związanych z chmurą.
- → Otwórz generatywną AI na urządzeniu.
- B) Nie – połączenie jest dostępne i akceptowalne, możliwości chmury i skalowalność są ważniejsze lub określone funkcje wymagają chmury.
- → Otwórz Generatywna AI w Google Cloud.
Generatywną AI na urządzeniu (z wykorzystaniem Gemini Nano)
Ograniczenia: wymaga zgodnych urządzeń z Androidem, ma ograniczone wsparcie na iOS, ma określone limity tokenów (prompt 1024, kontekst 4096), modele są mniej wydajne niż modele w chmurze.
Czy Twój przypadek użycia konkretnie pasuje do uproszczonych zadań oferowanych przez interfejsy API ML Kit GenAI? (Summarize text, Proofread text, Rewrite text, Generate Image Descriptions) AND are the token limits sufficient?
- A) Tak:
- → Użycie: interfejsy API ML Kit GenAI (oparte na Gemini Nano)
- Uzasadnienie: najłatwiejszy sposób na zintegrowanie określonych, typowych zadań generatywnych na urządzeniu. Jest to rozwiązanie o najwyższym priorytecie na urządzeniu.
- B) Nie (potrzebujesz bardziej elastycznych promptów lub zadań wykraczających poza interfejsy API generatywnej AI w MLKit, ale nadal chcesz, aby Nano działało na urządzeniu):
- → Użycie: dostęp do Gemini Nano w wersji eksperymentalnej
- Uzasadnienie: zapewnia na urządzeniu funkcje dotyczące otwartych promptów do zastosowań wykraczających poza ustrukturyzowane interfejsy API ML Kit GenAI, z zachowaniem ograniczeń Nano.
Generatywne AI w chmurze
Korzysta z bardziej zaawansowanych modeli, wymaga połączenia z internetem, zwykle wiąże się z kosztami wnioskowania, zapewnia większy zasięg na urządzeniach i łatwiejszą spójność na różnych platformach (Android i iOS).
Co jest dla Ciebie ważniejsze: łatwość integracji z Firebase czy maksymalna elastyczność/kontrola?
- A) Wolisz łatwiejszą integrację, korzystasz z zarządzanego interfejsu API i prawdopodobnie już używasz Firebase?
- → Użyj pakietu SDK Firebase AI Logic → przejdź do sekcji Firebase AI Logic
- B) Czy potrzebujesz maksymalnej elastyczności, dostępu do najszerszego zakresu modeli (w tym zewnętrznych i niestandardowych) oraz zaawansowanego dostosowania i chcesz zarządzać własną integracją z backendem (bardziej złożoną)?
- → Użycie: interfejs Gemini API z niestandardowym backendem w chmurze (z użyciem platformy Google Cloud)
- Uzasadnienie: zapewnia największą kontrolę, najszerszy dostęp do modelu i opcje trenowania niestandardowego, ale wymaga znacznego nakładu pracy związanej z rozwojem backendu. Odpowiedni w przypadku złożonych, dużych lub bardzo spersonalizowanych potrzeb.
(Wybrano pakiet SDK Firebase AI Logic) Jakiego typu zadania generatywnego i profilu wydajności potrzebujesz?
- A) Czy potrzebujesz równowagi między wydajnością a kosztem, która będzie odpowiednia do ogólnego generowania tekstu, streszczania lub korzystania z aplikacji do czatu, w których ważna jest szybkość?
- → Użyj: pakietu SDK Firebase AI Logic z Gemini Flash
- Uzasadnienie: optymalizacja pod kątem szybkości i skuteczności w środowisku zarządzanym przez Vertex AI.
- B) Czy potrzebujesz wyższej jakości i możliwości w zakresie generowania złożonego tekstu, rozumowania, zaawansowanego przetwarzania języka naturalnego lub wykonywania instrukcji?
- → Użyj: pakietu SDK Firebase AI Logic z Gemini Pro
- Dlaczego: bardziej zaawansowany model tekstowy do wykonywania wymagających zadań, dostępny w Firebase.
- C) Czy potrzebujesz zaawansowanego generowania obrazów lub zaawansowanego przetwarzania obrazów albo manipulowania nimi na podstawie promptów tekstowych?
- → Użyj: pakietu SDK Firebase AI Logic z Imagen 3
- Dlaczego: zaawansowany model generowania obrazów, do którego dostęp uzyskuje się za pomocą zarządzanego środowiska Firebase.