המאמר המקורי פורסם ב־. תרגום ובדיקת המקורות: .
בינה מלאכותית בדפדפן היא לא רק צ׳אטבוט. מעבדת ההתנסות של SysSeder עם Transformers.js מאפשרת להתנסות בסיווג טקסט, בייצוגים וקטוריים של טקסט ובזיהוי דיבור באמצעות Whisper. אלה שלוש הדוגמאות שבמרכז המדריך. בגרסה שנבדקה קיים גם מתאם רביעי ליצירת טקסט. אפשר להתחיל ממודל קטן שנבחר מראש, או לעבור למצב המתקדם כדי לבדוק מודל ציבורי אחר ב־Hugging Face. זו מעבדת לימוד שמותאמת למשימות מסוימות, לא הבטחה שכל מודל במאגר יעבוד בה.
מה רץ בדפדפן שלכם?
תהליכי העיבוד של Transformers.js, המכונים pipelines, משלבים הכנת קלט, הרצת מודל ועיבוד התוצאה. רכיב tokenizer מחלק טקסט ליחידות עיבוד; מעבד קולי מכין את האודיו; ו־ONNX Runtime מריץ קובצי מודל תואמים. הכלי מקובע לגרסה 3.8.1 ומבצע את ההסקה בתוך Web Worker, בתהליכון רקע של הדפדפן. הוא אינו מאמן מודלים, אינו משנה את המשקולות שלהם ואינו דורש מפתח API לשירות הסקה בשרת.
ברירת המחדל היא WebAssembly, או בקיצור WASM, על המעבד הראשי ובתהליכון אחד. WebGPU הוא מסלול אופציונלי עם בדיקת זמינות, לא הבטחה להאצה בכל מחשב. תמיכת הדפדפן, הזיכרון הפנוי, הפעולות שהמודל דורש ורמת הדיוק שנבחרה עדיין עלולים לגרום לשגיאות. אם WebGPU נכשל, בחרו WASM ובצעו טעינה מחדש. הצלחה על המעבד הראשי אינה מוכיחה תאימות למעבד הגרפי.
קודם בודקים, ורק אחר כך מורידים
בחרו משימה ומודל, ולחצו על Inspect model metadata — בדיקת פרטי המודל. הפעולה מבקשת מ־Hugging Face מידע ציבורי על המאגר ואת config.json, אך לא את משקולות המודל. היא מתרגמת את הענף, התג או מזהה הגרסה שביקשתם למזהה commit קבוע, מציגה את הארכיטקטורה והרישיון המוצהרים ומעריכה את גודלי קובצי ה־ONNX המתאימים. קראו בעצמכם את כרטיס המודל ואת הרישיון; תווית במטא־נתונים אינה ייעוץ משפטי.
רק לחיצה על Load inspected model — טעינת המודל שנבדק — מורידה את ספריית הלמידה ואת נכסי המודל. בגרסאות q8 שנבחרו מראש, גודל המשקולות הוא בערך 67.6 MB לסיווג רגשות בטקסט, 23.0 MB לייצוגים וקטוריים, או 40.9 MB למקודד ולמפענח המאוחד של Whisper. יש להביא בחשבון עוד כ־23 MB לספרייה ולרכיבי זמן הריצה המשותפים, וכן קובצי חלוקה ליחידות וקובצי הגדרות. לא כל קובץ ONNX חלופי שמופיע ברשימת הבדיקה יורד בפועל. קובצי נתונים נלווים, מידע חלקי, דחיסה בזמן ההעברה ושימוש במטמון מקשים לחזות את הנפח הכולל במודל אחר.
אל תתחילו הורדה גדולה בלי לבדוק את הנפח, במיוחד בחיבור סלולרי. צריכת הזיכרון בזמן ההרצה יכולה להיות גבוהה בהרבה מגודל המשקולות שהורדתם. המטמון בדפדפן עשוי לחסוך הורדות חוזרות, אבל פינוי אחסון או גלישה פרטית עלולים לחייב הורדה נוספת. Cancel / unload עוצר את ה־Worker; הוא אינו מוחק את מטמון הדפדפן. שינוי המודל, המשימה, הדיוק או מסלול ההרצה מבטל את הטעינה הקודמת ומחייב בדיקה וטעינה מפורשות מחדש.
שלוש דוגמאות מרכזיות, עם סוגי קלט שונים
סיווג טקסט: מודל הרגש המוגדר מראש נותן ציונים חיוביים ושליליים לטקסט באנגלית. נסו את הדוגמאות המומצאות, ואז שנו מילה או הוסיפו ציניות. הקלט מוגבל ל־1,000 תווים ונחתך ל־128 יחידות עיבוד, tokens; יחידה כזו אינה בהכרח מילה. במודל סיווג אחר עשויות להיות תוויות שונות לגמרי. ציון גבוה הוא הערכה של המודל, לא עובדה מאומתת ולא אבחון.
ייצוגים וקטוריים: הזינו שני טקסטים קצרים והשוו בין הווקטורים המנורמלים שלהם ובין הדמיון הקוסיני. כרטיס המודל MiniLM מציג איגום באמצעות ממוצע, mean pooling, עם נרמול — זו הגישה שנבחרה כאן כברירת מחדל. קיימת גם אפשרות CLS pooling למודלים שדורשים אותה. גם במסלול הזה כל טקסט נחתך ל־128 יחידות. דמיון אינו הסתברות, קביעה שהועתק טקסט או הוכחה ששתי טענות נכונות. אפשר לראות את הווקטורים הגולמיים ואת יתר הפלט בתצוגת ה־JSON.
זיהוי דיבור באמצעות Whisper: בחרו קובץ אודיו מקומי והפעילו זיהוי דיבור. מסלול הקבצים מקבל קובץ של עד 10 MB, באורך שבין 0.1 ל־30 שניות. הפענוח תלוי בפורמטים שהדפדפן תומך בהם; WAV הוא נקודת התחלה סבירה. Web Audio מפענח את הקובץ ודוגם אותו מחדש ב־16 kHz, והכלי ממצע את הערוצים לערוץ מונו לפני ההסקה. אין במסלול הזה משיכה אוטומטית של אודיו מכתובת חיצונית.
בנפרד מקובץ האודיו, הגרסה שנבדקה מאפשרת ללחוץ על Start microphone לאחר טעינת מודל Whisper, ולאשר גישה למיקרופון. זהו תמלול במקטעים, לא תמלול מיידי: מקטעים בני כשש שניות חופפים בשנייה אחת, ולכן מילים בגבולות המקטע עלולות לחזור, להשתנות או להיעלם. מסלול המיקרופון מוגבל לשתי דקות קליטה, עם תור אודיו מוגבל; מגבלת 30 השניות של קובץ אינה המגבלה של המסלול הזה. אפשר לעצור במפורש באמצעות כפתור העצירה. עצם קריאת המדריך אינה מפעילה מיקרופון.
המודל המוגדר מראש Whisper tiny.en מיועד לאנגלית בלבד. המאמר האנגלי מדווח על בדיקה קודמת בדפדפן ענן עם קובץ WAV סטריאופוני מלאכותי. בדיקת התרגום לא שחזרה את הניסוי, ולכן המשפט המדויק שדווח כתוצאה אינו מוצג כאן כהוכחה מאומתת מחדש. גם בדיקה מוצלחת אינה מבטיחה דיוק למבטא שלכם, להקלטה רועשת או לכל מכשיר. Whisper עלול להשמיט מילים או להמציא טקסט, במיוחד בשקט או באודיו חריג. השוו תמלול להקלטה המקורית.
ומה לגבי יצירת טקסט? זהו מתאם נוסף שקיים כעת בכלי, ולא אחד משלושת המדריכים המקוריים לעיל. בגרסה שנבדקה ההנחיה מוגבלת ל־1,000 תווים ועד 512 יחידות עיבוד כולל תבנית השיחה, והפלט לעד 128 יחידות חדשות. קלט ארוך מדי נדחה במקום להיחתך בשקט. גם כאן נדרשת התאמה של המודל, ואין להסיק שזמינותו בקטלוג מוכיחה שהוא נבדק במכשיר שלכם.
אפשר להביא מודל אחר — בתוך גבולות ברורים
המצב המתקדם מקבל מזהה במבנה owner/model ומזהה גרסה, לא כתובת שרירותית, אסימון גישה או קוד להרצה. השתמשו במאגרים ציבוריים שאינם דורשים אישור גישה, עם קובצי ONNX תקניים ותואמים ל־Transformers.js. מאגר שמכיל רק משקולות PyTorch אינו מספיק. מתאם האודיו הנוכחי מיועד לארכיטקטורת Whisper; הוא אינו ממשק כללי ליצירת קול. מוצעים q8 ו־fp32, אבל המאגר חייב להכיל קבצים תואמים. שילוב שאינו נתמך אמור להחזיר שגיאה, לא תחזית חלופית כאילו ההרצה הצליחה.
הקטלוג שנבדק מכיל 49 רשומות: חלקן מתאימות לבחירה דרך המתאמים הקיימים, ואחרות מוצגות לעיון בלבד. רישום בקטלוג אינו הבטחת תמיכה, רישוי מתאים, ביצועים או בדיקת הרצה. בדקו את מצב הרשומה ואת פרטי המודל לפני טעינה.
קוד ההסקה של המעבדה אינו מעלה במכוון את הטקסט או את האודיו המפוענח לשירות חיצוני. עם זאת, הורדת הספריות והמודלים פונה לשירותים חיצוניים, והבלוג שמסביב עשוי לטעון סקריפטים של צדדים שלישיים. ״הסקה מקומית״ אינה הבטחה שזה המקום המתאים לחומר חסוי. השתמשו בטקסט מומצא ובאודיו לא רגיש, בחנו את התוצאות בביקורתיות, והתייחסו לכלי כסביבת לימוד מעשית — לא כמערכת לקבלת החלטות בייצור.
מקור: המאמר המקורי באנגלית. תרגום לעברית עבור The Useful Byte.