Se utilizzi Firebase Machine Learning per ospitare modelli personalizzati, devi eseguire la migrazione a un'altra soluzione prima che il servizio di hosting Firebase ML venga arrestato il 15 giugno 2027.
Un'alternativa che puoi utilizzare è ospitare i modelli utilizzando Cloud Storage per Firebase. Segui questa guida per eseguire la migrazione dei modelli da Firebase ML a Cloud Storage.
Scarica i modelli TensorFlow Lite
Se non hai ancora memorizzato i modelli localmente, scaricali dal tuo progetto Firebase. Per farlo, hai due opzioni:
Scaricali uno alla volta dalla console Firebase
- Apri la sezione della pagina Machine Learning nella console Firebase.
- Per ogni modello che vuoi migrare, fai clic sul menu extra con tre puntini, quindi fai clic su Scarica modello.
Scaricare collettivamente tutti i modelli ospitati
- Apri la pagina Machine Learning nella console Firebase.
- Fai clic sul pulsante Richiedi il comando per il download collettivo per ottenere un comando
curlche scarica tutti i modelli del progetto. Questi URL scadranno tra 7 giorni. - Esegui il comando nel terminale locale o in
Cloud Shell. Se utilizzi Cloud Shell, tieni presente il limite di 5 GB di spazio di archiviazione su disco.
Il comando scaricherà i tuoi modelli in una cartella locale denominata
hosted_models.
Ospitare i modelli utilizzando Cloud Storage
Una volta che hai i modelli in locale, devi caricarli in un bucket Cloud Storage.
Scegli il metodo di caricamento più adatto alle tue esigenze:
Carica i modelli uno alla volta
- Crea un bucket Storage: nella console Firebase, vai a Database e archiviazione > Storage e segui i passaggi di onboarding per creare un bucket, se non l'hai già fatto. Tieni presente che è necessario un account di fatturazione. Per maggiori dettagli, consulta la pagina Prezzi di Firebase.
- Sempre nella sezione Archiviazione, carica i file del modello
.tflitenel percorso desiderato.
Caricare i modelli collettivamente
- Crea un bucket Storage: nella console Firebase, vai a Database e archiviazione > Storage e segui i passaggi di onboarding per creare un bucket, se non l'hai già fatto. Tieni presente che è necessario un account di fatturazione. Per maggiori dettagli, consulta la pagina Prezzi di Firebase.
Utilizza il seguente comando
gcloudper caricare tutti i modelli dalla cartella localehosted_models:gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
Configurare la sicurezza e l'integrazione delle app
Assicurati che le regole di sicurezza di Storage consentano alla tua app di leggere i file del modello. Ad esempio, puoi limitare l'accesso agli utenti autenticati.
Aggiungi Storage alla tua app: segui le guide alla configurazione per Android, Apple, o Flutter.
Aggiorna il codice dell'applicazione per scaricare i file
.tflitedal nuovo bucket 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; } });Una volta scaricato il modello, puoi utilizzare la libreria Tensorflow Lite esistente per caricarlo e utilizzarlo.
(Facoltativo) Valuta la possibilità di utilizzare Firebase Remote Config per aggiornare dinamicamente i percorsi dei modelli nella tua app senza richiedere una nuova uscita.
(Facoltativo) Esegui la migrazione all'API LiteRT CompiledModel
Se la tua app utilizza ancora l'API TensorFlow Lite Interpreter legacy, valuta la possibilità di eseguire la migrazione all'API LiteRT CompiledModel, che offre un supporto migliore per l'accelerazione hardware e altri miglioramenti rispetto all'API legacy.