Пока мы изучали только самые важные для этой сферы исследования и различные их реализации. Мы узнали:
- Как во фреймворках (наподобие Harness и HELM) были придуманы различные таксономии для структурирования задач оценки.
- Как разные опенсорсные платформы наподобие Chatbot Arena позволяют легко выполнять бенчмаркинг LLM.
- Как в реализациях наподобие PromptBench упор сделан на сценарии продакшена (например, на атаки с инъецированием промтов или на состязательные атаки).
Однако эти системы состоят из множества отдельных компонентов: векторных баз данных, оркестрирования различных рабочих нагрузок (агентов) LLM, промт-инжиниринга, данных для fine-tuning и так далее, управлять которыми очень сложно.
Ещё одна проблема заключается в различиях между оценкой в исследованиях и в продакшене. Быстрая разработка и fine-tuning LLM с последующим выводом в продакшен — это непростая задача, поэтому ещё одним важным узким местом становится инфраструктура оценки системы для продакшена.
Все мы знаем, что тестирование — это важная и неотъемлемая часть классической быстрой разработки ПО (например, в Python фреймворк PyTest играет важную роль в тестировании); оно также используется в конвейерах CI/CD перед выпуском обновлений ПО, благодаря чему процесс разработки упрощается и становится надёжнее.
Однако для LLM у нас нет инфраструктуры тестирования наподобие Pytest. Но даже если бы она у нас была, LLM — это вероятностные механизмы, из-за чего применение детерминированных тестов не дало бы адекватных результатов. Кроме того, важно тестирование в реальном времени и нагрузочное тестирование (испытания «красной командой»). Но всё это пока практически отсутствует, что замедляет процесс разработки продуктов генеративного ИИ уровня продакшена.
Так как требуется постоянно выполнять fine-tuning LLM, что позже используется для разработки систем LLM (например, систем на основе RAG), то необходима архитектура, которая:
- Выполняет одновременную оценку во время fine-tuning
- Оценивает тестовые случаи для пред-/пост-продакшена
- Включает в себя «краснокомандные» проверки/нагрузочное тестирование и A/B-тестирование LLM и систем LLM в крупных масштабах.
- Выполняет оценку и коррекцию данных, которые будут использоваться для LLM.
Если вы сейчас думаете, что здесь бы был очень полезен Harness или HELM, то вы и правы, и неправы одновременно. Хотя HELM и Harness позволяют своим пользователям сделать большой шаг к реализации оценки LLM, все эти библиотеки имеют теневые интерфейсы (интерфейсы API, недостаточно описанные в документации) и в основном запускаются через CLI, что не совсем подходит для быстрого прототипирования моделей.
Кроме того, нам могут понадобиться очень специфичные для предметной области оценки, не охваченные современными фреймворками бенчмаркинга. Написание таких оценок должно быть столь же простым, как написание тестовых случаев для PyTest; то же самое относится и к бенчмаркингу LLM, который эти фреймворки пока не поддерживают.