Ten przewodnik ma pomóc Ci zintegrować rozwiązania Google oparte na generatywnej sztucznej inteligencji i uczeniu maszynowym (AI/ML) z Twoimi aplikacjami. Zawiera on wskazówki, które pomogą Ci poruszać się po różnych dostępnych rozwiązaniach opartych na sztucznej inteligencji i uczeniu maszynowym oraz wybrać to, które najlepiej odpowiada Twoim potrzebom. Celem tego dokumentu jest pomoc w określeniu, którego narzędzia użyć i dlaczego, poprzez skupienie się na Twoich potrzebach i przypadkach użycia.
Aby pomóc Ci w wyborze najbardziej odpowiedniego rozwiązania AI/ML do Twoich konkretnych wymagań, ten dokument zawiera przewodnik po rozwiązaniach. Odpowiadając na serię pytań dotyczących celów i ograniczeń projektu, przewodnik kieruje Cię do najbardziej odpowiednich narzędzi i technologii.
Ten przewodnik pomoże Ci wybrać najlepsze rozwiązanie AI dla Twojej aplikacji. Weź pod uwagę te czynniki: typ danych (tekst, obrazy, dźwięk, wideo), złożoność zadania (od prostego podsumowania po złożone zadania wymagające specjalistycznej wiedzy) oraz rozmiar danych (krótkie dane wejściowe a duże dokumenty). Pomoże Ci to zdecydować, czy używać Gemini Nano na urządzeniu, czy AI w chmurze Firebase (Gemini Flash, Gemini Pro lub Imagen).
Wykorzystaj potencjał wnioskowania na urządzeniu
Gdy dodajesz do aplikacji na Androida funkcje oparte na AI i ML, możesz wybrać różne sposoby ich udostępniania – na urządzeniu lub w chmurze.
Rozwiązania 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ą mieć kluczowe znaczenie w niektórych przypadkach użycia, np. w przypadku podsumowywania wiadomości, dlatego przy wyborze odpowiednich rozwiązań należy traktować priorytetowo rozwiązania na urządzeniu.
Gemini Nano umożliwia przeprowadzanie wnioskowania bezpośrednio na urządzeniu z Androidem. Jeśli pracujesz z tekstem, obrazami lub dźwiękiem, zacznij od interfejsów GenAI API w ML Kit, aby uzyskać gotowe rozwiązania. Interfejsy GenAI API w ML Kit są oparte na Gemini Nano, wykorzystują AICore jako podstawową usługę systemową i są dostosowane do konkretnych zadań na urządzeniu. Interfejsy GenAI API w ML Kit to idealna ścieżka do wdrożenia aplikacji, ponieważ mają interfejs wyższego poziomu i są skalowalne. Te interfejsy API umożliwiają wysyłanie zapytań w języku naturalnym z danymi wejściowymi w postaci tekstu i obrazu, co pozwala na różne przypadki użycia, takie jak rozpoznawanie obrazów, krótkie tłumaczenia, podsumowania z przewodnikiem i inne.
W przypadku tradycyjnych zadań uczenia maszynowego możesz wdrożyć własne modele niestandardowe. Udostępniamy zaawansowane narzędzia, takie jak ML Kit, MediaPipe, LiteRT i funkcje dostarczania w Google Play, aby usprawnić proces tworzenia.
W przypadku aplikacji, które wymagają wysoce specjalistycznych 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 gotowe architektury modeli zapewniające optymalną wydajność.
Możesz też rozważyć utworzenie rozwiązania hybrydowego, które wykorzystuje modele na urządzeniu i w chmurze.
Aplikacje mobilne zwykle używają modeli lokalnych do małych danych tekstowych, takich jak rozmowy na czacie lub artykuły na blogu. W przypadku większych źródeł danych (np. plików PDF) lub gdy wymagana jest dodatkowa wiedza, może być konieczne użycie rozwiązania w chmurze z bardziej zaawansowanymi modelami Gemini.
Integracja zaawansowanych modeli Gemini
Deweloperzy Androida mogą integrować zaawansowane funkcje generatywnej AI Google, w tym zaawansowane modele Gemini Pro, Gemini Flash i Imagen, ze swoimi aplikacjami za pomocą pakietu SDK Firebase AI Logic. Ten pakiet SDK jest przeznaczony do obsługi większych ilości danych i zapewnia rozszerzone możliwości oraz elastyczność dzięki dostępowi do tych wydajnych, multimodalnych modeli AI.
Dzięki pakietowi SDK Firebase AI Logic deweloperzy mogą wykonywać wywołania po stronie klienta do modeli AI Google przy minimalnym wysiłku. Te modele, takie jak Gemini Pro i Gemini Flash, przeprowadzają wnioskowanie w chmurze i umożliwiają aplikacjom na Androida przetwarzanie różnych danych wejściowych, w tym obrazów, dźwięku, wideo i tekstu. Gemini Pro doskonale radzi sobie z rozwiązywaniem złożonych problemów i analizowaniem dużych ilości danych, a seria Gemini Flash oferuje doskonałą szybkość i okno kontekstu wystarczające do większości zadań.
Kiedy używać tradycyjnego uczenia maszynowego
Generatywna AI jest przydatna do tworzenia i edytowania treści, takich jak tekst, obrazy i kod, ale wiele rzeczywistych problemów można lepiej rozwiązać za pomocą tradycyjnych technik uczenia maszynowego (ML). Te sprawdzone metody doskonale sprawdzają się w zadaniach związanych z przewidywaniem, klasyfikacją, wykrywaniem i rozumieniem wzorców w istniejących danych, często z większą wydajnością, niższymi kosztami obliczeniowymi i prostszą implementacją niż modele generatywne.
Tradycyjne frameworki ML oferują niezawodne, zoptymalizowane i często bardziej praktyczne rozwiązania dla aplikacji, które koncentrują się na analizowaniu danych wejściowych, identyfikowaniu cech lub przewidywaniu na podstawie wyuczonych wzorców, a nie na generowaniu zupełnie nowych danych wyjściowych. Narzędzia takie jak ML Kit, LiteRT i MediaPipe Google zapewniają zaawansowane funkcje dostosowane do tych przypadków użycia, które nie są generatywne, szczególnie w środowiskach mobilnych i obliczeń brzegowych.
Zacznij integrować uczenie maszynowe z ML Kit
ML Kit oferuje gotowe do wdrożenia i zoptymalizowane pod kątem urządzeń mobilnych rozwiązania do typowych zadań uczenia maszynowego, które nie wymagają wcześniejszej wiedzy na temat ML. Ten łatwy w użyciu pakiet SDK na urządzenia mobilne udostępnia wiedzę Google na temat ML bezpośrednio w aplikacjach na Androida i iOS, dzięki czemu możesz skupić się na tworzeniu funkcji zamiast na trenowaniu i optymalizacji modeli. ML Kit udostępnia gotowe interfejsy API i modele do użycia w funkcjach takich jak skanowanie kodów kreskowych, rozpoznawanie tekstu (OCR), wykrywanie twarzy, oznaczanie obrazów etykietami, wykrywanie i śledzenie obiektów, rozpoznawanie języka i inteligentne odpowiedzi.
Te modele są zwykle zoptymalizowane pod kątem wykonywania na urządzeniu, co zapewnia niskie opóźnienie, działanie offline i większą prywatność użytkowników, ponieważ dane często pozostają na urządzeniu. Wybierz ML Kit, aby szybko dodać do aplikacji mobilnej sprawdzone funkcje ML bez konieczności trenowania modeli ani generowania danych wyjściowych. Jest to idealne rozwiązanie do efektywnego ulepszania aplikacji za pomocą „inteligentnych” funkcji przy użyciu zoptymalizowanych modeli Google lub przez wdrożenie niestandardowych modeli TensorFlow Lite.
Zacznij korzystać z naszych kompleksowych przewodników i dokumentacji w witrynie dla deweloperów ML Kit.
Wdrażanie niestandardowych modeli ML za pomocą LiteRT
Aby mieć większą kontrolę lub wdrożyć własne modele ML, użyj niestandardowego stosu ML opartego na LiteRT i Usługach Google Play. Ten stos zapewnia podstawowe elementy do wdrażania funkcji ML o wysokiej wydajności. LiteRT to zestaw narzędzi zoptymalizowany pod kątem wydajnego uruchamiania modeli TensorFlow na urządzeniach mobilnych, wbudowanych i brzegowych 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 wysoce zoptymalizowane pod kątem różnych akceleratorów sprzętowych (GPU, DSP, NPU) na urządzeniach brzegowych, co umożliwia wnioskowanie z niskim opóźnieniem.
Wybierz LiteRT, gdy chcesz wydajnie wdrożyć wytrenowane modele ML (zwykle do klasyfikacji, regresji lub wykrywania) na urządzeniach o ograniczonej mocy obliczeniowej lub żywotności baterii, takich jak smartfony, urządzenia IoT lub 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 wdrażaniu modeli ML za pomocą LiteRT.
Tworzenie aplikacji z funkcją percepcji w czasie rzeczywistym za pomocą MediaPipe
MediaPipe to rozwiązania uczenia maszynowego typu open source, na wielu platformach i konfigurowalne, przeznaczone do mediów na żywo i strumieniowych. Korzystaj ze zoptymalizowanych, gotowych narzędzi do złożonych zadań, takich jak śledzenie rąk, szacowanie pozycji, wykrywanie siatki twarzy i wykrywanie obiektów, które umożliwiają interakcję w czasie rzeczywistym o wysokiej wydajności nawet na urządzeniach mobilnych.
Potoki oparte na grafach w MediaPipe są wysoce konfigurowalne, co pozwala dostosowywać rozwiązania do aplikacji na Androida, iOS, w internecie, na komputerach i w backendzie. Wybierz MediaPipe, gdy Twoja aplikacja musi rozumieć dane z czujników na żywo i natychmiast na nie reagować, zwłaszcza strumienie wideo, w przypadku takich zastosowań jak rozpoznawanie gestów, efekty AR, śledzenie kondycji czy sterowanie awatarem – wszystko to z myślą o analizowaniu i interpretowaniu danych wejściowych.
Poznaj rozwiązania i zacznij tworzyć za pomocą MediaPipe.
Integracja aplikacji z asystentem urządzenia
Tradycyjna integracja AI polega na „wprowadzaniu AI do aplikacji”, ale możesz też „wprowadzić aplikację do AI”. Dzięki udostępnianiu funkcji aplikacji w funkcjach AI systemu możesz umożliwić asystentom systemowym (np. Gemini) wykrywanie i wywoływanie funkcji aplikacji w sposób agentowy. AppFunctions to podstawowy sposób na osiągnięcie tej integracji, dzięki czemu Twoja aplikacja może stać się uczestnikiem szerszego ekosystemu AI na Androidzie.
Wybór podejścia
Podczas integrowania AI w celu ulepszenia aplikacji na Androida należy wziąć pod uwagę 3 podstawowe podejścia: przetwarzanie na urządzeniu, wykorzystywanie modeli w chmurze lub dodawanie funkcji aplikacji do AI na poziomie systemu. Narzędzia takie jak ML Kit, Gemini Nano i LiteRT umożliwiają korzystanie z funkcji na urządzeniu, a interfejsy Gemini Cloud API z Firebase AI Logic zapewniają zaawansowane przetwarzanie w chmurze. AppFunctions to trzecia ścieżka, która umożliwia „wprowadzenie aplikacji do AI” przez udostępnienie jej funkcji systemowi w sposób agentowy.
Przy wyborze podejścia weź pod uwagę te czynniki:
| Czynnik | Rozwiązania na urządzeniu | Rozwiązania w chmurze |
|---|---|---|
| Łączność i działanie offline funkcjonalność | Idealne do użytku offline; działają bez połączenia z siecią. | Wymagają połączenia z siecią, aby komunikować się z serwerami zdalnymi. |
| Prywatność danych | Przetwarzają i przechowują dane wrażliwe lokalnie na urządzeniu. | Dane są przesyłane do chmury, co wymaga zaufania do bezpieczeństwa dostawcy. |
| Wykrywalność i zasięg | Bezpośrednia integracja z systemem operacyjnym (AppFunctions) umożliwia asystentom wykrywanie funkcji. | Wykrywanie jest zwykle ograniczone do wewnętrznego interfejsu aplikacji lub konkretnych integracji interfejsów API. |
| Możliwości modelu | Zoptymalizowane pod kątem niskiego opóźnienia i konkretnych, mniej wymagających zadań. | Zaawansowane modele, które mogą obsługiwać złożone zadania i duże dane wejściowe. |
| Koszty | Brak bezpośrednich opłat za użycie; wykorzystuje istniejący sprzęt urządzenia. | Zwykle obejmuje ceny oparte na użytkowaniu lub bieżące koszty subskrypcji. |
| Zasoby urządzenia | Wykorzystuje pamięć lokalną, pamięć RAM i baterię. | Minimalny wpływ lokalny; większość pracy jest przenoszona na serwer. |
| Dostrajanie | Ograniczona elastyczność; ograniczone możliwościami sprzętu lokalnego możliwości. | Większa elastyczność w zakresie rozbudowanego dostosowywania i dostrajania na dużą skalę. |
| Spójność na wielu platformach | Dostępność może się różnić w zależności od systemu operacyjnego i obsługi sprzętu. | Spójne działanie na każdej platformie z dostępem do internetu access. |
Dzięki dokładnemu rozważeniu wymagań dotyczących przypadku użycia i dostępnych opcji możesz znaleźć idealne rozwiązanie AI/ML, które ulepszy Twoją aplikację na Androida i zapewni użytkownikom inteligentne i spersonalizowane wrażenia.
Przewodnik po rozwiązaniach AI/ML
Ten przewodnik po rozwiązaniach pomoże Ci określić odpowiednie narzędzia dla deweloperów do integrowania technologii AI/ML z projektami na Androida.
Jaki jest główny cel funkcji AI?
- A) Generowanie nowych treści (tekstu, opisów obrazów) lub wykonywanie prostego przetwarzania tekstu (podsumowywanie, korekta lub przepisywanie tekstu)? → Przejdź do sekcji Generatywna AI
- B) Analizowanie istniejących danych/danych wejściowych w celu przewidywania, klasyfikacji, wykrywania, rozumienia wzorców lub przetwarzania strumieni w czasie rzeczywistym (np. wideo/audio)? → Przejdź do sekcji Tradycyjne uczenie maszynowe i percepcja
- C) Ulepszanie funkcji aplikacji w celu integracji z funkcjami AI systemu (wprowadzanie aplikacji do AI)? → Przejdź do sekcji Wprowadzanie aplikacji do AI
Tradycyjne uczenie maszynowe i percepcja
Musisz analizować dane wejściowe, identyfikować cechy lub przewidywać na podstawie wyuczonych wzorców, a nie generować zupełnie nowych danych wyjściowych.
Jakie konkretne zadanie wykonujesz?
- A) Potrzebujesz szybkiej integracji gotowych, typowych funkcji ML na urządzenia mobilne?
(np. skanowanie kodów kreskowych, rozpoznawanie tekstu (OCR), wykrywanie twarzy, oznaczanie obrazów etykietami, wykrywanie i śledzenie obiektów, rozpoznawanie języka, podstawowe inteligentne odpowiedzi)
- → Użyj: ML Kit (tradycyjne interfejsy API)
- Dlaczego: najłatwiejsza integracja w przypadku sprawdzonych zadań ML na urządzenia mobilne, często zoptymalizowanych pod kątem użytku na urządzeniu (niskie opóźnienie, działanie offline, prywatność).
- B) Musisz przetwarzać dane strumieniowe w czasie rzeczywistym (np. wideo lub audio) na potrzeby zadań percepcji? (np. śledzenie rąk, szacowanie pozycji, siatka twarzy, wykrywanie i segmentacja obiektów w czasie rzeczywistym w filmie)
- → Użyj: MediaPipe
- Dlaczego: framework wyspecjalizowany w potokach percepcji w czasie rzeczywistym o wysokiej wydajności na różnych platformach.
- C) Musisz wydajnie uruchamiać własny, niestandardowo wytrenowany model ML (np. do klasyfikacji, regresji, wykrywania) na urządzeniu, priorytetowo traktując wydajność i niskie zużycie zasobów?
- → Użyj: LiteRT (środowisko wykonawcze TensorFlow Lite)
- Dlaczego: zoptymalizowane środowisko wykonawcze do wydajnego wdrażania modeli niestandardowych na urządzeniach mobilnych i brzegowych (mały rozmiar, szybkie wnioskowanie, akceleracja sprzętowa).
- D) Musisz wytrenować własny model ML do konkretnego zadania?
- → Użyj: LiteRT (środowisko wykonawcze TensorFlow Lite) + trenowanie modelu niestandardowego
- Dlaczego: udostępnia narzędzia do trenowania i wdrażania modeli niestandardowych, zoptymalizowanych pod kątem urządzeń mobilnych i brzegowych urządzeń.
- E) Potrzebujesz zaawansowanej klasyfikacji treści, analizy nastawienia lub tłumaczenia wielu języków z dużą ilością niuansów?
- Zastanów się, czy pasują tradycyjne modele ML (potencjalnie wdrożone za pomocą LiteRT lub chmury), czy też zaawansowane NLU wymaga modeli generatywnych (wróć do początku i wybierz A). W przypadku klasyfikacji, analizy nastawienia lub tłumaczenia w chmurze:
- → Użyj: rozwiązań w chmurze (np. Google Cloud Natural Language API, Google Cloud Translation API, potencjalnie dostępnych za pomocą backendu niestandardowego lub Vertex AI). (Niższy priorytet niż opcje na urządzeniu, jeśli kluczowe jest działanie offline lub prywatność).
- Dlaczego: rozwiązania w chmurze oferują zaawansowane modele i szeroką obsługę języków, ale wymagają łączności i mogą wiązać się z kosztami.
Generatywna AI
Musisz tworzyć nowe treści, podsumowywać, przepisywać lub wykonywać złożone zadania związane z rozumieniem lub interakcją.
Czy wymagasz, aby AI działała offline, potrzebujesz maksymalnej prywatności danych (przechowywanie danych użytkowników na urządzeniu) lub chcesz uniknąć kosztów wnioskowania w chmurze?
- A) Tak, działanie offline, maksymalna prywatność lub brak kosztów w chmurze są kluczowe.
- → Przejdź do sekcji Generatywna AI na urządzeniu
- B) Nie, łączność jest dostępna i akceptowalna, możliwości i
skalowalność chmury są ważniejsze lub określone funkcje wymagają chmury.
- → Przejdź do sekcji Generatywna AI w chmurze
Generatywna AI na urządzeniu (przy użyciu Gemini Nano)
Ograniczenia: wymaga zgodnych urządzeń z Androidem, ograniczonej obsługi iOS, modele są mniej zaawansowane niż ich odpowiedniki w chmurze.
Dzięki interfejsowi Prompt API w ML Kit możesz wysyłać zapytania w języku naturalnym z danymi wejściowymi w postaci samego tekstu lub tekstu i obrazu w różnych przypadkach użycia, takich jak rozpoznawanie obrazów, krótkie tłumaczenia i podsumowania z przewodnikiem. Jeśli Twoje przypadki użycia mogą być zaspokojone przez te limity tokenów, interfejsy GenAI API w ML Kit są najlepszym rozwiązaniem w zakresie generatywnej AI na urządzeniu. ML Kit oferuje też uproszczone interfejsy API do typowych zadań, takich jak podsumowywanie i inteligentne odpowiedzi.
- → Użyj: interfejsów GenAI API w ML Kit (opartych na Gemini Nano)
- _Dlaczego_: najłatwiejszy sposób na zintegrowanie zadań generatywnej AI na urządzeniu za pomocą promptów w języku naturalnym, rozwiązanie na urządzeniu o najwyższym priorytecie.
Generatywna AI w chmurze
Wykorzystuje bardziej zaawansowane modele, wymaga łączności, zwykle wiąże się z kosztami wnioskowania, oferuje szerszy zasięg urządzeń i łatwiejszą spójność na wielu platformach (Android i iOS).
Co jest dla Ciebie priorytetem: łatwość integracji w Firebase CZY maksymalna elastyczność/kontrola?
- A) Wolisz łatwiejszą integrację, zarządzany interfejs API i prawdopodobnie używasz już Firebase?
- → Użyj: pakietu SDK Firebase AI Logic → Przejdź do sekcji Firebase AI Logic
- B) Potrzebujesz maksymalnej elastyczności, dostępu do najszerszej gamy modeli (w tym modeli innych firm i niestandardowych), zaawansowanego dostrajania i chcesz zarządzać własną integracją backendu (bardziej złożoną)?
- → Użyj: Gemini API z niestandardowym backendem w chmurze (przy użyciu Google Cloud Platform)
- Dlaczego: zapewnia największą kontrolę, najszerszy dostęp do modeli i opcje trenowania niestandardowego, ale wymaga znacznego nakładu pracy przy tworzeniu backendu. Odpowiednie do złożonych, wielkoskalowych lub wysoce dostosowanych potrzeb.
(Wybrano pakiet SDK Firebase AI Logic) Jakiego rodzaju zadania generatywne i profilu wydajności potrzebujesz?
- A) Potrzebujesz równowagi między wydajnością a kosztami, odpowiedniej do ogólnego generowania tekstu, podsumowywania lub aplikacji do czatowania, w których ważna jest szybkość?
- → Użyj: pakietu SDK Firebase AI Logic z Gemini Flash
- Dlaczego: zoptymalizowane pod kątem szybkości i wydajności w zarządzanym środowisku Vertex AI.
- B) Potrzebujesz wyższej jakości i możliwości w zakresie złożonego generowania tekstu, rozumowania, zaawansowanego NLU lub wykonywania instrukcji?
- → Użyj: pakietu SDK Firebase AI Logic z Gemini Pro
- Dlaczego: bardziej zaawansowany model tekstu do wymagających zadań, dostępny przez Firebase.
- C) Potrzebujesz zaawansowanego generowania obrazów lub zaawansowanego rozpoznawania obrazów bądź manipulowania nimi na podstawie promptów tekstowych?
- → Użyj: pakietu SDK Firebase AI Logic z Imagen 3
- Dlaczego: najnowocześniejszy model generowania obrazów, do którego można uzyskać dostęp za pomocą zarządzanego środowiska Firebase.
AppFunctions
Musisz ulepszyć funkcje aplikacji, aby zintegrować je z funkcjami AI systemu (wprowadzanie aplikacji do AI).
- → Użyj: AppFunctions
- Dlaczego: umożliwia funkcjom AI systemu, takim jak Asystent, wykrywanie i wywoływanie funkcji aplikacji.