Jeśli korzystasz z usługi Firebase Machine Learning do hostowania modeli niestandardowych, musisz przejść na inne rozwiązanie przed wyłączeniem usługi hostingu Firebase ML 15 czerwca 2027 r.
Możesz też hostować modele w Cloud Storage for 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 ich pojedynczo z konsoli Firebase
- Otwórz sekcję Machine Learning w konsoli Firebase.
- W przypadku każdego modelu, który chcesz przenieść, kliknij rozszerzone menu z 3 kropkami, a następnie kliknij Pobierz model.
Zbiorcze pobieranie wszystkich hostowanych modeli
- Otwórz stronę Machine Learning w konsoli Firebase.
- 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 terminalu lokalnym lub w Cloud Shell. Jeśli używasz Cloud Shell, pamiętaj o limicie 5 GB miejsca na dysku.
Polecenie pobierze modele do lokalnego folderu o nazwie
hosted_models.
Hostowanie modeli za pomocą Cloud Storage
Po utworzeniu modeli 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ęć > Storage i postępuj zgodnie z instrukcjami, aby utworzyć zasobnik, jeśli jeszcze tego nie zrobisz. Pamiętaj, że wymaga to konta rozliczeniowego. Więcej informacji znajdziesz na stronie Ceny Firebase.
- W sekcji Miejsce na dane 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ęć masowa > Storage i postępuj zgodnie z instrukcjami, aby utworzyć zasobnik, jeśli jeszcze tego nie zrobisz. Pamiętaj, że wymaga to konta rozliczeniowego. Więcej informacji znajdziesz na stronie Ceny Firebase.
Aby przesłać wszystkie modele z lokalnego folderu
gcloud, użyj tego polecenia:hosted_modelsgcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
Konfigurowanie zabezpieczeń i integracji aplikacji
Upewnij się, że reguły zabezpieczeń usługi Storage umożliwiają aplikacji odczytywanie plików modelu. Możesz na przykład ograniczyć dostęp do uwierzytelnionych użytkowników.
Dodaj do aplikacji usługę Storage: postępuj zgodnie z przewodnikami konfiguracji dla Androida, Apple lub Fluttera.
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ć istniejącej biblioteki TensorFlow Lite, aby go wczytać i z niego korzystać.
(Opcjonalnie) Rozważ użycie 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 korzysta ze 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.