В работе над смарт-системой на базе AI нам понадобились специалисты по разметке данных — MarkUp-инженеры. Рынок труда быстро трансформируется, и новые позиции не всегда можно закрыть готовыми специалистами, поэтому мы сосредоточились на формировании навыков внутри команды. Мы поняли, что навыки QA-инженеров пересекаются с компетенциями, необходимыми для работы с данными в AI-системах, и решили организовать производственное обучение внутри команды. Рассказываем о том, кто такие разметчики, как тестировщики осваивали MarkUp, и что из этого вышло.

MarkUp и LLM

Языковые модели набирают популярность благодаря их способности автоматизировать разные задачи: генерацию текста, перевод и анализ данных. В ИТ-компаниях их применяют для автоматизации задач — это помогает разработчикам и клиентской поддержке. В маркетинге с помощью LLM создают контент. В здравоохранении языковые модели анализируют медицинские данные. А в строительстве — помогают клиентам и партнёрам находить информацию о строящихся объектах. 

В red_mad_robot есть отдельная лаборатория NDT, которая разрабатывает AI-решения. Именно на одном из проектов NDT мы столкнулись с нехваткой разметчиков.

Разметка в LLM помогает создать более точные и функционально богатые модели. Благодаря систематизированным данным, модели могут лучше обрабатывать язык и давать более качественные результаты при генерации текста или ответов на вопросы.

Да кто такой этот ваш MarkUp-инженер?

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

Для начала определимся с терминами.

Терминология

Сено — данные до обработки и разметки. Сеном могут быть документы любого формата кроме TXT: DOCX, PDF, XLSX и т. д.

Чанк — отформатированный и размеченный кусок текста, смысловой абзац размером от 1500 до 2500 символов, который сможет считать LLM.

Промпт — заданное описание того, как LLM должна отвечать на вопросы.

Парсер — код, который выполняет задачу в автоматическом режиме. Это может быть конвертация, разметка или тестирование.

Температура — числовой параметр внутри чат-бота, контролирующий степень случайности и разнообразия ответов языковой модели. Чем выше температура, тем креативнее ответы LLM.

Датасет — обработанные данные от заказчика в формате «вопрос-ответ».

Реранкер — специализированный компонент в системах извлечения информации (например, в поисковых системах), который ранжирует результаты поиска. Он оценивает каждое слово в ответе по векторному состоянию, разбивая его на цифры и соотнося их с данными из датасета. Благодаря реранкеру разметчику не нужно самостоятельно вычленять ответы, не соответствующие вопросам исходного дата-сета.

Метрика, насколько точно LLM ответила на заданный вопрос

Флоу работы разметчика

В области языковых моделей работа MarkUp-инженера может включать:

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

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

Так выглядит текст до и после разметки по смысловым абзацам

Интерпретация модели. Размеченные данные используют для оценки и улучшения интерпретации предсказаний модели. Это помогает понять, как и на каком основании модель принимает решения.

Если разложить задачи MarkUp-инженера на конкретные шаги, получится такой флоу:

  • переработка документов в формат TXT;

  • разметка;

  • создание датасета;

  • выбор промпта;

  • тестирование ответов по датасету;

  • обработка галлюцинаций.

Базовый инструментарий

  1. LLM — с помощью неё MarkUp-инженер пишет парсеры для конвертации и разметки текста, а также тестирования итоговых результатов. Это отличный инструмент, но сам по себе он не закроет все функции разметчика.

  2. Редактор кода (например, Visual Studio Code) + Python — в них происходит всё взаимодействие кода и манипуляции с документами: конвертация, запуск тестирования и т. д.

  3. Смартбаза — веб-инструмент для работы с базой данных, языковой моделью и её настройками. Нужна для загрузки данных в домены и тестирования ответов LLM на вопросы пользователя при создании чатов.

Это базово необходимые инструменты, а для комфортной работы можно привлекать и защищённую веб-интерактивную среду разработки для хранения документов под NDA (например, JupyterLab), и реранкер, который помогает избавиться от лишнего ручного труда, облегчая выбор корректных ответов по контексту загруженного датасета. Реранкер нам написали ребята из лаборатории NDT непосредственно для внутренних задач команды.

Разметчик должен быть не только технически подкованным — этому можно научиться, скорее ему нужно уметь отделять качественное от некачественного: постоянно придётся сталкиваться с проблемной рабочей документацией, кривыми промптами и ещё более кривым результатом на выходе. Это нужно спокойно принимать, исправлять и прогонять через LLM заново. Для этого нужно упорство и терпение. 

Объединив две профессии, QA и MarkUp, можно получить сильного и компетентного
T-shaped специалиста. Он и AI-проект запустить поможет, и баги поищет.

Как мы обучали тестировщиков

Мы использовали систему производственного обучения, которая включала практику на реальных проектах с поддержкой тьютора (мидл-специалиста), актуализацию скиллсетов и индивидуальные планы развития с обратной связью и оценкой прогресса. Благодаря такому подходу и грамотной организации процесса мы смогли быстро адаптироваться к изменяющимся условиям и остаться конкурентоспособными, а ещё повысили уровень своей экспертизы в сфере AI.

Ещё в начале производственного обучения стало понятно, что профессия MarkUp-инженера — это что-то неизведанное, и всей команде нужно будет первыми пройти по этой дорожке. Начинающим разметчикам — погрузиться в новую компетенцию, освоить инструменты и логику работы, а более опытному ментору — подготовить всю информацию и преподнести её доступно. 

Важно понимать, что никаких курсов по MarkUp, книжек и инструкций о том, как стать MarkUp-инженером, нет. Всё обучение создавали и проводили роботы для роботов.

Начали с базовых понятий: что это за профессия вообще, чем занимается специалист, с чем придётся работать и какой результат должен быть на выходе. А спустя месяц ребята уже были вовлечены в первый коммерческий проект в качестве разметчиков.

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

Советы начинающим MarkUp-инженерам

  1. Промпты для LLM лучше писать максимально подробно, местами даже ограничивая языковую модель и не давая ей пространства для манёвра. Это помогает избежать галлюцинаций — чем точнее промпт, тем меньше «додумает» модель.

  2. В идеале для одного формата, например PDF-файла, должно быть написано три парсера: для текстового PDF, для табличного PDF и для смешанного файла с данными обоих форматов. Но при этом необязательно писать новый парсер под каждый проект — если он хорошо показал себя на нескольких документах, значит можно использовать и в следующих проектах с файлами такого же формата.

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

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

  5. Уделяйте достаточно времени тестированию результатов полученных данных перед передачей продукта. Это поможет выявить возможные проблемы, позволит понять, насколько хорошо модель или процесс справляются, и поможет убедиться в том, что полученные данные на выходе отвечают требованиям заказчика.

Что получилось

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

  1. Сформировать «коробочное» решение для партнёров без необходимости развертывания серверов и инструментов — только с API-документацией.

  2. Добиться точности ответов на реранкере 96% — вместо обещанных партнёру 80%.

  3. После завершения первого — стабильно запускать по два проекта в месяц благодаря отработанной стратегии разработки.

  4. Гарантировать партнёрам полную безопасность хранения данных на наших серверах с выделенным местом специально под их проект. До «MarkUp-эры» было не до конца понятно, как работать с документами под NDA — их нельзя было скачивать на рабочие компьютеры, а для обработки документов из PDF в TXT требовалась конвертация без скачивания. Тогда и появилась идея использовать JupyterLab и парсеры для работы с конфиденциальными документами в безопасной среде.

«Количество проектов растёт, и мы будем продолжать обучать новых сотрудников разметке. В наших планах — интегрировать компетенцию разметки данных в программу развития QA-инженеров, предложив её как одну из веток T-shape компетенций».

Максим Осадчий, Head of QA в red_mad_robot


Над материалом работали:

текст — Паша Воронежских, Ваня Фарафонов;

редактура — Алина Ладыгина;

иллюстрации — Юля Ефимова.