Если попытаться сформулировать кратко, то нейросети – это алгоритмы, инспирированные тем, как устроен мозг и предназначенные для того, чтобы выучивать различные сложные закономерности в окружающем мире. Ключевое их отличие от других алгоритмов заключается в том, что если в стандартном алгоритме предполагается, что человек, программист описывает последовательность шагов для того, чтобы решать какую-то задачу, то в нейросетевых алгоритмах человек не описывает то, как решать задачу. Он лишь дает примеры решения задач. То есть, например, если мы говорим о нейросети, которая должна классифицировать картинки, то есть говорить, например, это картинки с домами, а другие картинки с собачками, то мы не даем алгоритм “как отличить дом от собачки?”, а просто даем много-много примеров изображений домов и собачек, для которых мы уже знаем правильный ответ, и на вход не подается изображение, а как бы на выход нейросети подается правильный ответ. И мы говорим: ты должна выучить, что вот для такого типа картинок такой ответ правильный. И специальные алгоритмы оптимизации позволяют подстроить параметры нейросети таким образом, чтобы она с наилучшим качеством эту задачу решала. И вот этот общий подход – его можно применить к огромному количеству практических задач. Если абстрактно посмотреть, какие классы задач, то это могут быть задачи классификации.
Мы можем теперь классифицировать не только картинки, а, например, шум двигателя. У вас есть автомобиль, и вы можете диагностировать, необходимо пройти профилактику, или нет.
Классифицировать звук, анализируя, есть ли какой-то тип поломки, или, может быть, он приближается. Или же, например, это может быть не просто изображение картинки, и вы ищете по своему альбому, что найти, но и это могут быть радиологические изображения, которые позволяют определить какие-то заболевания. У вас есть, например, астма или там пневмония какого-то типа. Определить по рентгеновских снимков. Это – задача классификации. Задача другого типа – это задача, связанная с предсказанием следующего элемента последовательности. То есть, например, у вас есть много-много данных, и вы хотите предположить, что будет в будущем, на следующем шаге. То, с чего это все началось – машинный перевод. У вас есть, предположим, два предложения. Первое предложение на одном языке. Второе предложение на другом языке. И вы получаете на вход некоторую последовательность. Это слова на первом языке. И вы как бы генерируете по одному слову перевод на следующем языке. Это как предсказывать будущее – что могло бы быть на другом языке в отношении первых словесных предложений? И так, слово за словом, генерируете предложения на втором языке. И именно этот подход, связанный с генерацией, оказался сегодня наиболее востребованным и фантастически эффективным. Эти исследования продолжаются последние три года. Но сейчас оказалось, что при помощи нейросети можно создавать какие-то немыслимые алгоритмы, которые получили название “большие языковые модели”. Представим себе все наши тексты на естественном языке в виде некоторой последовательности, и эту последовательность породил человек. И, соответственно, мы хотим теперь смоделировать процесс порождения этой последовательности и обучаем наш алгоритм предсказывать последующее слово исходя из некой предыдущей последовательности – какое наиболее вероятное продолжение было бы, если мы возьмем во внимание все тексты в литературе, в интернете и так далее. И таким образом мы говорим, что это генеративная модель, потому что она продолжает, как бы генерирует дальше текст. И это первая вещь. А вторая вещь – это генерация изображений. Здесь мы можем точно такой же подход применить и генерировать картинку, например, по ее части. То есть мы имеем половину картинки, мы хотим сгенерировать вторую половину картинки. Но более того, если у нас есть данные, которые сочетают в себе текст и картинку, например, это изображение с подписями из интернета, то мы можем нашу модель обучить предсказывать. Для нейросети все равно, какого рода данные.
Нейросетевые алгоритмы удивительно устойчивы и универсальны. Мы можем на вход подать текст, а на выходе получить изображение. И наоборот – на вход подать изображение, а на выходе получить текст. Таким образом, мы можем построить генеративную модель, которая, получая на вход текст, последовательность слов, генерирует картинку, которая этому тексту соответствует. Или, наоборот, получая на вход картинку, генерирует текст, который ей соответствует. И это открывает широчайшие возможности для экспериментов. Потому что получается, что мы можем писать какой-то текст, и этот текст будет синтезирован нашей нейросетью. Это сейчас одно из наиболее фантастических приложений и экспериментов, которые появились, они еще пока не нашли настоящего отображения в каких то продуктах, но в культуре и в науке они явно создали очень большой бум. Также в стороне стоит и третье, на мой взгляд, наиболее масштабное применение таких генеративных моделей – это предсказание трехмерных последовательностей белков. Если у вас есть в биологии описание белка как последовательности аминокислот, то, соответственно, этой последовательности аминокислот соответствует какая-то трехмерная структура белка, которая определяет его функцию. И на самом деле последовательность аминокислот для белков очень легко получить. А вот трехмерную структуру рассчитать при помощи квантовой механики, если 100 и больше этих аминокислот, ну и даже если десятки – сложно очень. И поэтому для того, чтобы ее выяснить, буквально до последнего времени люди проводили эксперименты, которые требовали выделения этого чистого белка и его кристаллизацию. Потом на синхротроне нужно было с него снять рентгеновскую картину, после этого ее расшифровать и мы получали трехмерную структур белка. И это занимало где то один год на один белок. Удалось обучить модель, которая по последовательности аминокислот предсказывает трехмерную структуру, как бы генерирует ее. И сейчас буквально все белки, которые мы знаем, уже трехмерной структуры. Это значит, что для биологических наук это просто гигантский скачок вперед, потому что не нужно тратить годы. То есть мы сэкономили какие-то тысячи лет экспериментов.
И хотя сейчас мы этого не замечаем в нашей жизни так хорошо, как картинки и тексты, которые генерируются, но с точки зрения того, какое это окажет через 5-10 лет влияние на здравоохранение, на наше здоровье, продолжительность жизни, да и вообще наше понимание жизни, на то, что такое жизнь в принципе – это с фундаментальной точки зрения мне кажется очень захватывающей областью.