Проект llama.cpp выпустил сборку b10750, которая рефакторит управление ячейками ключа и значения для улучшения индексации позиций последовательности и поиска истории n-грамм.

  • Функция `get_prev_tokens()` была перестроена для выполнения прямых поисков вместо обхода всех используемых ячеек при каждом ubatch.
  • Внутренний индекс теперь хранит пары `(pos, cell)` в `std::set`, что позволяет выполнять логарифмический поиск через новый метод `seq_pos_tok_le`.
  • Это изменение устраняет необходимость в старом поиске по окну и логике резервного перехода для разрыва M-RoPE.
  • Бенчмарки на Qwen3.8-Flash-Next UD-Q4_K_XL при контексте 71k показывают увеличение скорости генерации токенов на 4,9% (с 69,3 до 72,7 t/s) при неизменной производительности префиллинга.

Оптимизация снижает вычислительные накладные расходы во время вывода, что приводит к более быстрой генерации текста для сценариев с длинным контекстом.