Як працюють LLM: токени, контекстне вікно і температура
Мінімум теорії, без якого не вийде впевнено працювати з мовними моделями: що таке токен, чому модель «забуває» і як параметри генерації змінюють відповідь.
Велика мовна модель (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) ...Модель не «знає» відповідь заздалегідь. Вона пише її токен за токеном, і кожен наступний залежить від уже написаного. Тому прохання «спочатку подумай, потім відповідай» часто покращує результат: проміжні кроки стають частиною контексту.
Контекстне вікно
Контекстне вікно — максимальна кількість токенів, яку модель бачить за раз: системний промпт, історія розмови, документи, інструменти і сама відповідь. Сучасні моделі мають вікна від десятків тисяч до мільйона токенів, але великий ліміт не означає, що все в ньому використовується однаково добре.
УвагаМодель не має пам'яті між запитами. «Пам'ять» чату — це просто історія, яку клієнт щоразу надсилає заново. Коли історія перевищує вікно, старі повідомлення обрізаються або стискаються — і модель «забуває» початок розмови.
Що з цього випливає на практиці:
- Кладіть найважливіше на початок і в кінець. Інформація посередині довгого контексту використовується гірше.
- Не пхайте в контекст зайвого. Десять релевантних абзаців працюють краще за сто випадкових сторінок — і коштують дешевше.
- Довгі розмови варто підсумовувати. Стислий конспект попередніх кроків економить токени й прибирає шум.
Температура та інші параметри генерації
| Параметр | Що робить | Типові значення |
|---|---|---|
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 Інші способи входу