Как обучать модели, если данных малоГлубокое обучение показало SOTA-результаты во многих задачах, но есть нюанс: современные нейросети требуют огромного количества размеченных данных.Разметка — это дорого, долго и нередко требует привлечения экспертов с доменными знаниями, что ещё больше усложняет процесс. Эта проблема возродила интерес к методам, которые позволяют работать с частично размеченными или даже неразмеченными данными.Как обучать модели с минимумом разметки:📌 Active Learning — модель сама выбирает примеры для разметки, которые дадут наибольший прирост качества.📌 Semi-Supervised Learning — используем небольшое число размеченных данных вместе с неразмеченными, например, через псевдоразметку.📌 Transfer Learning — переносим знания с одной задачи на другую, что помогает значительно сократить потребность в разметке.Обучать модели без ручной разметки позволяет Weak supervision. Она использует слабые источники меток, например:📝 Distant Supervision — автоматическая разметка данных с использованием внешних баз знаний.📝 Эвристики и правила — разметка с помощью регулярных выражений, ключевых слов и логических правил.📝 Краудсорсинг — использование данных, размеченных пользователями, даже если разметка содержит шум.Важно понимать, что слабые метки не обладают высокой точностью (иногда даже 60% достаточно!), но их массовое использование в правильной комбинации даёт отличные результаты.Programmatic Weak Supervision (PWS): объединяем слабые источникиPWS — это метод, который умно комбинирует разные источники слабых меток. Он агрегирует их, учитывает корреляции и противоречия между источниками, что минимизирует шум.Как это работает?Допустим, мы решаем задачу классификации текстов. Для этого мы:📌 Читаем тексты и привлекаем экспертов, чтобы сформулировать эвристики и регулярные выражения.📌 Оформляем их в виде разметочных функций, которые автоматически назначают метки.📌 Тестируем и дорабатываем разметочные функции на небольшой dev-выборке.📌 Применяем их к большому объёму данных. Асимптотически, наш лосс уменьшается с той же скоростью, что и при разметке вручную.📌 Используем генеративную модель, чтобы оценить вероятность принадлежности к классу.📌 Обучаем поверх этой разметки классическую дискриминативную модель, которая теперь улавливает более общие закономерности, чем исходные разметочные функции.Такой подход позволяет получать качество, сопоставимое с ручной разметкой, но при этом автоматизирует процесс.Среди популярных библиотек для weak supervision — Snorkel, которая реализует PWS и гибко комбинирует слабые источники разметки.LLM можно использовать как дополнительный источник слабых меток. Например:📝 Заменять ключевые слова и эвристики вопросами к тексту на естественном языке.📝 Генерировать эвристики для автоматической разметки.📝 Комбинировать LLM с традиционными методами weak supervision, чтобы улучшать итоговое качество разметки.Исследования показывают, что PWS + LLM уже опережает few-shot и zero-shot подходы по качеству!📢 Подробнее о weak supervision и о том, как мы применяем его в Точке — в следующих постах. А пока можете почитать хороший обзор на тему обучения со слабым контролем.💜 Этот пост написал Артур Сосновиков, тимлид нескольких ML-команд в Точке.
Оставить комментарий/отзыв