Перейти к содержанию

llama.cpp b11307: фиксация порядка батчей при спекулятивном декодировании и NextN

4.0/10

В релизе движка llama.cpp b11307 (PR #29019) исправлено сохранение исходного порядка батчей для входных данных слоев в пайплайнах спекулятивного декодирования и немаскированных эмбеддингов NextN. Для обеспечения совместимости с режимом разделения тензоров (tensor split) тензоры каждого микробатча копируются со смещения ноль с последующим восстановлением исходного порядка строк после межвекторной синхронизации. Корректность архитектурных изменений подтверждена успешным прохождением тестов во всех 256 аппаратных конфигурациях CPU, CUDA и tensor split. Практическая работоспособность верифицирована прогоном бенчмарка MT-Bench моделью Qwen3.8-27B в формате квантования Q4_K_M с механизмом MTP при уровне параллелизма 16.

Механизм сохранения порядка батчей при спекулятивном декодировании

Оптимизация нормализует конвейер спекулятивного декодирования и генерации эмбеддингов NextN/MTP за счет строгого сохранения и восстановления порядка строк исходного батча при извлечении входных данных промежуточных слоев. Для обеспечения корректности при разделении тензоров (tensor split) тензоры микробатчей копируются с нулевого смещения с последующим восстановлением исходного порядка строк после межпроцессорной синхронизации через явное сопоставление индексов batch_idxs и embd_batch_idxs. Для немаскированных строк NextN-эмбеддингов применяется прямое отображение исходных токенов (включая режимы с отключенным захватом слоев), в то время как маскированные строки остаются привязанными к проекции выходных логитов.

Эффект для инфраструктуры инференса

Патч устраняет рассинхронизацию промежуточных скрытых состояний при спекулятивном MTP-выводе на мульти-GPU кластерах, обеспечивая стабильное параллельное декодирование на 16 потоков без нарушения порядка токенов.