Девлог 9. День знаний, мертвый интернет и многострадальная статья
Всем привет, дорогие наши читатели. Пришла осень, а значит время поздравить всех с (уже прошедшим) Днем знаний. Студентам желаем терпения и сил в учении, преподавателям — терпения и сил со студентами.
К нашим новостям.
Про мертвый интернет и закат фриланс-разметки
Вы, может, слышали эту байку: на самом деле в Интернете людей почти нет, а всю активность генерируют боты. С бумом БЯМок эта байка трансформируется в реальность и мы убедились в этом сами. Мы готовим валидационный сет для оценки качества перевода с английского на русский. Нам понадобился третий разметчик для ситуаций, когда предыдущие два слишком сильно разошлись в оценке. Почему-то при поиске третьего разметчика на нас обрушилось вот это:

В моменте стало довольно жутко — люди заговорили одинаковыми гпт-текстами. Конечно, такие предложения сразу летели в корзину: если человек зачем-то пересылает нам AI-пережованное описание задачи, да еще и с «предложениями своей шкалы по MQM» (про MQM мы не упоминали), вместо того, чтобы задать какие-то свои вопросы или сказать, что готов выполнить, то начинаешь сомневаться, что получишь живые оценки. В какой-то момент мы плюнули и просто решили написать разметчикам, с которыми работали в прошлом году. Конечно, это не гарантия, что человек не подключит нейроночку, но знаем хотя бы, что на том конце экрана реальный человек, а не гпт-агент, да и базовое доверие есть.
Думаем, в ближайшее время это станет повсеместным. Год назад такой проблемы не было вообще, сейчас вот оно уже рядом. Как теперь быть уверенным, что ты получаешь что-то, сгенерированное человеком, нанимая исполнителя со стороны — вопрос открытый. Просить делать стримы на Твиче? Страшно представить, что будет, когда агентов научится делать каждый встречный-поперечный. В общем, держите ваших исполнителей среди контактов.
Как мы прикручивали UI к библиотеке для разметки
Вы задумывались когда-нибудь, как вам гарантировать качество размеченных данных? Если да и вы еще не знаете, как это сделать, то у нас появилось для вас решение из коробки. В двух словах, есть статья, в которой описываются разные подходы к этой задаче. Среди них есть методика Sample plan. Она появилась на заводах 80 лет назад, у которых стояла такая же задача — гарантировать, что у их партий уровень брака не выше определенного значения. Основная идея формулируется так: сколько надо проверить изделий в партии и сколько максимум бракованных деталей там может быть, чтобы гарантировать общий уровень брака не более определенного порога. Есть несколько схем:
- Single sampling — самый простой вариант, который говорит вам, сколько изделий надо проверить и сколько бракованных там может быть.
- Double sampling — усложненный вариант, при котором считаются два варианта проверки. Если партия качественная, то вы сделаете одну проверку, которая меньше, чем single plan. Если не повезет, то нужно будет сделать вторую проверку и совокупно получится больше, чем в single plan.
- Sequential Sampling — обобщение double sampling, который задаёт вам дорожку проверки: количество того, сколько вам нужно проверить прежде, чем забраковать или принять партию изменяется динамически в зависимости от найденного брака. Если партия очень хорошего/плохого качества, вы очень быстро примите/забракуете партию. Если чуть не повезло, то проверите чуть больше, но всё еще меньше, чем в double sampling. Конечно, может быть ситуация, когда вы постоянно находитесь в коридоре проверки, но практическим пределом для вас будет результат single sampling.
Для любой схемы вам нужно четыре параметра:
- alpha — вероятность забраковать хорошую партию (риск поставщика потому что в этом случае он несет издержки);
- beta — вероятность принять плохую партию (риск заказчика, по аналогии);
- $p_a$ — допустимая доля брака;
- $p_b$ — недопустимая доля брака.
Повторимся, это в двух словах. Подробности можете прочитать в статье и более сжатом варианте в README. Кроме Sampling plan есть еще вариант посчитать доверительный интервал для заданного наперед уровня качества, но его мы тут опустим.
Так а при чем тут мы? Авторы статьи, спасибо им, выложили код на Гитхаб, но он в виде библиотеки. Но вообще говоря, ей очень не хватает интерфейса. Вот его мы и сделали, точнее сделал Егор Шевченко, в двух вариантах: cli и web. Первый у вас появится сразу после установки пакета по гитхабу, а второй вы можете развернуть через докер:
docker run --rm -p 8000:8000 ghcr.io/psytechlab/ml-sampleplan:latest
Наша многострадальная статья
Есть у нас статья с долгой историей. В ней мы используем прототип теста из нейропсихологии для сравнения способностей людей и БЯМ. Сам тест проверяет способность к формированию морфологически правильного текста из отдельных лексем. Первый раз Игорь ещё задолго до Пситехлаба подал ее на AIST в 2023 году и получил реджект: согласованность не посчитана, человеческих оценок мало, куча мелких методологических проблем. Это было ожидаемо, потому что он тогда буквально спидранил эту статью. Сразу после реджекта он на Толоке собрал уже нормальное количество ответов, но с началом 2024 пришлось поставить всё на паузу. И так статья спала до 2026 года. Уже в Пситехлабе мы сделали перекрестную проверку данных с Толоки тремя лингвистами, получили нормальные цифры по Криппендорфу, проверили кучу разных моделей, которые успели появиться за это время. Подаемся на Диалог в этом году — снова реджект. В этот раз анализ результатов слабый, параметры датасета не указаны, опять какие-то ошибки, вопрос о том, почему мы не использовали RuCoLA (там действительно связанные задачи). Окей, решили, что попробуем еще раз и если не примут, то перестанем пытаться. Расширили анализ, выложили стату, проверили формулировки (нам несколько раз прилетало, что якобы мы не описали то, что на самом деле было описано), связали с RuCoLA. Ближайшей конфой снова оказался AIST, круг замкнулся спустя три года. Ииии… нас снова зареджектили. В этот раз докопались до стиля изложения, мол, не по-научному писать “Yoda-like”, имея в виду нетипичный порядок слов. Кому-то показалось ненаучным, что мы взяли прототип реального теста и сделали его на основе свой вариант, сделав все возможные дисклеймеры про отсутствие клинической значимости и общие ограничения. Кто-то подумал, что мы делаем датасет для классификации грамматически корректных предложений, а раз так, то у нас всего лишь вариант RuCoLA. Кстати, в этот раз не поняли, зачем мы вообще RuCoLA упоминаем. Неисповедимы мысли ревьюверов.
В общем, больше мы не будем пытаться сделать из этого статью, будет постом у нас постом на сайте, который можно прочитать здесь. В конце концов, изначально работа задумывалась как пример того, что вот так вот можно делать. У нас пока что нет ресурсов, чтобы привлечь соответствующих специалистов, чтобы гордо писать о валидации, поэтому действительно получается много ограничений, о которых мы честно написали. Зато идей у нас хоть отбавляй. Взять например тест на бестактность, в котором проверяется, умеет ли человек определять кринж-ситуации. Используется при психопроблемах, влияющих на социалку, типа аутизма или шизофрении. Так вот, а как будет отвечать БЯМ на этот тест? Будут ли ее ответы отличаться, если дать ей роль с психопроблемами? Если да, то насколько ее ответы будут согласованными с человеческими результатами? В отличие от теста, который использовали мы, у этого есть вариант и для детей, и для взрослых. Кстати, а что если бы мы попросили модели в нашем тесте побыть пятилетними детьми :think:? Короче, если что, наша почта psytechlab24@gmail.com.
Зато теперь почти у всей нашей команды появились аккаунты на OpenReview.net. Там такая лютая история получилась. Оказывается, нельзя просто так взять и зарегистрироваться на OpenReview. Вы там указываете свои данные и на той стороне проверяют заявки со сроками до двух недель. А еще очень желательно, чтобы вы регались с универской почты, которую знает OpenReview. Чтобы зарегаться там, как Independent Researcher, вы должны знать, что так можно сделать, введя это в определенные поля, потому что в выпадающих списках такого варианта нет. Обнаружили мы это за 2-3 дня до дедлайна. Уровень нашей тряски (и не только нашей) можете представить. Благо организаторы в чатике сказали, что заэндорсят нас, нужно было лишь надеяться, что ссылка на процедуру придет во время. Как вы поняли, все прошло удачно.
Реальный курс с нашим ботом-тренажером
Через пару недель у нашего партнера «Открытые двери» состоится первый курс, в который будет включен наш бот-тренажер. По его результатам будем решать, что будем делать с ним дальше. Точнее, мы-то знаем: расширять типы клиентов и делать континуальные сессии. Другой вопрос, получится ли у нас выстроить обучение вокруг бота. Узнаем в конце курса, когда соберем обратную связь.
В любом случае сейчас мы хотим зафиксировать результат нашей работы в статье формата short, которую мы отправили на конференцию CONVERSATIONS в Амстердаме. Но вы уже сейчас можете почитать про историю создания бота.