Jeśli używasz Firebase Machine Learning do hostowania modeli niestandardowych, musisz przejść na inne rozwiązanie, zanim usługa hostingu Firebase ML zostanie wyłączona 15 czerwca 2027 r.
Jedną z alternatyw jest hostowanie modeli za pomocą Cloud Storage dla Firebase. Aby przenieść modele z Firebase ML do Cloud Storage, postępuj zgodnie z tym przewodnikiem.
Pobieranie modeli TensorFlow Lite
Jeśli nie masz jeszcze modeli zapisanych lokalnie, pobierz je z projektu w Firebase. Możesz to zrobić na 2 sposoby:
Pobieranie modeli pojedynczo z konsoli Firebase
- W konsoli Firebase otwórz sekcję Machine Learning.
- W przypadku każdego modelu, który chcesz przenieść, kliknij jego rozszerzone menu (menu z trzema kropkami), a następnie kliknij Pobierz model.
Zbiorcze pobieranie wszystkich hostowanych modeli
- W konsoli Firebase otwórz stronę Machine Learning.
- Kliknij przycisk Pobierz polecenie do pobierania zbiorczego , aby uzyskać polecenie
curl, które pobiera wszystkie modele w projekcie. Te adresy URL wygasną za 7 dni. - Uruchom polecenie w lokalnym terminalu lub w
Cloud Shell. Jeśli używasz Cloud Shell, pamiętaj o limicie
5 GB miejsca na dysku.
Polecenie pobierze modele do folderu lokalnego o nazwie
hosted_models.
Hostowanie modeli za pomocą Cloud Storage
Gdy masz już modele lokalnie, musisz przesłać je do zasobnika Cloud Storage.
Wybierz metodę przesyłania, która odpowiada Twoim potrzebom:
Przesyłanie modeli pojedynczo
- Utwórz zasobnik Storage: w konsoli Firebase otwórz Bazy danych i pamięć > Pamięć i wykonaj czynności wprowadzające, aby utworzyć zasobnik, jeśli jeszcze go nie masz. Pamiętaj, że wymaga to konta rozliczeniowego. Więcej informacji znajdziesz w cenniku Firebase.
- W sekcji Pamięć prześlij pliki modelu
.tflitedo wybranej ścieżki.
Zbiorcze przesyłanie modeli
- Utwórz zasobnik Storage: w konsoli Firebase otwórz Bazy danych i pamięć > Pamięć i wykonaj czynności wprowadzające, aby utworzyć zasobnik, jeśli jeszcze go nie masz. Pamiętaj, że wymaga to konta rozliczeniowego. Więcej informacji znajdziesz w cenniku Firebase.
Aby przesłać wszystkie modele z lokalnego folderu
hosted_models, użyj tego poleceniagcloud:gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
Konfigurowanie zabezpieczeń i integracji z aplikacją
Upewnij się, że reguły zabezpieczeń Storage umożliwiają aplikacji odczytywanie plików modelu. Możesz na przykład ograniczyć dostęp do uwierzytelnionych użytkowników.
Dodaj Storage do aplikacji: postępuj zgodnie z instrukcjami konfiguracji na Androidzie, Apple, lub Flutterze.
Zaktualizuj kod aplikacji, aby pobierać pliki
.tflitez nowego zasobnika Storage.Android
modelRef = storage.getReferenceFromUrl("gs://YOUR_BUCKET/path/to/model.tflite") val localFile = File.createTempFile("models", "tflite") modelRef.getFile(localFile).addOnSuccessListener { // Local temp file has been created }.addOnFailureListener { // Handle any errors }Apple
let gsReference = storage.reference(forURL: "gs://YOUR_BUCKET/path/to/model.tflite") // Create local filesystem URL let localURL = URL(string: "path/to/model.tflite")! // Download to the local filesystem let downloadTask = gsReference.write(toFile: localURL) { url, error in if let error = error { // Uh-oh, an error occurred! } else { // Local file URL for "model.tflite" is returned } }Flutter
final modelRef = FirebaseStorage.instance.refFromURL("gs://YOUR_BUCKET/path/to/model.tflite"); final appDocDir = await getApplicationDocumentsDirectory(); final filePath = "${appDocDir.absolute}/models/model.tflite"; final file = File(filePath); final downloadTask = modelRef.writeToFile(file); downloadTask.snapshotEvents.listen((taskSnapshot) { switch (taskSnapshot.state) { case TaskState.running: // TODO: Handle this case. break; case TaskState.paused: // TODO: Handle this case. break; case TaskState.success: // TODO: Handle this case. break; case TaskState.canceled: // TODO: Handle this case. break; case TaskState.error: // TODO: Handle this case. break; } });Po pobraniu modelu możesz użyć dotychczasowej biblioteki Tensorflow Lite, aby go wczytać i używać.
(Opcjonalnie) Możesz użyć Zdalnej konfiguracji Firebase aby dynamicznie aktualizować ścieżki modeli w aplikacji bez konieczności publikowania nowej wersji.
Opcjonalnie: przejście na interfejs LiteRT CompiledModel API
Jeśli Twoja aplikacja nadal używa starszego interfejsu TensorFlow Lite Interpreter API, rozważ
przejście na interfejs LiteRT CompiledModel API,
który oferuje lepszą obsługę akceleracji sprzętowej i inne ulepszenia w porównaniu ze
starszym interfejsem API.