Привет! Использование ИИ в разметке данных для него же — уже скорее необходимая потребность, нежели что-то удивительно новое. Разного рода экспериментами с авторазметкой данных нейронками мы занимаемся последние полгода и результаты — нравятся.
В данной статье я детально расскажу о нашем самом первом эксперименте с LLM в разметке данных для ИИ и proof-of-concept их годноты использования в реальных задачах, а в процессе попробую ответить на большой вопрос — так заменят ли LLM людей в разметке данных?
Давайте вооружимся GigaChat, chatGPT, Gemini и начнем!
Как возникла идея попробовать LLM в разметке
Большие языковые модели (LLM) — очень мощные штуки, которые позволяют решать огромное количество задач, и нашей идеей было проверить, насколько они готовы справляться с разного рода задачами именно по разметке данных.
Почему вообще возник такой интерес — в разметке часто бывают не очень большие (или просто несложные) задания, под которые уже вроде бы есть какая-то готовая библиотека, но полноценно полагаться на нее не хочется, так как либо в задании есть особенные нюансы, требующие подпилки напильничком, либо нам нужна абсолютная уверенность в точности результата. Цеплять одну либу для прогона, вторую для кросс-валидации часто бывает бессмысленно в силу объемов и нецелесообразности трудозатрат.
И именно здесь суперсила LLM раскрывается во всю: нам не нужно искать сторонние решения и встраивать их, у нас уже есть интерфейс единого окна, к которому нужно правильно обратиться со своей задачей, а он у себя под капотом проделает всю черную магию.
А что по галлюцинациям?
Про LLM любят говорить, что они часто галлюционируют и потому целиком полагаться на их ответ нельзя. В целом, это правда, но если копнуть глубже, то у кого они этого понахватались? Они научились этому у людей, чьи ответы на что-либо зачастую тоже нельзя считать идеальными, ибо люди находятся в разных состояниях, когда делают работу (особенно такую монотонную, как разметка): устают, просто не вовлечены, находятся под давлением/стрессом, и так далее.
Поэтому идеальная разметка данных делается [в среднем] двумя путями (или их комбинациями): мы либо делаем несколько этапов перепроверки друг за другом, либо даем одно и то же нескольким людям и усредняем их ответ. Поэтому «галлюцинации» в широком смысле слова — это то, с чем мы работаем каждый день, а уж галлюцинация это человека или LLM — без разницы.
Берем датасет, но убираем людей
Идея заключалась в том, чтобы попытаться решить реальную задачу с текстом без участия людей.
Покопавшись в архивах нашей платформы, мы нашли похожее задание — определение фамилии в строке с потенциальной ошибкой в написании.
Датасет состоял из строк (иногда целиком из полного ФИО, иногда из имени с фамилией) с потенциальными опечатками, а так же двумя предсказанными вариантами. Природа ошибок датасета могла быть разная — это могла быть именно опечатка в исходном документе, а могла быть проблема его распознавания (OCR из скана или автоматической транскрибацией из аудио) или что-то совершенно иное.
В данном случае мы не углубляемся в то, какую задачу и каким способом решали коллеги, нам важно, что это была живая потребность и заказчик пожелал прогнать ее через людей-валидаторов.
Итак, у нас уже был датасет и эталонная разметка к нему. Разметка шла с перекрытием 3 (то есть, мы давали одну и ту же запись трем разным людям), после чего при 100% совпадающем ответе мы принимали его как правильный.
Поэтому мы решили взять из датасета 10 тысяч записей (в исходном было 250 тыс.), прогнать их через LLMки с таким же перекрытием (то есть, как с людьми, но с LLM, ну), так же усреднить результаты и сравнить их с результатами людей.
Выбор пал на GigaChat Pro (потому что он нам родной), chatGPT 4 и Gemini Pro первого издания. Предвещая вопросы об именно таком наборе — это просто было то, что нам на тот момент было проще подключить, для проверки эксперимента и гипотезы — этого хватало. В конце я еще косвенно вернусь к этому списку.
Подготовка промптов
Первым делом нужно было «прицелиться» с правильным промптом, то есть обозначить что именно мы передаем и что хотим получить в ответ. Нам предстоит автоматически сравнивать ответы LLMок между собой, поэтому чем точнее и «чище» будет ответ, тем лучше. LLM любят добавлять всякое к ответу («вот ваш ответ», «конечно» и прочее словоблудие, мешающее нашей задаче), поэтому это надо было выжигать каленым промптом.
Правильно подготовленный промпт под правильно декомпозированную и проанализированную задачу — это прям серьезная заявка на успех.
Прежде чем пускаться во все тяжкие со всем датасетом (побитом на некие батчи для паралеллизации и укладывания в контекст любой модели), лучше полностью отработать всю механику, в том числе с оценкой визуального результата. То есть, взять небольшой визуальный кусочек данных, отправить его в LLM (мы тестировались на гигачате) и глазами посмотреть на результат. Если есть очевидные детские ошибки, то попробовать доуточнить промпт, провести такую итерацию пару раз, если потребуется.
Полученный промпт: [фамилию оставляю, так как это и есть задание, а имя с отчеством поменял на везде статическое, на результат не влияет]
Я передаю тебе csv-файл (разделитель tab) со следующими полями:
input_string (строка, внутри которой содержится фио человека на русском языке),
gender (мужчина - m и женщина - f). Ты должен на основе поля gender посмотреть
строку input_string, посмотреть предлагаемые варианты (variant_1 или variant_2;
одного из них может не быть) и указать правильный ответ (можешь предложить свой)
в поле result. Строка с фио может содержать опечатки.
Не добавляй никаких слов к ответу, верни просто csv файл с перечислением.
id input_string gender variant_1 variant_2
1 Дмтриева Василиса Васильевна f Дмитриева Дитриева
2 Киседлев Василий Васильевич m Киседлев Киселев
3 Леоньтев Василий m Леонтьев
4 Диктерв Василий Васильевич m Диктерев Диктеов
5 Зимлина Василиса Васильевна f Землина Зимина
6 Покровски Василий Васильевич m Покровский
7 Разумува Василиса Васильевна f Разумова Разомова
8 Голгова Василиса Васильевна f Долгова Голгова
9 Белолипце Василий Васильевич m Белолипцев Белолипец
10 Гуржеи Василиса Васильевна f Гуржева Гуржей
Верни файл из полей id result
После чего нужно с нашим промптом последовательно опросить всех LLM-разметчиков, соединить результаты и оценить их. То есть все точно так же, как с людьми.
У нас на платформе единое окно с общим интерфейсом с подключенными моделями, поэтому можно показать на визуальном примере:
Автоматизация такого действия на питоне или любом языке пишется не очень сложно, у нас на проекте ее можно собрать просто в вебе, после чего дождаться уведомления об окончании процесса и скачать результаты.
Анализ результатов и важность их отсмотра
Анализ результатов нас интересует вот в каких разрезах:
Насколько LLM в принципе одинаково выполнили работу (в разметке это называется «уверенность в ответе»)
Насколько агрегированный результат от LLM совпадает с результатом людей
И обязательный отсмотр части совпавших ответов и части несовпавших.
Визуальная картиночка вместо тысячи слов:
В целом, отличный результат. На этой визуальной выборке результат равен, на разной большой дистанции он либо равен, либо с очень небольшим отрывом уходит людям.
Прокомментирую скриншот: кибер-спортсмены договорились между собой в 8 случаях из 10, так же как и люди. Здесь забавно то, что есть строки, в которых LLM или люди договорились между собой единогласно, но не попали в единогласный ответ другой стороны.
Поэтому обязательный отсмотр части результатов постфактум очень важен. У людей бывает так, что все отвечающие одновременно могут ошибиться, и это не то чтобы совсем редкий черный лебедь: задачи в разметке ставятся далеко не всегда идеально и однозначно, а количество «пограничных» ситуаций — огромно, и почти никогда не налажена хорошая и быстрая связь между заказчиком и исполнителями.
Если так умеют ошибаться люди, то точно так же будут ошибаться LLM-ассесоры, поэтому даже если мы набрали высокую общую уверенность в ответах, без частичного отсмотра и валидаций — это пока просто цифры.
Выводы о применение LLM в разметке
Наша задача изначально была проверить гипотезу — и вот она проверена. Тут можно сказать, что задачка не та, результат не тот, LLM не все умеют — да, можно. Но после этого эксперимента мы продолжили их делать и набирать экспертизу в LLM-разметке и искренне считаем, что LLM-разметчикам суждено соревноваться с биологическими.
Потому что у подобной «модельки LLM-разметки» огромный простор для файнтюнинга — например, хотя бы в том, чтобы проделав первичный ресерч о том, какой LLM-ассесор с какой задачей лучше справляется, мы можем присваивать им веса и делать агрегацию умнее, или изначально сразу выбирать более заточенные под нашу задачу модели. Мы можем перебирать промпты до упора и добиваться результатов лучше.
Человеческую же разметку нельзя «подтюнить» дешево. Не говоря уже о тех ситуациях, когда задача экспериментальная, условия не до конца понятные, сроки сжатые и от того что-то пошло не так.
LLM-разметка сильно быстрее масштабируется (как для ускорения процесса, так и для повышения уверенности ответа), не требует постоянной штатки, и количество решаемых моделями задач — растет с каждым днем. Вот с задачей простановки ударений, например, пока полный фейл, на сложных фамилиях плывут все LLM-ассесоры, но у них все впереди и большое будущее.
LLM сегодня — это не LLM завтра, их нельзя отфиксировать в применении, потому что они развиваются бешеными темпами.
Ну и, конечно, далеко не все данные и не все задачи можно вывалить в чужие LLM, но я сознательно это не рассматриваю в данной статье, здесь — про концепт, конкретика решается уже на местах. Как и сам факт того, в какой именно момент мы можем переключиться в задании на LLMки вместо людей, все это сложно сказать без хрустального шара.
Взгляд на будущее авторазметки
Мы полноценно экспериментируем не только с авторазметкой текста, но и авторазметкой картинок, аудио и видео. Например, если кто-то до сих пор хорошо различимые объекты выделяет на фото вручную, то это просто трата дорогих человеческих ресурсов. А так как LLM стремятся в мультимодальность, то и такие медиа-задачи будут тоже сразу в LLM.
А уж какой простор для создания синтетики данных и полностью искусственных датасетов — ух.
LLM обязательно заменят людей в разметке, но это — игра слов.
Людей из процесса не убрать никак (особенно, если вы делаете те самые фундаментальные модели), но LLM видоизменяют большую часть разметки саму по себе. Они заменят не собой людей, а заменят одних людей на других — разметчик больше не будет заниматься совсем черновыми вещами, они станут либо погруженными AI-тренерами, либо станут операторами разметки, то есть — принимающими решение в управлении сложной технологической машиной.
Желаю всем быть причастными к созданию крутых технологий и вот таких сложных технологических машин.
Спасибо!
P.S.: Если вам понравилась статья, то приглашаю прочитать еще одну смежную — про модель, которая произвела фурор в разметке изображений (а с момента той статьи мы нацепили ее и на видео): Приключение SAM в Японии или как компьютерное зрение видит гейшу
Комментарии (4)
phenik
12.04.2024 15:21Про LLM любят говорить, что они часто галлюционируют и потому целиком полагаться на их ответ нельзя. В целом, это правда, но если копнуть глубже, то у кого они этого понахватались? Они научились этому у людей, чьи ответы на что-либо зачастую тоже нельзя считать идеальными, ибо люди находятся в разных состояниях, когда делают работу (особенно такую монотонную, как разметка): устают, просто не вовлечены, находятся под давлением/стрессом, и так далее.
При чем здесь идеальность ответов и состояние на работе? Ошибки это частности. ЯМ так же как и люди фантазируют на заданные темы. Это неотъемлемая часть ассоциативного мышления, которое худо-бедно моделируется в ЯМ, а оно только одно из списка типов мышления, которые имеются у человека (здесь полнее классифицировано). Фантазирование (связанное с ассоциативностью) отвечает за часть творческих способностей человека, уравновешиваясь другими приемами мышления - логикой, критикой, моделированием на образном уровне, и тд. Одним манипулированием промптингом ЯМ, в том виде, как они есть сейчас, можно улучшить ситуацию, но не устранить ее полностью. Хотя выводы в конце статьи по разметке, по результатам тестирования, видятся достаточно адекватными.
theurus
Вот кстати да, есть задачи с которыми у чатгпт и ко большие проблемы, расставить ударения или восстановить букву ё в тексте они похоже не могут. Считать не умеют.
N3VERZzz
А русские модели умеют считать?
theurus
Они могут пытаться обнаружить в запросе то что можно передать в калькулятор и так посчитать. Получается не всегда.