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 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 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 menu z 3 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 modele będą dostępne 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 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 z
starszym interfejsem API.