Интеллектуальный обзор GLM-5 «Проблема кодировки»: миллиарды вызовов Coding Agent в день, две гонки багов скрыты в KV Cache

Согласно мониторингу Beating, компания Zhipu опубликовала обзор проблем с искажением текста, повторным воспроизведением и редкими символами в серии моделей GLM-5 при использовании сценария Coding Agent. С марта поступают отзывы пользователей, сбои возникают только при высокой нагрузке и длинных контекстах (в среднем более 70K токенов) в задачах Coding Agent, в стандартной среде inference воспроизвести проблему невозможно. Zhipu утверждает, что их система inference обрабатывает сотни миллионов вызовов Coding Agent ежедневно.

После нескольких недель расследования команда выявила два независимых низкоуровневых гонки в коде. Первый связан с архитектурой разделения PD (распределение предварительной обработки и декодирования на разные узлы): при тайм-ауте декодера запрос отменяется и KV Cache (кэшированные состояния внимания, избегая повторных вычислений) освобождается, но запись RDMA на стороне предварительной обработки еще не завершена, новый запрос получает ту же видеопамять, и старые данные перезаписывают новые. Исправление — добавление явной синхронизации перед освобождением, чтобы убедиться, что запись завершена. После внедрения ошибка снизилась с десятих долей процента до менее трети процента.

Второй баг связан с HiCache (многоуровневый KV Cache): при асинхронной загрузке из памяти CPU в кэш отсутствует точка синхронизации между потоками загрузки и вычислений, из-за чего вычислительный блок может начать чтение данных, которые еще не загружены. После исправления такие ошибки полностью исчезли, патч был отправлен в сообщество SGLang (PR #22811).

Во время расследования также было обнаружено неожиданное явление: метрика приемлемости выборки спекулятивных токенов (тех, что сначала предполагаются малой моделью, а затем проверяются большой) может служить сигналом для обнаружения ошибок. При искажении текста почти все черновые токены отвергаются, при повторных воспроизведениях уровень приемлемости заметно выше. Команда внедрила онлайн-мониторинг: при достижении порога генерация автоматически останавливается и повторяется.

После исправления багов команда также оптимизировала узкий место: разделение KV Cache по слоям (LayerSplit KV Cache), при котором каждый GPU хранит только часть слоев, а не весь KV Cache, с помощью координированных вычислений через широковещание. При 90% уровне попадания в кэш, при длине запроса от 40K до 120K, пропускная способность увеличилась на 10% до 132%, а при более длинных контекстах прирост оказался еще выше.

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Репост
  • Поделиться
комментарий
Добавить комментарий
Добавить комментарий
Нет комментариев
  • Закрепить