Отладка медленных запросов начинается с разделения токенизации и инференса

Когда запрос медленнее, чем ожидалось, разработчик пытается оптимизировать запрос или выбрать более быструю модель. Но если профилировать отдельные этапы, часто оказывается, что проблема не в модели.

Время теряется на преобразовании входных данных в токены. Если входить — большой файл в JSON-кодировке, парсинг и токенизация могут занять больше времени, чем сама генерация ответа.

Где искать узкие места

Провайдеры редко отдают метаданные о времени, потраченном на отдельные этапы. Но можно написать собственный профилировщик: засечь время передачи данных, ответить от сервера, а затем обработки результата.

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

Когда разработчик начинает кэшировать промежуточные результаты и токенизировать локально, общее время запроса часто улучшается больше, чем при смене модели.