Новое Распределяем каналы MAX по категориям и территориям. Читать новость

Контекстное окно и токены. Ч. 2. Управление настройками


Практика

Контекст:
Контекстное окно и токены. Ликбез

🛠️ Два уровня настройки

❗️ Их нельзя путать.

🔧 Уровень 1. Клиент (Open WebUI) — настройка RAG-параметров

• Chunk Size — размер фрагмента в токенах
- Таблицы/цифры: 256–512
- Сплошной текст: 512–1024

• Chunk Overlap — перекрытие между чанками (10–20% от Chunk Size)

• Top‑K — сколько чанков отправляем
- Большие документы: 3–5
- Маленькие таблицы: 10–15

⚙️ Уровень 2. LM Studio — сколько модель может принять

Параметр модели. Он задаётся до загрузки весов в память.

Как изменить Context Length:

1. LM Studio → My Models → шестерёнка у модели
2. Поле `Context Length` (`n_ctx`) → новое значение
3. Обязательно: Сохранить → выгрузить → загрузить модель заново. LM Studio не умеет подхватывать изменения на лету.

⚠️ Увеличение Context Length в 2 раза увеличивает потребление KV‑кэша примерно в 4 раза (квадратичная зависимость). Если после увеличения модель не загружается — включите CPU Offload.

⚙️ CPU Offload — когда видеокарте тяжело

Если модель не влезает в VRAM, часть вычислений можно переложить на процессор. Медленнее (CPU считает хуже GPU). Для RAG — актуально, когда нужно увеличить `n_ctx`, а видеопамяти не хватает.

🚨 Выходное окно (`max_tokens`)

❗️Не путай контекстное окно (вход) с длиной ответа (выход).

- Context Length (`n_ctx`) — сколько токенов модель читает
- Max Tokens (`max_tokens`) — сколько токенов модель генерирует

⚠️ Эти параметры независимы, но оба упираются в общий бюджет памяти модели.

📊 Примеры расчётов

Текст, 10 страниц (≈ 4 K слов)
- 4 K × 0.75 = 3 K токенов
- Chunk Size = 512, Top‑K = 3 → 1536 токенов в промпт
Итог: ~2 K токенов — влезает

Таблица, 30×5
- ~1,5 K–2 K токенов сырых
- Chunk Size = 256, Top‑K = 10 → все чанки в промпт
Итог: ~2,5 K токенов — влезает

😱 Документ больше контекстного окна

Документ на 8686 токенов при n_ctx = 8192
Результат: ошибка n_keep >= n_ctx

Решение зависит от ресурсов и структуры документа:

• Нет VRAM → используй только чанки (экономь память)
• Есть VRAM → увеличить окно
• Документ цельный (связанные абзацы) → увеличь окно и отдай документ целиком
• Документ рыхлый (можно вырезать куски) → разбивай смело на чанки

✂️ Как чанки режут разные типы файлов

Текст
Режется по границам предложений или абзацев. Риск — потеря смысла на стыках.
Решается Overlap (10–20% от Chunk Size).

Таблицы
⚠️ Самый опасный случай! Чанкинг режет таблицу по строкам. Если строки связаны между собой (суммы, итоги, зависимости) — модель теряет логику.
Для таблиц лучше: увеличивать n_ctx (если таблица небольшая) или преобразовывать таблицу в текст.

Код
Режется по строкам или функциям. Может разорвать логические блоки → модель не увидит целостность функции.

PDF с колонками
Режется как текст, но ломает порядок колонок (теряется смысл). Лучше отдать не pdf, а текстовый документ.

Правило: таблицы и структурированные данные не любят чанкинг. Их надо отдавать модели целиком (увеличивай n_ctx).

🔄 Регулярные задачи

- Новый чат — сбрасывает историю (проще всего)
- Очистить историю — вручную в Open WebUI
- N-последних сообщений — не отправлять при каждом запросе всю историю, а только только последние N (см. настройки: Context Messages, History Length, Max Messages in Context)

Правило:
Разные документы → разные чаты
Один документ → можно один чат, но чистить историю (иконка корзины)

🧩 Алгоритм

• Оценить размер документа в токенах: `символы ÷ 4` (для русского языка)
• Выбрать режим загрузки в Open WebUI: < 2 K токенов → «Полный контекст» (весь файл), если больше → включите RAG с чанками
• Chunk Size: таблицы 256, текст 512/1024
• Overlap: 10–20%
• Top‑K: 3–5 (большие доки) или 10–15 (маленькие)
• Проверить сумму: `(Chunk Size × Top‑K) + вопрос + системный промпт + max_tokens` < 80% от `n_ctx`
• Не влезает? Уменьшить Chunk Size или Top‑K. Или увеличить `n_ctx` в LM Studio
• Перезагрузить модель:
если изменил любые настройки модели
Просмотры: 150
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти