Накликали беду: как правильно применять AI в работе с небольшим количеством данных

05.05.2022, 10:18
Когда люди слышат словосочетание «искусственный интеллект», многие представляют большие массивы данных. В этом есть смысл — самые известные AI-модели, такие как GPT-3, обучены на гигантских датасетах. Тем не менее, большинство методов обучения моделей страдают от так называемого «data hunger», когда модели требуются десятки и сотни тысяч примеров для обучения, а также от чрезмерно высоких ресурсных затрат. Тем не менее, чаще всего данных в наличии у компаний сравнительно мало. Это может быть связано с политикой сбора данных, отсутствием единых правил хранения. А еще стоимостью разметки, так как для подготовки использования данных в AI-системе часто необходимо привлекать квалифицированных специалистов.
Компания Voximplant
Накликали беду: как правильно применять AI в работе с небольшим количеством данных

Рассмотрим один из популярных на сегодняшний день кейсов — основанную на AI проверку договоров (Kira Systems,  Embedica). Предположим, что вы решили сделать аналогичную систему внутри компании, для этого вам потребуется множество договоров с правками юристов, чтобы обучить модель. Если с самими текстами проблем не будет, то получить размеченные данные окажется довольно сложно — к процессу нужно будет подключить целый штат специалистов. И даже спустя несколько месяцев дорогостоящей работы у вас будет всего несколько тысяч размеченных документов. А это никак нельзя назвать большими данными.

Чтобы подобные системы работали, компаниям нужно научиться строить AI-решения с данными из «наличия». 

Проблема малых данных в AI

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

Чтобы не потеряться и всегда быть на связи, читайте нас в Яндекс.Дзене и не забывайте подписаться на нас в Telegram, ВКонтакте и Одноклассниках!

В действительности человеческий мозг не обучается на маленьком объеме данных. Подумайте, ведь мы с рождения потребляем непрерывный поток информации через все органы чувств и только спустя несколько месяцев такого обучения начинаем говорить, различать объекты и людей, и то не всегда правильно. К моменту взросления нам уже не требуется много данных, чтобы решать простейшие задачи по распознаванию лиц друзей или чтению нового материала. Что касается юристов, с которых мы начинали,  то даже профессионал своего дела за многолетнюю практику исследует тысячи, а не сотни тысяч договоров. Но ему это и не нужно, ведь он знает главное — язык. Так можно ли строить ИИ-системы, основываясь на том же принципе?  

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

Перенос обучения или трансферное обучение

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

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

Однако, в действительности это не проблема. Такие «предобученные» на больших данных модели уже существуют. Например, для детекции объектов на изображении используют YOLO, для классификации изображения — ViT, а для разнообразной работы с текстами — семейство языковых моделей BERT и GPT. Обучались эти модели на достаточно общих задачах и разнообразных данных, поэтому обладают относительно универсальными знаниями. Более того, их можно успешно дообучить практически в любой задаче, связанной с компьютерным зрением или обработкой речи.

С подобным способом обучения модели связано большое количество успешных кейсов. Например, исследователи научились детектировать COVID-19 на рентгеновских снимках, используя всего 100 размеченных изображений и предобученную сеть. Множество компаний, которые разрабатывают диалоговые системы, основанные на AI, используют предобученные языковые модели.  

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

Fake It Till You Make It

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

Особенно остро вопрос использования генерации стоит при построении решений, касающихся приватности человеческих лиц. На фейковых данных с лицами людей обучают свои модели небольшие компании, занимающиеся видеонаблюдением.  Также генерация синтетических данных помогает определить мошеннические транзакции. 

Синтетические данные можно генерировать самостоятельно (например, таблицы с данными о финансовых транзакциях), использовать готовые генеративные сети (семейство GPT для текста или DALL-E для изображений) или обратиться к специализированным компаниям,  вроде Datagen. И это прибыльный бизнес — согласно отчёту Cognilytica, рынок синтетических данных вырастет до $1,15 млрд к 2027 году. 

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

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

Например, при необходимости классифицировать обращения к чат-боту можно перефразировать одни и те же пользовательские сообщения, сохраняя их смысл. Для детектирования объектов — видоизменять само изображение: менять яркость, переворачивать, вырезать части. Более того, это даст дополнительное преимущество вашей модели благодаря повышенной устойчивости к различным условиям. Например,  она будет лучше работать в темноте. Также можно использовать уже упомянутое трансферное обучение, обучаясь на синтетических и дообучаясь на реальных данных.

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

Материал подготовлен компанией Voximplant

©  Популярная Механика