Znajdź odpowiednie rozwiązanie AI/ML dla swojej aplikacji

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 wybrać najbardziej odpowiednie rozwiązanie 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 lub Gemini Pro).

Schemat decyzyjny dotyczący przypadków użycia generatywnej AI. Kryteria obejmują rodzaj danych (tekst, obraz, dźwięk, wideo, generowanie obrazów), złożoność (streszczanie, przepisywanie, wiedza domenowa) i okno kontekstu (krótkie dane wejściowe/wyjściowe, obszerne dokumenty/multimedia), co prowadzi do wyboru generatywnej AI na urządzeniu (Gemini Nano) lub Firebase AI Logic (Gemini Flash, Pro).
Rysunek 1: ta ilustracja przedstawia ogólny przewodnik po rozwiązaniach, który pomoże Ci znaleźć odpowiednie rozwiązanie AI/ML dla Twojej aplikacji na Androida. Aby uzyskać bardziej szczegółowe informacje o opcjach AI i ML, zapoznaj się z przewodnikiem po rozwiązaniach znalezionym w dalszej części tego dokumentu.

Wykorzystaj potencjał wnioskowania na urządzeniu

Gdy dodajesz do aplikacji na Androida funkcje 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, 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 API GenAI w ML Kit aby uzyskać gotowe rozwiązania. Interfejsy API GenAI w ML Kit są oparte na Gemini Nano, wykorzystują AICore jako podstawową usługę systemową i są dostosowane do konkretnych zadań na urządzeniu. Dzięki interfejsowi wyższego poziomu i skalowalności interfejsy API GenAI w ML Kit są idealnym rozwiązaniem do wdrożenia w aplikacjach. 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 zastosowania, 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 wymagających 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 w przypadku 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 i Gemini Flash, 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ą z minimalnym wysiłkiem wywoływać modele AI Google po stronie klienta. 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ąco duże 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 przypadku zadań 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 funkcji lub przewidywaniu 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 zastosowań niegeneratywnych, szczególnie w środowiskach mobilnych i obliczeniach brzegowych.

Zacznij integrację uczenia maszynowego 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 z zakresu ML. Ten łatwy w użyciu pakiet SDK na urządzenia mobilne udostępnia wiedzę Google z zakresu ML bezpośrednio w aplikacjach na Androida i iOS, dzięki czemu możesz skupić się na tworzeniu funkcji zamiast na trenowaniu i optymalizowaniu 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 oraz 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 wydajnego 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 musisz wydajnie wdrożyć wytrenowane modele ML (zwykle do klasyfikacji, regresji lub wykrywania) na urządzeniach o ograniczonej mocy obliczeniowej lub czasie pracy 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 udostępnia rozwiązania uczenia maszynowego typu open source, działające na wielu platformach i dostosowywane do potrzeb użytkownika, które są przeznaczone do obsługi multimediów na żywo i strumieniowanych. 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 można w dużym stopniu dostosowywać, co pozwala na dostosowanie rozwiązań do aplikacji na Androida, iOS, w internecie, na komputerach i w backendzie. Wybierz MediaPipe, gdy aplikacja musi rozumieć dane z czujników na żywo i natychmiast na nie reagować, zwłaszcza w przypadku strumieni wideo, w zastosowaniach takich jak rozpoznawanie gestów, efekty AR, śledzenie kondycji lub 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 na urządzeniu

Tradycyjna integracja AI koncentruje się na „wprowadzaniu AI do aplikacji”, ale możesz też „wprowadzić aplikację do AI”. Dzięki udostępnianiu funkcji aplikacji funkcjom AI systemu możesz umożliwić asystentom na poziomie systemu (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.

Wybierz metodę

Gdy integrujesz AI, aby ulepszyć aplikację na Androida, możesz rozważyć 3 podstawowe metody: przetwarzanie na urządzeniu, korzystanie z 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 API Gemini w chmurze z Firebase AI Logic zapewniają zaawansowane przetwarzanie w chmurze. AppFunctions to trzecia metoda, która umożliwia „wprowadzenie aplikacji do AI” przez udostępnienie jej funkcji systemowi w sposób agentowy.

Przy wyborze metody 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ę ze zdalnymi serwerami.
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.
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 konkretnych integracji interfejsu 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.
Kwestie związane z kosztami Brak bezpośrednich opłat za użycie; wykorzystuje istniejący sprzęt urządzenia. Zwykle obejmuje ceny oparte na użyciu lub bieżące subskrypcji.
Zasoby urządzenia Wykorzystuje pamięć lokalną, pamięć RAM i baterię. Minimalny wpływ lokalny; większość zadań jest przenoszona na serwer.
Dostrajanie Ograniczona elastyczność; ograniczenia wynikają z możliwości sprzętu lokalnego. 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 funkcje.


Przewodnik po rozwiązaniach AI/ML

Ten przewodnik po rozwiązaniach pomoże Ci zidentyfikować odpowiednie narzędzia dla deweloperów do integracji 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ć funkcje lub przewidywać na podstawie wyuczonych wzorców, a nie generować całkowicie 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 zoptymalizowana pod kątem użytku na urządzeniu (niskie opóźnienie, działanie offline, prywatność).
  • B) Musisz przetwarzać dane strumieniowane 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 (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) Musisz wytrenować własny model ML do konkretnego zadania?
    • → Użyj: LiteRT (TensorFlow Lite Runtime) + 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żą liczbą 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, do których można uzyskać dostęp 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żytkownika 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.
  • B) Nie, łączność jest dostępna i akceptowalna, możliwości i skalowalność chmury są ważniejsze lub określone funkcje wymagają chmury.

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.

Za pomocą interfejsu 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 zastosowaniach, takich jak rozpoznawanie obrazów, krótkie tłumaczenia i podsumowania z przewodnikiem. Jeśli Twoje zastosowania mogą być zaspokojone przez te limity tokenów, interfejsy API GenAI 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.


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?
  • B) Potrzebujesz maksymalnej elastyczności, dostępu do najszerszej gamy modeli (w tym modeli innych firm/niestandardowych), zaawansowanego dostrajania i chcesz zarządzać własną integracją backendu (bardziej złożoną)?
    • → Użyj: interfejsu 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 w przypadku 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ść?
  • B) Potrzebujesz wyższej jakości i możliwości w zakresie złożonego generowania tekstu, rozumowania, zaawansowanego NLU lub wykonywania instrukcji?

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.