Чтобы еще лучше осмыслить назначение параметров «Ограничение для размеров контекста моделей Deepseek», «Максимальное число токенов в одной фразе» и «Размер блока контекста в токенах», опишем примерную схему, как рассчитывается количество фрагментов текстов, прикладываемых к промптам (запросу НС).
Также действуют такие правила: модели Яндекс работают быстрее, но с ограниченным контекстом, Deepseek же поддерживает в разы больший контекст, но и работает в разы медленнее.
Скорость получения ответа от Deepseek напрямую зависит от размера контекста.
Эти настройки влияют не только на качество ответов, но и позволяют использовать модели от Яндекс, если их возможностей достаточно.
Если же добиться приемлемого качества ответов от моделей Яндекс не удаётся, можно оптимизировать скорость работы моделей Deepseek, настроив ограничение размера контекста.
В упрощенном виде полный запрос к НС состоит из блоков:- Непосредственно текст System Prompt, заданный в настройках (ограничен 2000 тк).
- Непосредственно текст User Prompt, заданный в настройках (ограничен 2000 тк, включая непосредственный текст запроса).
- Фрагменты текстов векторной БД.
- Фрагменты диалогов других заявок.
Размеры и количество этих блоков, как было указано выше, определяются настройками:- «Ограничение для размеров контекста моделей Deepseek» (в интерфейсе; max 110 тыс. тк.).
- Ограничения для размера контекста Яндекс: 12000 тк. (жестко задано в конфигурации Админ24).
- «Максимальное число токенов в одной фразе» (в интерфейсе; max 2000 тк.)
- «Размер блока контекста в токенах» (в интерфейсе; max 2000 тк.).
- Максимальное количество блоков контекста под текущий диалог пользователя для Deepseek: 30 (жестко задано в конфигурации Админ24).
- Максимальное количество блоков контекста под текущий диалог пользователя для Яндекс: 3 (жестко задано задано в конфигурации Админ24).
Порядок заполнения блоков контекста:- На основе заданных в интерфейсе размера блока контекста и единичного сообщения, а также заданного жестко максимального количества блоков для текущего диалога, определяется максимальное количество сообщений для текущего диалога.
- Из основной БД организации для текущего тикета выбирается это определенное количество сообщений.
- Определяется фактическое количество токенов, занятых диалогом.
- Исходя из максимального размера контекста, фактического размера промптов, фактического размера текущего диалога, определяется число блоков контекста, доступных для фрагментов текстов и диалогов из других заявок.
Как показывают результаты внутренних тестов, чтобы получить приемлемый результат, необходимо, чтобы к контексту прикладывались не менее 8 .. 10 фрагментов из векторной БД.
Поэтому, если требуется максимальная скорость ответа, то, прежде всего, необходимо добиваться минимального размера контекста. Если это позволит уложиться в ограничения Яндекс – это наиболее предпочтительный вариант. Даже если уложиться в Яндекс не получится, уменьшенный размер контекста позволит ускорить получение ответов и от Deepseek.
Если цель – выбрать модели от Яндекс, то необходимо задать сравнительно небольшой размер блока контекста – 800 .. 1000 тк.
Это позволит прикладывать 8 .. 10 фрагментов из векторной БД, который для многих случаев будет достаточно.
Уменьшение этого размера потребует уменьшения размера поисковой фразы. Чтобы к запросу прикладывались хотя бы 15 фраз, размер фразы должен быть ограничен 150 .. 200 тк.
Если ограничения по длине контекста от Яндекс не позволяют получать ответы приемлемого качества, то для Deepseek необходимо ограничить контекст сначала хотя бы 30 тыс. тк.
Максимально допустимый размер блока контекста в настоящее время составляет 2000 тк. Это ограничение векторизатора. Для Deepseek можно оставить это максимальное значение.
Максимальный размер фразы сейчас также ограничен 2000 тк. Его при этом сценарии следует ограничить хотя бы до 1000 тк.
Если скорость ответа 1 .. 3 минуты приемлема, то здесь все максимально просто: выбирается НС Deepseek Thinking (думающая), суммарный размер контекста ставится 0, т. е. максимально возможный, размер блока контекста ставится максимум 2000, ограничение на фразу также ставится 2000.
Это позволит получить максимально качественный результат. Именно такие настройки установлены в настоящее время по умолчанию.
В дальнейшем на результаты этого режима можно ориентироваться в процессе оптимизации: пытаться увеличить скорость получения ответа, но добиваться при этом качества на уровне этого результата.
После изменения перечисленных настроек требуется переиндексирование всех источников, поэтому, если есть возможность, имеет смысл проводить подобные настройки только с частью источников, а полное сканирование делать уже после того, когда будут достигнуты нужные результаты.