OpenAI
הדף הזה תורגם באופן אוטומטי. לצפייה במאמר המקורי באנגלית.

הבנת טוקנים וספירתם

למדו איך טוקני קלט, פלט, מטמון ו-reasoning משפיעים על השימוש ב-API, על מגבלות המודל ועל העלויות.

עודכן: 9 days ago

סקירה כללית

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

מספר הטוקנים אינו זהה למספר המילים. אותו טקסט יכול להפיק מספר שונה של טוקנים בהתאם למודל, לקידוד שלו ולשפה.

איך טקסט הופך לטוקנים

כששולחים טקסט למודל:

  1. הטקסט מחולק לטוקנים.

  2. המודל מעבד את הטוקנים האלה.

  3. המודל מייצר טוקני פלט. אלה יכולים לכלול את הטקסט שמתקבל, ובמודלי reasoning גם טוקני reasoning פנימיים שאינם מוצגים בטקסט התשובה.

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

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

  • טוקן אחד שווה לכ-4 תווים.

  • טוקן אחד שווה לכשלושת רבעי מילה.

  • 100 טוקנים שווים לכ-75 מילים.

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

התחשבות ברווחים ובאותיות גדולות וקטנות

מילה יכולה להתחלק לטוקנים שונים בהתאם לאיות שלה, לשימוש באותיות גדולות וקטנות ולטקסט שסביבה.

למשל, המחרוזות "red", "Red" ו-" red" אינן זהות: הדוגמה האחרונה כוללת רווח בתחילתה. הקידוד עשוי לייצג אותן בדרכים שונות.

גם מזהי הטוקנים תלויים בקידוד. אל תניחו שמזהה טוקן המופיע בדוגמה תקף לכל מודל.

הבחנה בין טוקני קלט לטוקני פלט

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

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

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

ספירת טוקנים לפני שליחת בקשה

ספירת טוקנים בטקסט רגיל

השתמשו בכלי הטוקניזציה כדי לראות איך טקסט מחולק לטוקנים.

לטוקניזציה של טקסט רגיל באמצעות קוד, השתמשו ב-tiktoken. בחרו את הקידוד המתאים למודל היעד, למשל באמצעות tiktoken.encoding_for_model(model).

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

ספירת טוקנים בקלט מלא של Responses

לספירת טוקנים בקלט מלא של Responses API, השתמשו ב-API לספירת טוקני קלט.

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

ספירת טוקני הקלט אינה חוזה כמה טוקני פלט ייצר המודל.

בדיקת השימוש בפועל בטוקנים

לאחר שליחת בקשה, בדקו את נתוני השימוש שלה. שמות השדות משתנים לפי ה-endpoint:

  • Chat Completions מדווח על prompt_tokens, completion_tokens ו-total_tokens.

  • Responses מדווח על input_tokens, output_tokens ו-total_tokens.

אפשר גם לעיין בפעילות לאורך זמן בלוח הבקרה של השימוש. להנחיות, כולל נתוני שימוש בהזרמה, ראו: בדיקת השימוש ב-API והעלויות.

עמידה במגבלות המודל

בדקו בתיעוד המודל מה גודל חלון ההקשר שלו ומה אורך הפלט המרבי. המגבלות האלה עשויות להשתנות בין מודלים.

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

אם הקלט שלכם גדול מדי, אפשר:

  • לקצר את הפרומפט או לנסח אותו מחדש.

  • להסיר הקשר מיותר או חוזר.

  • לחלק קלט גדול לחלקים קטנים יותר.

  • לסכם את הטקסט או לעבד אותו מראש לפני השליחה.

השתמשו בהגדרת טוקני הפלט הנתמכת ב-endpoint ובמודל שלכם. Chat Completions משתמש ב-max_completion_tokens; Responses משתמש ב-max_output_tokens.

המגבלות האלה על גודל הבקשה נפרדות ממגבלות קצב הבקשות ב-API וממגבלות השימוש או ההוצאה החודשיות. עיינו בתיעוד המודלים עבור המודל שבו אתם משתמשים.

הבנת תמחור הטוקנים

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

לתעריפים עדכניים, עיינו בדף תמחור ה-API.

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

בדקו משימות מייצגות במקום להשוות רק את אורך התשובה הגלויה.

התחשבות בהשלמות מרובות

כאשר ה-endpoint והמודל תומכים ביצירת כמה השלמות, גם ההשלמות הנוספות צורכות טוקנים.

ב-Chat Completions, הגדרת n לערך גדול מ-1 יוצרת כמה חלופות. החיוב הוא על הטוקנים שנוצרו בכל החלופות האלה.

ב-Completions API הוותיק, best_of יכול ליצור השלמות מועמדות שלא כולן מוחזרות. למשל, best_of = 3 יכול ליצור עד 3 × max_tokens טוקני השלמה בסך כל המועמדות.

הפרמטרים האלה ספציפיים ל-endpoint. אל תניחו ש-n או best_of נתמכים ב-API או במודל אחר.

האם המאמר הזה היה מועיל?