Embeddings: איך מודל שפה 'מבין' משמעות ולא רק מילים

מאת צוות מדיה דיל · 31.08.2026 · AI · 7 דק׳ קריאה

Embeddings הם הבסיס שעליו בנוי כל חיפוש סמנטי, RAG והמלצות מבוססות AI. הנה איך ייצוג מספרי הופך טקסט למשהו שאפשר להשוות משמעותית.

מילה אחת יכולה להיאמר בעשרות דרכים שונות, אבל לשאת בדיוק את אותה משמעות. Embedding הוא ייצוג מספרי — וקטור — של טקסט, שנבנה כך ששני טקסטים דומים במשמעות מקבלים וקטורים קרובים זה לזה במרחב מתמטי, גם אם הניסוח המילולי שונה לחלוטין.

איך מודל לומד לייצג משמעות

מודל Embedding מאומן על כמויות ענק של טקסט, ולומד למקם מילים ומשפטים שמופיעים בהקשרים דומים קרוב אחד לשני במרחב הווקטורי. "מלך" ו"מלכה" יהיו קרובים זה לזה, ורחוקים מ"מכונית" — לא כי מישהו תכנת את זה ידנית, אלא כי המודל למד את זה מדפוסי שימוש בשפה.

ממד המרחב: כמה מספרים לכל פיסת טקסט

כל טקסט מיוצג כרשימה של מאות עד אלפי מספרים (ממדים) — ככל שיש יותר ממדים, כך המודל יכול לתפוס ניואנסים עדינים יותר, במחיר עלות אחסון וחישוב גבוהה יותר. הבחירה בגודל הממד היא איזון בין דיוק לביצועים.

מדידת דמיון: Cosine Similarity

הדמיון בין שני Embeddings נמדד לרוב לפי הזווית ביניהם במרחב — ככל שהזווית קטנה יותר (קרובה ל-0), הטקסטים דומים יותר במשמעות. זו בדיוק השיטה שמאפשרת למאגר וקטורים למצוא את המסמכים הרלוונטיים ביותר לשאלה נתונה.

Embeddings של טקסט מול תמונה

מודלים מודרניים כמו CLIP מייצרים Embeddings לא רק לטקסט אלא גם לתמונות, במרחב וקטורי משותף — כך שאפשר לחפש תמונה לפי תיאור מילולי, כי הווקטור של המשפט "כלב רץ על חוף" קרוב לווקטור של תמונה שמראה בדיוק את זה.

שימושים מעבר לחיפוש

מעבר לחיפוש סמנטי, Embeddings מאפשרים סיווג טקסט (לפי קרבה לדוגמאות מסווגות מראש), זיהוי כפילויות (טקסטים כמעט זהים במשמעות), והמלצות מבוססות תוכן (מוצרים דומים למה שהמשתמש כבר צפה בו).

בחירת מודל Embedding

מודלים שונים מתאימים למשימות שונות — חלקם מותאמים לחיפוש כללי, אחרים לקוד תוכנה, ואחרים רב-לשוניים. מודל שלא מתאים לתחום התוכן (למשל מודל אנגלי בלבד על תוכן עברי) ייתן תוצאות דמיון פחות מדויקות, גם אם הוא חזק באופן כללי.

עדכון Embeddings כשהמודל משתדרג

Embeddings שנוצרו על ידי גרסת מודל אחת לא בהכרח תואמים למרחב הווקטורי של גרסה חדשה יותר. שדרוג מודל Embedding דורש בדרך כלל לחשב מחדש את כל הווקטורים הקיימים במאגר — לא רק להוסיף חדשים לצד הישנים.

Chunking והשפעתו על איכות ה-Embedding

גודל פיסת הטקסט שממירים ל-Embedding משפיע ישירות על איכות התוצאה — פיסה גדולה מדי מטשטשת נושאים ספציפיים בתוך ממוצע כללי, ופיסה קטנה מדי מאבדת הקשר סובב. האיזון הנכון תלוי בטבע התוכן ובסוג השאלות שהמערכת צריכה לענות עליהן.

Fine-Tuning מודל Embedding לתחום ספציפי

מודל Embedding כללי לפעמים לא תופס היטב ניואנסים בתחום מקצועי צר — מונחים משפטיים, רפואיים, או טכניים ייחודיים. אימון נוסף (Fine-Tuning) של המודל על דוגמאות מהתחום הספציפי משפר משמעותית את דיוק הדמיון עבור אותו תחום.

בונים מערכת חיפוש סמנטי או המלצות מבוססות AI? וואטסאפ.

איפה שומרים Embeddings בפועל: Vector Database מול הרחבה למסד קיים

מאגר Embeddings דורש חיפוש יעיל לפי דמיון וקטורי בין מיליוני נקודות אפשריות, לא רק שליפה רגילה לפי מפתח או תנאי. מסדי נתונים ייעודיים ל-Vector Search בנויים לכך מהיסוד, עם מבני אינדקס מותאמים לחיפוש דמיון מהיר גם בנפחים גדולים מאוד, ומתאימים כשההיקף באמת גדול. הרחבות כמו pgvector ל-PostgreSQL מאפשרות לשמור Embeddings לצד שאר הנתונים הרלציוניים באותו מסד נתונים קיים ממש — נוח מאוד כשההיקף לא ענק, ולא רוצים לתחזק מערכת נוספת שלמה ונפרדת רק בשביל החיפוש הסמנטי, ואפשר לשלב שאילתות רגילות עם חיפוש וקטורי באותה שאילתה ממש.

עלות חישוב Embeddings בקנה מידה

חישוב Embedding לכל פיסת טקסט הוא קריאה למודל שפה, וכשמדובר במאגר מסמכים גדול עם מאות אלפי פריטים, זו עלות מצטברת משמעותית שקל להתעלם ממנה בשלב האב-טיפוס. שמירת ה-Embedding שחושב פעם אחת (Caching), במקום חישוב מחדש בכל פעם שמישהו שואל שאלה על אותו מסמך, ועיבוד באצווה (Batch) של תוכן חדש במקום בקשה בודדת לכל פריט בנפרד, מצמצמים משמעותית את העלות והזמן הכוללים. חשוב גם לתכנן מנגנון שמזהה מתי מסמך קיים השתנה ורק אז מחשב מחדש את ה-Embedding שלו, במקום לחשב מחדש את כל המאגר בכל עדכון קטן.

מודל Embedding לתוכן בעברית

לא כל מודל Embedding מתאים באותה מידה לכל שפה — מודלים שאומנו בעיקר על טקסט אנגלי עלולים לתפוס פחות טוב ניואנסים, ניקוד וקרבה סמנטית בעברית, שיש לה מבנה דקדוקי שונה מהותית מאנגלית. כשהתוכן במאגר בעברית או רב-לשוני (עברית לצד אנגלית, למשל), כדאי לבחור מפורשות מודל שתומך רשמית בעברית או מודל רב-לשוני מוכח, ולא להניח שמודל חזק במיוחד באנגלית יעבוד באותה רמת דיוק גם כאן. בדיקה בפועל על דוגמאות שאילתות אמיתיות בעברית, לפני בחירה סופית, חוסכת אכזבה מאוחרת יותר כשמתברר שתוצאות הדמיון לא מדויקות כפי שציפו.

Hybrid Search: שילוב חיפוש סמנטי עם חיפוש מילות מפתח

חיפוש סמנטי מבוסס Embeddings מצטיין במציאת קרבה במשמעות, אבל לפעמים "מפספס" התאמה מדויקת של מונח טכני, שם מוצר, או מספר קטלוגי, כי הוא מסתכל על משמעות כללית ולא על מחרוזת מדויקת. חיפוש מילות מפתח קלאסי (כמו Full-Text Search) מצטיין דווקא בהתאמות מדויקות כאלה, אך מפספס ניסוחים שונים לאותה כוונה. שילוב שתי השיטות יחד (Hybrid Search), עם דירוג משוקלל של התוצאות משתיהן, נותן בפועל תוצאות מדויקות יותר מהסתמכות על שיטה אחת בלבד בהרבה מקרי שימוש מעורבים.

עדכון מאגר Embeddings בזמן אמת מול עדכון מתוזמן

מאגר תוכן שמתעדכן לעיתים רחוקות (מסמכי מדיניות, תיעוד מוצר) יכול להסתפק בעדכון Embeddings מתוזמן — למשל פעם ביום או פעם בשבוע — בלי לפגוע בחוויית המשתמש. מאגר שמתעדכן תדיר (הודעות תמיכה חדשות, מוצרים חדשים בקטלוג) דורש עדכון Embeddings קרוב לזמן אמת, אחרת חיפוש על תוכן חדש פשוט לא ימצא אותו כי הוא עדיין לא קיים במאגר הווקטורי. הבחירה בין השתיים היא פונקציה ישירה של קצב השינוי בתוכן המקורי, לא העדפה שרירותית.

הערכת איכות חיפוש סמנטי לפני עלייה לפרודקשן

לפני שסומכים על מערכת חיפוש מבוססת Embeddings בפרודקשן, כדאי לבנות ערכת שאלות בדיקה עם תשובות נכונות ידועות מראש, ולמדוד כמה מהתוצאות הרלוונטיות באמת מוחזרות (Recall) וכמה מהתוצאות שמוחזרות באמת רלוונטיות (Precision). בלי מדידה כזו, קל להניח שהחיפוש "עובד טוב" רק כי כמה דוגמאות ידניות נראו סבירות, בעוד שבפועל יש קטגוריות שלמות של שאלות שהמערכת מפספסת שיטתית ולא היו מזוהות בלי בדיקה מסודרת.

זה סימן שנדרש אינדקס חיפוש קירוב (Approximate Nearest Neighbor) במקום השוואה מדויקת מול כל וקטור במאגר, שהופכת יקרה מדי בהיקפים גדולים. רוב מסדי הנתונים הווקטוריים תומכים באינדקס כזה כבר מובנה, ומצריכים רק להגדיר אותו כראוי כשהמאגר עובר סף גודל מסוים.

מבחינה טכנית כן, אבל בזהירות רבה — Embeddings שנוצרו ממודלים שונים חיים במרחבים וקטוריים שונים לחלוטין ולא ניתן להשוות ביניהם ישירות בשאילתת דמיון אחת. אם באמת נדרש שילוב, לרוב מריצים חיפוש נפרד לכל מודל ומאחדים את התוצאות בשכבה מאוחרת יותר, ולא מערבבים וקטורים ממקורות שונים במאגר אחד כאילו הם ניתנים להשוואה ישירה.

שיקול נוסף שכדאי לזכור: גרסת מודל Embedding שמשמשת לאינדוקס המאגר צריכה להיות זהה לגרסה ששימשה בזמן החיפוש עצמו, אחרת ההשוואה בין הווקטורים פשוט לא משמעותית. תיעוד ברור של גרסת המודל שבה נוצר כל Embedding שמור במאגר מונע בלבול מאוחר יותר, במיוחד כשכמה גרסאות מודל שימשו לאורך זמן.

שאלות נפוצות

האם צריך לחשב Embedding מחדש לכל שאילתת חיפוש?

כן, שאילתת החיפוש עצמה חייבת לעבור המרה ל-Embedding בכל פעם מחדש, כי היא טקסט חדש בכל פנייה — אבל ה-Embeddings של המסמכים הקיימים במאגר מחושבים פעם אחת מראש ונשמרים בבסיס הנתונים, ולא מחושבים מחדש בכל חיפוש שמגיע.

מה ההבדל בין Embeddings ל-Fine-Tuning של מודל שפה?

Embeddings מייצרים ייצוג וקטורי לחיפוש והשוואת דמיון בין טקסטים, בלי לשנות את המודל עצמו כלל. Fine-Tuning משנה בפועל את משקלי המודל כדי לשפר את איכות התשובות שהוא מייצר בתחום מסוים. אפשר להשתמש בשניהם יחד: לאחזר הקשר רלוונטי דרך Embeddings, ואז לייצר תשובה עם מודל שעבר Fine-Tuning ייעודי לתחום.

האם Embeddings שומרים על פרטיות התוכן המקורי?

Embedding הוא ייצוג מספרי, לא הטקסט המקורי עצמו, אבל זה לא הופך אותו לאנונימי אוטומטית ובטוח לחלוטין — במקרים מסוימים אפשר לשחזר מידע קרוב לתוכן המקורי מתוך הווקטור. מאגר Embeddings של מידע רגיש עדיין דורש בקרות גישה והרשאות מחמירות, בדיוק כמו הטקסט המקורי שהוא נגזר ממנו במקור.

איזה גודל ממד (Dimensions) עדיף לבחור?

אין תשובה אחת נכונה שמתאימה לכל מקרה — ממד גדול יותר תופס יותר ניואנסים אך עולה יותר לאחסון ולחישוב דמיון בקנה מידה, וממד קטן יותר חסכוני משמעותית אך עלול לאבד מעט דיוק. הבחירה תלויה בהמלצת ספק המודל ובבדיקה בפועל על תוכן ושאלות מייצגים מהמערכת שלכם, לא בהנחה תיאורטית שגודל גדול תמיד עדיף.

מה קורה אם שני מסמכים שונים לגמרי מקבלים Embedding דומה בטעות?

זה יכול לקרות כשהמודל לא מתאים היטב לתחום התוכן הספציפי, או כשה-Chunking פיצל טקסט בצורה שמטשטשת את ההבדל בין הנושאים השונים. הפתרון הוא בדיקה שיטתית של תוצאות דמיון על דוגמאות אמיתיות מהמערכת, ולא הנחה גורפת שהמודל תמיד יבחין נכון בין נושאים שונים בלי אימות.

תגיות: Embeddings · Vector Embeddings · Semantic Search · NLP

← חזרה לבלוג · צור קשר