~ / посты / remembering-the-collectors-verdicts-and-tuning-the-selection-threshold

Память вердиктов сборщика и адаптация порога отбора_

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

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

Рядом вскрылось хуже. Из 163 коммитов одного репозитория модель отобрала 99 — это 61 %, из 228 другого — 145. Когда я строил очередь из 355 автоматических кандидатов, руками взял 53. Пятнадцать процентов. Остальное — плановая реализация, записи прогонов приёмки, отметки в карте этапов: ровно то, что промпт называет «не интересно» и что модель всё равно пропускает. На булев вопрос «интересно?» она отвечает «да» почти всему: причину в заголовке коммита она находит всегда.

Решил так:

  • вердикты легли в хранилище по паре «репозиторий, SHA»: разобранный берётся оттуда без запроса к модели, неразобранный спрашивается не больше трёх раз;
  • булев ответ сменился оценкой от 1 до 5 со шкалой прямо в промпте — 5 у измеренного числа или прямо названного «ожидали одного, вышло другое», 1 у механической правки, — и списком того, что человек отбрасывает;
  • порог применяется при создании кандидата, а не при записи вердикта, и стоит на 4: 61 % против 15 % говорят, что человеческая доля ближе всего к оценкам 4–5.

Заодно перестал врать счётчик вердиктов: он считал попытки и при лежащей платформе показывал вердикт, которого не было. Теперь он считает разобранные ответы, а рядом идут взятые из базы, спрошенные заново и отсеянные порогом.

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

$ echo "читать серию"

← Все посты