С развитием искусственного интеллекта и ростом популярности больших языковых моделей, таких как GPT от OpenAI, все больше разработчиков и организаций сталкиваются с проблемой непредсказуемых затрат на использование LLM API. Часто происходит так, что стоимость обращения к модельным сервисам неожиданно возрастает, выходя за рамки бюджета, что приводит к необходимости перерасхода денежных средств или даже введению ограничений на использование. В ответ на данный вызов был создан проект PreflightLLMCost – инструмент, который позволяет прогнозировать затраты на API вызовы LLM с высокой степенью точности еще до их фактического выполнения. Такой подход открывает совершенно новые возможности для планирования и контроля расходов при работе с большими языковыми моделями. PreflightLLMCost основан на современных исследованиях и научных публикациях, которые посвящены предсказанию длины ответа LLM и контролю над итоговым количеством токенов.
Его архитектура построена вокруг многоуровневой системы прогнозирования, включающей эвристический, статистический и исследовательский методы. Это позволяет обеспечивать не только релевантность прогнозов, но и учитывать неопределенность, предоставляя раскрытие вероятных интервалов и worst-case сценариев стоимости. Основой прогнозирования служит обработка шаблонов запросов с учетом возможных вариаций переменных. Система использует шаблоны, созданные через Jinja, и может интегрировать данные из CSV или JSON файлов. Такой подход позволяет учитывать разнообразные входные данные и масштабировать прогнозирование на большие объемы запросов.
Ключевую роль в точном измерении играет токенизатор на базе tiktoken, адаптированный под модель, что позволяет обеспечить корректный подсчет длины запросов и ответов. Продвинутый блок предсказаний работает по принципу каскадной системы из трех уровней. Первый уровень применяет улучшенные эвристики, классифицируя тип запроса и оценивая сложность предстоящего ответа за счет анализа содержимого. Второй уровень использует регрессионные модели с L2-регуляризацией, которые обучаются на исторических данных и извлекают многомерные характеристики для более точного предсказания. Третий уровень призван анализировать скрытые состояния модели, интегрируя результаты современных исследований в области обработки устойчивых атрибутов ответа, что повышает точность прогноза и снижает разброс результатов.
Преимуществом данного инструмента является его возможность производить оценки с указанием уровня доверия, что особенно важно для управления рисками при построении бизнес-процессов. Bootstrap-анализ и расчет доверительных интервалов помогают пользователям понимать не только средние прогнозы, но и диапазон возможных значений расходов, что позволяет более гибко планировать бюджет. Важным элементом архитектуры является механизм обновления цен на API сервисы. Проект поддерживает интеграцию с ведущими провайдерами LLM, включая OpenAI, Anthropic и Google, и автоматически обновляет данные о тарифах, что исключает ошибки, связанные с устаревшими ценами. Инструмент поддерживает основные модели, востребованные на рынке, и позволяет сравнивать прогнозируемую стоимость между разными провайдерами, а также учитывать разнообразные параметры модели и нагрузки.
Для удобства пользователей предусмотрен как консольный интерфейс, так и полноценный Python API. Это облегчает интеграцию PreflightLLMCost в существующие цепочки обработки данных, CI/CD и системы мониторинга. В частности, в CI/CD пайплайнах можно задавать ограничения по бюджету и автоматически отсекать выполнение задач при превышении допускаемых лимитов, что существенно снижает риск незапланированных расходов. Пример использования в консоли демонстрирует, как просто получить оценку стоимости по шаблону с конкретными переменными для моделей gpt-3.5-turbo или gpt-4.
Аналогичный подход реализован и в коде Python, где можно задать настройки точности, включить дополнительные уровни прогнозирования и получить детальный отчет с данными по средним значениям и worst-case сценарию. Несмотря на все преимущества, следует понимать ограничения. Погрешности в прогнозах есть и связаны они, в первую очередь, с вариативностью запросов и ответов. Новые модели или сложные задачи могут генерировать ответы с более высокой степенью разброса длины, что влияет на точность. Поэтому рекомендуется применять прогноз как ориентир, комбинируя его с текущей статистикой и мониторингом.