Thêm Firebase vào Ứng dụng Android được hỗ trợ bởi TFLite của bạn

1. Khái quát chung

cd824ecfd05a2822.png

Firebase ML cho phép bạn triển khai mô hình của mình qua mạng. Điều này cho phép bạn giữ kích thước ứng dụng nhỏ và chỉ tải xuống mô hình ML khi cần, thử nghiệm nhiều mô hình hoặc cập nhật mô hình ML của bạn mà không cần phải xuất bản lại toàn bộ ứng dụng.

Trong lớp học lập trình này, bạn sẽ chuyển đổi một ứng dụng Android sử dụng mô hình TFLite tĩnh thành một ứng dụng sử dụng mô hình được phân phát động từ Firebase.

Bạn sẽ học được gì

  • Triển khai các mô hình TFLite cho Firebase ML và truy cập chúng từ ứng dụng của bạn
  • Theo dõi phản hồi của người dùng để đo độ chính xác của mô hình bằng Firebase Analytics
  • Hiệu suất mô hình hồ sơ thông qua Hiệu suất Firebase
  • Chọn một trong nhiều mô hình đã triển khai sẽ được tải thông qua Cấu hình từ xa
  • Thử nghiệm với các mô hình khác nhau thông qua Thử nghiệm A/B của Firebase

Những gì bạn cần

  • Phiên bản Android Studio mới nhất.
  • Mã mẫu.
  • Thiết bị thử nghiệm có Android 5.0+ và dịch vụ Google Play 9.8 trở lên hoặc Trình mô phỏng có dịch vụ Google Play 9.8 trở lên
  • Nếu sử dụng thiết bị, cáp kết nối.

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ đọc qua Đọc và hoàn thành bài tập

Bạn đánh giá trải nghiệm của bạn khi xây dựng ứng dụng Android như thế nào?

Người mới Trung cấp thành thạo

2. Lấy mã mẫu

Sao chép kho lưu trữ GitHub từ dòng lệnh.

$ git clone https://github.com/FirebaseExtended/codelab-digitclassifier-android.git

Nếu chưa cài đặt git, bạn cũng có thể tải xuống dự án mẫu từ trang GitHub hoặc bằng cách nhấp vào liên kết này .

3. Nhập ứng dụng khởi động

Từ Android Studio, chọn thư mục codelab-digitclassifier-android ( android_studio_folder.png ) từ bản tải xuống mã mẫu ( File > Open > .../codelab-digitclassifier-android/start).

Bây giờ bạn sẽ mở dự án bắt đầu trong Android Studio.

4. Chạy ứng dụng khởi động

Bây giờ bạn đã nhập dự án vào Android Studio, bạn đã sẵn sàng chạy ứng dụng lần đầu tiên. Kết nối thiết bị Android của bạn và nhấp vào Chạy ( thực thi.png ) trên thanh công cụ của Android Studio.

Ứng dụng sẽ khởi chạy trên thiết bị của bạn. Tại thời điểm này, nếu bạn thử vẽ một chữ số, ứng dụng sẽ có thể nhận dạng nó.

6e36e1b947b395f2.png

5. Tạo dự án bảng điều khiển Firebase

Thêm Firebase vào dự án

  1. Chuyển đến bảng điều khiển Firebase .
  2. Chọn Thêm dự án .
  3. Chọn hoặc nhập Tên dự án.
  4. Làm theo các bước thiết lập còn lại trong bảng điều khiển Firebase, sau đó nhấp vào Tạo dự án (hoặc Thêm Firebase, nếu bạn đang sử dụng dự án hiện có của Google).

6. Thêm căn cứ hỏa lực

  1. Từ màn hình tổng quan về dự án mới của bạn, hãy nhấp vào biểu tượng Android để khởi chạy quy trình thiết lập.
  2. Nhập tên gói của lớp học lập trình: org.tensorflow.lite.examples.digitclassifier

Thêm tệp google-services.json vào ứng dụng của bạn

Sau khi đăng ký tên gói và chọn Tiếp theo, hãy nhấp vào Tải xuống google-services.json để lấy tệp cấu hình Firebase Android, sau đó sao chép tệp google-services.json vào thư mục app trong dự án của bạn. Sau khi tệp được tải xuống, bạn có thể Bỏ qua các bước tiếp theo được hiển thị trong bảng điều khiển (các bước này đã được thực hiện cho bạn trong dự án build-android-start).

Thêm plugin dịch vụ google vào ứng dụng của bạn

Plugin google-services sử dụng tệp google-services.json để định cấu hình ứng dụng của bạn nhằm sử dụng Firebase. Thêm dòng sau vào khối plugins ở đầu tệp build.gradle.kts trong thư mục app của dự án của bạn:

app/build.gradle.kts

id("com.google.gms.google-services")

Sau đó thêm dòng sau vào khối plugins của tệp build.gradle.kts trong dự án:

dự án/build.gradle.kts

id("com.google.gms.google-services") version "4.3.15" apply false

Đồng bộ hóa dự án của bạn với các tệp gradle

Để đảm bảo rằng tất cả các phần phụ thuộc đều có sẵn cho ứng dụng của bạn, bạn nên đồng bộ hóa dự án của mình với các tệp gradle tại thời điểm này. Chọn Tệp > Đồng bộ hóa dự án với Tệp Gradle từ thanh công cụ Android Studio.

7. Chạy ứng dụng với Firebase

Bây giờ bạn đã định cấu hình plugin google-services bằng tệp JSON của mình, bạn đã sẵn sàng chạy ứng dụng với Firebase. Kết nối thiết bị Android của bạn và nhấp vào Chạy ( thực thi.png ) trên thanh công cụ của Android Studio.

Ứng dụng sẽ khởi chạy trên thiết bị của bạn. Tại thời điểm này, ứng dụng của bạn vẫn sẽ được xây dựng thành công.

8. Triển khai mô hình lên Firebase ML

Việc triển khai mô hình lên Firebase ML rất hữu ích vì hai lý do chính:

  1. Chúng tôi có thể giữ kích thước cài đặt ứng dụng ở mức nhỏ và chỉ tải xuống mô hình nếu cần
  2. Mô hình có thể được cập nhật thường xuyên và có chu kỳ phát hành khác với toàn bộ ứng dụng

Trước khi có thể thay thế mô hình tĩnh trong ứng dụng của mình bằng mô hình được tải xuống động từ Firebase, chúng tôi cần triển khai mô hình đó lên Firebase ML. Mô hình này có thể được triển khai thông qua bảng điều khiển hoặc theo chương trình bằng cách sử dụng SDK quản trị Firebase. Ở bước này chúng ta sẽ triển khai thông qua console.

Để đơn giản hóa mọi thứ, chúng tôi sẽ sử dụng mô hình TensorFlow Lite đã có trong ứng dụng của chúng tôi. Đầu tiên, mở Bảng điều khiển Firebase và nhấp vào Machine Learning trong bảng điều hướng bên trái. Nhấp vào 'Bắt ​​đầu' nếu bạn mở lần đầu tiên. Sau đó điều hướng đến "Tùy chỉnh" và nhấp vào nút "Thêm mô hình tùy chỉnh".

Khi được nhắc, hãy đặt tên mô tả cho mô hình như mnist_v1 và tải tệp lên từ thư mục dự án codelab trong start/app/src/main/assets/mnist.tflite . Sau đó, bạn có thể xóa tệp mô hình TF Lite này khỏi dự án Android.

3c3c50e6ef12b3b.png

9. Tải xuống mô hình từ Firebase ML

Việc chọn thời điểm tải mô hình từ xa từ Firebase xuống ứng dụng của bạn có thể khó khăn vì các mô hình TFLite có thể phát triển tương đối lớn. Lý tưởng nhất là chúng tôi muốn tránh tải mô hình ngay lập tức khi ứng dụng khởi chạy, vì nếu mô hình của chúng tôi chỉ được sử dụng cho một tính năng và người dùng không bao giờ sử dụng tính năng đó thì chúng tôi sẽ tải xuống một lượng dữ liệu đáng kể mà không có lý do. Chúng ta cũng có thể đặt các tùy chọn tải xuống như chỉ tìm nạp các kiểu máy khi kết nối với wifi. Nếu bạn muốn đảm bảo rằng mô hình này khả dụng ngay cả khi không có kết nối mạng, điều quan trọng là bạn cũng phải gói mô hình đó mà không có ứng dụng làm bản sao lưu.

Để đơn giản, chúng tôi sẽ xóa mô hình đi kèm mặc định và luôn tải mô hình xuống từ Firebase khi ứng dụng khởi động. Bằng cách này, khi chạy nhận dạng chữ số, bạn có thể chắc chắn rằng suy luận đang chạy với mô hình được cung cấp từ Firebase.

Trong tệp app/build.gradle.kts, hãy thêm phần phụ thuộc Firebase Machine Learning

app/build.gradle.kts

implementation("com.google.firebase:firebase-ml-modeldownloader:24.1.2")

Sau đó thêm logic để tải xuống mô hình từ Firebase.

Chúng tôi sẽ thay thế digitClassifier.initialize(loadModelFile()) bằng downloadModel("mnist_v1") và triển khai phương thức này.

MainActivity.kt

  private fun downloadModel(modelName: String): Task<CustomModel> {
    val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
    return FirebaseModelDownloader.getInstance()
        .getModel(modelName, DownloadType.LOCAL_MODEL, conditions)
        .addOnCompleteListener {
          val model = it.result
          if (model == null) {
            showToast("Failed to get model file.")
          } else {
            showToast("Downloaded remote model: $modelName")
            digitClassifier.initialize(model)
          }
        }
      .addOnFailureListener {
        showToast("Model download failed for $modelName, please check your connection.")
      }
  }

Chạy lại ứng dụng của bạn và vẽ một chữ số trong bộ phân loại chữ số. Sau khi quá trình tải xuống hoàn tất, bạn sẽ thấy thông báo Toast cho biết mô hình từ xa đã được tải xuống và nhật ký cho biết mô hình mới của bạn đang được sử dụng.

10. Theo dõi phản hồi và chuyển đổi của người dùng để đo độ chính xác của mô hình

Google Analytics cho Firebase cung cấp cho bạn một cách để hiểu cách người dùng di chuyển qua ứng dụng của bạn, nơi họ thành công cũng như nơi họ gặp khó khăn và quay trở lại. Nó cũng có thể được sử dụng để hiểu những phần được sử dụng nhiều nhất trong ứng dụng của bạn.

Chúng tôi sẽ đo lường độ chính xác của mô hình bằng cách theo dõi phản hồi của người dùng về các dự đoán của mô hình. Nếu người dùng nhấp vào "CÓ", điều đó sẽ cho biết dự đoán đó là chính xác.

Chúng tôi có thể ghi lại sự kiện Analytics để theo dõi độ chính xác của mô hình của mình. Trước tiên, chúng ta phải thêm Analytics vào phần phụ thuộc trước khi có thể sử dụng nó trong dự án:

Thêm phần phụ thuộc Firebase Analytics

app/build.gradle.kts

implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-analytics-ktx")

Nhật ký sự kiện

Sau đó, tại hàm onCreate , chúng ta sẽ đặt trình nghe onclick để ghi nhật ký sự kiện correct_inference vào Firebase.

MainActivity.kt (onCreate)

// Setup YES button
yesButton?.setOnClickListener {
  Firebase.analytics.logEvent("correct_inference", null)
}

Chạy lại ứng dụng và vẽ một chữ số. Nhấn nút "Có" một vài lần để gửi phản hồi rằng suy luận đó là chính xác.

Phân tích gỡ lỗi

Nói chung, các sự kiện do ứng dụng của bạn ghi lại sẽ được nhóm lại với nhau trong khoảng thời gian khoảng một giờ và được tải lên cùng nhau. Cách tiếp cận này giúp tiết kiệm pin trên thiết bị của người dùng cuối và giảm mức sử dụng dữ liệu mạng. Tuy nhiên, với mục đích xác thực việc triển khai phân tích của bạn (và để xem phân tích của bạn trong báo cáo DebugView), bạn có thể bật chế độ Gỡ lỗi trên thiết bị phát triển của mình để tải lên các sự kiện với độ trễ tối thiểu.

Để bật chế độ Gỡ lỗi Analytics trên thiết bị Android, hãy thực hiện các lệnh sau:

adb shell setprop debug.firebase.analytics.app org.tensorflow.lite.examples.digitclassifier

Chạy lại ứng dụng và vẽ một chữ số. Nhấn nút "Có" một vài lần để gửi phản hồi rằng suy luận đó là chính xác. Giờ đây, bạn có thể xem các sự kiện nhật ký gần như theo thời gian thực thông qua chế độ xem gỡ lỗi trong bảng điều khiển Firebase. Nhấp vào Analytics > DebugView từ thanh điều hướng bên trái.

5276199a086721fd.png

11. Phân tích hiệu suất của mô hình

Giám sát hiệu suất Firebase là dịch vụ giúp bạn hiểu rõ hơn về các đặc điểm hiệu suất của ứng dụng iOS, Android và web của bạn.

Bạn sử dụng SDK giám sát hiệu suất để thu thập dữ liệu hiệu suất từ ​​ứng dụng của mình, sau đó xem xét và phân tích dữ liệu đó trong bảng điều khiển Firebase. Giám sát hiệu suất giúp bạn hiểu vị trí và thời điểm có thể cải thiện hiệu suất của ứng dụng để bạn có thể sử dụng thông tin đó nhằm khắc phục các vấn đề về hiệu suất.

Ở đây chúng tôi thêm dấu vết hoàn hảo xung quanh suy luận và tải xuống

Điều này rất quan trọng vì các mô hình lớn hơn được sử dụng trong học sâu có khả năng chính xác hơn nhưng chúng cũng có thể mất nhiều thời gian hơn để trả về phản hồi. Trong thử nghiệm của chúng tôi, chúng tôi đang cố gắng tìm sự cân bằng phù hợp giữa độ chính xác và tốc độ.

Thêm phần phụ thuộc Hiệu suất Firebase

dự án/build.gradle.kts

plugins {
  // ...

  // Add the dependency for the Performance Monitoring plugin
  id("com.google.firebase.firebase-perf") version "1.4.2" apply false
}

app/build.gradle.kts

plugins {
  // ...

  // Add the Performance Monitoring plugin
  id("com.google.firebase.firebase-perf")
}

// ...

dependencies {
  // ...

  // Add the dependency for the Performance Monitoring library
  implementation("com.google.firebase:firebase-perf")
}

Thêm dấu vết tùy chỉnh

Trong hàm setupDigitClassifier() , hãy tạo một downloadTrace mới và khởi động nó ngay trước khi tải mô hình xuống. Sau đó thêm một trình nghe thành công dừng theo dõi.

Trong hàm classifyDrawing() hãy tạo một phân loạiTrace mới và khởi động nó ngay trước khi phân loại. Sau đó dừng theo dõi trong trình nghe thành công.

MainActivity.kt

class MainActivity : AppCompatActivity() {
  // ...
  
  private val firebasePerformance = FirebasePerformance.getInstance()
  
  // ...

  private fun setupDigitClassifier() {
    // Add these lines to create and start the trace
    val downloadTrace = firebasePerformance.newTrace("download_model")
    downloadTrace.start()
    downloadModel("mnist_v1")
      // Add these lines to stop the trace on success
      .addOnSuccessListener {
        downloadTrace.stop()
      }
  }

// ...

  private fun classifyDrawing() {
    val bitmap = drawView?.getBitmap()

    if ((bitmap != null) && (digitClassifier.isInitialized)) {
      // Add these lines to create and start the trace
      val classifyTrace = firebasePerformance.newTrace("classify")
      classifyTrace.start()
      digitClassifier
        .classifyAsync(bitmap)
        .addOnSuccessListener { resultText -> 
          // Add this line to stop the trace on success
          classifyTrace.stop()
          predictedTextView?.text = resultText
        }
        .addOnFailureListener { e ->
          predictedTextView?.text = getString(
            R.string.tfe_dc_classification_error_message,
            e.localizedMessage
          )
          Log.e(TAG, "Error classifying drawing.", e)
        }
    }
  }

Xem thông điệp tường trình cho các sự kiện hiệu suất

  1. Bật tính năng ghi nhật ký gỡ lỗi cho Giám sát hiệu suất tại thời điểm xây dựng bằng cách thêm phần tử <meta-data> vào tệp AndroidManifest.xml của ứng dụng, như sau:

AndroidManifest.xml

<application>
    <meta-data
      android:name="firebase_performance_logcat_enabled"
      android:value="true" />
</application>
  1. Kiểm tra thông điệp tường trình của bạn xem có thông báo lỗi nào không.
  2. Giám sát hiệu suất gắn thẻ thông điệp tường trình của nó với FirebasePerformance . Bằng cách sử dụng tính năng lọc logcat, bạn có thể xem cụ thể dấu vết thời lượng và ghi nhật ký yêu cầu mạng HTTP/S bằng cách chạy lệnh sau:
adb logcat -s FirebasePerformance
  1. Kiểm tra các loại nhật ký sau để biết rằng Giám sát hiệu suất đang ghi nhật ký các sự kiện hiệu suất:
  • Logging TraceMetric
  • Logging NetworkRequestMetric

12. Triển khai mô hình thứ hai cho Firebase ML

Khi đưa ra phiên bản mới cho mô hình của bạn, chẳng hạn như phiên bản có kiến ​​trúc mô hình tốt hơn hoặc phiên bản được đào tạo trên tập dữ liệu lớn hơn hoặc cập nhật, chúng tôi có thể muốn thay thế mô hình hiện tại bằng phiên bản mới. Tuy nhiên, một mô hình hoạt động tốt trong quá trình thử nghiệm không nhất thiết phải hoạt động tốt như vậy trong quá trình sản xuất. Do đó, hãy thực hiện thử nghiệm A/B trong quá trình sản xuất để so sánh mô hình ban đầu của chúng tôi và mô hình mới.

Kích hoạt API quản lý mô hình Firebase

Trong bước này, chúng tôi sẽ kích hoạt API quản lý mô hình Firebase để triển khai phiên bản mới của mô hình TensorFlow Lite bằng mã Python.

Tạo một nhóm để lưu trữ các mô hình ML của bạn

Trong Bảng điều khiển Firebase của bạn, đi tới Bộ nhớ và nhấp vào Bắt đầu. fbbea78f0eb3dc9f.png

Thực hiện theo đoạn hội thoại để thiết lập nhóm của bạn.

19517c0d6d2aa14d.png

Kích hoạt API ML Firebase

Truy cập trang API Firebase ML trên Google Cloud Console và nhấp vào Bật.

2414fd5cced6c984.png Chọn ứng dụng Phân loại chữ số khi được hỏi.

Đào tạo mô hình mới và Xuất bản lên Firebase ML

Bây giờ, chúng tôi sẽ đào tạo phiên bản mới của mô hình bằng cách sử dụng tập dữ liệu lớn hơn và sau đó chúng tôi sẽ triển khai nó theo chương trình trực tiếp từ sổ tay đào tạo bằng SDK quản trị Firebase.

Tải xuống khóa riêng cho tài khoản dịch vụ

Trước khi có thể sử dụng SDK quản trị Firebase, chúng tôi cần tạo tài khoản dịch vụ. Mở bảng Tài khoản dịch vụ của bảng điều khiển Firebase bằng cách nhấp vào liên kết này và nhấp vào nút để tạo tài khoản dịch vụ mới cho SDK quản trị Firebase. Khi được nhắc, hãy nhấp vào nút Tạo khóa riêng mới. Chúng tôi sẽ sử dụng khóa tài khoản dịch vụ để xác thực các yêu cầu của chúng tôi từ sổ ghi chép colab.

c3b95de1e5508516.png

Bây giờ chúng ta có thể đào tạo và triển khai mô hình mới.

  1. Mở sổ tay colab này và tạo một bản sao của nó trong Drive của riêng bạn.
  2. Chạy ô đầu tiên "Huấn luyện mô hình TensorFlow Lite cải tiến" bằng cách nhấp vào nút phát ở bên trái ô đó. Quá trình này sẽ đào tạo một mô hình mới và có thể mất một chút thời gian.
  3. Chạy ô thứ hai sẽ tạo ra lời nhắc tải tệp lên. Tải tệp json bạn đã tải xuống từ Bảng điều khiển Firebase lên khi tạo tài khoản dịch vụ của mình.

71e847c6a85423b3.png

  1. Chạy hai ô cuối cùng.

Sau khi chạy sổ tay colab, bạn sẽ thấy mô hình thứ hai trong bảng điều khiển Firebase. Đảm bảo mô hình thứ hai có tên mnist_v2 .

c316683bb4d75d57.png

13. Chọn model qua Remote Config

Bây giờ chúng ta có hai mô hình riêng biệt, chúng ta sẽ thêm một tham số để chọn mô hình nào sẽ tải xuống khi chạy. Giá trị của tham số mà máy khách nhận được sẽ xác định máy khách sẽ tải xuống mô hình nào.

Thêm quy tắc cấu hình trong bảng điều khiển Firebase

Đầu tiên, mở bảng điều khiển Firebase và nhấp vào nút Cấu hình từ xa trong menu điều hướng bên trái. Sau đó, nhấp vào nút "Thêm tham số".

Đặt tên cho tham số mới model_name và đặt cho nó giá trị mặc định là "mnist_v1" . Bằng cách đặt tên của mô hình vào tham số cấu hình từ xa, chúng ta có thể kiểm tra nhiều mô hình mà không cần thêm tham số mới cho mọi mô hình mà chúng ta muốn kiểm tra. Nhấp vào Xuất bản Thay đổi để áp dụng các bản cập nhật.

2949cb95c7214ca4.png

Thêm phụ thuộc Firebase RemoteConfig

app/build.gradle.kts

implementation("com.google.firebase:firebase-config-ktx")

Định cấu hình cấu hình từ xa Firebase

MainActivity.kt

  private fun configureRemoteConfig() {
    remoteConfig = Firebase.remoteConfig
    val configSettings = remoteConfigSettings {
      minimumFetchIntervalInSeconds = 3600
    }
    remoteConfig.setConfigSettingsAsync(configSettings)
  }

Yêu cầu và sử dụng cấu hình

Tạo yêu cầu tìm nạp cấu hình và thêm trình xử lý hoàn thành để chọn và sử dụng các tham số cấu hình.

MainActivity.kt

 private fun setupDigitClassifier() {
    configureRemoteConfig()
    remoteConfig.fetchAndActivate()
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          val modelName = remoteConfig.getString("model_name")
          val downloadTrace = firebasePerformance.newTrace("download_model")
          downloadTrace.start()
          downloadModel(modelName)
            .addOnSuccessListener {
              downloadTrace.stop()
            }
        } else {
          showToast("Failed to fetch model name.")
        }
      }
  }

Kiểm tra cấu hình từ xa

  1. Nhấn vào 98205811bbed9d74.png Nút chạy .
  2. Kiểm tra xem bạn có thấy thông báo Toast cho biết mô hình mnist_v1 đã được tải xuống hay không.
  3. Quay lại Bảng điều khiển Firebase, thay đổi giá trị mặc định thành mnist_v2 và chọn Xuất bản Thay đổi để áp dụng các bản cập nhật.
  4. Khởi động lại ứng dụng và kiểm tra xem thông báo Toast cho biết mô hình mnist_v2 đã được tải xuống lần này.

14. Hiệu quả của mô hình thử nghiệm A/B

Thử nghiệm A/B Firebase giúp bạn tối ưu hóa trải nghiệm ứng dụng của mình bằng cách giúp bạn dễ dàng chạy, phân tích cũng như mở rộng quy mô thử nghiệm sản phẩm và tiếp thị. Cuối cùng, chúng ta có thể sử dụng hành vi Thử nghiệm A/B tích hợp của Firebase để xem mô hình nào trong hai mô hình của chúng ta hoạt động tốt hơn.

Chuyển đến Analytics -> Sự kiện trong bảng điều khiển Firebase. Nếu sự kiện correct_inference đang hiển thị, hãy đánh dấu sự kiện đó là "Sự kiện chuyển đổi", nếu không, bạn có thể truy cập Analytics -> Sự kiện chuyển đổi và nhấp vào "Tạo sự kiện chuyển đổi mới" và đặt correct_inference.

Bây giờ, hãy chuyển đến "Cấu hình từ xa trong bảng điều khiển Firebase, chọn nút "Thử nghiệm A/B" từ menu tùy chọn khác trên thông số "model_name" mà chúng tôi vừa thêm.

fad5ea36969d2aeb.png

Trong menu tiếp theo, chấp nhận tên mặc định.

d7c006669ace6e40.png

Chọn ứng dụng của bạn trong menu thả xuống và thay đổi tiêu chí nhắm mục tiêu thành 50% số người dùng đang hoạt động.

cb72dcc7d2666bd3.png

Nếu trước đó bạn có thể đặt sự kiện correct_inference làm lượt chuyển đổi, hãy sử dụng sự kiện này làm chỉ số chính để theo dõi. Ngược lại, nếu không muốn đợi sự kiện hiển thị trong Analytics, bạn có thể thêm correct_inference manually .

1ac9c94fb3159271.png

Cuối cùng, trên màn hình Biến thể, đặt biến thể nhóm điều khiển của bạn để sử dụng mnist_v1 và nhóm Biến thể A của bạn để sử dụng mnist_v2 .

e4510434f8da31b6.png

Nhấp vào nút Xem lại ở góc dưới bên phải.

Xin chúc mừng, bạn đã tạo thành công thử nghiệm A/B cho hai mô hình riêng biệt của mình! Thử nghiệm A/B hiện đang ở trạng thái nháp và có thể bắt đầu bất kỳ lúc nào bằng cách nhấp vào nút "Bắt đầu thử nghiệm".

Để có cái nhìn sâu hơn về thử nghiệm A/B, hãy xem tài liệu về Thử nghiệm A/B .

15. Xin chúc mừng!

Trong lớp học lập trình này, bạn đã tìm hiểu cách thay thế nội dung tflite được đóng gói tĩnh trong ứng dụng của mình bằng mô hình TFLite được tải động từ Firebase. Để tìm hiểu thêm về TFLite và Firebase, hãy xem các mẫu TFLite khác và hướng dẫn bắt đầu Firebase.

Những gì chúng tôi đã đề cập

  • TensorFlow Lite
  • Firebase ML
  • Phân tích căn cứ hỏa lực
  • Giám sát hiệu suất Firebase
  • Cấu hình từ xa Firebase
  • Thử nghiệm A/B của Firebase

Bước tiếp theo

  • Triển khai Triển khai Firebase ML trong ứng dụng của bạn.

Tìm hiểu thêm

Có một câu hỏi?

Báo cáo vấn đề