TL;DR
Когда вы просите LLM поставить текстам баллы (тональность, токсичность, политический уклон), сама шкала в промпте влияет на результат. Меняете формат (дробные числа или целые), диапазон (3, 5, 11, 21 пункт) или знак (от −5 до +5 или от 0 до 10), и оценки сдвигаются. Один и тот же текст получает другой балл, а иногда и другую категорию.
В среднем смена одного элемента шкалы сдвигает оценку примерно на десятую часть шкалы. Около каждого пятого текста при этом переезжает в другую категорию: «нейтральный» становится «токсичным», «левый» становится «центристским». Сильнее всего страдает токсичность, где категорию меняют 29–40% текстов. Подробная рубрика в промпте (разбор по критериям перед итоговым баллом) не помогает: стабильность та же, что при простом запросе «оцени».
Вывод для практики: оценки с разных шкал нельзя сравнивать и склеивать. Шкалу нужно выбирать осознанно, под тип измеряемого, и один раз зафиксировать. Важные выводы стоит проверять на второй, альтернативной шкале.
Схема метода
Это не новый промпт, а правила работы со шкалой, которые авторы рекомендуют:
ШАГ 1: Определи тип признака → двусторонний (хорошо↔плохо, лево↔право)
или односторонний (есть/нет и сколько: токсичность, спам, агрессия)
ШАГ 2: Выбери ОДНУ шкалу под тип → зафиксируй формат, диапазон, знак
ШАГ 3: Прогони выборку (отдельные запросы) на второй, альтернативной шкале
ШАГ 4: Сравни: какие тексты сменили категорию → это «серая зона», проверь вручную
ШАГ 5: Сверь с человеческой разметкой на 30–50 примерах, если есть
Шаги 3–4 выполняются в отдельных запросах: не смешивай две шкалы в одном чате.
Пример применения
Задача: Вы ведёте Telegram-канал на 200 тысяч подписчиков. Под каждым постом сотни комментариев, и вы хотите автоматически помечать токсичные, чтобы модераторы смотрели их первыми. Порог: «всё выше 7 из 10 уходит на ручную проверку».
Здесь шкала решает всё: именно на токсичности её смена ломает результат сильнее всего.
Промпт (запрос А):
Ты оцениваешь токсичность комментариев под постами в Telegram-канале про бизнес.
Токсичность — это признак от «нет» до «очень сильно»: 0 означает полное отсутствие
токсичности, 10 — предельную токсичность (оскорбления, травля, угрозы).
Оцени каждый комментарий целым числом от 0 до 10.
Верни только JSON: [{"id": 1, "toxicity": N}, ...]
Комментарии:
1. «Автор, вы вообще читали, что пишете? Бред какой-то»
2. «Таких как ты надо гнать с рынка, бездарь»
3. «Не согласен с цифрами по Ozon, там маржа ниже»
4. «Ну да, конечно, ещё один гуру с курсами»
Промпт (запрос Б, в новом чате, те же комментарии):
Оцени каждый комментарий по шкале токсичности от 1 до 5, где
1 — нетоксичный, 3 — умеренно токсичный, 5 — крайне токсичный.
Верни только JSON: [{"id": 1, "toxicity": N}, ...]
Результат: Вы получите два JSON-списка. Пересчитайте оба в долю от шкалы (0–1) и сравните. Явно безобидные комментарии (№3) и явно грубые (№2) скорее всего совпадут. Пограничные (№1, №4, с сарказмом и мелкой грубостью) могут разойтись по категориям. Именно их надо отдавать модератору, а не доверять порогу «выше 7».
Почему это работает
Слабость LLM. Модель не измеряет токсичность линейкой. Она подбирает число, которое «звучит правильно» для данной шкалы. Числа не привязаны к смыслу жёстко: «3 из 5» и «6 из 11» для неё разные ответы, хотя в долях почти одно и то же. Поэтому формат, длина и знак шкалы меняют, какое число подвернётся.
Особенность односторонних признаков. Токсичность идёт от «нет» до «очень». Шкала от −5 до +5 ставит отрицательные числа на «нет токсичности», и смысл нижнего края размывается. Люди ведут себя похоже: на шкале с минусами они реже выбирают нижнюю половину. Авторы осторожны и оговаривают, что у них только одна односторонняя задача, поэтому другие причины исключить нельзя.
Почему рубрика не спасает. Рубрика уточняет, что оценивать. Но проблема в другом: как модель переводит оценку в число. Критерии здесь не помогают, потому что неоднозначность в самом числе.
Рычаги управления: - Тип шкалы под тип признака → для односторонних признаков бери шкалу без знака, от 0. - Формат → если используешь целые числа, помни: диапазон тогда влияет на результат сильнее (ординальные шкалы усиливают смену диапазона). Дробные числа сильнее реагируют на смену знака. - Длина шкалы → длиннее шкала, меньше сдвиг в числах, но доля сменивших категорию остаётся такой же. Больше пунктов не значит стабильнее. - Вторая шкала → любая независимая шкала даёт проверку на устойчивость.
Шаблон промпта
Ты оцениваешь {признак} в {тип_текстов}.
Определение: {признак} — это {односторонний: от «нет» до «очень сильно» /
двусторонний: от «{полюс_1}» до «{полюс_2}»}.
Шкала: {формат: целое число / число с десятичной долей} от {мин} до {макс}.
{мин} означает {что_значит_мин}, {макс} означает {что_значит_макс}{, середина — что_значит_середина}.
Верни только JSON: [{"id": N, "{название_поля}": число}, ...]
Тексты:
{список_текстов_с_номерами}
Что подставлять:
- {признак} — токсичность, тональность, агрессия, формальность и т. п.
- {мин}/{макс} — для одностороннего признака берите 0…10 или 1…5, без минусов.
- Для двустороннего подойдёт шкала со знаком (−2…+2) или без (1…5). Главное: одна и та же во всех прогонах.
- Во втором прогоне (для проверки) меняйте одно — формат, диапазон или знак. Остальное оставляйте.
Ограничения
⚠️ Нет эталона: статья показывает, что оценки нестабильны, но не показывает, какая шкала точнее (сверки с человеческой разметкой нет). Рекомендация «беззнаковая для токсичности» опирается на логику авторов, а не на прямое сравнение.
⚠️ Одна односторонняя задача: вывод про токсичность держится на одном признаке. Для других односторонних (спам, агрессия) вероятно похоже, но не доказано.
⚠️ Только итоговый балл и слабые режимы моделей: все модели работали на минимальном уровне рассуждений. Насколько результат изменится при «думающих» режимах, статья не говорит.
⚠️ Грубые категории: смена категории считалась по трём равным третям шкалы. Для вашего порога (например, «выше 7») цифры будут другими, но направление то же.
⚠️ Рубрика — не панацея, но и не вред: она может улучшать другие качества оценок (согласованность), здесь проверяли только устойчивость к смене шкалы.
Как исследовали
Идея простая: один и тот же текст оценивают на разных шкалах, меняя за раз только один элемент. Авторы скрестили формат (дробные и целые), диапазон (3, 5, 11, 21 пункт) и знак (с минусом и без). Получилось 16 шкал. Их проверили на трёх задачах (политический уклон, тональность отзывов, токсичность), двух стилях промпта (просто «оцени» и подробная рубрика) и пяти моделях. Тексты брали из размеченных датасетов: 1700 новостных фраз, по 5000 отзывов и комментариев.
Чтобы сравнивать числа, все баллы привели к диапазону от 0 до 1. Дальше сравнивали только «минимальные пары»: две шкалы, которые отличаются ровно одним элементом (всего 40 пар). Измеряли две вещи: насколько сдвинулся балл и сменил ли текст категорию (низкий, средний, высокий).
Результат оказался удивительно ровным. Смена формата, диапазона или знака даёт сдвиг около 0,1 и смену категории у 18–20% текстов. Самое неожиданное — рубрика не помогла: разница с простым промптом не превышала 0,007. Все пять моделей реагировали одинаково, а самое сильное влияние оказала задача: у токсичности категорию меняли 29–40% текстов, у политического уклона 13–15%, у тональности 8–10%. Есть и тонкие эффекты. Ординальные шкалы сильнее реагируют на смену диапазона (21,5% против 14,9%). Дробные сильнее реагируют на смену знака (24,4% против 16,3%). Практический вывод: шкала и задача влияют на результат вместе, и универсально безопасной шкалы нет.
Адаптации и экстраполяции
🔧 Техника: порог → «серая зона» вместо жёсткой отсечки
Вместо одного порога «выше 7 — токсично» используйте два прогона и отправляйте на ручную проверку всё, где категории разошлись:
Категория по шкале А: низкая / средняя / высокая
Категория по шкале Б: низкая / средняя / высокая
Если не совпали → «на ручную проверку»
Это моя адаптация логики авторов. Они измеряли расхождение, а не предлагали такое правило.
Экстраполяция: проверка LLM-судьи. Если вы оцениваете качество текстов или ответов агента баллом 1–10 (LLM как судья), тот же принцип применим: прогоните оценку на второй шкале (например, 1–5). Если лидер списка меняется, ваш вывод «версия А лучше версии Б» держится на шкале, а не на тексте. Это перенос принципа, в статье такой задачи нет.
Ресурсы
- Статья: Change the Number, Change the Answer: Assessing Rating Scale Sensitivity in LLM-Based Text Scoring
- Авторы: Wonjeong Jo (UC Davis), Gyuwan Kim (UC Santa Barbara), Ming Shan Hee (MBZUAI)
- Данные: MBIC (Media Bias Annotation Dataset), VADER movie reviews, Jigsaw Unintended Bias in Toxicity Classification
- Из психометрики: Schwarz et al., 1991 и Tourangeau et al., 2007 — о влиянии знака шкалы на ответы людей
