TensorFlow Lite modellerini Firebase ML'den Cloud Storage'a taşıma

Özel modelleri barındırmak için Firebase Machine Learning'i kullanıyorsanız Firebase ML barındırma hizmeti 15 Haziran 2027'de kapatılmadan önce başka bir çözüme geçmeniz gerekir.

Kullanabileceğiniz bir alternatif, modellerinizi Firebase için Cloud Storage'ı kullanarak barındırmaktır. Modellerinizi Firebase ML'den Cloud Storage'a taşımak için bu kılavuzu inceleyin.

TensorFlow Lite modellerinizi indirme

Modelleriniz henüz yerel olarak depolanmıyorsa bunları Firebase projenizden indirin. Bunu yapmak için iki seçeneğiniz vardır:

Bunları Firebase konsolundan tek tek indirin.

  1. Firebase konsolunda Makine Öğrenimi sayfa bölümünü açın.
  2. Taşımak istediğiniz her model için üç nokta taşma menüsünü, ardından Modeli indir'i tıklayın.

Barındırılan tüm modellerinizi toplu olarak indirme

  1. Firebase konsolunda Machine Learning sayfasını açın.
  2. Projedeki tüm modelleri indiren bir curl komutu almak için Toplu indirme komutunu al düğmesini tıklayın. Bu URL'lerin süresi 7 gün içinde dolacak.
  3. Komutu yerel terminalinizde veya Cloud Shell'de çalıştırın. Cloud Shell kullanıyorsanız 5 GB disk depolama alanı sınırını unutmayın. Bu komut, modellerinizi hosted_models adlı yerel bir klasöre indirir.

Cloud Storage'ı kullanarak modellerinizi barındırma

Modellerinizi yerel olarak aldıktan sonra bir Cloud Storage paketine yüklemeniz gerekir.

İhtiyaçlarınıza uygun yükleme yöntemini seçin:

Modellerinizi teker teker yükleme

  1. Storage paketi oluşturun: Firebase konsolunda Veritabanları ve Depolama > Storage'a gidin ve daha önce oluşturmadıysanız paket oluşturmak için ilk katılım adımlarını uygulayın. Bunun için faturalandırma hesabı gerektiğini unutmayın. Ayrıntılar için Firebase fiyatlandırması bölümüne bakın.
  2. Hâlâ Depolama bölümündeyken .tflite model dosyalarınızı istediğiniz yola yükleyin.

Modellerinizi toplu olarak yükleme

  1. Storage paketi oluşturun: Firebase konsolunda Veritabanları ve Depolama > Storage'a gidin ve daha önce oluşturmadıysanız paket oluşturmak için ilk katılım adımlarını uygulayın. Bunun için faturalandırma hesabı gerektiğini unutmayın. Ayrıntılar için Firebase fiyatlandırması bölümüne bakın.
  2. Yerel gcloud klasörünüzdeki tüm modelleri yüklemek için aşağıdaki komutu kullanın: hosted_models

    gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/

Güvenliği ve uygulama entegrasyonunu yapılandırma

  1. Depolama güvenlik kurallarınızın, uygulamanızın model dosyalarını okumasına izin verdiğinden emin olun. Örneğin, erişimi kimliği doğrulanmış kullanıcılarla kısıtlayabilirsiniz.

  2. Uygulamanıza depolama alanı ekleyin: Android, Apple veya Flutter için kurulum kılavuzlarını uygulayın.

  3. Uygulama kodunuzu güncelleyerek yeni Storage paketinize yüklediğiniz .tflite dosyalarını indirin.

    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;
      }
    });
    

    Model indirildikten sonra, modeli yüklemek ve kullanmak için mevcut TensorFlow Lite kitaplığınızı kullanabilirsiniz.

  4. (İsteğe bağlı) Yeni bir sürüm yayınlamanıza gerek kalmadan uygulamanızdaki model yollarını dinamik olarak güncellemek için Firebase Remote Config'i kullanmayı düşünebilirsiniz.

İsteğe bağlı: LiteRT CompiledModel API'ye geçiş yapma

Uygulamanız hâlâ eski TensorFlow Lite Interpreter API'sini kullanıyorsa LiteRT CompiledModel API'ye geçmeyi düşünebilirsiniz. Bu API, eski API'ye kıyasla donanım hızlandırma desteği ve başka iyileştirmeler sunar.