1. לפני שמתחילים
במעבדה זו תוכלו לעדכן את המודל של סיווג הטקסט שנבנה ממערך הנתונים המקורי של תגובות ספאם, אך עם שיפור הערות משלכם כך שתוכלו להשתמש במודל שמתאים לנתונים שלכם.
דרישות מוקדמות
שיעור Lab זה הוא חלק מתחילת העבודה עם סיווג טקסט בנתיב של Flutter באפליקציות. קודי ה-codelab בנתיב הזה הם רציפים. האפליקציה והמודל שעליהם תעבוד נבנו קודם לכן, בזמן שפעלתם יחד עם Codelabs. אם עדיין לא השלמת את הפעילויות הקודמות, עליך לעצור ולעשות זאת עכשיו:
- לימוד מודל לזיהוי תגובות ספאם באמצעות TensorFlow Lite Maker Codelab
- יצירת אפליקציה של Flutter לזיהוי קוד ספאם של תגובות
מה תלמדו
- כיצד לעדכן את המודל של סיווג הטקסט שיצרתם במודל לזיהוי ספאם כספאם על ידי שימוש בדגם הקוד של TensorFlow Lite Maker Lab.
- כיצד להתאים אישית את המודל כך שיחסום את הספאם הנפוץ ביותר באפליקציה.
מה תצטרך להכין
- האפליקציה 'חליליות' והמודל לסינון ספאם, שצפית בהם ובנינו בפעילויות הקודמות.
2. שיפור סיווג הטקסט
- כדי לקבל את הקוד של הקוד הזה, צריך לשכפל את המאגר הזה ולטעון את האפליקציה מהתיקייה
tfserving-flutter/codelab2/finished
. - אחרי שמפעילים את התמונה של TensorFlow Docker, באפליקציית האפליקציה שיצרתם, מזינים
buy my book to learn online trading
ולוחצים על gRPC > Classify.
האפליקציה יוצרת ציון ספאם נמוך כי אין מקרים רבים של מסחר באינטרנט במערך הנתונים המקורי והמודל לא למד שספאם. ב-codelab זה תעדכנו את המודל בנתונים חדשים כך שהמודל יזהה את אותו המשפט כספאם!
3. עריכה של קובץ ה-CSV
כדי לאמן את המודל המקורי, נוצר מערך נתונים כקובץ CSV (lmblog_comments.csv
) המכיל כמעט אלף תגובות עם תיוג כספאם או כספאם. (כדי לבדוק זאת, פותחים את קובץ ה-CSV בעורך טקסט כלשהו).
המרכיב של קובץ ה-CSV צריך לכלול את השורה הראשונה המתארת את העמודות, המסומנות בתוויות commenttext
ו-spam
. כל שורה עוקבת בפורמט הבא:
התווית שמשמאל מוקצה לערך true
עבור ספאם וערך false
עבור לא ספאם. לדוגמה, השורה השלישית נחשבת כספאם.
אם אנשים שולחים ספאם באתר שלך באמצעות הודעות בנושא מסחר מקוון, אפשר להוסיף בתחתית האתר דוגמאות לתגובות ספאם. למשל:
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
- שומרים את הקובץ בשם חדש, כמו
lmblog_comments.csv
, כדי שניתן יהיה להשתמש בו לאימון מודל חדש.
לשאר קוד שיעור ה-Lab הזה, אתם משתמשים בדוגמה שקיבלתם, שערכתם והתארחתם ב-Cloud Storage עם עדכוני המסחר אונליין. אם רוצים להשתמש במערך נתונים משלכם, אפשר לשנות את כתובת ה-URL בקוד.
4. אימון מחדש של המודל באמצעות הנתונים החדשים
כדי לאמן מחדש את המודל, אפשר פשוט לעשות שימוש חוזר בקוד מ-(SpamCommentsModelMaker.ipynb
), אבל להפנות אותו אל מערך הנתונים החדש של קובצי CSV, שנקרא lmblog_comments_extras.csv
. אם אתם רוצים את הפנקס המלא עם התוכן המעודכן, תוכלו למצוא אותו בתור SpamCommentsUpdateModelMaker.ipynb.
אם יש לכם גישה ל-Colaboratory, אתם יכולים להפעיל אותו ישירות. אחרת, אפשר לקבל את הקוד מהמאגר ולהפעיל אותו בסביבת הפנקס הרצויה.
הקוד המעודכן נראה כמו קטע הקוד הבא:
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)
כשמאמנים את האימון, הוא אמור להתאמן ברמת דיוק גבוהה:
יש לדחוס את כל התיקייה של /mm_update_spam_savedmodel
למטה את קובץ ה-mm_update_spam_savedmodel.zip
שנוצר.
# 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. התחלת השימוש ב-Docker ועדכון של אפליקציית Fluter
- מבטלים את הדחיסה של קובץ
mm_update_spam_savedmodel.zip
שהורדתם לתיקייה, ואז מפסיקים את המופע של מאגר ה-Docker מה-codelab הקודם ומתחילים אותו שוב, אבל מחליפים את ה-placeholderPATH/TO/UPDATE/SAVEDMODEL
בנתיב המוחלט של התיקייה שמארחת את הקבצים שהורדתם:
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
- פותחים את הקובץ
lib/main.dart
באמצעות עורך הקוד המועדף עליכם ולאחר מכן מוצאים את החלק שמגדיר את המשתניםinputTensorName
ו-outTensorName
:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
- מקצים מחדש את המשתנה
inputTensorName
לערך 'input_1'
' ולמשתנהoutputTensorName
לערך'dense_1'
:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
- יש להעתיק את הקובץ
vocab.txt
שהורדת לתיקייהlib/assets/
כדי להחליף את הקובץ הקיים. - יש להסיר באופן ידני את האפליקציה 'סיווג טקסט' של אמולטור Android.
- מריצים את הפקודה
'flutter run'
במסוף כדי להפעיל את האפליקציה. - באפליקציה, מזינים
buy my book to learn online trading
ולוחצים על gRPC > Classify.
עכשיו המודל משופר לזיהוי קניית הספר שלי למסחר מקוון כספאם.
6. מזל טוב
אימנת מחדש את המודל עם נתונים חדשים, שילבת אותו באפליקציה ה-Fluter ועדכנת את הפונקציונליות לזיהוי משפטים חדשים שקשורים לספאם!