Накликали беду: как правильно применять AI в работе с небольшим количеством данных
Рассмотрим один из популярных на сегодняшний день кейсов – основанную на AI проверку договоров (Kira Systems, Embedica). Предположим, что вы решили сделать аналогичную систему внутри компании, для этого вам потребуется множество договоров с правками юристов, чтобы обучить модель. Если с самими текстами проблем не будет, то получить размеченные данные окажется довольно сложно – к процессу нужно будет подключить целый штат специалистов. И даже спустя несколько месяцев дорогостоящей работы у вас будет всего несколько тысяч размеченных документов. А это никак нельзя назвать большими данными.
Проблема малых данных в AI
Чтобы изучить новый материал, человеку не нужны сотни тысяч примеров, достаточно прочитать пару статей. Почему же ИИ так не может?
В действительности человеческий мозг не обучается на маленьком объеме данных. Подумайте, ведь мы с рождения потребляем непрерывный поток информации через все органы чувств и только спустя несколько месяцев такого обучения начинаем говорить, различать объекты и людей, и то не всегда правильно. К моменту взросления нам уже не требуется много данных, чтобы решать простейшие задачи по распознаванию лиц друзей или чтению нового материала. Что касается юристов, с которых мы начинали, то даже профессионал своего дела за многолетнюю практику исследует тысячи, а не сотни тысяч договоров. Но ему это и не нужно, ведь он знает главное – язык. Так можно ли строить ИИ-системы, основываясь на том же принципе?
К счастью, исследования в этом направлении уже утвердительно отвечают на данный вопрос. Уже сейчас можно строить высококачественные решения, работая с небольшим количеством данных.
Перенос обучения или трансферное обучение
Концепция трансферного обучения в AI довольна проста. Сначала необходимо обучить большую модель на обширном датасете, чтобы у модели появилось некоторое «общее» знание. Второй шаг – дообучить модель на датасете, подходящем к задаче.
Датасет, и, соответственно, задача в первом шаге могут быть достаточно общими. На втором шаге модель, получившая некоторое знание о мире, адаптирует его для решения конкретного кейса. Например, если задача модели – определить царапины на экране мобильных телефонов, то нет потребности иметь миллионы идентичных изображений. Достаточно обучить модель на большом количестве изображений с царапинами на чём угодно – стёклах, посуде, дереве, а затем на небольшом количестве примеров с царапинами на смартфонах. Тем не менее, здесь возникает две нюанса. Во-первых, потребность обучать модель на большом количестве данных никуда не делась. Во-вторых, задача может быть настолько специфической, что более «общего» кейса может не существовать.
Однако, в действительности это не проблема. Такие «предобученные» на больших данных модели уже существуют. Например, для детекции объектов на изображении используют YOLO, для классификации изображения – ViT, а для разнообразной работы с текстами – семейство языковых моделей BERT и GPT. Обучались эти модели на достаточно общих задачах и разнообразных данных, поэтому обладают относительно универсальными знаниями. Более того, их можно успешно дообучить практически в любой задаче, связанной с компьютерным зрением или обработкой речи.
Трансферное обучение буквально стало серебряной пулей для тех компаний, в распоряжении которых имеется ограниченное количество обучающих данных. Благодаря этой модели искусственный интеллект становится доступнее для малого и среднего бизнеса.
Fake It Till You Make It
Генерация синтетических данных – другой путь борьбы с проблемой их отсутствия. В некоторых случаях данные действительно практически неоткуда достать из-за небезопасности процесса их сбора или потому что в реальном мире таких ситуаций ещё не было зафиксировано. Например, при построении беспилотных автомобилей используются синтетические данные для определения ситуации, когда водитель засыпает или отвлекается.
Особенно остро вопрос использования генерации стоит при построении решений, касающихся приватности человеческих лиц. На фейковых данных с лицами людей обучают свои модели небольшие компании, занимающиеся видеонаблюдением. Также генерация синтетических данных помогает определить мошеннические транзакции.
Синтетические данные можно генерировать самостоятельно (например, таблицы с данными о финансовых транзакциях), использовать готовые генеративные сети (семейство GPT для текста или DALL-E для изображений) или обратиться к специализированным компаниям, вроде Datagen. И это прибыльный бизнес – согласно отчёту Cognilytica, рынок синтетических данных вырастет до $1,15 млрд к 2027 году.
Синтетические данные не всегда могут полноценно заменить реальные. Обученная на фейках модель может показывать плохие результаты в работе, особенно если генеративный алгоритм выдаёт однообразные или идеализированные данные.
Но и это решаемо – если использовать синтетику только на определенных шагах построения модели, то можно получить существенный прирост качества модели. Если у вас в наличии всего несколько примеров, их можно по-разному видоизменить, тем самым кратно увеличив их количество. Такой процесс называется аугментацией.
Например, при необходимости классифицировать обращения к чат-боту можно перефразировать одни и те же пользовательские сообщения, сохраняя их смысл. Для детектирования объектов – видоизменять само изображение: менять яркость, переворачивать, вырезать части. Более того, это даст дополнительное преимущество вашей модели благодаря повышенной устойчивости к различным условиям. Например, она будет лучше работать в темноте. Также можно использовать уже упомянутое трансферное обучение, обучаясь на синтетических и дообучаясь на реальных данных.
Есть области, в которых синтетические данные лучше вообще не использовать. Слишком простые задачи не требуют синтетики, а для сложных практически невозможно обеспечить детальную генерацию. Пример такой области -медицина, где для генерации необходимо привлекать экспертов для проверки качества, чтобы однажды система не предложила пользователю убить себя.
Материал подготовлен компанией Voximplant
Чтобы подобные системы работали, компаниям нужно научиться строить AI-решения с данными из «наличия».