Membuat model klasifikasi teks kustom dengan TensorFlow Lite Model Maker

1. Sebelum memulai

Dalam codelab ini, Anda akan mempelajari cara mengupdate model klasifikasi teks yang di-build dari set data komentar spam blog asli, tetapi ditingkatkan kualitasnya dengan komentar Anda sendiri agar dapat memiliki model yang sesuai dengan data Anda.

Prasyarat

Codelab ini adalah bagian dari jalur pembelajaran Memulai klasifikasi teks di aplikasi Flutter. Codelab di jalur ini bersifat berurutan. Aplikasi dan model yang akan Anda kerjakan telah di-build sebelumnya, saat Anda mengikuti codelab. Jika Anda belum menyelesaikan aktivitas sebelumnya, berhenti mengikuti codelab ini dan selesaikan aktivitas tersebut sekarang:

Yang akan Anda pelajari

Yang Anda butuhkan

  • Aplikasi Flutter dan model filter spam yang telah Anda pelajari dan build di aktivitas sebelumnya.

2. Meningkatkan kualitas klasifikasi teks

  1. Anda bisa mendapatkan kode untuk codelab ini dengan meng-clone repositori ini dan memuat aplikasi dari folder tfserving-flutter/codelab2/finished.
  2. Setelah memulai image Docker TensorFlow Serving, di aplikasi yang Anda build, masukkan buy my book to learn online trading, lalu klik gRPC > Classify.

8f1e1974522f274d.png

Aplikasi ini akan menghasilkan skor spam yang rendah karena kalimat trading online tidak banyak muncul di set data asli dan model belum mengetahui bahwa itu merupakan spam. Dalam codelab ini, Anda akan mengupdate model dengan data baru agar model dapat mengidentifikasi kalimat yang sama sebagai spam.

2bd68691a26aa3da.png

3 Mengedit file CSV

Untuk melatih model asli, set data dibuat sebagai CSV (lmblog_comments.csv) yang berisi hampir seribu komentar yang diberi label spam atau bukan spam. (Buka CSV di editor teks apa pun jika Anda ingin memeriksanya.)

File CSV disusun dengan membuat baris pertama mendeskripsikan kolom, yang diberi label commenttext dan spam. Setiap baris berikutnya mengikuti format berikut:

62025273971c9a7f.png

Label di sebelah kanan diberi nilai true untuk spam dan nilai false untuk bukan spam. Misalnya, baris ketiga dianggap sebagai spam.

Jika orang mengirimkan spam ke situs Anda dengan pesan tentang trading online, Anda dapat menambahkan contoh komentar spam di bagian bawah situs Anda. Contoh:

online trading can be highly highly effective,true
online trading can be highly effective,true
online trading now,true
online trading here,true
online trading for the win,true
  • Simpan file dengan nama baru, seperti lmblog_comments.csv, agar Anda dapat menggunakannya untuk melatih model baru.

Selama codelab ini, Anda akan menggunakan contoh yang disediakan, diedit, dan dihosting di Cloud Storage. Data yang digunakan mencakup teks baru dengan frasa trading online. Jika ingin menggunakan set data Anda sendiri, Anda dapat mengubah URL dalam kode.

4. Melatih kembali model dengan data baru

Untuk melatih ulang model, Anda dapat menggunakan kembali kode dari (SpamCommentsModelMaker.ipynb), tetapi mengarahkannya ke set data CSV baru, yang disebut lmblog_comments_extras.csv. Jika menginginkan notebook lengkap dengan konten yang diupdate, Anda dapat menemukannya sebagai SpamCommentsUpdateModelMaker.ipynb.

Jika memiliki akses ke Colaboratory, Anda dapat meluncurkannya secara langsung. Jika tidak, dapatkan kode dari repositori, lalu jalankan di lingkungan notebook pilihan Anda.

Kode yang diupdate akan terlihat seperti cuplikan kode berikut:

training_data = tf.keras.utils.get_file(fname='comments-spam-extras.csv',
          origin='https://storage.googleapis.com/laurencemoroney-blog.appspot.com/
                  lmblog_comments_extras.csv',
          extract=False)

Saat melatih, Anda akan melihat bahwa model tersebut masih dilatih untuk mendapatkan tingkat akurasi yang tinggi:

96a1547ddb6edf5b.png

Kompresi seluruh folder /mm_update_spam_savedmodel dan download file mm_update_spam_savedmodel.zip yang dihasilkan.

# Rename the SavedModel subfolder to a version number
!mv /mm_update_spam_savedmodel/saved_model /mm_update_spam_savedmodel/123
!zip -r mm_update_spam_savedmodel.zip /mm_update_spam_savedmodel/

5. Memulai Docker dan mengupdate Aplikasi Flutter Anda

  1. Ekstrak file mm_update_spam_savedmodel.zip yang didownload ke folder, lalu hentikan instance container Docker dari codelab sebelumnya dan mulai lagi. Namun, ganti placeholder PATH/TO/UPDATE/SAVEDMODEL dengan jalur absolut folder yang menghosting file yang Anda download:
docker run -it --rm -p 8500:8500 -p 8501:8501 -v "PATH/TO/UPDATE/SAVEDMODEL:/models/spam-detection" -e MODEL_NAME=spam-detection tensorflow/serving
  1. Buka file lib/main.dart dengan editor kode favorit Anda, lalu cari bagian yang menentukan variabel inputTensorName dan outTensorName:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
  1. Tetapkan ulang variabel inputTensorName ke nilai 'input_1' dan variabel outputTensorName ke nilai 'dense_1':
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
  1. Salin file vocab.txt yang telah Anda download ke folder lib/assets/ untuk menggantikan yang ada.
  2. Hapus Klasifikasi Teks di aplikasi Flutter secara manual dari emulator Android.
  3. Jalankan perintah 'flutter run' di terminal Anda untuk meluncurkan aplikasi.
  4. Di aplikasi, masukkan buy my book to learn online trading, lalu klik gRPC > Classify.

Sekarang, model tersebut telah ditingkatkan kualitasnya untuk mendeteksi beli buku saya untuk melakukan trading online sebagai spam.

6. Selamat

Anda telah melatih ulang model dengan data baru, mengintegrasikannya dengan aplikasi Flutter, dan mengupdate fungsinya untuk mendeteksi kalimat spam baru.

Pelajari lebih lanjut