פוסט

מה זה LLM

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

LLM (מודל שפה גדול) הוא תוכנה שמקבלת טקסט ומחזירה טקסט. ChatGPT, Claude ו-Gemini הם מוצרים שנבנו על גבי LLM. זה הפוסט הראשון מתוך חמש סדרות על בינה מלאכותית. סדר הקריאה המומלץ: יסודות, אחר כך ידע ו-RAG ו-Tools ו-Agents (באיזה סדר שתרצו), אחר כך ייצור, ולבסוף התאמת מודל. מפת ההחלטות מראה איזה כלי מתאים לאיזו בעיה, ומונח לא מוכר אפשר למצוא במילון.

הקוד מבוסס על ה-quickstart הרשמי של Anthropic. הוא לא הורץ בשביל הפוסט, ולכן כל בלוק פלט כאן הוא פלט לדוגמה: המבנה תואם לתיעוד, אבל הטקסט של תשובה אמיתית יהיה שונה בכל הרצה.

מה זה LLM

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

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

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

איך נוצר הטקסט

המודל לא כותב תשובה שלמה בבת אחת. הוא מריץ לולאה:

  1. הוא קורא את כל הטקסט עד עכשיו.
  2. הוא מחשב הסתברות לכל טוקן אפשרי הבא.
  3. נבחר טוקן אחד, בדרך כלל אחד סביר.
  4. הטוקן מתווסף לטקסט, והלולאה מתחילה מחדש.

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

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

הקריאה הראשונה

כדי לקרוא למודל צריך מפתח API במשתנה הסביבה ANTHROPIC_API_KEY ואת החבילה anthropic (pip install anthropic). ה-SDK קורא את המפתח מהסביבה בעצמו.

import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1000,
    messages=[{"role": "user", "content": "In one sentence, what is an LLM?"}],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

שלושת הפרמטרים model, max_tokens ו-messages הם חובה, לפי התיעוד של ה-Messages API. max_tokens הוא תקרה לאורך התשובה, לא יעד. תוכן התשובה הוא רשימה של בלוקים, ולכן הקוד מדפיס רק את בלוקי הטקסט.

An LLM is a neural network trained on large amounts of text to predict the next
token, which lets it generate, summarize and translate language.

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

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

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

print(message.stop_reason)
print(message.usage.input_tokens, message.usage.output_tokens)
end_turn
17 31

הערך end_turn ב-stop_reason אומר שהמודל סיים בעצמו. הערך max_tokens אומר שהתשובה נקטעה במגבלה שלכם. usage סופר טוקנים נכנסים ויוצאים, ועל זה משלמים.

לאן הסדרה ממשיכה

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