Токени та контекстне вікно простими словами
Чому модель губить нитку в довгому чаті - і за що саме з тебе беруть гроші
Що таке токени та контекстне вікно нейромережі простими словами: чому модель забуває початок діалогу, чому український текст дорожчий за англійський і як платять за вхід та вихід.
Що таке токени та контекстне вікно - на пальцях
Здається, ніби модель читає текст так само, як ти: слово за словом, по порядку. А от і ні. Спершу вона кришить твій текст на дрібні шматочки - і ці шматочки звуться токени Токен (token) - шматочок тексту, яким оперує модель. Це не завжди ціле слово: часто частина слова, іноді символ чи знак пунктуації. Модель бачить текст як потік токенів, а не як літери. .
Порівняй із їжею. Ти не ковтаєш шматок цілком - відкушуєш потрошку. Модель так само. Довге слово перетворюється на два-три «відкуси», коротке - на один. Ось ці шматочки вона й «жує» замість літер.
Тепер друге. Є контекстне вікно Контекстне вікно (context window) - максимальна кількість токенів, яку модель утримує за раз: твій запит, історію листування та її відповідь. Усе, що не влізло, вона не бачить. - її робоча памʼять. Це все, що вона бачить просто зараз: твоє запитання, усе минуле листування й місце під її відповідь. У цього «столу» є край. І за цей край нічого не вміщається.
Навіщо новачку взагалі знати про токени
Це не теорія для галочки. Від токенів і вікна залежать три речі, на які ти натрапиш у перший же робочий день.
- Чому модель «тупить» у довгому чаті. Листування розрослося, початок поїхав за край вікна - і вона справді забула, з чого ви починали.
- Чому росте рахунок. Платиш ти не за повідомлення, а за токени. Женеш у модель величезні простирадла тексту - платиш більше. Усе просто.
- Чому українська «дорожча» за англійську. Той самий зміст українською займає більше токенів, ніж англійською. Тобто буквально дорожче за той самий текст.
Девʼять із десяти скарг у дусі «модель мене не слухає, повторюється, забула, що я просив» у довгому чаті - це не баг і не характер. Це переповнене вікно: старе вже випало за край.
Як токени та вікно працюють насправді
Токен - це шматочок тексту, а не слово
Літери напряму модель читати не вміє. У неї заздалегідь готовий словник шматочків, і будь-який текст вона розкладає на них. Часте коротке слово нерідко йде одним токеном. Довге чи рідкісне - рубиться на кілька частин.
Тримай грубі орієнтири, щоб прикидати на око. Це приблизно, а не точна формула:
- в англійській один токен - це приблизно 4 символи або десь 3/4 слова;
- знаки пунктуації та пробіли теж ідуть у рахунок;
- українською на той самий зміст іде помітно більше токенів: моделі вчать здебільшого англійською, а українську вони ріжуть дрібніше.
Контекстне вікно - це стіл, у якого є край
Вікно - це скільки токенів влізає на «робочий стіл» моделі за один захід. Що лежить на столі одночасно:
- твоє поточне запитання;
- уся історія листування - або скільки від неї вмістилося;
- системна інструкція, якщо вона є;
- і місце під майбутню відповідь моделі.
Стіл забитий, а ти дописуєш нове - і найстаріше зсувається з краю. Модель не «вирішує забути». Вона просто фізично цього більше не бачить. Ось чому в дуже довгих чатах початок розчиняється сам собою.
Скільки коштують токени: вхід і вихід
Головне про гроші: платиш ти за токени, і рахують їх у двох кошиках.
- Вхід (input) - усе, що ти надіслав моделі: твій запит плюс історія, яку їй довелося перечитати.
- Вихід (output) - усе, що модель написала у відповідь.
І ось тут сюрприз для новачків: вихідні токени зазвичай дорожчі за вхідні - подеколи в кілька разів. Тому довга відповідь бʼє по гаманцю сильніше, ніж довге запитання.
- Можна згодувати цілий документ чи довгий код за раз - модель бачить усе разом.
- Менше мороки: не треба різати задачу на шматки й потім вручну склеювати відповіді.
- У довгій розмові модель довше памʼятає, про що ви говорили на початку.
- Кожен токен у вікні - це гроші: набив вікно по вінця - платиш сповна за кожен запит.
- Що щільніше набите вікно, то повільніше зазвичай іде відповідь.
- Модель може губитися у гігантському простирадлі й гірше знаходити потрібне в середині.
Приклад із життя: чому чат «дурнішає» надвечір
Припустимо, ти весь день сидиш із моделлю в одному величезному чаті: накидав туди ТЗ, шматок коду, обговорення, правки, знову код. Надвечір виходить дві неприємності. Перша - модель ніби «дурнішає» й забуває те, що ви вирішили зранку. Друга - кожна відповідь дорожчає, хоча запитання начебто ті самі. Причина одна: вікно набите по вінця й перечитується цілком на кожному кроці.
А що з цим роблять на практиці?
- Не тягни всю історію світу в один чат. Закрив тему - відкрий новий чистий чат: вікно знову порожнє й дешеве.
- Не вставляй гігантські простирадла «про всяк випадок». Дай моделі рівно той шматок, що реально потрібен для задачі.
- Розмова розрослася - попроси модель коротко підсумувати домовленості, скопіюй підсумок, відкрий новий чат і встав лише цей підсумок.
- Памʼятай: довга відповідь дорожча за довге запитання. Просиш «коротше» - економиш саме на дорогих вихідних токенах.
- Пишеш українською і важлива економія - той самий запит англійською зазвичай займе менше токенів.
Часті помилки новачка з контекстом
- Думати, що модель «памʼятає все». Вона памʼятає лише те, що влізло у вікно просто зараз. Старе з довгого чату для неї вже розчинилося.
- Вважати, що один токен - це одне слово. Аж ніяк. Це шматочок, часто частина слова. А українською їх іде помітно більше.
- Вставляти все підряд «щоб напевно». Зайвий текст - це зайві токени, тобто зайві гроші й гальма. Користі нуль.
- Забувати, що вихід дорожчий за вхід. Величезна відповідь бʼє по рахунку сильніше за величезне запитання. Проси по ділу.
- Місяцями жити в одному чаті. Вікно переповнюється, модель «дурнішає», а ти переплачуєш за перечитування історії. Заводь новий чат під нову тему.
TL;DR - если коротко
- Токен - це шматочок тексту, найчастіше частина слова. Модель бачить не літери, а потік токенів.
- Прикидка: в англійській один токен - це приблизно 4 символи або десь 3/4 слова. Українською на той самий текст токенів іде відчутно більше.
- Контекстне вікно - це все, що модель тримає перед очима за раз: твоє запитання, історію чату та її майбутню відповідь.
- Вилетіло за край вікна - модель це забула. Не шкідливість і не глюк: за межею вікна для неї просто порожньо.
- Платиш ти за токени: окремо за вхід (що надіслав) і за вихід (що написала). Вихід зазвичай дорожчий.
- Великий контекст зручний, але кожен зайвий токен - це гроші й крапля гальм. Кермувати ним вчимо в курсі вайбкодингу.