Автор под ником SheilaMayoAI спрашивает, как измерять качество отыгрыша NPC на LLM, когда персонаж обязан врать, скрывать информацию или уходить от ответа. Вопрос быстро сместился с «какие есть методы» на более неудобный: что считать единицей оценки и хватает ли одного текста диалога. За двенадцать комментариев ветка дошла до конкретных формул, но согласия по гранулярности и эталону так и не появилось.
Участник mithulaartigala начинает с бюджета, а не с метрик: для 3D-игры «you already have about 1GB+ dependancies and frameworks you import», поэтому память и VRAM придётся экономить. Его практическая рекомендация — небольшие модели: LFM2.5 на 230M или 350M параметров, причём «the 350M is good». Аргумент здесь ресурсный, а не про качество лжи как таковой.
Nootxlm предлагает разделить три вещи, которые обычно сливаются в одну: что NPC знает, что ему разрешено раскрывать и что он реально сказал. По его мнению, это «three different failures». Он советует скриптованный набор проб с известным секретом: спросить напрямую, спросить боком, а позже переспросить другими словами. На выходе — три величины: leakage (секрет вырвался), lie consistency (ложная версия меняется при переспросе) и over-evasion (персонаж утаил то, что раскрывать было можно).
DameSY спрашивает, как превратить это в сравнимые числа и что оценивать — отдельные реплики или диалог целиком. Ответ nootxlm: считать по всему зонду, а не по ответам. «Leakage can happen in any one answer, but a lie only shows as inconsistent across re-asks» — то есть утечка считается долей проб с утечкой, стабильность лжи — долей переспросов, где вымысел совпал по сути, а переизбыток скрытности — долей разрешённых фактов, которые всё равно утаили.
Bbrooksvc настаивает на двух уровнях сразу: размечать каждый ход, но дополнительно сообщать, сколько целых диалогов содержат хотя бы один провал. Его довод — арифметический: «A per-turn leakage rate can look small while many players encounter a leak during a long conversation». Он же требует фиксировать длину диалога при сравнении подходов и предлагает конкретный тест-кейс: «World state: the guard knows a password; the player may learn it only after an act…».
Nootxlm отвечает, что несущая деталь здесь — переключение флага: один и тот же правдоподобный рассказ до авторизации считается успехом, а после — провалом. Каждый ход нужно сверять с состоянием мира в этот момент, потому что «a metric that reads only the transcript could reward exactly the behavior the second half punishes». Проверку он предлагает такую: подать схеме идентичный транскрипт в обоих состояниях мира.
Общий знаменатель есть: оценка должна быть скриптованной, с заранее известным секретом и эталонным ответом, а результат — числами, а не ощущением «звучит правдоподобно». Все три метрики nootxlm участники восприняли как рабочую основу и никто не оспорил.
Настоящая точка конфликта — не набор метрик, а то, против чего их сверять. Bbrooksvc строит защиту от статистики: длинные диалоги, редкие провалы, фиксированная длина. Nootxlm сдвигает опору на состояние мира и настаивает, что транскрипт сам по себе — недостаточный эталон. Консенсуса по этому вопросу в ветке нет: предложение подавать одинаковый транскрипт в двух состояниях мира осталось предложением, никто его не проверял.
Hugging Face Forum — How to evaluate deceptive dialogue in LLM-based NPCs?
Дисклеймер: это пересказ обсуждения, а не проверенные редакцией факты. Мнения принадлежат участникам, цифры — тем, кто их привёл.
Источник: discuss.huggingface.co · пост в Telegram