1. Tinjauan
Selamat datang di Klasifikasi Teks dengan TensorFlow Lite dan codelab Firebase. Dalam codelab ini, Anda akan mempelajari cara menggunakan TensorFlow Lite dan Firebase untuk melatih dan men-deploy model klasifikasi teks ke aplikasi Anda. Codelab ini didasarkan pada contoh TensorFlow Lite ini .
Klasifikasi teks adalah proses pemberian tag atau kategori ke teks sesuai dengan isinya. Ini adalah salah satu tugas mendasar dalam Natural Language Processing (NLP) dengan aplikasi luas seperti analisis sentimen, pelabelan topik, deteksi spam, dan deteksi maksud.
Analisis sentimen adalah interpretasi dan klasifikasi emosi (positif, negatif, dan netral) dalam data teks dengan menggunakan teknik analisis teks. Analisis sentimen memungkinkan bisnis mengidentifikasi sentimen pelanggan terhadap produk, merek, atau layanan dalam percakapan dan umpan balik online.
Tutorial ini menunjukkan cara membangun model pembelajaran mesin untuk analisis sentimen, khususnya mengklasifikasikan teks sebagai positif atau negatif. Ini adalah contoh klasifikasi biner—atau dua kelas—, jenis masalah pembelajaran mesin yang penting dan dapat diterapkan secara luas.
Apa yang akan Anda pelajari
- Latih model analisis sentimen TF Lite dengan TF Lite Model Maker
- Menerapkan model TF Lite ke Firebase ML dan mengaksesnya dari aplikasi Anda
- Lacak umpan balik pengguna untuk mengukur akurasi model dengan Firebase Analytics
- Buat profil performa model melalui Firebase Performance Monitoring
- Pilih salah satu dari beberapa model penerapan yang dimuat melalui Remote Config
- Bereksperimenlah dengan berbagai model melalui Pengujian A/B Firebase
Apa yang Anda butuhkan
- Xcode 11 (atau lebih tinggi)
- CocoaPods 1.9.1 (atau lebih tinggi)
Bagaimana Anda akan menggunakan tutorial ini?
Bagaimana menilai pengalaman Anda dalam membuat aplikasi Android?
2. Buat proyek konsol Firebase
Tambahkan Firebase ke proyek
- Buka konsol Firebase .
- Pilih Buat Proyek Baru dan beri nama proyek Anda "Firebase ML iOS Codelab".
3. Dapatkan Proyek Sampel
Unduh Kode
Mulailah dengan mengkloning proyek sampel dan menjalankan pod update
di direktori proyek:
git clone https://github.com/FirebaseExtended/codelab-textclassification-ios.git cd codelab-textclassification-ios pod install --repo-update
Jika Anda belum menginstal git, Anda juga dapat mengunduh proyek sampel dari halaman GitHub atau dengan mengeklik tautan ini . Setelah Anda mengunduh proyek, jalankan di Xcode dan bermain-main dengan klasifikasi teks untuk merasakan cara kerjanya.
Siapkan Firebase
Ikuti dokumentasi untuk membuat proyek Firebase baru. Setelah mendapatkan proyek Anda, unduh file GoogleService-Info.plist
proyek Anda dari konsol Firebase dan seret ke root proyek Xcode.
Tambahkan Firebase ke Podfile Anda dan jalankan pod install.
pod 'FirebaseMLModelDownloader', '9.3.0-beta'
Dalam metode didFinishLaunchingWithOptions
AppDelegate
Anda, impor Firebase di bagian atas file
import FirebaseCore
Dan tambahkan panggilan untuk mengonfigurasi Firebase.
FirebaseApp.configure()
Jalankan proyek lagi untuk memastikan aplikasi dikonfigurasi dengan benar dan tidak macet saat diluncurkan.
4. Latih model analisis sentimen
Kami akan menggunakan TensorFlow Lite Model Maker untuk melatih model klasifikasi teks guna memprediksi sentimen teks tertentu.
Langkah ini ditampilkan sebagai notebook Python yang dapat Anda buka di Google Colab.
Buka di Colab
Setelah menyelesaikan langkah ini, Anda akan memiliki model analisis sentimen TensorFlow Lite yang siap diterapkan ke aplikasi seluler.
5. Terapkan model ke Firebase ML
Men-deploy model ke Firebase ML bermanfaat karena dua alasan utama:
- Kami dapat menjaga ukuran pemasangan aplikasi tetap kecil dan hanya mengunduh model jika diperlukan
- Model dapat diperbarui secara berkala dan dengan siklus rilis yang berbeda dari keseluruhan aplikasi
Model dapat di-deploy baik melalui konsol, atau secara terprogram, menggunakan Firebase Admin SDK. Pada langkah ini kami akan menerapkan melalui konsol.
Pertama, buka Firebase Console dan klik Machine Learning di panel navigasi kiri. Klik 'Mulai' jika Anda membuka ini pertama kali. Kemudian navigasikan ke "Kustom" dan klik tombol "Tambahkan model".
Saat diminta, beri nama model sentiment_analysis
dan upload file yang Anda download dari Colab di langkah sebelumnya.
6. Unduh model dari Firebase ML
Memilih waktu untuk mengunduh model jarak jauh dari Firebase ke dalam aplikasi Anda dapat menjadi rumit karena model TFLite dapat berkembang relatif besar. Idealnya, kami ingin menghindari pemuatan model segera saat aplikasi diluncurkan, karena jika model kami hanya digunakan untuk satu fitur dan pengguna tidak pernah menggunakan fitur tersebut, kami akan mengunduh sejumlah besar data tanpa alasan. Kami juga dapat mengatur opsi unduhan seperti hanya mengambil model saat terhubung ke wifi. Jika Anda ingin memastikan model tersedia bahkan tanpa koneksi jaringan, penting juga untuk memaketkannya tanpa aplikasi sebagai cadangan.
Demi kesederhanaan, kami akan menghapus model paket default dan selalu mendownload model dari Firebase saat aplikasi dimulai untuk pertama kali. Dengan cara ini saat menjalankan analisis sentimen, Anda dapat yakin bahwa inferensi berjalan dengan model yang disediakan dari Firebase.
Di bagian atas ModelLoader.swift
, impor modul Firebase.
import FirebaseCore import FirebaseMLModelDownloader
Kemudian terapkan metode berikut.
static func downloadModel(named name: String, completion: @escaping (CustomModel?, DownloadError?) -> Void) { guard FirebaseApp.app() != nil else { completion(nil, .firebaseNotInitialized) return } guard success == nil && failure == nil else { completion(nil, .downloadInProgress) return } let conditions = ModelDownloadConditions(allowsCellularAccess: false) ModelDownloader.modelDownloader().getModel(name: name, downloadType: .localModelUpdateInBackground, conditions: conditions) { result in switch (result) { case .success(let customModel): // Download complete. // The CustomModel object contains the local path of the model file, // which you can use to instantiate a TensorFlow Lite classifier. return completion(customModel, nil) case .failure(let error): // Download was unsuccessful. Notify error message. completion(nil, .downloadFailed(underlyingError: error)) } } }
Di viewDidLoad
ViewController.swift
, ganti panggilan ke loadModel()
dengan metode pengunduhan model baru kami.
// Download the model from Firebase print("Fetching model...") ModelLoader.downloadModel(named: "sentiment_analysis") { (customModel, error) in guard let customModel = customModel else { if let error = error { print(error) } return } print("Model download complete") // TODO: Initialize an NLClassifier from the downloaded model }
Jalankan kembali aplikasi Anda. Setelah beberapa detik, Anda akan melihat log di Xcode yang menunjukkan bahwa model jarak jauh telah berhasil diunduh. Coba ketikkan beberapa teks dan konfirmasikan bahwa perilaku aplikasi tidak berubah.
7. Integrasikan model di aplikasi Anda
Pustaka Tugas Tensorflow Lite membantu Anda mengintegrasikan model TensorFlow Lite ke dalam aplikasi hanya dengan beberapa baris kode. Kami akan menginisialisasi instance TFLNLClassifier
menggunakan model TensorFlow Lite yang diunduh dari Firebase. Kemudian kita akan menggunakannya untuk mengklasifikasikan input teks dari pengguna aplikasi dan menampilkan hasilnya di UI.
Tambahkan ketergantungan
Buka Podfile aplikasi dan tambahkan TensorFlow Lite Task Library (Text) di dependensi aplikasi. Pastikan Anda menambahkan dependensi di bawah deklarasi target 'TextClassification'
.
pod 'TensorFlowLiteTaskText', '~> 0.2.0'
Jalankan pod install
untuk menginstal dependensi baru.
Menginisialisasi pengklasifikasi teks
Kemudian kita akan memuat model analisis sentimen yang diunduh dari Firebase menggunakan NLClassifier
Perpustakaan Tugas.
ViewController.swift
Mari mendeklarasikan variabel instan TFLNLClassifier. Di bagian atas file, impor dependensi baru:
import TensorFlowLiteTaskText
Temukan komentar ini di atas metode yang kami modifikasi pada langkah terakhir:
// TODO: Add an TFLNLClassifier property.
Ganti TODO dengan kode berikut:
private var classifier: TFLNLClassifier?
Inisialisasi variabel textClassifier
dengan model analisis sentimen yang diunduh dari Firebase. Temukan komentar ini yang kami tambahkan di langkah terakhir:
// TODO: Initialize an NLClassifier from the downloaded model
Ganti TODO dengan kode berikut:
let options = TFLNLClassifierOptions()
self.classifier = TFLNLClassifier.nlClassifier(modelPath: customModel.path, options: options)
Mengklasifikasikan teks
Setelah instance classifier
disiapkan, Anda dapat menjalankan analisis sentimen dengan satu pemanggilan metode.
ViewController.swift
Dalam metode classify(text:)
, temukan komentar TODO:
// TODO: Run sentiment analysis on the input text
Ganti komentar dengan kode berikut:
guard let classifier = self.classifier else { return }
// Classify the text
let classifierResults = classifier.classify(text: text)
// Append the results to the list of results
let result = ClassificationResult(text: text, results: classifierResults)
results.append(result)
8. Jalankan aplikasi terakhir
Anda telah mengintegrasikan model analisis sentimen ke aplikasi, jadi mari kita uji. Hubungkan perangkat iOS Anda, dan klik Jalankan ( ) di bilah alat Xcode.
Aplikasi harus dapat memprediksi sentimen ulasan film yang Anda masukkan dengan benar.
9. Perkuat aplikasi dengan lebih banyak fitur Firebase
Selain menghosting model TFLite Anda, Firebase menyediakan beberapa fitur lain untuk memperkuat kasus penggunaan pembelajaran mesin Anda:
- Firebase Performance Monitoring untuk mengukur kecepatan inferensi model Anda yang berjalan di perangkat pengguna.
- Firebase Analytics untuk mengukur seberapa baik performa model Anda dalam produksi dengan mengukur reaksi pengguna.
- Pengujian A/B Firebase untuk menguji beberapa versi model Anda
- Apakah Anda ingat kami melatih dua versi model TFLite kami sebelumnya? Pengujian A/B adalah cara yang baik untuk mengetahui versi mana yang berkinerja lebih baik dalam produksi!
Untuk mempelajari lebih lanjut cara memanfaatkan fitur ini di aplikasi Anda, lihat codelab di bawah:
10. Selamat!
Dalam codelab ini, Anda mempelajari cara melatih model TFLite analisis sentimen dan menerapkannya ke aplikasi seluler menggunakan Firebase. Untuk mempelajari TFLite dan Firebase lebih lanjut, lihat contoh TFLite lainnya dan panduan memulai Firebase.
Apa yang telah kita bahas
- TensorFlow Lite
- Firebase ML
Langkah selanjutnya
- Ukur kecepatan inferensi model Anda dengan Firebase Performance Monitoring.
- Deploy model dari Colab langsung ke Firebase melalui Firebase ML Model Management API.
- Tambahkan mekanisme untuk memungkinkan pengguna memberi masukan tentang hasil prediksi, dan gunakan Firebase Analytics untuk melacak masukan pengguna.
- A/B menguji model Average Word Vector dan model MobileBERT dengan pengujian A/B Firebase.
Belajarlah lagi
- Dokumentasi Pembelajaran Mesin Firebase
- Dokumentasi TensorFlow Lite
- Ukur performa aplikasi dengan Firebase
- Model Pengujian A/B dengan Firebase