Как это устроено

Проверки самого ответа

Проверки, которые проходит готовый ответ перед отправкой — что ловит каждая, как часто срабатывает и почему часто срабатывающая проверка это ошибка, а не тщательность.

Поиск решает, что модели разрешено увидеть. Эта страница — о том, что происходит после того, как она что-то написала: о мгновении между последним токеном и ответом, появляющимся у кого-то на экране.

Этот этап существует из-за одного неуютного наблюдения: правило в промпте — это просьба. Можно написать «никогда не приводи цифру, которой нет в материале» в начале каждого хода, и большинство ходов это соблюдут; а те, что не соблюдут, — ровно те, которые внимательный читатель и так бы заметил. Поэтому правила, которые действительно работают, пишутся не как просьбы, а как проверки готового текста, в коде, где фраза либо есть в материале, либо её там нет.

Форма проверки

Каждая проверка здесь состоит из одних и тех же трёх частей, и порядок фиксирован — именно порядок делает её посильной:

  1. Детерминированная предпроверка. Работа со строками и шаблонами по только что написанному ответу — без вызова модели, без сетевого обращения. Почти всегда она говорит «такой формы нет», и на этом всё заканчивается.
  2. Один извлекающий вызов, только если предпроверка сработала. Модель просят дословно выписать предложения из материала — не судить и не делать выводов. «Выпиши все предложения, где сказано, разрешено ли это» — вопрос с проверяемым ответом; «верен ли этот ответ» — нет.
  3. Решение возвращается в код. Выписанное предложение засчитывается, только если оно встречается в материале символ в символ. Без этого сравнения судья может выдумать фразу и опровергнуть ею верный ответ — это не гипотеза, а именно та причина, по которой сравнение существует.

Часто срабатывающая проверка — это ошибка. Одна из здешних когда-то определяла, что ответ «упомянул классификацию», по слову с заглавной буквы, за которым следует код. В регуляторной прозе такая форма совпадает со ссылками на статьи, кодами валют, регистрационными номерами химикатов, названиями месяцев — и со словом within, как в «должно быть подано в течение 30 рабочих дней». Она срабатывала на 57 ответах из 100, и каждое срабатывание стоило извлекающего вызова и полного переписывания — на ответах, которые и так были верны. Привязанная к настоящим словам классификации, она срабатывает на 4. Проверка с высокой частотой попаданий не тщательна: она измеряет не тот объект, и платит за это вашим временем отклика.

Что ловит каждая

Каждая существует потому, что однажды вышел ответ, который выходить не должен был. Частоты измерены на сохранённых реальных ответах и намеренно низки.

Что делает ответПочему это важноСрабатывает
Утверждает, что материал явно разрешает или запрещает нечто, а такой фразы в материале нет«В материале написано X» — утверждение о тексте, и его можно сверить дословно2 из 279
Отвечает «да, принимается», тогда как материал прямо говорит, что принято не будетХудший отказ, на который способен этот продукт: по нему готовят подачу и получают отказ1 из 300
Приводит цифру, которой нет ни в одном найденном фрагментеЧисло со ссылкой рядом — самое убедительное из того, в чём агент может ошибиться
Даёт цифру, не называя юрисдикцию, когда все фрагменты пришли из однойПошлины и сроки различаются по рынкам; число без привязки применят не там
Ссылается на единственный фрагмент из другого документа, а не из названного в вопросеДва акта часто описывают почти одно и то же, и лучше совпадает по формулировке обычно неверный2 из 399
Цитирует исключение из материала и затем отменяет его общей практикойМатериал был прочитан верно, а потом отговорён1 из 109
Целиком является вызовом инструмента, а не ответомСырой синтаксис вызова не должен доходить до читателя — см. Работа на открытых моделях

Прочерки — не пропуски. Те проверки старше описанной здесь дисциплины измерений, и их частоты не считались тем же способом; они перечислены потому, что работают, а не потому, что можно привести число.

Что происходит при срабатывании

Ответ пишется заново, с тем же материалом перед моделью, плюс одна фраза о том, что было не так с первой попыткой. Не удаление и не замена извинением.

Это осознанный выбор. Материал, отвечающий на вопрос, обычно всё ещё там — первая попытка прошла мимо него, прочитала соседнюю строку или ушла в обтекаемость. Переписывание с теми же фрагментами его возвращает. Отказ — нет.

У корректирующей фразы есть правило, за которое заплачено: она говорит, что произвести, и никогда — чего избегать. Ранняя версия одной из них показывала неверный формат тремя примерами и затем просила модель его не производить. Модель произвела его снова, и читатель получил извинение вместо ответа — который лежал в найденном материале слово в слово.

Коррекция, которая говорит лишь «ты ошибся», часто ничего не меняет. Одна проверка ловит ответ, сославшийся на фрагмент из чужого документа. Услышав только это, модель трижды из трёх ответила так же — она считала, что использует нужный документ. Результат изменило другое: ей дали соответствие, которое она не могла вывести сама: вот эти номера фрагментов — из документа, о котором вас спросили; тот, на который вы сослались, — нет. Даже тогда она исправляется примерно в одном случае из трёх. Проверка честно называет себя улучшением, а не решением.

Чего этот этап не делает

  • Он не проверяет, истинен ли ответ. Он проверяет, истинны ли утверждения ответа о материале. Это разные вещи, и здесь разрешима только вторая.
  • Он не срабатывает на большинстве ходов. Так задумано. Низкие частоты выше — смысл конструкции, а не её ограничение.
  • Он не заменяет того, чтобы материал был верным. Если фрагмент, решающий вопрос, вообще не был найден, никакая проверка вывода его не выдумает. Это задача поиска, и она решается там или не решается вовсе.
  • Каждая проверка при сомнении пропускает. Если извлекающий вызов упал или вернул нечитаемое, ответ уходит как есть. Слой верификации, способный блокировать ответы, когда бэкенд тормозит, — отказ худший, чем тот, от которого он защищал.

Смежное