Исследования молодых ученых Московского университета, которые проводятся в рамках грантовой поддержки Некоммерческого фонда развития науки и образования «Интеллект», направлены на решение самых разных фундаментальных и прикладных задач, а есть научные работы, результаты которых могут применяться на стыке этих задач.
О том, как ускорить работу ученых из самых разных областей и причем здесь квадрокоптеры, рассказал аспирант второго года обучения факультета ВМК МГУ имени М. В. Ломоносова Андрей Чупахин.
– Андрей, расскажите про ваше исследование, которое поддерживается фондом.
– Я работаю математиком на кафедре Автоматизации систем вычислительных комплексов факультета ВМК. Основные направления моей научной деятельности: разработка архитектур и алгоритмов управления распределёнными системами, а также анализ времени выполнения программ в таких системах. В 2020 году коллектив нашей кафедры участвовал в международном проекте совместно с КНР, который финансировался Министерством науки и высшего образования РФ. Об основной цели проекта я сейчас расскажу. В России есть несколько крупных вычислительных центров, где располагаются суперкомпьютеры. Обычно это крупные вузы, например, МГУ, СПбГУ, НГУ, СПбПУ, либо научно-исследовательские институты и центры, например, Объединенный институт ядерных исследований в Дубне, или Межведомственный суперкомпьютерный центр РАН. Как объединить все эти ресурсы в единую сеть вычислителей? Нужно предложить математическую модель такой сети, разработать модели потока вычислительных заданий на основе данных с реальных вычислителей, разработать и реализовать алгоритмы распределения ресурсов сети вычислителей и т. д. и т. д. Задач было много, потом появились новые, их решение «вышло» за рамки проекта, и некоторыми из них я как раз и занимаюсь в рамках своего диссертационного исследования.
– Для чего это нужно?
– Представим себе исследователя, который написал свою программу для суперкомпьютера (например, программу для предсказания погоды или моделирования некоторых гидродинамических процессов). Далее ему нужно провести экспериментальное исследование, которое заключается в многократных запусках написанной программы на суперкомпьютере. После этого следует этап анализа результатов работы программы. Так вышло, что на практике исследователи много времени тратят, находясь в очереди на выполнение их программ. Мы выяснили это у наших коллег из Научно-исследовательского вычислительного центра МГУ, которые администрируют «Ломоносов-2», спрашивали у них, как долго пользователи ждут своей очереди. Иногда это день, несколько дней, иногда до недели. Также мы побывали в Межведомственном суперкомпьютерном центре, который располагается в здании президиума РАН. Кроме этого бывает ситуация, когда исследователь располагается в вузе, где нет суперкомпьютера, или же он не обладает достаточной вычислительной мощностью или другими характеристиками для выполнения программы. Получается, что исследователю сложно быстро получить доступ к ресурсам таких больших суперкомпьютеров, например, как «Ломоносов-2». Мне как ученому хочется предложить решение данных проблем: чтобы доступ к суперкомпьютерам был более простым, сделать доступ «прозрачным» для исследователей, чтобы они занимались только своими прикладными задачами и не думали, где и как «добывать» ресурсы. Поняв, что такая проблематика действительно существует, мы вместе с научным руководителем Смелянским Русланом Леонидовичем стали думать, как можно ее решить. Первое – это более грамотное планирование ресурсов как в рамках самого суперкомпьютера, так и в рамках целой сети суперкомпьютеров. Как вы уже поняли, мы рассматривали в качестве вычислителей суперкомпьютеры. Тут возникает задача: чтобы грамотно распределить ресурсы суперкомпьютера между вычислительными задачами, нужно уметь оценивать время выполнения задач. Обычно исследователь во время запуска своей программы на суперкомпьютере указывает: сколько ресурсов необходимо для выполнения его программы, какие входные данные использует программа, сколько она будет выполняться по его оценкам. Естественно, эта оценка субъективная и часто специально завышена, чтобы планировщик суперкомпьютера не завершил работу раньше времени. Ведь если оценка времени выполнения программы, которую предоставил исследователь, окажется меньше фактического времени выполнения программы, то планировщик её остановит и отдаст освободившиеся ресурсы другим программам. Чтобы преждевременного прерывания программы не случалось, исследователи часто завышают эту оценку. Планировщик, используя завышенные оценки пользователей, работает неэффективно. Если мы хотим увеличить эффективность использования ресурсов, нам нужна некая объективная оценка. Ее можно получить, анализируя историю запусков, – здесь как раз и применяются алгоритмы машинного обучения. В качестве обучающей выборки мы используем историю запусков программ на суперкомпьютере. Задача заключается в том, чтобы предсказать, сколько будет выполняться программа по аргументам ее запуска. На самом деле мы восстанавливаемы функциональную зависимость между аргументами запуска программы и временем выполнения. Аргументы запуска программы включают в себя количество запрашиваемых программой ресурсов, каков объем входных данных, какие у программы указаны аргументы. Получая оценку времени выполнения каждой программы, мы можем построить расписание выполнения программ, которое позволит ставить их на выполнение более плотно друг к другу, тем самым эффективнее используя ресурсы супервычислителя. Это одна из задач, которую мы рассматриваем внутри одного вычислителя.
– Это работает только для одного суперкомпьютера?
– Нет, похожая задача возникает, когда несколько вычислителей связаны друг с другом. Например, исследователь понимает, что доступ к «Ломоносову-2» нужно долго ждать. Зачем ждать, если есть другой суперкомпьютер, например, в МСЦ РАН или СПбПУ? Соответственно нужно уметь предсказывать время выполнения программ на вычислителях разных архитектур. Поэтому мое второе направление исследования – рассмотреть целую сеть супервычислителей. Данная задача отличается от предыдущей тем, что у программы могут быть дедлайны: это некоторый момент времени в будущем, после которого результат ее выполнения уже не представляет никакого интереса для исследователя. Если какой-то вычислитель не успевает выполнить программу в срок, он может переслать ее на другой – таким образом, они могут обмениваться программами. Общая цель – выполнить все программы за минимально возможное время. Для данной задачи хорошо применяются алгоритмы обучения с подкреплением. Данные алгоритмы хорошо себя зарекомендовали в сфере оптимального управления, в частности для управления роботами или дронами. Есть очень хороший пример, иллюстрирующий работу обучения с подкреплением: на YouTube можно найти много видео, где небольшие квадрокоптеры летают и делают сложные фигуры, перемещаются в разные стороны, рассыпаются и снова собираются. Конечно, можно жестко запрограммировать все их движения, но такой вариант скорее всего не сработает, потому что всегда есть внешние меняющиеся условия, например, ветер подул, какой-то дрон потерял связь, сломался или упал, либо сигнал между дронами передавался дольше обычного. Во внешней среде есть много того, что сложно предсказать заранее. Соответственно алгоритмы нужно разрабатывать таким образом, чтобы они независимо от конкретных внешних условий, все равно работали. Для таких задач применяются алгоритмы обучения с подкреплением, основная идея которых заключается: в определении агента, в данном случае, летающего дрона, внешней среды, с которой он взаимодействует и правил взаимодействия агента и внешней среды. У агента как правило есть четко поставленная цель. Задача оптимального управления заключается в том, чтобы найти стратегию действий агента, позволяющую приблизиться или достичь поставленной цели. В случае с дроном этой целью может быть – перемещение из точки А в точку Б. Если мы рассматриваем стаю дронов, которая перемещается и взаимодействует друг с другом, тогда это не просто обучение с подкреплением, а многоагентное обучение с подкреплением. Эту концепцию я как раз применяю для решения задачи взаимодействия друг с другом суперкомпьютеров-вычислителей, потому что идея похожая: тоже есть внешняя среда – это исследователи извне, которые в разные промежутки времени присылают нам программы – эти события нельзя предсказать заранее. Есть агенты, которые располагаются рядом (или внутри) с каждым вычислителем, следят за их состоянием и могут взаимодействовать друг с другом. Агенты передают информацию о текущей загруженности вычислителей, на которых они располагаются: выполняется ли какая-нибудь программа в данный момент на вычислителе, сколько программ в очереди на выполнение, какая часть ресурсов свободна/занята под выполнение программ. Я описал две большие задачи: предсказание в рамках одного супервычислителя и предсказание времени выполнения в сети супервычислителей. Это две большие подзадачи в том направлении, в котором я сейчас развиваюсь и работаю в рамках диссертации и в рамках конкурса, который я выиграл.
– Что вас вдохновило на эту тему?
– Первое – такая проблема есть, и она кажется глобальной. Второе – ее решение поможет всем исследователям, которые мало-мальски занимаются серьезными исследовательскими задачами, а любые большие задачи считаются только на суперкомпьютере. И третье – пообщавшись с коллегами из разных вычислительных центров, мы поняли, что проблема действительно актуальная для всех, и хочется предложить универсальное решение, которое работало бы практически на любом суперкомпьютере.
– Когда ваше решение можно будет применять в жизни?
– Сейчас мы активно взаимодействуем с несколькими центрами – СПбПУ («Питерский» Политех), Межведомственным суперкомпьютерным центром, ОИЯИ. Про внедрение сложно сказать, но я надеюсь, что в ближайший год оно точно состоится, а первые результаты появятся уже через полгода. Мы работаем над тем, чтобы все работало как единая система, чтобы можно было внедрять наше решение в разные места.
– Первые результаты, вы говорите, уже есть. Значит ли это, что где-то работа ускорилась?
– Да, результаты есть. Как я уже говорил, мы сотрудничаем с Межведомственным суперкомпьютерным центром, мы получали от них лог-файлы с информацией о том, какие программы поступают к ним на суперкомпьютер, когда они запускались, с какими аргументами. Мы проверили на этих лог-файлах наши алгоритмы предсказания времени выполнения программ, и показали, что более качественная оценка времени выполнения позволяет построить более эффективное расписание выполнения программ, что в свою очередь позволяет снизить загрузку суперкомпьютеров, т. е. использовать ресурсы эффективнее.
– Над каким исследованием еще вы работаете в настоящее время?
– Сейчас работаю над двумя исследованиями. Первое связано с тематикой моей кафедры компьютерных систем. Все знают, что Wi-Fi – это технология беспроводной передачи данных, но есть отдельное направление, которое называется Wi-Fi Sensing, это детекция при помощи Wi-Fi-сигнала. Предположим, у нас есть некая комната, где установлены самые обычные точки доступа Wi-Fi. Они могут взаимодействовать с телефонами, ноутбуками либо между собой, то есть между ними постоянно идет передача информации. Любой объект, который появляется в комнате, будь то человек или любой движущийся предмет, животное, кошка, будут влиять на характеристики передаваемых сигналов между точками доступами и устройствами. Изменения этих характеристик можно детектировать и обучить модель машинного обучения для классификации движущихся объектов: прошел по нашей комнате человек или кошка. Это направление развивается довольно интенсивно в последние лет 5, а начало было положено еще раньше – лет 10 назад. Сейчас есть много работ на эту тему вплоть до того, что в штучном экземпляре были разработаны специальные точки доступа, которые позволяют детектировать жесты человека: пять пальцев он показывает или один. По документам, которые пишутся в рамках данного стандарта, понятно, что тема Wi-Fi Sensing развивается, а применяться она может в разных областях. Первое – самое очевидное – это умные дома. Нам не нужно покупать дополнительное оборудование, то есть мы можем установить специальное программное обеспечение на обычные точки доступа, которые будут следить за тем, кто у нас в доме ходит или находится. Второе – во время пожара на крупных складах или объектах. Там стоят обычные камеры в видимом диапазоне плюс камеры в инфракрасном диапазоне, но во время пожара, очевидно, они не будут работать, потому что все будет засвечено, а для диапазона Wi-Fi это не помеха. Также обычная безопасность в доме, в помещении. На эту тему был сделан ряд работ, например, пожилой человек упал, и нужно понять, ему стало плохо, он стоит или лежит, если лежит, то сразу можно вызвать скорую помощь, которая приедет и поможет. Если подумать еще, то применений у технологии Wi-Fi Sensing можно найти с два десятка.
– Чем вы конкретно занимаетесь, изучая это направление?
– Сбором данных, аналитикой, разработкой алгоритмов машинного обучения. А есть научная группа в Институте проблем передачи информации РАН им. А.А. Харкевича, которые занимаются «железной» частью, то есть у них есть специальное оборудование. Они отправляют данные нам, и мы их используем для разработки алгоритмов.
– А второе исследование?
– Его мы проводим с психологическим факультетом МГУ им. М. В. Ломоносова с группой Александра Валентиновича Вартанова. Исследование связано с распознаванием мысленно произносимых фонем. У человека перед тем, как что-то сказать, есть фаза проговаривания букв и слов «про себя», которая происходит неосознанно. На самом деле, мы можем вслух ничего не говорить, а только про себя, и у нас в мозге будут генерироваться те же сигналы, как если бы мы говорили. Если бы мы придумали способ, как считывать эти сигналы, то могли бы подключить человека условно к колонке и все, что мы думаем, мы бы услышали. Естественно, до такой умной детекции еще далеко, даже в ближайшие 10-15 лет такого не будет, но работы в этом направлении ведутся. Мы тоже движемся в этом направлении. Мы сделали упрощенный вариант – читаем не мысли и слова, а фонемы из различных групп классификации Плоткина: /a/, /b/, /f/, /g/, /m/, /r/, /u/ (см. монографию Плоткина В.Я. «Фонологические кванты», 1993).
– Как это происходит?
– На человека одевается специальный шлем, который снимает электроэнцефалограмму. В шлеме порядка 21 электродов: покрываем ими весь череп и считываем сигналы, которые генерируются нашим мозгом. Мы точно знаем области, отвечающие за речь. Соответственно нам не надо считывать все подряд – нужен сигнал от 4 электродов, расположенных над областью Broca и Wernicke. Человек сидит, на нем шлем, который снимает электроэнцефалограмму, он смотрит на экран, на котором показывается в определённый момент фонема, сначала он проговаривает ее про себя, потом вслух. И так повторяется много раз с одной и той же фонемой, затем – с разными. С помощью шлема ЭЭГ фиксируется мозговая активность, мы все это подробно записываем. Совместно с психологическим факультетом мы провели эксперименты над 20-ю людьми. Этим летом была вторая партия, то есть вторые 15 человек разного пола, возрастов. Данные получают сотрудники психологического факультета, а мы занимаемся их аналитикой и обработкой. Нам передаются электроэнцефалограммы, который представляют собой частотно-временные диаграммы. Используя эти данные, мы разрабатываем алгоритмы классификации. Так мы уже создали классификатор, который определяет, какую фонему человек сейчас хочет произнести. В данном исследовании мы активно применяем как свёрточные нейронные сети.
– Где можно применять результаты этого исследования?
– Самое очевидное – это помощь людям, у которых есть проблемы с речью, они либо не могут говорить, либо говорят с дефектами. Второе – это шаг в сторону интерфейса мозг-компьютер, то есть это помощь здоровым людям, которая бы ускоряла нашу работу. Было бы здорово набирать сообщение телефона не двумя пальцами, а сразу транслировать его из мозга туда. Это из забавного. На самом деле цель не в этом, но применять можно и таким образом. Все мы слышали про нейроинтерфейс Neuralink, который разрабатывает Илон Маск, это такая суперусовершенствованная версия того, что делаем мы. Важно также понимать, что наш метод неинвазивный, он менее точный по сравнению с инвазивными, но более доступный для проведения исследований. Сейчас не понятно, какой метод «выиграет», но объективно потенциала больше у инвазивного. Поживем – увидим.
– Вы занимаетесь очень разными исследованиями. Наверняка проще было бы прорабатывать одну тему.
– В XIX веке наука была довольно узкая, знаний было мало, и интеллигентный, уважающий себя человек изучал и должен был знать почти все предметы. Сейчас, конечно, уже не так. Сейчас в научном мире выигрывает не отдельная личность, а коллектив. Конечно, я не работаю один. Мне очень помогают в работе мои студенты, кроме того у нас есть коллаборации с разными лабораториями. Сейчас мое основное направление – это, конечно, диссертация – работа над ней занимает процентов 80 моего времени. Другими исследованиями занимаются студенты и люди из других лабораторий, а я участвую там больше как эксперт по алгоритмам машинного обучения.