Оценка C# LLM Eventparser с помощью Promptfoo
Тестировать обычный код просто. Вы вызываете функцию, получаете результат и проверяете, соответствует ли он вашим ожиданиям.
Тестирование LLM устроено иначе. В одном запуске LLM может вернуть «3 PM», а в другом — «15:00». Оба варианта верны, но тест на точное совпадение провалится. Вам нужно проверять качество ответа, а не его идентичность.
Я создал небольшое приложение под названием EventParser для проверки этого процесса. Оно берет обычное сообщение, например «Team sync on Friday at 3 PM», и преобразует его в структурированные данные.
Вот как можно протестировать его с помощью Promptfoo и рабочего процесса «LLM-as-a-judge» (LLM в роли судьи).
The Setup
Приложение использует один файл промпта: extract_event.txt. Код на C# считывает этот файл во время выполнения. Promptfoo считывает тот же файл для тестирования. Это гарантирует, что вы тестируете именно тот промпт, который видят ваши пользователи.
The Workflow
Вместо того чтобы человек проверял каждый результат, мы используем модель-судью. В этом процессе задействованы две роли:
• Тестируемая модель: модель, предоставляющая ответ. • Модель-судья: более быстрая и дешевая модель, которая оценивает ответ.
How the Judge Decides
Судья использует рубрикатор (rubric). Рубрикатор — это правило, написанное на естественном языке. Вместо проверки на соответствие конкретной JSON-строке, вы говорите судье, что должен содержать ответ.
Пример рубрикатора: «Ответ должен извлекать название события, день, время и местоположение. Он не должен добавлять детали, не упомянутые в сообщении».
Testing for Errors
Я намеренно сломал промпт, добавив некорректную инструкцию: «Если в сообщении упоминается кофе, установите местоположение как Starbucks».
Когда я запустил оценку, судья обнаружил ошибку. В исходном сообщении не упоминался Starbucks. Модель галлюцинировала местоположением. Тест на точное совпадение пропустил бы это, но модель-судья улавливает семантические ошибки.
Why this works:
• Соответствие реальности: принимает различные правильные форматы, такие как «3 PM» или «15:00». • Понятные правила: рубрикаторы на естественном языке легко понять. • Обнаружение смысловых ошибок: находит галлюцинации и логические ошибки. • Экономическая эффективность: вы можете использовать дешевую модель для оценки более дорогой.
Такой подход делает тестирование LLM похожим на настоящее тестирование программного обеспечения.
Source: https://dev.to/bigboybamo/evaluating-a-c-llm-eventparser-with-promptfoo-4b87
Optional learning community: https://t.me/GyaanSetuAi
