Научно-технический вебинар «Генеративные модели в науке и индустрии»

27 июня 2023, 14:00 MCK

О вебинаре

  • Спикер

    Михаил Гущин, ФКН НИУ ВШЭ, Россия

  • Тема

    Научно-технический вебинар «Генеративные модели в науке и индустрии»

  • Подробнее про вебинар

    Спикер о вебинаре:
    Генеративные модели являются одной из передовых областей в машинном обучении. Они в первую очередь ассоциируются с изображениями и получили общемировую популярность благодаря сетям для генерации изображений по текстовому описанию: Dall-E, Imagen, Stable Diffusion, и Midjourney.
    Но в этом докладе мы не будем говорить про картинки, а обсудим применения в естественных науках и индустриальных приложениях.
    Мы рассмотрим как генеративно-состязательные сети помогают ускорить симуляцию откликов в детекторах экспериментов физики высоких энергий; как нормализационные потоки могут использоваться для поиска Новой физики на Большом адронном коллайдере; как они помогают астрономам изучать сверхновые и решать обратные задачи по реконструкции параметров солнечной атмосферы и некоторые другие приложения. В заключение рассмотрим несколько примеров из индустрии, где генеративные модели используются для моделирования поведения сложных установок и систем.

    Презентация: https://drive.google.com/file/d/1YZVwXt7d3PZFYNfyux8xLIyN5Y8j-MD4/view?usp=sharing
    Видеозапись: https://youtu.be/_C_aNbydfe0

    Расшифровка вебинара:

    Меня зовут Михаил Гущин, я старший научный сотрудник лаборатории методов анализа больших данных факультета компьютерных наук Высшей школы экономики. И сегодня на этом вебинаре я бы хотел обсудить с вами генеративные модели, а именно их применение в науке и индустрии.
    Итак, мы сегодня будем говорить про генеративные модели и то, как их уже применяют в других местах и как именно их применяют. Когда мы говорим про генеративные модели, то прежде всего мы ассоциируем их с моделями по генерации изображений, по их текстовому описанию.
    Например, нейронная сеть DALL-E от OpenAI, DALL-E-2. Мы можем вспомнить примеры недавние от СБЕР, которые выпустил Kandinsky, который тоже умеет генерировать красивые картинки. Также, это уже тренд, наверное, последних полугода, с генеративным искусственным интеллектом у нас еще также ассоциируется chat-GPT.
    Gpt3, который там умеет чуть ли не все. И очень много где, во многих местах, где вы можете услышать про генеративные модели, в основном будут говорить про вот эти две темы. Про то, как генерируем картинки, про то, как генерируем тексты. Иногда можно встретить про то, как генеративная модель используются для генерации звука.
    Даже у нас в России есть коллективы, которые занимаются именно этой задачей. Она тоже является одной из таких популярных. Но в этом докладе я хочу поговорить про другие темы, которые зачастую не раскрываются на вебинарах, семинарах и лекциях. Я не буду сегодня говорить про картинки, про генерацию картинок совсем.
    Я не буду говорить про генерацию текстов тоже совсем. И про звук тоже не буду говорить. Я сегодня познакомлю вас с несколькими примерами из естественных наук, из астрономии, из астрофизики, из физики высоких энергий, где генеративные модели уже используются прямо сейчас. Используются активно, можно сказать, в продакшне, как говорится, и помогают уже ученым совершать научные открытия.
    Также, уже ближе к концу доклада, мы немного поговорим про то, где генеративные модели могут применяться в индустриальных задачах. И вообще, в целом, какие задачи мы можем решать с помощью генеративных моделей.
    И в самом-самом конце я вам покажу такую маленькую демонстрацию того, как вы можете попробовать применить генеративные модели для решения своих задач у себя компании, в университете, прямо сегодня, то есть взять какую-то простую генеративную модель и решить свою задачу и посмотреть, понравится вам или нет.
    Прежде чем я перейду к конкретным примерам, я хочу просто кратко напомнить, какие бывают генеративные модели, просто чтобы напомнить. Если вы знаете про все эти генеративные модели, здорово, значит, вам будет легко понимать все, что будет происходить дальше.
    Если вы с ними не знакомы, то не переживайте, у нас такой научно-популярный сегодня доклад, вам тоже будет все понятно. Если выделять так вот в целом и грубо, то можно выделить 4 основных типа генеративных моделей, которые вот сейчас наиболее популярны. Первый тип это вариационные автокодировщики. Они, пожалуй, появились раньше всех. По-моему, первая статья в 2012 году была опубликована.
    Типичная архитектура вариационного кодировщика состоит из кодировщика и декодировщика, который сжимает наши данные в какое-то скрытое пространство z, кодирует его, и декодировщик его декодирует обратно. И мы хотим, чтобы x» был максимально близок к x. При этом они будут чуть-чуть отличаться, но так, чтобы распределения их совпадали. Потом, следуя хронологии, появились ганы, генеративно-состязательные сети.
    Они состоят уже из двух сетей, генератора, который из шума генерирует нам новые наблюдения, и дискриминатора, который проверяет, насколько сгенерированные объекты похожи на реальные. Дискриминатор — это фактически обычный классификатор. И вот, пожалуй, наверное, с ганов начался вот этот бум, потому что ганы показали отличное качество генерации изображений и до сих пор улучшают.
    Затем появились нарезумпционные потоки, которые учат обратимое преобразование наших данных в какой-то шум, в какое-то скрытое представление с известным нам распределением.
    И зная это преобразование, по обратному преобразованию мы можем из шума нагенерировать новые объекты, которые будут похожи на наши изначальные даты. И вот совсем новая тема — это диффузионные модели. Они тоже состоят… они чем-то похожи на нормализующие потоки. Ну, конечно, математика чуть-чуть другая. Сейчас диффузионные модели считаются лучшими моделями в плане качества генерации изображений.
    Посмотрим, что будет дальше, сохранят ли они первенство либо найдется какая-нибудь еще модель. Если вы не знакомы с генеративными моделями, то важно понимать про них следующее, что генеративные модели принимают на вход выборку данных и учат явное либо неявное распределение, которым описываются эти данные.
    И затем из этого распределения они могут сэмплировать новые объекты, которые будут похожи на оригинальные данные, но не совпадать с ними точно. И таким образом мы можем нагенерировать любой объем вот этих синтетических данных. И вот этим мы будем пользоваться дальше. И первую группу примеров, которые я хочу раскрыть, это астрономия.
    В астрономии есть несколько задач, несколько таких направлений, где генеративные модели активно используются. И первая из таких задач — это реконструкция параметров солнечной атмосферы. То есть есть телескоп, который наблюдает за нашим солнцем. Эти телескопы обычно небольшие, потому что света от солнца достаточно. И они просто наблюдают, снимают поток света от солнца и записывают спектры, которые они получили.
    Эти спектры, их еще называют профилями СТОКСа. И когда мы наблюдаем за солнцем, фактически делаем снимок, фотографию, то для каждого пикселя вот этой фотографии у нас есть вот таких четыре профиля стокса, которые описывают все процессы, происходящие внутри, которые доступны для наблюдения.
    И задача заключается в том, чтобы по этим профилям восстановить параметры того, что происходит на поверхности самого Солнца, в его атмосфере. Что это за параметры прежде всего это магнитное поле его величина его направление также это температура, например, да и некоторые другие параметры всего их 11 штук и это решают обычными
    автокодировщиками архитектура похожа на юнет сеть то есть на вход мы понимаем для каждого пикселя мы принимаем профиль стокса, а на выходе мы получаем картинку с 11 каналами, где каждый канал отвечает за какой-то один параметр. И здесь приведены, например, 9 таких картинок. То есть это реально фотографии поверхности Солнца. Где здесь можно применять генеративные модели?
    Оказывается, что эту же задачу можно решать не обычными юнет-архитектурами, а можно решать с помощью генеративных моделей. В частности, можно взять нормализующий поток, как авторы этой статьи. На вход потоку передают все те же профили стокса, а на выходе они также предсказывают значение 11 параметров.
    Но теперь, поскольку это генеративная модель, они для каждого пикселя могут сгенерировать множество значений этих параметров и тем самым восстановить распределение возможных значений каждого параметра в данном конкретном пикселе.
    И вот здесь как раз представлено, оранжевым — это распределение, которое получили с помощью нейронной сети, коричневым — это распределение, которое получается из Монда-Карло симуляции для проверки, а точка — это то реальное значение, которое получается. Мы видим, что нейронные сети с высокой точностью восстанавливают подобное распределение. Здесь как раз представлены картинки.
    Вот здесь, например, это температура на поверхности, Вот здесь температура на поверхности, а вот это как раз неопределенность, а вот этой определенной температуры, которую мы получили с помощью генеративной модели. Еще одна тема, очень популярная в последние годы, это гравитационные волны. Кратко, что это такое, напомню.
    Мы все с вами знаем, что есть электромагнитные волны, с помощью которых это то, как распространяется свет. И было предсказано теоретически, что гравитация тоже может распространяться волнами. Но еще 10 лет назад этот эффект не был измерен экспериментально. Теория была, а эксперимента не было. И ученые уже на протяжении многих десятков лет пытаются как раз поймать вот эти гравитационные волны.
    И у них это получилось относительно недавно, всего несколько лет назад. Как они это делали? Предполагается, что… То есть мы наблюдаем за тяжелыми объектами в космосе, это обычно парные черные дыры.
    То есть два массивных объекта, которые вращаются вокруг общего центра масс, и во время такого вращения они как раз и спускают гравитационные волны, которые доходят до нас. И мы их будем ловить следующим способом. Мы знаем, что поскольку гравитация меняется, то меняется сила тяжести, можно сказать, и вот этот эффект мы можем промерить. Для этого был собран ЛИГО, такой детектор, который состоит из двух перпендикулярных колен.
    В каждом колене стоят лазеры, которые интерферируют друг с другом на мишене. Идея в следующем, что когда до нас доходит гравитационная волна, то каждое из этих колен деформируется чуть-чуть по-разному.
    В результате набегает разность фаз между лазерными лучами, и мы видим смещение интерфекционной картины. И вот наблюдая за этим смещением, мы получаем вот такой сигнал, который изображен вот здесь, на этой картинке. И что этот сигнал нам говорит? Он говорит, что, когда массивные тела вращаются более-менее с постоянным периодом, мы наблюдаем какой-то периодический сигнал.
    По мере их сближения, частота колебаний увеличивается, и в момент, когда эти два массивных тела коллапсируют, то есть сливаются в одно, мы наблюдаем как раз такой всплеск гравитационных волн, и затем, когда они уже слились полностью, образовали один объект, гравитационная волна полностью исчезает.
    И именно за наблюдение вот такого сигнала, за возможность его наблюдения была дана Нобелевская периода, где здесь использовались генеративные модели. Они как раз используются для того, чтобы восстанавливать параметры двойных черных дыр по сигналу, который
    мы наблюдаем Земли, и для того, чтобы находить не только это значение, но и оценивать распределение невозможных значений этих параметров, чтобы оценить довелительный интервал. Что здесь происходило? Они тоже брали либо сверточные условные автокодировщики, либо нормализующие потоки. На вход подавали сигнал, который они наблюдают с земли.
    Синим как раз показан реальный сигнал, который они наблюдают вместе с шумами. И на выходе генеративной модели они как раз получают распределение возможных значений и параметров черной дыры. Таких параметров пять, например, это масса одной черной дыры, масса другой черной дыры в солнечных массах, затем время, когда они сливаются и другие какие-то параметры.
    Всего 5. Каждый имеет свою физическую природу. И здесь мы тоже видим, что если мы сравниваем нейронную сеть и симуляцию честную физическую, то мы видим отличное совпадение, то есть мы видим, что генеративные модели действительно могут учить распределение такой сложной природы.
    И на сегодняшний момент, кстати, мы уже наблюдаем очень много таких парных черных дыр, здесь приведена иллюстрация того, что мы уже пронаблюдали, и для каждой такой пары мы уже знаем ее свойства с каким-то доверительный материал, конечно же.
    Еще одна задача из астрономии — это классификация сверхновых. Все мы с вами видели вот такие красивые картинки из телескопа Хаббла, и еще более красочные и детальные с телескопа Джеймса Уэбба, и на самом деле все вот
    эти красивые картинки, многие из них, они соответствуют какой-то сверхновой звезде, то есть взрыву сверхновой. И оказывается, что есть разные типы сверхновых. Они обычно отличаются по химическому составу в спектре их излучения, а также они отличаются по тому, как именно они образовывались, как именно они взрывались.
    Например, есть сверхновые, которые образовались в результате термоядерного взрыва, их еще называют 1А. А есть много сверхновых, которые образовались в результате сжатия ядра, то есть часть звезды сжалась внутрь, и за счет высвобожденной энергии внешняя оболочка разлетается.
    Это уже другие типы сверхновых, их тоже бывает много. И дальше их уже можно внутри отличать по химическому составу. Есть кремнии, в спектре нету, есть гелии, либо нету, линии широкие, либо узкие и так далее. Но различать по химическому составу это долго и дорого. Их еще можно различать с помощью кривых блеска, так называемых.
    Это когда у вас есть телескоп, и вы просто наблюдаете за звездой и записываете, сколько света до вас доходит, и строите зависимость от времени. Сверхновые имеют свойство менять свою светимость в зависимости от времени. И вот эта зависимость называется кривой блеска. И вот оказывается, что по форме этих кривых мы тоже можем отличить типы.
    Здесь представлены как раз кривые блеска для совершенно разных типов сверхновых. Современные телескопы наблюдают миллионы звезд каждую ночь, и нужно уметь идентифицировать их типы на ходу, очень быстро.
    Для этого используются алгоритмы машинного обучения, то есть это задача классификации, и общий pipeline выглядит следующим образом. У вас есть кривые блеска для одной какой-то звезды в разных спектрах, в разных фильтрах. Здесь, например, изображено шесть фильтров, то есть шесть таких вот кривых.
    Наблюдения могут быть нерегулярными, потому что погода может быть плохая, телескоп может сломаться, либо телескоп просто смотрит в другую часть неба в эту ночь. И для модели машинного обучения это не очень хорошо, поэтому обычно сначала вот эти наблюдения как-то аппроксимируют либо аугментируют, то есть с помощью какой-то модели,
    фитируют какую-то модель и получают какое-то непрерывное представление кривой блеска затем вот это непрерывное представление мы можем трансформировать в нужный нам формат данных в зависимости от метода который мы используем например мы можем получить картинку одномерную картинку с шестью фильтрами и затем использовать сверточные сети для того чтобы решить задачу классификации определить тип сверкнул
    Так вот, оказывается, что качество вот этой классификации очень сильно зависит от того, как именно мы интерполировали, аппроксимировали наши кривые блеска. И до недавнего момента State of the Art здесь были гауссовские процессы. То есть мы просто брали наблюдения и фитировали гаусским процессом все, что у нас есть.
    Вот такой результат мы можем получить, если мы возьмем вот такую кривую блеска из двух фильтров. И вот в этой работе было показано, что оказывается мы можем это делать не только с гаусскими процессами, мы можем это делать с помощью небольших нейронных сетей. Повторюсь, что здесь вот каждая нейронная сеть будет опучаться только на одной кривой блеска, то есть данных на самом деле мало.
    Но, тем не менее, нейронные сети отлично с этим справляются, в том числе отлично с этим справляются генеративные модели. Они могут выучить не только среднее значение наблюдаемых величин, но также могут предсказать неопределенность или погрешность измерений в каждой точке.
    И по скорости, кстати, некоторые нейронные сети будут даже быстрее гаусских процессов. Это еще один пример, где генеративные модели машинного обучения используются в астрономии. Дальше я бы хотел еще рассказать про пару примеров из физики высоких энергий.
    Для начала кратко, что такое физика высоких энергий и что там вообще происходит, что она изучает. Я буду сегодня рассказывать про эксперименты LHCb. Это один из четырех экспериментов на Большом Адронном Коллайдере на границе Франции и Швейцарии.
    Наша лаборатория является членом этой коллаборации. И физика высоких энергий, если кратко, она занимается изучением стандартной модели. А стандартная модель описывает то, из чего состоит все в этой вселенной. То есть вся стандартная модель изображена на самом деле вот в этой табличке.
    Что-то очень похоже на таблицу Менделеева, но только самых элементарных частиц. С некоторыми из них вы уже знакомы, например, электрон или фотон. Но есть еще другие элементарные частицы, из которых состоят протоны, нейтроны и так далее. За открытие последней такой частицы, за открытие бозона Хиггса, дали Нобелевскую премию, по-моему, в 2012 году как раз.
    Это то, ради чего большой адронный коллайдер и строился. Как происходит изучение? По большому адронному коллайдеру движутся навстречу два протонных пучка, один и второй. Когда они сталкиваются, а сталкиваются они в центре экспериментов LHCb, Atlas, ELLIS и CMS, то в процессе столкновения возникает множество других частиц, которые в свою очередь распадаются на другие частицы.
    И вот ученые записывают все эти распады, все образовавшиеся частицы, восстанавливают их распады, и по этим распадам они делают выводы о том, какая физика вообще есть, по какой физике происходят эти распады, и какие есть вообще элементарные частицы.
    Вот здесь приведен пример одного из детекторов, который работает на одном из экспериментов. Это детектор Atlas. Он имеет высоту примерно 25 метров и длину 44 метра. Вот здесь для сравнения изображены фигурки людей.
    Вот здесь и вот здесь внизу. Чтобы представить масштабы вот этих установок. Которые по сути являются таким большим фотоаппаратом, который фотографирует элементарные частицы, которые распадаются и образуются в результате столкновений протонов.
    Он состоит из многих частей, нам сейчас не очень важно понимать, что каждая часть делает, но нам важно понимать что когда протоны сталкиваются и образуются вот эти частицы вторичные, то они пролетают через различные сенсоры вот этого детектора, и мы записываем как раз вот эти отклики сенсоров. Здесь линиями как раз на этой схеме изображены частицы, а разноцветными квадратиками показаны отклики различных сенсоров этого детектора.
    Так, у нас вопрос в чате. А зачем пересказывать по колебаниям распределение значений, если их можно померять эмпирически? Ведь мы это как-то получили для обучающего выборки. Да, Николай, большое спасибо за вопрос. Поскольку мы уже проехали эту тему, давайте я тогда отвечу на него уже после доклада, хорошо?
    Чтобы не возвращаться, возвращаясь к детектору, то есть мы записываем вот эти отклики сенсоров и по ним мы восстанавливаем все вот эти частицы их распады как происходит как происходит поиск новой физике.
    Вот есть стандартная модель, которая описывает всю физику, которую мы знаем. В том числе она описывает все возможные распады всех частиц, которые мы знаем. И вот если мы попытаемся построить распределение параметров частиц, то в каком-то пространстве, то многомерном, то окажется, что здесь пример картинки.
    Многомерное пространство, мы смотрим на проекцию по массе частиц, здесь m — это масса искомой частицы, например, новый, то окажется, что красное распределение — это все частицы, все распады, которые описываются известной нам физикой, то есть известной нам стандартной моделью.
    Но может произойти так, что в каком-то регионе у нас реальных наблюдений из эксперимента, из детектора может оказаться чуть-чуть больше, чем нам говорит стандартная модель. И вот это отклонение и есть новая физика. Синенький бамп, горбик, он отвечает как раз за новую физику.
    И если очень грубо говорить, то ученые занимаются тем, что они занимаются поиском таких регионов, где реальные наблюдения не сходятся с прогнозом стандартной модели. Как только они это находят, они объявляют о новом научном открытии, и мы с вами все равнимся. Как здесь можно использовать генеративные модели? Мы предполагаем, что в этом регионе есть новая физика, то есть есть отклонение от стандартной модели.
    К сожалению, мы вот это красное распределение с вами не знаем. Мы его можем оценить, но мы его не знаем точно. То есть у нас нет разделения на синий и красный. Но мы, например, знаем, что вот мы можем предполагать, что вот в этом регионе, вот здесь и вот здесь по краям новой физики мы не ожидаем.
    Поэтому мы можем выучить генеративную модель, которая выучит нам распределение, вот это красное распределение. Затем с помощью обученной модели мы интерполируем это красное распределение в интересующий нас регион, сигнальный регион так называемый. И затем мы сравним то, что дает нам генеративная модель, с тем, что мы реально наблюдаем на детекторе.
    И если мы наблюдаем отклонения, значит, мы нашли новую физику. Примерно такой подход сейчас исследуют физики, он пока еще на стадии исследования, он не работает в PRODE, в PRODE работают другие методы, но это один из таких перспективных подходов. Еще одна задача, которая используется уже практически в продакшене, то есть используется в реальных научных исследованиях, это быстрая симуляция.
    В чем она состоит? Если мы возьмем различные типы частиц и посмотрим, как они проходят через различные сенсоры детектора, то мы увидим следующую картинку.
    Например, давайте возьмем электрон красненький. Он проходит через первый ряд сенсоров, оставляет свои отклики, доходит до электромагнитного колориметра и полностью поглощается. При этом в колориметре образуется какой-то ливень частиц, который мы тоже регистрируем.
    Если мы посмотрим на нейтрон, то трекер проходит, не задевая его, потому что он нейтральный, он проходит электромагнитный калориметр, но полностью поглощается адронным калориметром. Тоже образуется ливень, который мы регистрируем. Для того, чтобы делать научные исследования для того, чтобы как-то оценивать, что нам выдает, для того,
    чтобы оценивать красное распределение стандартной модели, нам требуется подробная физическая симуляция всех физических процессов, которые мы знаем, и всего детектора. Мы честно моделируем пролет каждой частицы через каждый сенсор, честно записываем все отклики, честно это все сохраняем и потом уже делаем какие-то дальнейшие выводы в дальнейших шагах анализа.
    Этот процесс очень трудоемкий, он требует большого количества вычислительных ресурсов. И возникло предположение, что, наверное, с помощью генеративных моделей мы можем ускорить эту симуляцию, то есть мы можем взять реальный физический симулятор, нагенерировать какую-то выборку и на этой выборке обучить генеративную модель, которая будет решать эту же задачу, но только в сотни раз быстрее. Так оно и получилось. Как это было? Как общая архитектура всех таких генеративных моделей в этой задаче. Есть нейронная сеть, которую мы называем генератор, которая на вход принимает параметры, входящих в сенсор частиц.
    Это параметры заряд частицы, плюс либо минус, либо ноль, импульс этой частицы, то есть три компонента импульса, направление и величина. Тип этой частицы, то есть что это? Это был электрон, это был протон, это был фотон, нейтрон, каон, какое-то количество этих типов.
    И вот по этим параметрам нам нужно, вот эта нейронная сеть генерирует нам отклик, то есть возможный отклик колориметра. Эти отклики можно представить в виде вот таких вот картинок, то есть это вот этот ливень как бы в поперечном разрезе. Затем мы берем вот эти синтетические отклики и сравниваем их с реальными, то что нам выдала настоящая сложная физическая, но медленная симуляция.
    Мы сравниваем с помощью другой нейронной сети, которая называется дискриминатор, и которая говорит нам, насколько синтетические отклики похожи на реальные. Мы обучаем обе эти сети до тех пор, пока синтетика не станет похожей на реальность.
    Это получается уже неплохо, и с каждым разом получается все лучше и лучше. Здесь представлены примеры. Верхняя строчка — это как раз примеры подробной физической симуляции, которая называется Gen4. А внизу представлены результаты нейронной сети. Мы видим визуально, что отклики очень похожи, но нейронная сеть делает это в сотни раз быстрее.
    Если проводить какие-то дополнительные тесты, например, сравнивать распределение по каким-то статистикам, которые мы можем получить из откликов, то в целом мы видим, что распределения тоже совпадают, но в некоторых случаях есть небольшие отклонения, с которыми сейчас пытаются бороться, И на текущий момент, на сегодняшний день есть работы, где вот этих отклонений уже практически нет.
    В многих экспериментах, например. Так тут вопрос, а зачем нам симуляции, у нас же есть реальные данные, разве нет? Да, есть. Но вот реальные данные, они содержат в себе как известную нам физику, так и новую физику. А симуляция нам дает только известную нам физику.
    И вот сравнивая известную физику и известную плюс новую, мы можем найти разность и можем сказать, что вот мы нашли вот эту новую физику. Если бы у нас не было симуляции, то мы бы не смогли разделить то, что мы уже знаем, от того, чего мы еще не знаем. И, соответственно, ничего бы мы открыть не смогли бы.
    Вот если очень кратко, и на самом деле, вот быстрая симуляция откликов, не только колориметров, но и других сенсоров, других датчиков, детекторов, это очень такая горячая тема именно в физике высоких энергий на Большом адронном коллайдере и не только в других странах тоже, поскольку она действительно помогает экономить очень много вычислительных ресурсов и соответственно очень много денег. Для сравнения, только за электричество для большого адронного коллайдера ЦЕРН платит порядка 100 млн евро в год.
    И это электричество в том числе уходит на вычислительные центры для того, чтобы считать симуляции. А симуляции составляют примерно 20% от всех ресурсов. Представьте, что нейронные сети, даже если вам в 10 раз все позволяют ускорить, вы уже экономите десятки миллионов евро в год просто на нейронных сетях.
    И вот подобные примеры, подобные приложения мы можем найти не только в каких-то других естественных науках, в других экспериментах, но также и в индустрии, поскольку что в астрономии, что в физике высоких энергий, нам приходится иметь дело с какими-то большими датчиками, с большими детекторами, которые очень сложно устроены. И примерно то же самое есть в крупных компаниях.
    И я здесь расскажу один из наших недавних проектов. Это как раз моделирование производительности систем хранения данных. Мы взяли реальную систему хранения, которая состояла из различных дисков. Это HDD диски, это SSD диски, которые организованы в пулы хранения под RAID, с различными RAID схемами.
    Также в системе хранения есть кэш, который позволяет ускорить операции чтения и записи наиболее популярных кусков информации, ну и конечно же есть контроллеры хранения, то есть это какие-то процессоры, которые, собственно, обрабатывают все вот эти запросы.
    Наша задача заключалась в том, чтобы по параметрам внешней нагрузки и по параметрам конфигурации нашей системы хранения предсказать, сколько информации в секунду наша система сможет записывать или читать, и с какой задержкой у нас будет происходить каждый запрос. Эту задачу мы решали тоже с помощью генеративных моделей, так называемых условно-генеративных моделей. На самом деле все, что я рассказывал выше, это тоже условно-генеративная модель.
    На вход мы подавали нашей модели параметры нагрузки, то есть, например, размер блока, доля операции чтения и записи, размер очереди, с которым мы подаем нашу нагрузку, количество потоков параллельных, через которые мы эту нагрузку тоже подаем, также подавали некоторые параметры
    конфигурации, такие как rate-схема, которая задается двумя числами, k плюс m, 8 плюс 2, например, или 4 плюс 1 и сколько у нас дисков в общем было в пулах. И на выходе мы просим предсказать нашу генеративную модель распределения параметров производительности для вот каждого входа.
    Производительность мы измеряли в количестве операции, input-output операции в секунду и задержку, среднюю задержку одной такой операции. Вот здесь на картиночке как раз приведены примеры таких распределений для каких-то входных параметров. Синеньким здесь показано то, что мы реально измерили на нашей системе, а оранжевыми крестиками показано то, что предсказывает наша модель.
    При этом это прогнозы для тех параметров, которые модель не видела в обучающей выборке, то честный честный тест на неизвестных значениях. Если подробно вот тут еще приведен я привел два примера уже с деталями того что именно было подано на вход.
    Первый пример — это распределение параметров производительности для HDDPU, а второй пример для SSDPU, то есть уже другие диски с другой физикой внутри, и здесь приведены входные параметры. То есть мы подали вот такие входные параметры на вход нашей сети и получили такие распределения. Мы тоже видим здесь, что прогнозы хорошо согласуются с реальными наблюдениями.
    То есть это работает, и работает хорошо. И мы можем оценить не только среднюю производительность, но мы можем также оценить то, как эта производительность может меняться, то есть разброс вот этой производительности, потому что это всегда какой-то стокхастичный процесс. У нас все всегда меняется, что-то меняется внутри дисков, что-то меняется в нашей логике софтверной внутри. Это все сказывается на итоговой производительности, и все это нейронная сеть генеративная может выучить напрямую из данных.
    Нам думать про все физические процессы внутри абсолютно не нужно. И в конце я бы немного хотел поговорить с вами о том, где в целом мы можем использовать генеративные модели и как именно.
    Все примеры, которые я показал здесь, они из естественных наук, из каких-то избранных индустриальных приложений, и возможно, не все из вас занимаются похожими проектами, потому что у каждого есть свои проекты, они уникальны по постановке задачи, по данным и вообще по методам решения.
    Так вот, оказывается, что если мы посмотрим на все вот эти примеры выше и попытаемся обобщить, то оказывается, что мы можем применять генеративные модели в тех же задачах, где мы применяем обычные нейронные сети либо обычные классические модели машинного обучения, например, CatBoost, XGBoost и так далее.
    То есть мы можем с помощью генеративных моделей решать задачи в регрессии, только в этом случае мы будем получать в качестве прогноза не только среднее значение y, которое мы хотим предсказать, но мы сможем также получать доберительные интервалы или погрешности вот этих прогнозов, потому что генеративная сеть выучит нам прям распределение этих y, а не только их среднее значение.
    С таким же успехом мы можем применять для решения задачи классификации, и тоже генеративная модель сможет нам выдать неопределенность нашего прогноза. Мы можем использовать для поиска аномалий, как это было сделано, например, в физике высоких энергий.
    Мы учим распределение нормальных данных, и все, что плохо описывается этим распределением, мы можем списать на аномалии либо на какие-то новые наблюдения в наших данных. Да, у нас вопрос, разве обычные классификаторы не имеют некий конфиденц тоже? Ну, скажем так, обычные классификаторы, ну прям обычные, которые мы учим где-нибудь на курсах, они из коробки не умеют.
    Для того, чтобы вы получили какой-то конфиденц, вам нужно либо добавлять какую-то голову, то есть условно, чтобы нейронная сеть предсказывала вам еще и сигму. И вы обычно тогда считаете, что y распределен по нормальному закону, с каким-то средним μ и с какой-то σ. Но гарантии того, что у вас действительно все распределено по нормальному закону, у вас нет. А генеративная модель не требует этого предположения.
    Если нормальный закон, здорово, значит обучимся быстро. Если это какое-то очень сложное распределение с длинными хвостами, ну ладно, чуть-чуть больше эпох нам нужно будет, чтобы выучить этот длинный хвост, но мы его сами выучим. И от data-scientist, от ML-инженера не потребуется никаких действий для этого. Генеративная модель сама выучит нужное распределение, сама все сделает за вас.
    Да есть конечно другие методы как можно получить неопределенность там например с помощью dropout или с помощью ансамблевых методов да можно, но в зависимости от того какой вы метод выберите у вас у вас будет немножечко другой смысл вот этой неопределенности и более того те же самые методы вы можете применить и генеративную модель там тоже может быть dropout там тоже можно делать ансамбли, но генеративная модель выдает вам прям целое распределение ваших игреков для заданного икса, а не только одну точную оценку.