Зачем искусственному интеллекту миллионы синтетических камней и при чём здесь «метод Монте-Карло»

11 сентября 2024
Зачем искусственному интеллекту миллионы синтетических камней и при чём здесь «метод Монте-Карло»

Пользуясь плодами работы искусственного интеллекта, мы мало задумываемся над тем, каким образом бездушная машина учится «думать». А между тем, процесс её обучения мало чем отличается от нашего. Нейронные сети, чтобы научиться предсказывать события, распознавать объекты или имитировать человеческое поведение, должны методом проб и ошибок изучить сотни тысяч, миллионы и даже триллионы случаев. Перед разработчиком неизбежно встаёт вопрос: где получить такое количество примеров. И здесь на помощь приходят искусственно сгенерированные, синтетические данные. О том, что это такое, рассказывает научный сотрудник института № 8 «Компьютерные науки и прикладная математика» МАИ, директор департамента цифровой трансформации в компании BetBoom Юрий Чайников.

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

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

— Конечно, можно. Ведь «камень» состоит из разных граней слома. В специальной программе по 3D-моделированию я могу указать, что он у меня будет размером от 10 см до 1 м, насечён разными плоскостями, под разными углами, их сочетание будет огромной вариативности, я могу их разложить разными текстурами, и в результате могу сделать не то что сотни тысяч или миллион — триллион вариантов. Таким образом мы с коллегами сделали достаточно много экземпляров «камней», чтобы этого хватило для тюнинга нейросети, которая анализировала руду. Генерация одной сцены на обычном компьютере с не самой топовой видеокартой занимала одну секунду. Несколько дней непрерывных вычислений, и нужного размер датасет готов. Можно сделать и быстрее, если распараллелить вычисления, — объясняет Юрий Чайников.

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

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

Практически не отличаясь от реальных, синтетические данные всё же уступают им в многообразии. Однако именно синтетические данные позволяют создать очень много вариаций для тех самых редких случаев, на которые и надо «натаскать» нейросеть. Именно это и позволяет ей более детально изучить кейс и выработать обобщающие внутренние признаки. Этой цели разработчикам помогает достичь «метод Монте-Карло».

— «Метод Монте-Карло» — это очень наукообразное выражение для обозначения генератора случайных чисел, — говорит эксперт. — За исключением каких-то совершенно уникальных случаев, этот метод всегда используется для генерации синтетических данных. Ведь смысл синтетических данных, чтобы они варьировались в качестве результата генерации в неких обозначенных экспериментатором пределах. Чтобы понять, насколько важен фактор случайности, приведу такой пример. Человеку довольно тяжело исполнить приказ: «Напиши 10 разных вариантов заметки, от самого сухого до совершенно разнузданного». Это очень трудная для человеческой психики задача: у каждого журналиста есть свой стиль, который довольно тяжело модифицировать, в конце концов он может не знать, например, стилистики дворового жаргона. А если мы, например, обучаем виртуального доктора, чтобы он был способен разговаривать с малообразованным человеком, то в синтетических диалогах нужно часть данных сгенерировать таким образом, чтобы собеседник отыгрывал роль человека, который владеет плохим словарным запасом и не может обсуждать свои симптомы в строгих медицинских терминах. И это тот самый «метод Монте-Карло». Я могу сказать нейросети: «Вот тебе 20 вариантов описания того, какой типаж ты отыгрываешь, на каждый из них сделай 10 вариантов поведения: по полу, возрасту, уровню образования». И генеративная нейросеть варьирует токены, которые в нашей психике складываются в понятие стилистики диалога, что в результате тренировки на этих данных безусловно увеличивает конечную точность натренированной на этих данных модели виртуального доктора.

Для лидеров индустрии, таких как OpenAI, работу по созданию синтетических данных проделывают компании. Так, по экспертным оценкам, компания Scal AI за 2023 год удвоила выручку от своей деятельности, а в 2024 году планирует выйти в «миллиардеры». Однако это скорее исключение, чем правило.

— Как правило, эта задача неотделима от задачи натренировать нейросеть. Нет никаких сомнений, что и «Яндекс», и «Сбер» как ведущие в этом направлении компании в России, использовали «синтетику», чтобы натренировать свои большие языковые генеративные модели, — заключает Юрий Чайников.

Материал подготовлен при поддержке Минобрнауки России

В этот день было

Первый полет самолета Ту-334
Первая ночная посадка самолета Т10К-2
Первый полет гидросамолета Бе-8