Ten przewodnik pomoże Ci zintegrować z aplikacjami rozwiązania Google oparte na generatywnej sztucznej inteligencji i uczeniu maszynowym (AI/ML). Zawiera wskazówki, które pomogą Ci zapoznać się z różnymi dostępnymi rozwiązaniami opartymi 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 rozwiązania AI/ML, które najlepiej spełni Twoje wymagania, w tym dokumencie znajdziesz 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) i 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 opartej na chmurze sztucznej inteligencji Firebase (Gemini Flash lub Gemini Pro).
Wykorzystaj moc wnioskowania na urządzeniu
Podczas dodawania do aplikacji na Androida funkcji opartych 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 przypadku niektórych przypadków użycia, takich jak podsumowywanie wiadomości, co sprawia, że przetwarzanie na urządzeniu jest priorytetem przy wyborze odpowiednich rozwiązań.
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 ML Kit, aby uzyskać gotowe rozwiązania. Interfejsy ML Kit GenAI API działają w oparciu o Gemini Nano, wykorzystując AICore jako podstawową usługę systemową, i są dostosowane do konkretnych zadań wykonywanych na urządzeniu. Interfejsy API GenAI w ML Kit to idealne rozwiązanie do wdrożenia w aplikacjach ze względu na wyższy poziom interfejsu i skalowalność. Te interfejsy API umożliwiają wysyłanie żądań w języku naturalnym z tekstowymi i graficznymi danymi wejściowymi, co pozwala na różne przypadki użycia, takie jak rozpoznawanie obrazów, krótkie tłumaczenia, podsumowania z instrukcjami i inne.
W przypadku tradycyjnych zadań uczenia maszynowego możesz wdrażać własne modele niestandardowe. Aby usprawnić proces tworzenia aplikacji, udostępniamy zaawansowane narzędzia, takie jak ML Kit, MediaPipe, LiteRT i funkcje dostarczania Google Play.
W przypadku aplikacji, które wymagają wysoce specjalistycznych rozwiązań, możesz użyć własnego modelu niestandardowego, np. Gemmy lub innego modelu dostosowanego do konkretnego przypadku użycia. Uruchamiaj model bezpośrednio na urządzeniu użytkownika za pomocą LiteRT, które udostępnia gotowe architektury modeli zoptymalizowane pod kątem wydajności.
Możesz też rozważyć utworzenie rozwiązania hybrydowego, które wykorzystuje zarówno modele na urządzeniu, jak i w chmurze.
Aplikacje mobilne często wykorzystują modele lokalne w przypadku małych zbiorów 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 wymagana jest dodatkowa wiedza, może być konieczne użycie rozwiązania opartego na chmurze z bardziej zaawansowanymi modelami Gemini.
Integracja zaawansowanych modeli Gemini
Deweloperzy aplikacji na Androida mogą integrować zaawansowane funkcje generatywnej AI od Google, w tym potężne modele Gemini Pro i Gemini Flash, ze swoimi aplikacjami za pomocą pakietu SDK Firebase AI Logic. Ten pakiet SDK został zaprojektowany z myślą o większych potrzebach w zakresie danych i zapewnia rozszerzone możliwości oraz elastyczność dzięki umożliwieniu dostępu do tych wydajnych, multimodalnych modeli AI.
Dzięki pakietowi SDK Firebase AI Logic deweloperzy mogą przy minimalnym nakładzie pracy wywoływać modele AI od Google po stronie klienta. Modele te, 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, filmów i tekstu. Gemini Pro doskonale radzi sobie z rozwiązywaniem złożonych problemów i analizowaniem obszernych danych, a modele z serii Gemini Flash oferują większą 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 lepiej rozwiązywać za pomocą tradycyjnych technik uczenia maszynowego (ML). Te sprawdzone metody doskonale sprawdzają się w przypadku zadań związanych z prognozowaniem, klasyfikacją, wykrywaniem i rozumieniem wzorców w istniejących danych, często z większą wydajnością, niższym kosztem obliczeniowym i prostszą implementacją niż modele generatywne.
Tradycyjne platformy uczenia maszynowego oferują solidne, zoptymalizowane i często bardziej praktyczne rozwiązania dla aplikacji, które koncentrują się na analizowaniu danych wejściowych, identyfikowaniu cech lub tworzeniu prognoz na podstawie wyuczonych wzorców, a nie na generowaniu całkowicie nowych danych wyjściowych. Narzędzia takie jak ML Kit, LiteRT i MediaPipe od Google zapewniają zaawansowane funkcje dostosowane do tych przypadków użycia niezwiązanych z generowaniem treści, zwłaszcza w środowiskach mobilnych i obliczeń brzegowych.
Szybkie rozpoczęcie integracji uczenia maszynowego za pomocą 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 z tej dziedziny. Ten łatwy w użyciu mobilny pakiet SDK umożliwia korzystanie z technologii uczenia maszynowego Google bezpośrednio w aplikacjach na Androida i iOS, dzięki czemu możesz skupić się na rozwijaniu funkcji zamiast na trenowaniu i optymalizowaniu modeli. ML Kit udostępnia gotowe interfejsy API i modele do wykorzystania 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 inteligentna odpowiedź.
Modele te są zwykle zoptymalizowane pod kątem wykonywania na urządzeniu, co zapewnia małe opóźnienia, 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 uczenia maszynowego bez konieczności trenowania modeli ani generowania danych wyjściowych. To idealne rozwiązanie do skutecznego wzbogacania aplikacji o funkcje „inteligentne” za pomocą zoptymalizowanych modeli Google lub wdrażania niestandardowych modeli TensorFlow Lite.
Zapoznaj się z naszymi kompleksowymi przewodnikami i dokumentacją w witrynie dla deweloperów ML Kit.
Wdrożenie niestandardowego modelu ML za pomocą LiteRT
Aby mieć większą kontrolę lub wdrożyć własne modele uczenia maszynowego, użyj niestandardowego stosu uczenia maszynowego opartego na LiteRT i usługach Google Play. Ten stos zapewnia podstawowe elementy do wdrażania funkcji uczenia maszynowego 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 krótkim czasem oczekiwania.
Wybierz LiteRT, gdy chcesz skutecznie wdrażać 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 ML za pomocą LiteRT.
Wbudowywanie w aplikacje funkcji percepcji w czasie rzeczywistym za pomocą MediaPipe
MediaPipe to otwarte, wieloplatformowe i konfigurowalne rozwiązania do uczenia maszynowego przeznaczone do multimediów na żywo i strumieniowanych. Korzystaj ze zoptymalizowanych, gotowych narzędzi do wykonywania złożonych zadań, takich jak śledzenie dłoni, szacowanie pozycji, wykrywanie siatki twarzy i wykrywanie obiektów. Wszystkie te narzędzia umożliwiają interakcję w czasie rzeczywistym o wysokiej wydajności nawet na urządzeniach mobilnych.
Oparte na grafach potoki MediaPipe można w dużym stopniu dostosowywać, co pozwala dopasowywać rozwiązania do aplikacji na Androida, iOS, internetowych, desktopowych i backendowych. Wybierz MediaPipe, jeśli Twoja aplikacja musi rozumieć i natychmiast reagować na dane z czujników na żywo, zwłaszcza strumienie wideo, w przypadku zastosowań takich jak rozpoznawanie gestów, efekty AR, śledzenie aktywności fizycznej lub sterowanie awatarem – wszystko to z myślą o analizowaniu i interpretowaniu danych wejściowych.
Poznaj rozwiązania i zacznij tworzyć przy użyciu MediaPipe.
Integracja aplikacji z asystentem urządzenia
Tradycyjna integracja AI polega na „wprowadzaniu AI do aplikacji”, ale możesz też „wprowadzić aplikację do AI”. Udostępniając funkcje aplikacji funkcjom AI systemu, umożliwiasz asystentom na poziomie systemu (np. Gemini) odkrywanie i wywoływanie funkcji aplikacji w sposób agentowy. AppFunctions to podstawowy sposób na osiągnięcie tej integracji, który umożliwia Twojej aplikacji uczestnictwo w szerszym ekosystemie AI na Androidzie. Jeśli natomiast aplikacja hostuje agentów w aplikacji, którzy muszą zwracać użytkownikom interaktywny interfejs, użyj renderera A2UI Jetpack Compose, aby natywnie wyświetlać interfejsy oparte na agentach.
Wybierz metodę
Wprowadzając AI w celu ulepszenia aplikacji na Androida, możesz zastosować 3 główne podejścia: przetwarzanie na urządzeniu, korzystanie z modeli opartych na chmurze lub dodanie 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 API w chmurze z Firebase AI Logic zapewniają zaawansowane przetwarzanie w chmurze. AppFunctions to trzecia ścieżka, która umożliwia „wprowadzenie aplikacji do AI” poprzez udostępnienie jej funkcji systemowi w sposób agentowy.
Podczas wybierania podejścia weź pod uwagę te czynniki:
| Czynnik | Rozwiązania na urządzeniu | Rozwiązania w chmurze |
|---|---|---|
| Połączenia i funkcje offline | Idealny do użytku offline; działa bez połączenia z siecią. | Wymaga połączenia sieciowego, aby komunikować się ze zdalnymi serwerami. |
| Prywatność danych | Przetwarza i przechowuje dane wrażliwe lokalnie na urządzeniu. | Dane są przesyłane do chmury, co wymaga zaufania do zabezpieczeń dostawcy. |
| Widoczność 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 określonych integracji interfejsu API. |
| Możliwości modelu | Zoptymalizowany pod kątem krótkiego czasu oczekiwania i konkretnych, mniej wymagających zadań. | Zaawansowane modele, które radzą sobie ze złożonymi zadaniami i dużymi danymi wejściowymi. |
| Kwestie związane z kosztami | Brak bezpośrednich opłat za korzystanie; wykorzystuje istniejący sprzęt urządzenia. | Zazwyczaj obejmuje ceny oparte na wykorzystaniu lub bieżące koszty subskrypcji. |
| Zasoby urządzenia | Wykorzystuje lokalną pamięć, pamięć RAM i baterię. | Minimalny wpływ lokalny; większość pracy jest przenoszona na serwer. |
| Dostrajanie | Ograniczona elastyczność; ograniczenia wynikające z możliwości lokalnego sprzętu. | 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. | Jednolita obsługa na każdej platformie z dostępem do internetu. |
Dokładnie rozważając wymagania dotyczące przypadku użycia i dostępne opcje, możesz znaleźć idealne rozwiązanie AI/ML, które ulepszy Twoją aplikację na Androida i zapewni użytkownikom inteligentne i spersonalizowane funkcje.
Przewodnik po rozwiązaniach AI/ML
Ten przewodnik po rozwiązaniach pomoże Ci wybrać odpowiednie narzędzia dla programistó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 (streszczanie, korekta lub przepisywanie tekstu)? → Otwórz generatywną AI
- B) Czy analizujesz istniejące dane lub dane wejściowe na potrzeby prognozowania, klasyfikacji, wykrywania, rozumienia wzorców lub przetwarzania strumieni w czasie rzeczywistym (np. wideo lub audio)? → Otwórz Tradycyjne uczenie maszynowe i percepcja
- C) Czy chcesz rozszerzyć funkcjonalność aplikacji, aby zintegrować ją z funkcjami AI systemu (wprowadzić aplikację do AI)? → Przejdź do sekcji Wprowadzanie aplikacji do AI
- D) Wyświetlanie dynamicznego, interaktywnego interfejsu wygenerowanego przez agentów AI? → Dowiedz się, jak używać agentów do generowania interfejsu
Tradycyjne uczenie maszynowe i percepcja
Musisz analizować dane wejściowe, identyfikować cechy lub tworzyć prognozy na podstawie wyuczonych wzorców, a nie generować całkowicie nowych danych wyjściowych.
Jakie konkretnie zadanie wykonujesz?
- A) Chcesz szybko zintegrować gotowe, popularne funkcje ML na urządzeniach mobilnych?
(np. skanowanie kodów kreskowych, rozpoznawanie tekstu (OCR), wykrywanie twarzy, oznaczanie obrazów etykietami, wykrywanie i śledzenie obiektów, identyfikacja języka, podstawowa inteligentna odpowiedź);
- → Użyj: ML Kit (tradycyjne interfejsy API)
- Uzasadnienie: najłatwiejsza integracja w przypadku sprawdzonych zadań ML na urządzeniach mobilnych, często zoptymalizowanych pod kątem używania na urządzeniu (niskie opóźnienie, tryb offline, prywatność).
- B) Czy musisz przetwarzać strumieniowe dane w czasie rzeczywistym (np. wideo lub audio) na potrzeby zadań związanych z percepcją? (np.śledzenie dłoni, szacowanie pozycji, siatka twarzy, wykrywanie i segmentacja obiektów w czasie rzeczywistym w filmie).
- → Użyj: MediaPipe
- Uzasadnienie: framework wyspecjalizowany w przypadku wydajnych potoków percepcji w czasie rzeczywistym na różnych platformach.
- C) Chcesz wydajnie uruchamiać na urządzeniu własny model ML wytrenowany niestandardowo (np. do klasyfikacji, regresji lub wykrywania), przy czym priorytetem jest wydajność i niskie zużycie zasobów?
- → Użyj: LiteRT (TensorFlow Lite Runtime)
- 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) Chcesz wytrenować własny model ML do konkretnego zadania?
- → Użyj: LiteRT (środowisko wykonawcze TensorFlow Lite) + trenowanie modelu niestandardowego
- Uzasadnienie: udostępnia narzędzia do trenowania i wdrażania modeli niestandardowych zoptymalizowanych pod kątem urządzeń mobilnych i urządzeń brzegowych.
- E) Potrzebujesz zaawansowanej klasyfikacji treści, analizy nastawienia lub tłumaczenia wielu języków z dużą precyzją?
- Zastanów się, czy wystarczą tradycyjne modele ML (potencjalnie wdrożone przy użyciu LiteRT lub chmury), czy też zaawansowane przetwarzanie języka naturalnego wymaga modeli generatywnych (wróć do początku i wybierz A). W przypadku klasyfikacji, analizy nastawienia lub tłumaczenia w chmurze:
- → Użycie: rozwiązania oparte na chmurze (np. Google Cloud Natural Language API, Google Cloud Translation API, do których można uzyskać dostęp za pomocą niestandardowego backendu lub platformy agentów Gemini Enterprise). (Ma 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 szeroki zakres obsługiwanych języków, ale wymagają połączenia z internetem i mogą wiązać się z kosztami.
Generatywna AI
Musisz utworzyć nowe treści, podsumować je, przeredagować lub wykonać złożone zadania związane z rozumieniem lub interakcją.
Czy sztuczna inteligencja ma działać offline, czy potrzebujesz maksymalnej prywatności danych (przechowywanie danych użytkownika na urządzeniu) lub chcesz uniknąć kosztów wnioskowania w chmurze?
- A) Tak. Dostęp offline, maksymalna prywatność lub brak kosztów chmury są kluczowe.
- → Otwórz Generatywna AI na urządzeniu
- B) Nie, łączność jest dostępna i akceptowalna, ważniejsze są możliwości i skalowalność chmury lub określone funkcje wymagają chmury.
- → Przejdź do generatywnej AI w chmurze
Generatywna AI na urządzeniu (z użyciem Gemini Nano)
Ograniczenia: wymaga zgodnych urządzeń z Androidem, ograniczona obsługa iOS, modele są mniej wydajne niż ich odpowiedniki w chmurze.
Za pomocą interfejsu Prompt API w ML Kit możesz wysyłać żądania 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 instrukcjami. Jeśli Twoje przypadki użycia mieszczą się w tych limitach tokenów, interfejsy ML Kit GenAI API są najlepszym rozwiązaniem do generatywnej AI na urządzeniu. ML Kit oferuje też uproszczone interfejsy API do typowych zadań, takich jak podsumowywanie i inteligentne odpowiedzi.
- → Zastosowanie: interfejsy ML Kit GenAI API (oparte na Gemini Nano)
- Powód: najprostszy sposób na zintegrowanie zadań generatywnej AI na urządzeniu przy użyciu promptów w języku naturalnym, rozwiązanie na urządzeniu o najwyższym priorytecie.
Generatywna AI w chmurze
Korzysta z bardziej zaawansowanych modeli, wymaga połączenia, zwykle wiąże się z kosztami wnioskowania, zapewnia większy zasięg na urządzeniach i łatwiejszą spójność na wielu platformach (Android i iOS).
Co jest dla Ciebie ważniejsze: łatwość integracji z Firebase CZY maksymalna elastyczność i kontrola?
- A) Wolisz łatwiejszą integrację i zarządzany interfejs API oraz prawdopodobnie korzystasz już z Firebase?
- → Użyj: pakiet SDK Firebase AI Logic → Otwórz Firebase AI Logic
- B) Potrzebujesz maksymalnej elastyczności, dostępu do najszerszej gamy modeli (w tym modeli innych firm i niestandardowych) oraz zaawansowanego dostrajania i chcesz zarządzać własną integracją backendu (bardziej złożoną)?
- → Użycie: Gemini API z niestandardowym zapleczem w chmurze (przy użyciu Google Cloud Platform)
- Powód: zapewnia największą kontrolę, najszerszy dostęp do modeli i opcje trenowania niestandardowego, ale wymaga znacznego nakładu pracy przy tworzeniu backendu. Odpowiednie w przypadku złożonych, dużych lub wysoce spersonalizowanych potrzeb.
(Wybrano pakiet SDK Firebase AI Logic) Jakiego rodzaju zadania generatywnego i profilu wydajności potrzebujesz?
- A) Potrzebujesz równowagi między wydajnością a kosztem, odpowiedniej do ogólnego generowania tekstu, podsumowywania lub aplikacji do czatu, w których ważna jest szybkość?
- → Użyj: pakietu SDK Firebase AI Logic z Gemini Flash
- Dlaczego: zoptymalizowany pod kątem szybkości i wydajności w zarządzanym środowisku Google Cloud.
- B) Potrzebujesz wyższej jakości i większych możliwości w zakresie generowania złożonych tekstów, 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 wymagających zadań, dostępny w Firebase.
Funkcje aplikacji
Musisz rozszerzyć funkcje aplikacji, aby zintegrować ją z funkcjami AI systemu (wprowadzić aplikację do AI).
- → Użyj: AppFunctions
- Uzasadnienie: umożliwia funkcjom AI systemu, takim jak Asystent, wykrywanie i wywoływanie funkcji aplikacji.
Używanie agentów do generowania interfejsu użytkownika, który korzysta z Jetpack Compose i Material 3
Musisz renderować interaktywny interfejs wygenerowany lub wymagany przez agentów AI w swojej aplikacji.
- → Użyj: mechanizmu renderowania A2UI Jetpack Compose
- Dlaczego: umożliwia agentom „mówienie językiem interfejsu” za pomocą protokołu agent-to-UI (A2UI), renderując dynamiczne odpowiedzi agenta jako natywne komponenty Jetpack Compose i Material 3 z pełną obsługą stanu i zdarzeń.