...что может быть лучшим поводом для разговора 🤓
Почему это круто? судите сами:
🔹создана модель, демонстрирующая очень качественное предсказание взаимосвязи белковой последовательности с функцией,
🔹помогает в этом глубокая теоретическая база + мощнейшая матчасть = по-умному модель называется вариационный автоэнкодер функционального поиска в пространстве последовательностей,
🔹как успешные примеры, модель "задизайнила" два фермента = фенилаланингидроксилазу с каталитической активностью в 2.5 раза выше, чем у дикого типа + ангидразу с термостабильностью выше, чем у всех природных вариантов.
...по итогу имеем инструмент дизайна белков с заданными свойствами! статья тут ⬅️
А сейчас состоится сеанс научной (и работающей) магии - но с (некоторым) разоблачением 😎
▪️как модель "угадывает" белок = предсказывает конкретную последовательность, обладающую нужным свойством? начнём с того, что она вообще НЕ знает как устроены белки и как последовательность связана со структурой,
▪️модель обучена на миллионах белков, для которых свойства изучены/аннотированы; на этом этапе = "кодирование", создаётся некая (скрытая и сложная) функция, отражающая взаимозависимость последовательности белка и искомого свойства,
▪️на этапе решения задач, происходит обратное "декодирование" = модель находит точки на пресловутой функции с наилучшими значениями + переводит эти точки в белковые последовательности.
Если схематично:
Представим, что у нас выписаны варианты белка (обозначу их буквами, подразумевая, что каждый вариант это последовательность аминокислот) + для многих мы знаем (экспериментально померяли) активность. У вариантов, для которых активность не знаем, пока оставим "?" Выглядит так:
вариант =====> шкала активности
A =====
B =======
C ???
D ======
E ???
F =
Если подсунуть автоэнкодеру эти данные и дать ему как следует "подумать", он подберёт функцию, отражающую зависимость между последовательностью и активностью. Предсказанные значения функции возникнут на месте ранее не-аннотированных значений:
A =====
B =======
C ---------------- >>> предсказание
D ======
E -------- >>> предсказание
F =
Кстати, вид этой функции в итоге не известен - модель становится "чёрным ящиком". Спрашиваем у неё "где функция имеет оптимум?" и получаем (в данном случае) ответ "в точке C" + соотв. последовательность. Которую можно проверить экспериментально.
В действительности это очень показательный AI-подход, в самом сакральном смысле эпитета "аrtificial":
🔸 модели НЕ "объясняли", что последовательность белка сворачивается в пространственную структуру и выполняет биохимическую функцию... модель находит наиболее устойчивое преобразование из одного представления данных (последовательность) в другое (активность) = у неё нет "человеческого понимания", зато куча данных и мощные вычисления,
🔸ровно это сработало у больших языковых моделей = на грандиозном количестве примеров они отлично "запомнили", какие слоги/слова/предложения сочетаются друг с другом, с какими вероятностями,
🔸такие модели НЕ "понимают" предметную область (будь то язык или биохимия), но тем примечательнее, что для создания новых смыслов достаточно (порою!) хорошей "насмотренности" = большой обучающей выборки.
...именно вариационные автоэнкодеры были в основе многих AI-систем, например Stable Diffusion. Но сейчас среди рассуждающих моделей лидируют так называемые трансформеры. Оказалось, что в случае общения лучше не оптимизировать многомерную функцию, а просто угадывать следующий токен = "сказав А, скажи и Б", за умного сойдёшь. Сугубое ИМХО: VAE должны в итоге победить и в рассуждениях, потому что "пространство смыслов" на самом деле многомерно... но это обсудим как-нибудь отдельно 🥸
Если пост