core code helper

Як працюють LLM: токени, контекстне вікно і температура

Мінімум теорії, без якого не вийде впевнено працювати з мовними моделями: що таке токен, чому модель «забуває» і як параметри генерації змінюють відповідь.

0 імпортували Імпортувати собі

Велика мовна модель (LLM) робить одну річ: передбачає наступний токен за всіма попередніми. Усе інше — чат, код, переклад, «міркування» — побудовано поверх цього простого циклу. Якщо тримати його в голові, більшість дивної поведінки моделей стає зрозумілою.

Токени, а не слова

Модель не бачить букв і слів. Текст спочатку ріжеться токенізатором на шматки — токени. Часті англійські слова зазвичай займають один токен, рідкісні слова й інші мови — кілька.

Текст Приблизно токенів
hello world 2
привіт, світе 4–6
kubectl get pods -n kube-system 8–10

Звідси три практичні наслідки:

  • Ціна й ліміти рахуються в токенах. Український текст «дорожчий» за англійський того самого змісту.
  • Модель погано рахує букви. Питання «скільки літер р у слові» складне саме тому, що слово для неї — один-два непрозорі токени.
  • Пробіли й регістр мають значення. Docker і docker можуть бути різними токенами.
Порада

Щоб оцінити розмір промпту, користуйтеся токенізатором свого провайдера або грубим правилом: 1 токен ≈ 4 символи англійською і ≈ 2–3 символи українською.

Як модель генерує текст

На кожному кроці модель видає розподіл ймовірностей для всіх токенів словника. Далі алгоритм семплінгу вибирає один токен, додає його до тексту — і цикл повторюється, доки не з'явиться спеціальний токен кінця або не закінчиться ліміт max_tokens.

"Столиця України —"  →  " Київ" (0.92) | " місто" (0.03) | " це" (0.01) ...

Модель не «знає» відповідь заздалегідь. Вона пише її токен за токеном, і кожен наступний залежить від уже написаного. Тому прохання «спочатку подумай, потім відповідай» часто покращує результат: проміжні кроки стають частиною контексту.

Контекстне вікно

Контекстне вікно — максимальна кількість токенів, яку модель бачить за раз: системний промпт, історія розмови, документи, інструменти і сама відповідь. Сучасні моделі мають вікна від десятків тисяч до мільйона токенів, але великий ліміт не означає, що все в ньому використовується однаково добре.

Увага

Модель не має пам'яті між запитами. «Пам'ять» чату — це просто історія, яку клієнт щоразу надсилає заново. Коли історія перевищує вікно, старі повідомлення обрізаються або стискаються — і модель «забуває» початок розмови.

Що з цього випливає на практиці:

  1. Кладіть найважливіше на початок і в кінець. Інформація посередині довгого контексту використовується гірше.
  2. Не пхайте в контекст зайвого. Десять релевантних абзаців працюють краще за сто випадкових сторінок — і коштують дешевше.
  3. Довгі розмови варто підсумовувати. Стислий конспект попередніх кроків економить токени й прибирає шум.

Температура та інші параметри генерації

Параметр Що робить Типові значення
temperature «Сміливість» вибору: 0 — майже завжди найімовірніший токен, вище — різноманітніше 0–0.3 для фактів і коду, 0.7–1.0 для творчих задач
top_p Вибір лише серед токенів, що разом дають p ймовірності 0.9–1.0; зазвичай змінюють або його, або температуру
max_tokens Максимальна довжина відповіді Залежить від задачі; занадто мало — відповідь обірветься
stop Рядки, на яких генерація зупиняється Корисно для шаблонного виводу
from anthropic import Anthropic

client = Anthropic()
response = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=500,
    temperature=0.2,  # класифікація і факти: мінімум випадковості
    messages=[{"role": "user", "content": "Поясни різницю між процесом і потоком у 3 реченнях."}],
)
print(response.content[0].text)
Примітка

Навіть з temperature=0 відповіді не завжди ідентичні: на результат впливають паралельні обчислення на GPU та оновлення моделі. Якщо вам потрібна відтворюваність — фіксуйте версію моделі й зберігайте відповіді.

Чому моделі «галюцинують»

Модель оптимізована писати правдоподібний текст, а не перевіряти факти. Якщо в навчальних даних мало інформації про тему, вона все одно згенерує щось схоже на відповідь — впевнено і гладко.

Як зменшити ризик:

  • давайте моделі джерела в контексті (це і є RAG) і просіть посилатися саме на них;
  • дозволяйте відповідати «не знаю», прямо написавши це в інструкції;
  • для критичних даних — перевіряйте відповідь кодом або другим запитом.

Підсумок

  • LLM передбачає наступний токен; відповідь народжується крок за кроком.
  • Ліміти, ціна і швидкість рахуються в токенах.
  • Контекст — єдина «пам'ять» моделі, і він не безрозмірний.
  • Низька температура — для точності, висока — для різноманітності.
Чому модель може забути інструкцію, яку ви дали на початку довгого чату?

Бо історія чату перевищила контекстне вікно і початок обрізали, або інструкцію «розмило» велике повідомлення посередині. Повторюйте ключові правила в системному промпті — він надсилається з кожним запитом.

Збережіть статтю собі

Увійдіть, щоб імпортувати її у власні нотатки, відмічати вивчене, ставити лайки й питати спільноту. Реєстрація безкоштовна: вхід через Google займає кілька секунд.

Увійти через Google Інші способи входу