02. 🔤 Токены и контекстное окно

Чтобы руководитель мог оценивать стоимость, скорость и ограничения AI-системы, ему нужны ровно три понятия из «внутренностей» модели: токен, контекстное окно и embedding. Математики здесь не будет — только то, что влияет на решения и счета.

Токен — атом текста для модели

Токен — это минимальный кусочек текста, который модель обрабатывает как единое целое. Модель не видит «букв» и не считает «словами»: она видит токены.

Правило большого пальца

В английском 1 токен ≈ ¾ слова (4 символа). В русском тексте один символ кириллицы часто стоит дороже — слово «договор» может превратиться в 2–4 токена. Это критично для оценки расходов на русскоязычных проектах. См. 06-stoimost-i-ekonomika.

Токенизация — это не «разбивка по пробелам». Часто в один токен попадают куски слов («дого-» и «-вор»), а часто — целые устойчивые сочетания. Чем популярнее слово в обучающих данных, тем вероятнее, что оно уложится в один токен.

Почему это важно

Токен — это валюта мира LLM. Длина контекста измеряется в токенах. Цена API считается в токенах. Скорость работы — это токены в секунду. Как только вы начинаете думать токенами (а не словами или страницами), вам становится понятно, почему один и тот же запрос к английскому тексту дешевле, чем к русскому.

Контекстное окно — рабочая память модели

Контекстное окно (context window) — это максимальное число токенов, которое модель может одновременно «держать в голове» за один запрос. Всё, что в нём не поместилось, модель просто не увидит.

В одно окно входит всё вместе:

flowchart LR
    S["⚙ System prompt<br/>(роль, правила)"]:::part
    H["💬 История диалога<br/>(предыдущие ходы)"]:::part
    D["📄 Загруженные документы<br/>(RAG, файлы)"]:::part
    Q["❓ Текущий вопрос"]:::part
    S & H & D & Q --> W["🪟 Контекстное окно<br/>(фиксированный лимит)"]:::window
    W --> M["🧠 Модель"]
    classDef part fill:#e3f2fd,stroke:#4a90d9;
    classDef window fill:#fff4e6,stroke:#e8a04e,stroke-width:2px;

Если System prompt + история + документы + вопрос в сумме превысят окно — система должна либо «обрезать» историю, либо сжать её (summarization), либо использовать RAG вместо загрузки всего документа целиком.

Три практических следствия

  1. «Забывание» середины. У очень длинных документов модель хуже помнит то, что в центре (эффект «lost in the middle»). Ключевое ставьте в начало и в конец.
  2. Окно не бесконечно и не бесплатно. Большое окно (128K–1M токенов) звучит заманчиво, но каждый токен вы платите — на входе и часто на выходе. См. 06-stoimost-i-ekonomika.
  3. Большое окно ≠ лучший ответ. Засунуть в модель весь архив — плохая стратегия. Точнее и дешевле найти релевантные фрагменты через RAG, чем «заставлять» модель читать лишнее.

Типичные размеры окон (на 2026 год)

Класс моделейПорядок контекстного окнаЧто это значит
Компактные/дешёвые8K–32K токеновКороткий диалог, один-два документа
Флагманские128K–256K токеновСотни страниц, крупный договор или кодовая база
«Длинноконтекстные»1M токенов и болееЦелые книги/архивы, но дороже и с риском «потери середины»

Для руководителя

В вакансии или в предложении вендора «контекст на миллион токенов» — это маркетинг. Реальный вопрос: какая доля ваших задач действительно требует миллиона, и не дешевле ли точнее отобрать нужное через RAG.

Embedding — смысл, превращённый в числа

Embedding (эмбеддинг, векторное представление) — это превращение куска текста (слова, предложения, документа) в массив чисел так, что близкие по смыслу тексты получают близкие векторы. Это не «перевод в цифры», а сжатие смысла в координаты.

flowchart LR
    A["📄 Договор подрядчика"] --> E["🔢 Embedding-модель"]
    B["📄 Договор поставки"] --> E2["🔢 Embedding-модель"]
    E --> VA[("V1<br/>0.21, -0.44, …")]
    E2 --> VB[("V2<br/>0.19, -0.40, …")]
    VA & VB --> C["📐 Векторы близки<br/>→ похожи по смыслу"]

Аналогия с координатами города

Embedding — как GPS-координаты смысла. Два адреса рядом на карте — близки географически. Два текста с близкими векторами — близки по смыслу, даже если не совпадает ни одно слово («расторжение контракта» и «разрыв договора»).

Embedding лежит в основе всего, что связано с поиском по смыслу и RAG: именно так система находит в базе «похожие» фрагменты не по ключевым словам, а по значению. Сама по себе LLM генерирует текст; отдельная, более лёгкая embedding-модель превращает тексты в векторы для поиска.

Не путайте

  • Токен — кусочек текста на входе/выходе.
  • Контекстное окно — сколько токенов влезает за один запрос.
  • Embedding — числовое представление смысла для поиска; считается отдельной моделью.

Что из этого следует для бизнеса

  • Бюджет проекта считается в токенах, а не в «запросах» или «пользователях». Узнайте у команды ожидаемый объём входных и выходных токенов в месяц — это и есть основная строка расходов. См. 06-stoimost-i-ekonomika.
  • Длина документов = конструкторское ограничение. Если ваши кейсы — договоры по 80 страниц, сразу проектируйте RAG, а не надейтесь на «большое окно».
  • Русский текст дороже английского — закладывайте это в экономику.
  • Качество поиска внутри базы знаний зависит от embedding-модели и того, как нарезаны документы (чанки), а не от «умности» главной LLM.

📌 Что запомнить

  • Токен — атом текста для модели; в русском дороже, чем в английском.
  • Контекстное окно — лимит «рабочей памяти» за запрос; в него входит всё: роль, история, документы, вопрос.
  • Большое окно не заменяет RAG и стоит денег.
  • Embedding — вектор смысла; основа семантического поиска; считается отдельной моделью.

Дальше: 🏭 Как создаются модели → — почему модель ведёт себя как ассистент и в каких случаях её нужно «доучивать» под вас.