🔬Beyond AlphaFold: How Boltz is Open-Sourcing the Future of Drug Discovery
Подкаст Latent Space с Gabriele Corso и Jeremy Wohlwend — сооснователями Boltz и авторами «манифеста Boltz», — посвящён эволюции моделей структурной биологии от AlphaFold к их собственному открытому набору Boltz-1 и Boltz-2. Предсказание структуры одиночных белковых цепей во многом «решено» благодаря эволюционным подсказкам (коэволюции аминокислот), но следующий рубеж — моделирование взаимодействий (белок-лиганд, белок-белок) и генеративный дизайн белков. Ключевым скачком стал переход от регрессии к генеративной диффузии, позволяющей сэмплировать распределение возможных структур; при этом специализированные эквивариантные архитектуры по-прежнему превосходят обычные трансформеры. Boltz-2 объединяет предсказание структуры и последовательности и добавляет предсказание аффинности, а валидация на 9 мишенях без известных взаимодействий в PDB дала наномолярные связыватели для двух третей из них. Запущенная платформа Boltz Lab предлагает «агентов» для дизайна белков и малых молекул, работающих в 10 раз быстрее открытых версий, и нацелена на привлечение скептически настроенных медицинских химиков. Компания подчёркивает миссию демократизации доступа через open source и заявляет, что не собирается становиться терапевтической компанией.
🔬За пределами AlphaFold: как Boltz открывает исходный код будущего разработки лекарств
В этом подкасте участвуют Gabriele Corso и Jeremy Wohlwend, сооснователи Boltz и авторы манифеста Boltz, которые обсуждают стремительную эволюцию моделей структурной биологии от AlphaFold до их собственного открытого набора — Boltz-1 и Boltz-2. Центральный тезис состоит в том, что хотя предсказание структуры одиночной белковой цепи во многом «решено» благодаря эволюционным подсказкам, следующий рубеж лежит в моделировании сложных взаимодействий (белок-лиганд, белок-белок) и генеративном дизайне белков, которые Boltz стремится сделать общедоступными через открытые исходники и масштабируемую инфраструктуру.
Полный видеоподкаст
На YouTube!
Таймкоды
00:00 Введение в бенчмаркинг и «решённую» задачу о белках06:48 Эволюционные подсказки и коэволюция в предсказании структуры10:00 Важность функции белка и болезненных состояний15:31 Переход от возможностей AlphaFold 2 к AlphaFold 319:48 Генеративное моделирование против регрессии в структурной биологии25:00 «Горький урок» и специализированные ИИ-архитектуры29:14 Истории разработки: обучение Boltz-1 с ограниченным бюджетом32:00 Стратегии валидации и Protein Data Bank (PDB)37:26 Миссия Boltz: демократизация доступа и open source41:43 Построение самоподдерживающегося исследовательского сообщества44:40 Достижения Boltz-2: предсказание аффинности и дизайн51:03 BoltzGen: объединение предсказания структуры и последовательности55:18 Результаты масштабной валидации в мокрой лаборатории01:02:44 Запуск продукта Boltz Lab: агенты и инфраструктура01:13:06 Будущие направления: developability и «виртуальная клетка»01:17:35 Взаимодействие со скептически настроенными медицинскими химиками
Ключевое резюме
Эволюция предсказания структуры и эволюционные подсказки
Коэволюционные ландшафты: спикеры объясняют, что прорывной прогресс в предсказании одиночных цепей опирался на расшифровку эволюционных корреляций, где мутация в одной позиции требует мутации в другой ради сохранения трёхмерной структуры.Структура против сворачивания: они разделяют предсказание структуры (получение конечного ответа) и сворачивание (folding) (кинетический процесс достижения этого состояния), отмечая, что в моделировании последнего область всё ещё довольно слаба.Физика против статистики: RJ полагает, что хотя модели используют эволюционную статистику, чтобы найти нужную «долину» в энергетическом ландшафте, они, вероятно, обладают «лёгким пониманием» физики, позволяющим уточнить локальный минимум.
Переход к генеративным архитектурам
Генеративное моделирование: ключевым скачком в AlphaFold 3 и Boltz-1 стал переход от регрессии (предсказание одной статической координаты) к генеративному диффузионному подходу, который сэмплирует из апостериорного распределения.Работа с неопределённостью: этот сдвиг позволяет моделям представлять множество конформационных состояний и избегать эффекта «усреднения», характерного для регрессионных моделей, когда истинный ответ неоднозначен.Специализированные архитектуры: несмотря на «горький урок» универсальных трансформеров, спикеры утверждают, что эквивариантные архитектуры остаются значительно превосходящими для биологических данных из-за присущих молекулам трёхмерных геометрических ограничений.
Boltz-2 и генеративный дизайн белков
Единое кодирование: Boltz-2 (и BoltzGen) трактует предсказание структуры и последовательности как единую задачу, кодируя идентичность аминокислот в атомный состав предсказанной структуры.Специфика дизайна: вместо последовательности пользователи подают модели пустые токены и высокоуровневую «спецификацию» (например, каркас антитела), а модель декодирует и трёхмерную структуру, и соответствующие аминокислоты.Предсказание аффинности: хотя уверенность (confidence) модели — распространённая метрика, Boltz-2 фокусируется на предсказании аффинности — количественной оценке того, насколько прочно спроектированный связыватель прикрепится к своей мишени.
Валидация в реальном мире и продуктизация
Обобщённая валидация: чтобы доказать, что модель не просто «пересказывает» известные данные, Boltz протестировала свои дизайны на 9 мишенях с нулём известных взаимодействий в PDB, добившись наномолярных связывателей для двух третей из них.Инфраструктура Boltz Lab: только что запущенная платформа Boltz Lab предоставляет «агентов» для дизайна белков и малых молекул, оптимизированных для работы в 10 раз быстрее открытых версий благодаря проприетарным GPU-ядрам.Человек в контуре: платформа спроектирована так, чтобы переубеждать скептически настроенных медицинских химиков, позволяя им запускать параллельные скрининги и использовать собственную интуицию для фильтрации выходов модели.
Расшифровка
RJ [00:05:35]: Но цель по-прежнему в том, чтобы, знаете, по-настоящему бросить вызов моделям: насколько хорошо эти модели обобщают? И, знаете, мы видели на некоторых последних соревнованиях CASP, что хотя мы стали очень-очень хороши в белках, особенно мономерных белках, другие модальности всё ещё остаются довольно трудными. Поэтому в этой области действительно важно, чтобы были вот такие усилия по сбору сложных бенчмарков. Это держит нас в рамках реальности относительно того, на что модели способны, а на что — нет.
Gabriel [00:06:26]: Да, интересно, что вы это говорите, ведь в каком-то смысле на CASP, знаете, на CASP 14 одна задача была решена, причём довольно исчерпывающе, верно? Но в то же время это было только началом. Так что можно спросить: какая именно задача, как вы бы сказали, была решена? И тогда — что осталось, что, вероятно, остаётся весьма открытым.
RJ [00:06:48]: Думаю, мы будем избегать слова «решено», потому что у нас много друзей в сообществе, которые довольно расстраиваются от этого слова. И я считаю, вполне справедливо. Но задача, по которой был достигнут большой прогресс, — это способность предсказывать структуру одноцепочечных белков. Дело в том, что белки могут состоять из многих цепей. А одноцепочечные белки — это просто одна последовательность аминокислот. И одна из причин, по которой нам удалось добиться такого прогресса, в том, что мы берём много подсказок из эволюции. То есть модели работают так: они, в некотором смысле, декодируют множество подсказок, которые исходят из эволюционных ландшафтов. Так, если у вас есть какой-то белок у животного, и вы находите похожий белок у разных организмов, вы можете обнаружить в них разные мутации. И, как выясняется, если взять много последовательностей вместе и проанализировать их, видно, что некоторые позиции в последовательности склонны эволюционировать одновременно с другими позициями — этакая корреляция между разными позициями. И оказывается, что это, как правило, подсказка о том, что эти две позиции близки в трёх измерениях. Так что часть прорыва — это наша способность очень-очень эффективно декодировать и это. Но отсюда следует, что в отсутствие такого коэволюционного ландшафта модели работают не так хорошо. И поэтому, думаю, когда эта информация доступна, можно, наверное, сказать, что задача в некотором роде решена — с точки зрения предсказания структуры. Когда же её нет, всё гораздо сложнее. И, думаю, стоит ещё различать — иногда мы немного путаем — предсказание структуры и сворачивание. Сворачивание — это более сложный процесс собственно понимания того, как белок переходит из этого неупорядоченного состояния в структурированное. И вот в этом, мне кажется, мы не так уж сильно продвинулись. А вот в идее, знаете, идти сразу к ответу — в этом мы стали довольно хороши.
Brandon [00:08:49]: То есть есть некий белок, который представляет собой просто длинную цепь, и она сворачивается. Да. И мы хорошо умеем переходить от этой длинной цепи в той форме, в которой она изначально была, к итоговой структуре. Но мы не знаем, как именно она обязательно приходит в это состояние. И могут быть промежуточные состояния, в которых она иногда находится и о которых мы не знаем.
RJ [00:09:10]: Именно так. И это связано также с нашей общей способностью моделировать разные… знаете, белки не статичны. Они двигаются, принимают разные формы в зависимости от своих энергетических состояний. И мне кажется, мы тоже не очень хорошо понимаем разные состояния, в которых может находиться белок, и с какой частотой, с какой вероятностью. Так что, думаю, две эти задачи в каком-то смысле довольно связаны. Решать ещё много чего. Но мне кажется, в своё время было очень удивительно, что даже с этими эволюционными подсказками нам удалось добиться такого впечатляющего прогресса.
Brandon [00:09:45]: Я хочу спросить, почему промежуточные состояния важны. Но сначала мне хочется понять: почему нам вообще не всё равно, какую форму имеют белки?
Gabriel [00:09:54]: Да, ну, белки — это, по сути, машины нашего тела. Все процессы, которые есть в наших клетках, обычно работают через белки, иногда через другие молекулы, через своего рода промежуточные взаимодействия. И через эти взаимодействия мы получаем всевозможные клеточные функции. Так что когда мы пытаемся понять биологию, как работает наше тело, как работают болезни, мы часто стараемся свести это к вопросу: что идёт правильно в случае нормальной биологической функции и что идёт не так в случае болезненного состояния. И мы сводим это, по сути, к белкам и другим молекулам и их взаимодействию. И поэтому, когда мы пытаемся предсказать структуру белков, критически важно иметь понимание этих взаимодействий. Это немного похоже на разницу между… имея, скажем, список деталей, которые вы бы вставили в автомобиль, и видя автомобиль в его финальной форме — видеть автомобиль действительно помогает понять, что он делает. С другой стороны, отвечая на ваш вопрос, почему нас волнует, как сворачивается белок или как собран автомобиль, — дело в том, что иногда, когда что-то идёт не так, бывают случаи неправильного сворачивания белков. При некоторых болезнях и так далее, если мы не понимаем этот процесс сворачивания, мы по-настоящему не знаем, как вмешаться.
RJ [00:11:30]: Есть хорошая фраза, кажется, в статье об AlphaFold 2, где они обсуждают, почему мы вообще надеемся, что можем взяться за эту задачу. И там есть мысль о том, что для белков, которые сворачиваются, процесс сворачивания почти мгновенен, и это сильный сигнал о том, что мы, возможно, способны предсказать эту очень ограниченную вещь, которую белок проделывает так быстро. И, конечно, это не так для всех белков. Есть много по-настоящему интересных механизмов в клетках, но да, помню, читал это и подумал: да, это в некотором роде проницательная мысль.
Gabriel [00:12:10]: Думаю, одна из интересных вещей про задачу сворачивания белков в том, что её раньше действительно изучали. И отчасти причина, по которой люди считали её невозможной, в том, что её раньше изучали как своего рода классический пример NP-задачи. То есть существует столько разных форм, которые может принять эта аминокислота, и это растёт комбинаторно с размером последовательности. Так что раньше было довольно много, по сути, более теоретических компьютерно-научных размышлений о сворачивании белков как об NP-задаче и его изучения. И поэтому было очень удивительно ещё и с этой точки зрения видеть, как машинное обучение так ясно показало: в этих последовательностях есть некий сигнал — через эволюцию, но также и через другие вещи, которые мы, люди, наверное, по-настоящему не способны понять, но которые модели усвоили.
Brandon [00:13:07]: И вот Andrew White — мы разговаривали с ним пару недель назад, и он сказал, что следил за этим развитием и что были даже разработаны ASIC специально для решения этой задачи. Так что, опять же, были потрачены многие-многие миллионы вычислительных часов в попытках решить эту задачу до AlphaFold. И, чтобы прояснить, одна вещь, которую вы упомянули, — это что есть вот эта коэволюция мутаций и что её видно снова и снова у разных видов. Так объясните: почему это даёт нам хорошую подсказку о том, что они находятся близко друг к другу? Да.
RJ [00:13:41]: Эм, представьте это так: если у меня есть какая-то аминокислота, которая мутирует, это повлияет на всё вокруг неё. Верно. В трёх измерениях. И поэтому это почти как если бы белок через несколько, вероятно случайных, мутаций и эволюцию в итоге как бы «вычисляет», что и эта другая аминокислота тоже должна измениться, чтобы структура сохранилась. Так что весь этот принцип в том, что структура, вероятно, в значительной степени сохраняется, потому что с ней связана функция. И поэтому это, по сути, разные позиции, компенсирующие друг друга. Понятно.
Brandon [00:14:17]: Эти подсказки в совокупности дают нам много. Да. То есть можно начать смотреть, какая информация о том, что близко к чему, есть, а затем можно начать смотреть, какие виды укладок возможны при данной структуре, и каким будет конечное состояние.
RJ [00:14:30]: И поэтому можно сделать много выводов о том, какова реальная общая форма. Да, именно так. Это почти как если бы у вас была эта большая трёхмерная долина, где вы как бы пытаетесь найти эти низкоэнергетические состояния, и нужно перебрать так много, что это почти ошеломляет. Но эти подсказки как бы помещают вас в область пространства, которая уже довольно близка к решению — может, ещё не совсем там, но близко. И тут всегда возникает вопрос: сколько физики эти модели усваивают по сравнению с чистой статистикой? И, по крайней мере я считаю, что одна из вещей в том, что, как только вы оказались в этой примерной области пространства решений, модели обладают неким пониманием того, как привести вас к более низкоэнергетическому состоянию. Так что, может, у вас есть лёгкое понимание физики, но, наверное, недостаточное, чтобы знать, как навигировать по всему пространству. Верно. Окей.
Brandon [00:15:25]: То есть нам нужно дать ему эти подсказки, чтобы как бы попасть в правильную долину, и тогда он находит минимум или что-то в этом роде. Да.
Gabriel [00:15:31]: Одно интересное объяснение того, как работает AlphaFold, которое, мне кажется, весьма проницательно — оно, конечно, не охватывает всё, что делает AlphaFold, — я его позаимствую у Sergey Ovchinnikov из MIT. Он смотрит на AlphaFold так: интересная вещь в AlphaFold в том, что у него очень своеобразная архитектура, которую мы видели и которая работает с этим попарным контекстом между аминокислотами. И идея в том, что, вероятно, MSA даёт вам эту первую подсказку о том, какие потенциальные аминокислоты близки друг к другу. MSA — это множественное выравнивание последовательностей (multiple sequence alignment). Именно. Да. Именно. Эта эволюционная информация. Да. И из этой эволюционной информации о потенциальных контактах модель как бы запускает что-то вроде алгоритма Дейкстры, где она декодирует: окей, эти должны быть близки. Окей, тогда если эти близки и это соединено с этим, то и это должно быть как-то близко. И вы декодируете это, и это становится, по сути, попарной матрицей расстояний. А затем из этой грубой попарной матрицы расстояний вы декодируете…
Brandon [00:16:42]: …собственно потенциальную структуру. Интересно. То есть тут как бы две разные вещи происходят — грубая оптимизация, а потом точная. Интересно. Да. Очень круто.
Gabriel [00:16:53]: Да. Вы упомянули AlphaFold 3. Так что, может, самое время перейти к нему. Итак, вышел AlphaFold 2, и это было, я думаю, довольно революционно для этой области. Все очень воодушевились. Несколько лет спустя вышел AlphaFold 3, и, может, для ещё немного истории, — какие были улучшения в AlphaFold 3? А потом, думаю, после этого мы немного поговорим о том, как это связано с Boltz. Но в общем. Да. Итак, после выхода AlphaFold 2 мы с Jeremy, как и многие другие, пришли в эту область, и очевидной задачей, которая стала ясна после того, было: окей, теперь мы умеем работать с отдельными цепями. Можем ли мы работать с взаимодействиями — взаимодействиями разных белков, белков с малыми молекулами, белков с другими молекулами? И поэтому — почему взаимодействия важны? Взаимодействия важны потому, что в некотором смысле именно так эти машины, эти белки, выполняют свою функцию: функция возникает из того, как они взаимодействуют с другими белками и молекулами. И вообще-то, изначально отдельные машины часто, как упоминал Jeremy, состоят не из одной цепи, а из множества цепей. И эти множественные цепи взаимодействуют с другими молекулами, придавая им функцию. А с другой стороны, когда мы пытаемся вмешаться в эти взаимодействия — подумайте о болезни, о биосенсоре или о множестве других случаев — мы пытаемся спроектировать молекулы или белки, которые определённым образом взаимодействуют с тем, что мы бы назвали белком-мишенью или мишенью. После AlphaFold 2 эта задача стала очевидно одной из крупнейших в области. Многие группы, включая нашу и другие, начали вносить вклад в эту задачу моделирования взаимодействий. И AlphaFold 3 был значительным продвижением в задаче моделирования взаимодействий. Одна из интересных вещей, которую им удалось сделать: тогда как часть остальной области пыталась моделировать разные взаимодействия по отдельности — как белок взаимодействует с малыми молекулами, как белок взаимодействует с другими белками, как РНК или ДНК образуют свою структуру, — они объединили всё вместе и обучили очень большие модели с множеством улучшений, включая изменение некоторых ключевых архитектурных решений, и сумели получить единую модель, способную установить новый рекорд (state-of-the-art) производительности по всем этим разным модальностям, будь то белок, малые молекулы — что критически важно для разработки новых лекарств, — белок-белок, понимание взаимодействий белков с РНК и ДНК и так далее.
Brandon [00:19:39]: Просто чтобы удовлетворить ИИ-инженеров в аудитории: какие были некоторые из ключевых архитектурных изменений и изменений в данных, которые сделали это возможным?
Gabriel [00:19:48]: Да, одно критически важное, которое не было исключительно уникальным для AlphaFold 3 — на самом деле было ещё несколько команд, включая нашу, которые это предложили, — это переход от моделирования предсказания структуры как задачи регрессии, где есть единственный ответ и вы пытаетесь попасть в него, к задаче генеративного моделирования, где у вас есть апостериорное распределение возможных структур и вы пытаетесь сэмплировать из этого распределения. И это достигает двух вещей. Во-первых, это начинает позволять нам пытаться моделировать более динамичные системы. Как мы говорили, некоторые из этих структур действительно могут принимать множество форм. И теперь вы можете моделировать это, моделируя всё распределение. Но, во-вторых, с более фундаментальной модельной точки зрения, когда вы переходите от задачи регрессии к задаче генеративного моделирования, вы по-настоящему по-другому подходите к тому, как думаете о неопределённости в модели. Так, если подумать: я не определился между разными ответами — что произойдёт в регрессионной модели, это что я попытаюсь сделать среднее из этих разных ответов, которые были у меня в голове. Когда же у вас генеративная модель, вы сэмплируете все эти разные ответы, а затем, может, используете отдельные модели, чтобы проанализировать эти разные ответы и выбрать лучший. Так что это было одним из критических улучшений. Другое улучшение в том, что они значительно упростили, в некоторой степени, архитектуру, особенно финальной модели, которая берёт эти попарные представления и превращает их в собственно структуру. И теперь это выглядит гораздо больше как более традиционный трансформер, чем как очень специализированная эквивариантная архитектура, какой это было в AlphaFold 3.
Brandon [00:21:41]: То есть это немного «горький урок».
Gabriel [00:21:45]: Есть некоторый аспект «горького урока», но интересно то, что это очень далеко от того, чтобы быть простым трансформером. Эта область — одна из, я бы сказал, очень немногих областей прикладного машинного обучения, где у нас всё ещё есть очень специализированные архитектуры. И многие пытались заменить эти архитектуры простыми трансформерами. В области много споров, но я думаю, что большинство сходится во мнении, что производительность, которую мы получаем от специализированной архитектуры, значительно превосходит то, что мы получаем через одиночный трансформер. Ещё одна интересная вещь, оставаясь на стороне моделирования и машинного обучения, которая, как мне кажется, несколько контринтуитивна по сравнению с некоторыми другими областями и приложениями, — это что масштабирование сработало в этой области не совсем так. При этом такие модели, как AlphaFold 2 и AlphaFold 3, всё же очень большие модели.
RJ [00:29:14]: …в положении, думаю, где у нас был некоторый опыт работы с данными и с этим типом моделей. И, думаю, это уже поставило нас в хорошее положение, чтобы произвести это быстро. И я бы даже сказал, думаю, мы могли бы сделать это и быстрее. Проблема была в том, что какое-то время у нас по-настоящему не было вычислительных мощностей. И поэтому мы не могли толком обучить модель. И вообще-то большую модель мы обучили лишь один раз. Вот сколько у нас было вычислительных ресурсов. Мы могли обучить её только один раз. И поэтому, пока модель обучалась, мы находили баги направо и налево. Многие из них написал я. И помню, я как бы делал хирургическую операцию посреди процесса — останавливал прогон, вносил исправление, перезапускал. И да, мы так и не вернулись к началу. Мы просто продолжали её обучать с исправлениями багов по ходу, что теперь невозможно воспроизвести. Да, да, нет, эта модель прошла через такую программу обучения, что усвоила какие-то странные вещи. Но да, каким-то чудом всё получилось.
Gabriel [00:30:13]: Другая забавная вещь в том, что большую часть этой модели мы обучали на кластере от Министерства энергетики (Department of Energy). Но это вроде как общий кластер, которым пользуется много групп. И поэтому мы по сути обучали модель два дня, а потом она возвращалась в очередь и оставалась там на неделю. О, да. И поэтому было довольно мучительно. И вот ближе к концу мы с Evan, CEO компании Genesis, — я рассказывал ему немного о проекте и об этой фрустрации с вычислениями. И, к счастью, он предложил помочь. И мы получили помощь от Genesis, чтобы доделать модель. Иначе это, наверное, заняло бы пару лишних недель.
Brandon [00:30:57]: Да, да.
Brandon [00:31:02]: И затем, и затем оттуда есть некоторое развитие.
Gabriel [00:31:06]: Да, я бы сказал, что и эта, но и другой набор моделей, появившихся примерно в то же время, были большим скачком по сравнению с предыдущими открытыми моделями и по-настоящему приближались к уровню AlphaFold 3. Но я бы всё же сказал, что даже по сей день есть некоторые конкретные случаи, где AlphaFold 3 работает лучше. Думаю, один распространённый пример — предсказание антитело-антиген, где AlphaFold 3 во многих ситуациях, кажется, по-прежнему имеет преимущество. Очевидно, это несколько разные модели. Вы их запускаете и получаете разные результаты. Так что не всегда так, что одна модель лучше другой, но в совокупности мы всё же, особенно в то время…
Brandon [00:32:00]: …то есть AlphaFold 3 всё ещё имеет некоторое преимущество. Нам стоит поговорить об этом подробнее, когда будем обсуждать BoltzGen, но как вы узнаёте, что одна модель лучше другой? Вот вы — я делаю предсказание, вы делаете предсказание — как вы узнаёте?
Gabriel [00:32:11]: Да, в общем легко, знаете, — отличная вещь в предсказании структуры (и когда мы перейдём в пространство дизайна новых малых молекул, новых белков, это станет гораздо сложнее), но отличная вещь в предсказании структуры в том, что — немного как делал CASP — по сути способ оценить их в том, что вы обучаете модель на структурах, которые были опубликованы в области вплоть до определённого момента. И, знаете, одна из вещей, о которой мы не говорили и которая была по-настоящему критически важна во всём этом развитии, — это PDB, Protein Data Bank. Это общий ресурс, по сути общая база данных, куда каждый биолог публикует свои структуры. И поэтому мы можем обучаться на всех структурах, что были помещены в PDB до определённой даты. А затем мы ищем недавние структуры — окей, какие структуры выглядят довольно непохожими на всё, что было опубликовано раньше, потому что мы по-настоящему хотим попытаться понять обобщение.
Brandon [00:33:13]: А затем на этой новой структуре мы оцениваем все эти разные модели. И вы просто знаете, когда был обучен AlphaFold 3, — вы намеренно обучаете до той же даты или что-то в этом роде. Именно. Верно. Да.
Gabriel [00:33:24]: И вот это, по сути, способ, которым можно довольно легко сравнить эти модели — что, очевидно, предполагает, что обучение… Ты всегда был очень увлечён валидацией. Помню DiffDock, а потом был DiffDockL и DockGen. Ты очень тщательно об этом думал в прошлом. На самом деле, думаю, DockGen — это довольно забавная история, и, не знаю, хочешь ли ты о ней рассказать. Это интересный… Да, думаю, одна из удивительных вещей в выкладывании всего в open source — это что мы получаем огромную обратную связь от области. И иногда мы получаем отличную обратную связь от людей, которым очень нравится… Но, честно говоря, чаще всего, и это, может, и есть самая полезная обратная связь, — это когда люди делятся тем, где оно не работает. И поэтому, в конце концов, это критически важно. И это ещё и то, что есть и в других областях машинного обучения: чтобы делать прогресс в машинном обучении, всегда критически важно задавать чёткие бенчмарки. И по мере того как вы делаете прогресс на определённых бенчмарках, вам нужно улучшать бенчмарки и делать их всё сложнее и сложнее. И это, по сути, и есть прогрессия того, как работает область. И вот пример DockGen: мы опубликовали эту первоначальную модель под названием DiffDock на первом году моей аспирантуры, которая была одной из ранних моделей, пытавшихся предсказать взаимодействия между белками и малыми молекулами, — мы выпустили её через год после публикации AlphaFold 2. И с одной стороны, на тех бенчмарках, что мы использовали в то время, DiffDock работал очень хорошо, превосходя некоторые традиционные методы на основе физики. Но с другой стороны, когда мы начали давать эти инструменты многим биологам, — и один пример, с которым мы сотрудничали, это группа Nick Polizzi в Harvard, — мы стали замечать чёткую закономерность: для белков, очень отличающихся от тех, на которых мы обучались, модель испытывала трудности. И поэтому стало ясно, что, вероятно, именно сюда нам стоит направить фокус. И мы сначала разработали вместе с Nick и его группой новый бенчмарк, а затем взялись и сказали: окей, что мы можем изменить в текущей архитектуре, чтобы улучшить эту закономерность и обобщение? И это то же самое, что мы делаем и сегодня: где модель не работает — и затем, как только у нас есть этот бенчмарк, давайте попробуем прогнать любые идеи о проблеме, которые у нас есть.
RJ [00:36:15]: И в области много здорового скептицизма, что, думаю, прекрасно. И, думаю, совершенно очевидно, что есть масса вещей, на которых модели по-настоящему хорошо не работают, но, думаю, одна вещь, которая, вероятно, неоспорима, — это просто темп прогресса и то, насколько лучше мы становимся каждый год. И поэтому, думаю, если предположить какой-либо постоянный темп прогресса в дальнейшем, то в какой-то момент в будущем всё будет выглядеть довольно круто.
Gabriel [00:36:42]: ChatGPT появился всего три года назад. Да, это безумие, верно?
RJ [00:36:45]: Ну да, да, да, это одна из таких вещей. Когда ты этим занимаешься, находишься в области, ты не видишь, как оно надвигается, понимаете? И, думаю, да, надеюсь, мы продолжим иметь столько же прогресса, сколько было за последние несколько лет.
Brandon [00:36:55]: Это, может, отступление, но мне очень любопытно: вы получаете эту отличную обратную связь от сообщества, верно, благодаря тому что вы open source. Мой вопрос отчасти в том — окей, да, если вы открываете исходники, и все могут скопировать то, что вы сделали, но это ещё и, может, балансирование приоритетов, верно? Когда все мои клиенты говорят: я хочу вот это, в модели есть все эти проблемы. Да, да. Но моим клиентам всё равно, верно? Так как вы об этом думаете? Да.
Gabriel [00:37:26]: Я бы сказал пару вещей. Во-первых, частью нашей цели с Boltz — и это также закреплено как миссия public benefit company, которую мы основали — является демократизация доступа к этим инструментам. Но одна из причин, почему мы поняли, что Boltz должна быть компанией, а не просто академическим проектом, в том, что выложить модель на GitHub определённо недостаточно, чтобы химики и биологи — как в академии, так и в биотехе и фарме — стали использовать вашу модель в своих терапевтических программах. И поэтому многое из того, о чём мы думаем в Boltz помимо просто моделей, — это размышления обо всех слоях, которые ложатся поверх моделей, чтобы перейти от этих моделей к чему-то, что может по-настоящему дать возможности учёным в индустрии. И это идёт в построение правильных рабочих процессов, которые берут, например, данные и пытаются напрямую отвечать на те задачи, которые ставят химики и биологи, а также в построение инфраструктуры. И всё это к тому, что даже при полностью открытых моделях мы видим огромный потенциал для продуктов в этом пространстве, и критическая часть про продукт в том, что даже, например, с открытой моделью её запуск не бесплатен — как мы говорили, это довольно дорогие модели, особенно… и, может, мы к этому ещё перейдём, в эти дни мы наблюдаем довольно резкое масштабирование на этапе инференса этих моделей, где чем больше вы их запускаете, тем лучше результаты. Но тут вы начинаете доходить до точки, где вычисления и их стоимость становятся критическим фактором. И поэтому вложение большой работы в построение правильной инфраструктуры, оптимизаций и так далее по-настоящему позволяет нам предоставлять, возможно, гораздо лучший сервис, чем открытые модели. Это к тому, что хотя с продуктом мы можем предоставить гораздо лучший сервис, я всё же считаю — и мы продолжим выкладывать много наших моделей в open source, — потому что критическая роль open source-моделей, как мне кажется, в том, чтобы помогать сообществу двигать исследования вперёд, от чего все мы выигрываем. И поэтому мы, с одной стороны, продолжим выкладывать некоторые из наших базовых моделей в open source, чтобы область могла на них строить, и, как мы обсуждали ранее, мы многому учимся из того, как область использует и строит поверх наших моделей, — но при этом будем пытаться построить продукт, дающий учёным наилучший возможный опыт. Так, чтобы химику или биологу не нужно было разворачивать GPU и настраивать нашу открытую модель определённым образом, а можно было просто, немного как я, — хотя я и компьютерный учёный, специалист по машинному обучению, я не обязательно беру открытую LLM и пытаюсь её разворачивать, а просто, может, открываю приложение GPT или Claude Code и использую как отличный продукт. Мы хотим дать тот же опыт. Так что вот эта область.
Brandon [00:40:40]: Вчера я услышал хорошую аналогию, что хирург не хочет, чтобы больница проектировала скальпель, верно?
Brandon [00:40:48]: Так что просто купите скальпель.
RJ [00:40:50]: Вы не поверите, какое количество людей — даже за моё короткое время, между выходом AlphaFold 3 и концом аспирантуры, — сколько людей обращались просто чтобы мы запустили для них AlphaFold 3, или что-то в этом роде. Просто потому что, знаете, Boltz в нашем случае, — просто потому что это не так-то легко сделать, если ты не вычислительный человек. И, думаю, часть цели здесь ещё и в том, чтобы мы продолжали, очевидно, строить интерфейс для вычислительных специалистов, но чтобы модели были доступны и более широкой аудитории. А это идёт от хороших интерфейсов и тому подобного.
Gabriel [00:41:27]: Думаю, одна по-настоящему интересная вещь в Boltz в том, что с его выпуском вы выпустили не просто модель, а создали сообщество. Да. Это сообщество очень быстро выросло. Это вас удивило? И какова эволюция этого сообщества и как оно повлияло на Boltz?
RJ [00:41:43]: Если посмотреть на его рост, то это очень похоже на то, что когда мы выпускаем новую модель, происходит большой-большой скачок, но да — в общем, это было здорово. У нас есть Slack-сообщество, в котором тысячи людей. И оно теперь по-настоящему самоподдерживающееся, что и есть по-настоящему приятная часть, потому что отвечать на вопросы всех и помогать — это почти ошеломляюще. Это по-настоящему трудно для тех нескольких человек, которыми мы были, но в итоге оказалось, что люди стали отвечать на вопросы друг друга и как бы помогать один другому. И поэтому Slack стал самоподдерживающимся, и это было по-настоящему круто видеть.
RJ [00:42:21]: И, знаете, это что касается Slack-части, но затем, очевидно, и на GitHub тоже. У нас было хорошее сообщество. Думаю, мы также стремимся быть ещё активнее в нём, чем были последние полгода, что было немного непросто для нас. Но да, сообщество было по-настоящему отличным, и вышло много статей с новыми развитиями поверх Boltz, и это нас в некоторой степени удивило, потому что там много моделей. И, думаю, то, что люди как бы сходятся вокруг этого, было по-настоящему круто. И, думаю, это говорит и о важности того, что когда вы выкладываете код, нужно стараться сделать большой акцент на том, чтобы он был как можно проще в использовании, — о чём мы много думали, когда выпускали кодовую базу. Она далеко не идеальна, но, знаете.
Brandon [00:43:07]: Как вы думаете, это был один из факторов, благодаря которым ваше сообщество выросло, — просто фокус на простоте использования, на доступности? Думаю, да.
RJ [00:43:14]: Да. И мы слышали это от нескольких человек за эти годы. И, знаете, некоторые люди всё ещё считают, что должно быть намного приятнее, и они правы. И они правы. Но да, думаю, в то время это было, может, чуть проще, чем другие варианты.
Gabriel [00:43:29]: Другая вещь, которая, думаю, способствовала сообществу и в некоторой степени, как мне кажется, доверию сообщества к тому, что мы выпускаем, — это тот факт, что это была не просто одна модель, и, может, мы об этом поговорим, после Boltz 1 было, может, ещё пару моделей, выпущенных или открытых вскоре после. Мы как бы продолжили этот open source-путь, по крайней мере с Boltz 2, где мы не только улучшаем предсказание структуры, но и начинаем делать предсказание аффинности — понимание силы взаимодействий между этими разными молекулами, что является критическим свойством, которое часто хочется оптимизировать в программах разработки. А затем, совсем недавно, ещё и модель дизайна белков. И вот так мы как бы строили этот набор моделей, которые сочетаются и взаимодействуют друг с другом, где есть почти ожидание, что мы очень близко к сердцу принимаем то, чтобы всегда иметь по всему набору разных задач лучшую или одну из лучших моделей, доступных где-либо, — чтобы наш open source-инструмент мог быть моделью по умолчанию для всех в индустрии. Я очень хочу поговорить о Boltz 2, но перед этим последний вопрос в этом направлении: было ли что-то в сообществе, что вас удивило? Было ли так, что кто-то делал что-то, и вы такие: зачем ты это делаешь, это безумие? Или: это на самом деле гениально, и я бы никогда об этом не подумал?
RJ [00:45:01]: В смысле, у нас было много вкладов. Думаю, один из интересных — у нас был этот один человек, который написал сложное GPU-ядро для части архитектуры, и забавная вещь в том, что эта часть архитектуры существовала ещё со времён AlphaFold 2, и я не знаю, почему понадобился именно Boltz, чтобы этот человек решил это сделать, но это был по-настоящему отличный вклад. У нас был ещё ряд других — например, люди придумывали способы «хакнуть» модель, чтобы сделать что-то. Они делали клик-пептиды, и, не знаю, приходят ли на ум ещё какие-то интересные.
Gabriel [00:45:41]: Один классный, и это было что-то, что изначально предложил как сообщение в Slack-канале Tim O'Donnell: бывают случаи, особенно, например, мы обсуждали взаимодействия антитело-антиген, где модели не обязательно дают правильный ответ. Он заметил, что модели как бы застревали на предсказании антител. И поэтому он, по сути, провёл эксперименты в этой модели — её можно обусловливать, то есть можно давать подсказки. И он по сути дал модели случайные подсказки: окей, ты должна связаться с этим остатком, ты должна связаться с первым остатком, или ты должна связаться с 11-м остатком, или с 21-м остатком, — по сути сканируя весь антиген каждые 10 остатков.
Brandon [00:46:33]: Остатки — это…
Gabriel [00:46:34]: Аминокислоты. Аминокислоты, да. То есть первые аминокислоты. 11-я аминокислота, и так далее. То есть это как бы выполнение сканирования, а затем обусловливание модели, чтобы она предсказала все из них, и затем рассмотрение уверенности модели в каждом из этих случаев и выбор лучшего. То есть это как бы очень грубый способ выполнения поиска на этапе инференса. Но, что удивительно, для предсказания антитело-антиген это на самом деле довольно сильно помогло. И вот есть некоторые интересные идеи, которые, очевидно, по мере разработки модели заставляют сказать: вау, почему модель такая глупая? Но это очень интересно. И это приводит вас ещё и к тому, чтобы начать думать: окей, как я могу сделать это не таким перебором, а более умным способом.
RJ [00:47:22]: И мы тоже проделали много работы в этом направлении. И это говорит о силе скоринга. Мы видим это очень часто. Уверен, мы поговорим об этом подробнее, когда будем обсуждать BoltzGen. Но наша способность взять структуру и определить, что эта структура хороша, в некотором смысле точна, — будь то одиночная цепь или взаимодействие, — это по-настоящему мощный способ улучшать модели. Это как бы — если можно насэмплировать массу и предположить, что если сэмплировать достаточно, то вы, вероятно, получите хорошую структуру, тогда всё по-настоящему сводится к задаче ранжирования. И теперь часть того масштабирования на этапе инференса, о котором говорил Gabby, — это во многом именно это. Это как: чем больше мы сэмплируем, тем больше модель ранжирования в итоге находит что-то, что ей по-настоящему нравится. И поэтому, думаю, наша способность стать лучше в ранжировании — это тоже то, что обеспечит следующие большие прорывы. Интересно.
Brandon [00:48:17]: Но, как я понимаю, есть диффузионная модель, и вы генерируете какие-то варианты, а затем, видимо, — это как раз то, что вы сказали, верно? — вы ранжируете их с помощью оценки и затем в итоге… И вот, можете рассказать об этих разных частях? Да.
Gabriel [00:48:34]: Итак, прежде всего, одно из критических убеждений, которое у нас было, ещё когда мы начинали работать над Boltz 1, было в том, что модели предсказания структуры — это, в некотором смысле, наша версия foundation models в нашей области, узнающих о том, как белки и другие молекулы взаимодействуют. И затем мы можем использовать это обучение для всевозможных других вещей. И вот с Boltz 2 мы используем это обучение для предсказаний аффинности. То есть понимание: если я даю вам этот белок, эту молекулу, насколько прочное это взаимодействие? Для Boltz 1 мы взяли эту foundation model и затем дообучили её, чтобы предсказывать целые новые белки. И, по сути, это работает так: для белка, который вы проектируете, вместо того чтобы вставить реальную последовательность, вы вставляете набор пустых токенов. И вы обучаете модель предсказывать как структуру этого белка, так и то, какими являются разные аминокислоты этого белка. И поэтому, по сути, Boltz 1 работает так: вы подаёте белок-мишень, с которым, возможно, хотите связаться, или другую ДНК, РНК. А затем вы подаёте высокоуровневую спецификацию дизайна — каким вы хотите видеть свой новый белок. Например, это может быть антитело с определённым каркасом. Это может быть пептид. Это может быть много другого. И это с помощью естественного языка или? И это, по сути, промптинг. И у нас есть вот эта спецификация, которую вы задаёте. И вы подаёте эту спецификацию модели. А затем модель переводит это в набор токенов, набор обусловливания для модели, набор пустых токенов. И затем, по сути, в рамках диффузионной модели декодирует новую структуру и новую последовательность для вашего белка. И затем мы берём это. И, как говорил Jeremy, мы пытаемся его оценить — насколько хороший это связыватель для той исходной мишени.
Brandon [00:50:51]: Вы используете, по сути, Boltz, чтобы предсказать сворачивание и аффинность к этой молекуле. Так что, и это как бы даёт вам оценку? Именно.
Gabriel [00:51:03]: Итак, вы используете эту модель, чтобы предсказать сворачивание. И затем вы делаете две вещи. Одна — вы предсказываете структуру чем-то вроде Boltz 2, а затем, по сути, сравниваете эту структуру с тем, что предсказала модель, что предсказал Boltz 2. И это, в некотором роде, в области называется consistency (согласованность). По сути, вы хотите убедиться, что структура, которую вы предсказываете, действительно является тем, что вы пытаетесь спроектировать. И это даёт вам гораздо большую уверенность, что это хороший дизайн. И вот это первая фильтрация. А вторая фильтрация, которую мы делали в рамках выпущенного пайплайна Boltz 2, — это что мы смотрим на уверенность, которую модель имеет в структуре. Так вот, к сожалению, отвечая на ваш вопрос о предсказании аффинности, к сожалению, уверенность не является очень хорошим предсказателем аффинности. И поэтому одна из вещей, в которой мы на самом деле проделали огромный прогресс с момента выпуска Boltz 2…
Brandon [00:52:03]: …и у нас есть некоторые новые результаты, которые мы скоро объявим, — это способность получать гораздо более высокие hit rate, когда вместо того чтобы полагаться на уверенность модели, мы напрямую пытаемся предсказать аффинность этого взаимодействия. Окей. Просто немного возвращаясь назад: то есть ваша диффузионная модель предсказывает не только последовательность белка, но и его сворачивание. Именно.
Gabriel [00:52:32]: И на самом деле можно… Одна из больших отличающихся вещей, которые мы сделали по сравнению с другими моделями в этом пространстве, — и были некоторые статьи, которые уже это делали раньше, но мы по-настоящему масштабировали это, — это, по сути, в некотором роде слияние предсказания структуры и предсказания последовательности почти в одну и ту же задачу. И поэтому Boltz 2 работает так, что вы, по сути, единственное, что делаете, — это предсказываете структуру. То есть единственная супервизия — мы даём вам супервизию по структуре, но поскольку структура атомарна и разные аминокислоты имеют разный атомный состав, по сути из того, как вы размещаете атомы, мы также понимаем не только структуру, которую вы хотели, но и идентичность аминокислоты, которая, как модель считала, там была. И поэтому мы, по сути, вместо того чтобы иметь эти два сигнала супервизии — один дискретный, один непрерывный, — которые в некотором роде плохо взаимодействуют вместе, мы как бы построили кодирование последовательностей в структурах, которое позволяет нам, по сути, использовать ровно тот же сигнал супервизии, что мы использовали в Boltz 2 — в целом похожий на то, что предложил AlphaFold 3, что очень масштабируемо. И мы можем использовать это, чтобы проектировать новые белки. О, интересно.
RJ [00:53:58]: Может, быстрый респект Hannes Stark из нашей команды, который проделал всю эту работу. Да.
Gabriel [00:54:04]: Да, это была по-настоящему классная идея. В смысле, смотришь на статью, и это вроде как кодирование, или вы просто добавляете кучу, я думаю, как бы атомов, которые могут быть чем угодно, а затем они как бы переупорядочиваются и затем, по сути, накладываются друг на друга так, что это кодирует, какая это аминокислота. И есть как бы уникальный способ это сделать. Это была такая по-настоящему классная, увлекательная идея.
RJ [00:54:29]: Думаю, эта идея существовала и раньше. Да, было пару статей.
Gabriel [00:54:33]: Да, я предложил это, и Hannes по-настоящему довёл это до большого масштаба.
Brandon [00:54:39]: В статье большая часть статьи для BoltzGen посвящена собственно валидации модели. На мой взгляд, все люди, с которыми мы по сути говорим, считают, что вот эта валидация в мокрой лаборатории или как там уместно назвать — валидация в реальном мире — это вся проблема или не вся проблема, но огромная часть проблемы. Так что можете немного рассказать о самых ярких моментах оттуда? Потому что для меня результаты впечатляющие — как с точки зрения модели, так и просто с точки зрения усилий, которые ушли в валидацию большой командой.
Gabriel [00:55:18]: Прежде всего, думаю, стоит начать с того, что и когда мы были в MIT в лаборатории Tommi Jaakkola и Regina Barzilay, и в Boltz, мы не биолаборатория и не терапевтическая компания. И поэтому в некоторой степени мы изначально были вынуждены искать за пределами нашей группы, нашей команды, чтобы провести экспериментальную валидацию. Одна из вещей, которую по-настоящему пионерски ввёл Hannes в команде, была идея: окей, можем ли мы пойти не только, скажем, к конкретной группе, найти конкретную систему и, может, немного переобучиться под эту систему, пытаясь валидировать, — но как нам протестировать эту модель в очень широком разнообразии разных условий, чтобы любой в области (а дизайн белков — это такая широкая задача со всевозможными разными приложениями, от терапевтики до биосенсоров и многого другого), — можем ли мы получить валидацию, которая охватывает много разных задач? И поэтому он, по сути, собрал, думаю, что-то порядка 25 разных академических и индустриальных лабораторий, которые обязались тестировать некоторые из дизайнов модели, и часть этого тестирования всё ещё продолжается и даёт нам результаты в обмен на, надеемся, получение новых отличных последовательностей для их задачи. И он сумел скоординировать этот очень широкий набор учёных, и уже в статье, думаю, мы поделились результатами, я думаю, от восьми до десяти разных лабораторий, показывающими результаты по дизайну пептидов, дизайну для нацеливания на упорядоченные белки, пептидов, нацеленных на неупорядоченные белки, — результаты по дизайну белков, которые связываются с малыми молекулами, результаты по дизайну нанотел, и по широкому разнообразию разных мишеней. И вот это дало статье много валидации модели, много валидации, которая была широкой.
Brandon [00:57:39]: И то есть это были бы терапевтики для тех животных или они релевантны и для людей? Они релевантны и для людей.
Gabriel [00:57:45]: Очевидно, нужно проделать некоторую работу по, условно говоря, их «гуманизации» — убедиться, что у них правильные характеристики, чтобы они не были токсичны для людей и так далее.
RJ [00:57:57]: На рынке есть некоторые одобренные лекарства, которые являются нанотелами. Есть общая закономерность, думаю, в попытке проектировать вещи поменьше — их легче производить, но при этом это сопряжено с потенциально другими сложностями, например, может, чуть меньшей селективностью, чем если у вас есть что-то с большим числом «зацепок», — но да, есть это большое желание попытаться спроектировать много белков, нанотел, малых пептидов, которые просто являются отличными лекарственными модальностями.
Brandon [00:58:27]: Окей. Думаю, мы остановились на том, что говорили о валидации. Валидации в лаборатории. И я был очень воодушевлён, увидев все те разнообразные валидации, что вы провели. Можете рассказать подробнее о некоторых из них? Да. Конкретных. Да.
RJ [00:58:43]: Та, что с нанотелами. Думаю, мы сделали — сколько это было? 15 мишеней. Верно? 14. 14 мишеней. Тестирование. Так что обычно это работает так: мы делаем много дизайнов. Так, порядка десятков тысяч. А затем мы их ранжируем и выбираем лучшие. И в этом случае было по 15, верно, для каждой мишени, а затем мы как бы измеряем показатели успеха — как сколько мишеней, для которых нам удалось получить связыватель, так и в целом, из всех связывателей, которые мы спроектировали, сколько действительно оказались хорошими связывателями. Некоторые из других, думаю, включали — да, у нас был классный случай, где была малая молекула, и нужно спроектировать белок, который с ней связывается. У этого много интересных приложений, например, как упоминал Gabri, биосенсинг и тому подобное, что довольно круто. У нас был неупорядоченный белок, думаю, вы тоже упоминали. И да, думаю, некоторые из этих были одними из самых ярких моментов. Да.
Gabriel [00:59:44]: Я бы сказал, что способ, которым мы структурировали некоторые из этих валидаций, был, с одной стороны, у нас есть валидации по целому набору разных задач, с которыми к нам приходили биологи, с которыми мы работали. Так, например, в некоторых экспериментах мы пытались спроектировать пептиды, которые нацеливались бы на RAC, мишень, участвующую в метаболизме. И у нас был ряд других приложений, где мы пытались спроектировать пептиды или другие модальности против некоторых других терапевтически релевантных мишеней. Мы спроектировали некоторые белки для связывания с малыми молекулами. А затем часть другого тестирования, что мы провели, по-настоящему пыталась получить более широкое представление: как модель работает, особенно когда тестируется на некотором обобщении? Так, одна из вещей, которую мы обнаружили в области, в том, что многая валидация, особенно помимо валидации на конкретных задачах, проводилась на мишенях, у которых много известных взаимодействий в обучающих данных. И поэтому всегда немного трудно понять, насколько эти модели по-настоящему просто пересказывают то, что видели, или пытаются имитировать то, что видели в обучающих данных, против реальной способности проектировать новые белки. И поэтому один из экспериментов, что мы провели, состоял в том, чтобы взять девять мишеней из PDB, отфильтровав до тех, где нет известного взаимодействия в PDB. То есть по сути модель никогда не видела этот конкретный белок связанным или похожий белок связанным с другим белком. То есть нет способа, которым модель из своего обучающего набора могла бы как бы сказать: окей, я просто немного подправлю что-то и имитирую это конкретное взаимодействие. И поэтому мы взяли эти девять белков. Мы работали с CRO Adaptive и, по сути, протестировали 15 мини-белков и 15 нанотел против каждого из них. И очень классная вещь, которую мы увидели, в том, что для двух третей этих мишеней мы смогли из этих 15 дизайнов получить наномолярные связыватели. Наномолярный — грубо говоря, просто мера того, насколько сильно взаимодействие; грубо говоря, наномолярный связыватель — это примерно та сила связывания, которая нужна для терапевтического средства. Да. Так что, может, немного меняя направление. Boltz Lab только что был анонсирован на этой неделе или это было на прошлой неделе? Да. Это вроде как ваш первый, я думаю, продукт, если это так можно назвать. Можете рассказать, что такое Boltz Lab и что вы надеетесь, что люди из этого вынесут? Да.
RJ [01:02:44]: Знаете, как мы упоминали, думаю, в самом начале, цель с продуктом была в том, чтобы решить то, чего модели сами по себе не делают. И там в целом две категории. Я разделю это на три. Первая. Одно дело — предсказать одно взаимодействие, например, одну структуру. Другое — очень эффективно искать в пространстве, пространстве дизайна, чтобы произвести что-то ценное. Что мы обнаружили, строя этот продукт, — что там задействовано много шагов, и определённо есть необходимость сопроводить пользователя через каждый из этих шагов. Например, один из них — это создание самой мишени. Как нам убедиться, что у модели достаточно хорошее понимание мишени, чтобы мы могли что-то спроектировать? И есть всевозможные трюки, которые можно сделать, чтобы улучшить конкретное предсказание структуры. И вот это как бы первая стадия. А затем есть эта стадия дизайна и эффективного поиска в пространстве. Для чего-то вроде BoltzGen, например, вы проектируете много вариантов, а затем ранжируете их. Для малых молекул процесс немного сложнее. Нам ещё нужно убедиться, что молекулы синтезируемы. И способ, которым мы это делаем, в том, что у нас есть генеративная модель, которая учится использовать подходящие строительные блоки так, чтобы она могла проектировать в пространстве, про которое мы знаем, что оно синтезируемо. И вот это целый пайплайн, по-настоящему, из разных моделей, задействованных в том, чтобы суметь спроектировать молекулу. И вот это как бы первое, что мы называем агентами. У нас есть белковый агент и есть агент дизайна малых молекул. И это по-настоящему в основе того, что приводит в действие платформу Boltz Lab.
Brandon [01:04:22]: Так эти агенты — это как обёртка над языковой моделью, или это просто ваши модели, и вы просто называете их агентами? Многое. Да. Потому что они как бы выполняют функцию от имени…
RJ [01:04:33]: Они скорее как, знаете, рецепт, если угодно. И, думаю, мы используем этот термин отчасти из-за сложного пайплайнинга и автоматизации, которые входят во всю эту обвязку. Так что это первая часть продукта. Вторая часть — это инфраструктура. Нам нужно уметь делать это в очень большом масштабе для любой одной группы, которая ведёт кампанию по дизайну. Скажем, вы проектируете, я бы сказал, сто тысяч возможных кандидатов, верно? Чтобы найти хорошего — это очень большой объём вычислений. Для малых молекул это порядка нескольких секунд на дизайн, для белков может быть чуть дольше. И поэтому в идеале вы хотите делать это параллельно, иначе это займёт у вас недели. И поэтому мы вложили много усилий в нашу способность иметь GPU-флот, который позволяет любому одному пользователю выполнять этот вид большого параллельного поиска.
Brandon [01:05:23]: То есть вы амортизируете стоимость по своим пользователям. Именно. Именно.
RJ [01:05:27]: И, в некоторой степени, неважно — используете ли вы 10 000 GPU в течение минуты, это та же стоимость, что использование одного GPU бог знает сколько времени. Верно. Так что с тем же успехом можно попытаться распараллелить, если это возможно. Так что много работы ушло в это, в то чтобы сделать это очень устойчивым, чтобы у нас могло быть много людей на платформе, делающих это одновременно. А третье — это интерфейс, и интерфейс приходит в двух формах. Одна — в форме API, и это по-настоящему подходит для компаний, которые хотят интегрировать эти пайплайны, этих агентов.
RJ [01:06:01]: Так что мы уже партнёримся с несколькими дистрибьюторами, которые собираются интегрировать наш API. А вторая часть — это пользовательский интерфейс. И мы вложили много мыслей и в него. И это к тому, о чём я упоминал ранее, — этой идее расширения аудитории. Вот о чём пользовательский интерфейс. И мы встроили в него много интересных функций, например, для совместной работы, когда у вас есть, возможно, несколько медицинских химиков, которые проходят через результаты и пытаются выбрать: окей, какие молекулы мы пойдём и протестируем в лаборатории? Для них мощно иметь возможность, например, каждому предоставить своё ранжирование, а затем выработать консенсус. И поэтому есть много функций вокруг запуска этих больших задач, но также и вокруг совместного анализа результатов, которые мы пытаемся решить этой частью платформы. Так что Boltz Lab — это как бы комбинация этих трёх целей в одну цельную платформу. Кому это доступно? Всем. Сегодня нужно запросить доступ. Мы всё ещё как бы наращиваем использование, но любой может запросить доступ. Если вы академик, в частности, мы предоставляем приличное количество бесплатных кредитов, чтобы вы могли поиграть с платформой. Если вы стартап или биотех, вы тоже можете обратиться, и мы обычно прямо созваниваемся, чтобы понять, что вы пытаетесь сделать, и тоже предоставляем много бесплатных кредитов для начала. И, конечно, с более крупными компаниями мы можем развернуть эту платформу в более защищённой среде. И поэтому это более кастомизируемые сделки, которые мы заключаем с партнёрами, и это как бы этос Boltz. Думаю, эта идея обслуживать всех и не обязательно гнаться только за по-настоящему крупными предприятиями. И это начинается с open source, но это также ключевой принцип дизайна самого продукта.
Gabriel [01:07:48]: Одна вещь, о которой я думал в отношении инфраструктуры, — как в пространстве LLM стоимость токена снизилась, думаю, в тысячу раз или около того за последние три года, верно? Да. И возможно ли, что вы по сути можете использовать эффект масштаба в инфраструктуре так, что вам станет дешевле запускать всё это самим, чем любому человеку выкатить свою собственную систему? На сто процентов. Да.
RJ [01:08:08]: В смысле, мы уже там. Запуск Boltz на нашей платформе, особенно на большом скрининге, значительно дешевле, чем, вероятно, заняло бы у кого угодно выложить открытую модель и запустить её. И поверх инфраструктуры, одна из вещей, над которой мы работали, — это ускорение моделей. Так что наш пайплайн скрининга малых молекул в 10 раз быстрее в Boltz Lab, чем в open source, и это тоже часть построения продукта — того, что хорошо масштабируется. И мы по-настоящему хотели дойти до точки, где могли бы держать цены очень низкими так, чтобы использовать Boltz через нашу платформу было бы решением без раздумий.
Gabriel [01:08:52]: Как вы думаете о валидации ваших агентных систем? Потому что, как вы говорили ранее, модели в стиле AlphaFold по-настоящему хороши, скажем, на мономерных белках, где у вас есть данные коэволюции. Но теперь вдруг весь смысл этого в том, чтобы спроектировать что-то, у чего нет данных коэволюции, что-то по-настоящему новое. То есть теперь вы по сути покидаете область, в которой, как вы думали, вы хороши. Так как вы это валидируете?
RJ [01:09:22]: Да, мне нравится — всё непросто, но есть, очевидно, масса вычислительных метрик, на которые мы полагаемся, но они заводят вас лишь до определённого предела. Вам по-настоящему нужно идти в лабораторию и тестировать: окей, с этим методом A и этим методом B, насколько мы лучше? Насколько лучше мой hit rate? Насколько сильнее мои связыватели? Также дело не только в hit rate. Дело ещё и в том, насколько хороши связыватели. И тут по-настоящему нет способа это обойти. Думаю, мы по-настоящему нарастили объём экспериментальной валидации, которую делаем, чтобы по-настоящему отслеживать прогресс научно обоснованно, насколько это возможно, как мне кажется.
Gabriel [01:10:00]: Да, нет, думаю, одна вещь, которая уникальна для нас и, может, компаний вроде нас, в том, что поскольку мы работаем не над, может, парой терапевтических пайплайнов, где наша валидация была бы сфокусирована на них, — мы, когда проводим экспериментальную валидацию, стараемся тестировать её на десятках мишеней. И так, с одной стороны, мы можем получить гораздо более статистически значимый результат и по-настоящему позволяет нам делать прогресс с методологической стороны, не будучи направляемыми переобучением на какую-то одну конкретную систему. И, конечно, мы выбираем — мы всегда стараемся выбирать мишени и задачи, которые как бы на переднем крае того, что возможно сегодня. Так, вы не хотите чего-то слишком лёгкого. Вы не хотите чего-то слишком сложного. Иначе вы не увидите прогресса. И поэтому это в некотором роде эволюционирующий набор мишеней. Мы говорили ранее о мишенях, которые рассматривали с BoltzGen. А теперь мы пробуем даже ещё более сложные мишени, как для малых молекул, так и для белков. И поэтому мы стараемся держать себя на границе того, что возможно. Так у вас есть инфраструктура, или это просто много разных партнёрств с академическими лабораториями, и вы просто как бы продолжаете давить на них и продвигать их? Мы делаем это отчасти через академические лаборатории, всё больше и больше мы делаем это через CRO просто потому что, в некоторой степени, нам нужна воспроизводимость, часто проходя по тем же мишеням. Так что мы стараемся проходить наши мишени несколько раз, чтобы видеть прогресс от месяца к месяцу. И скорость. И скорость. И скорость. Скорость исполнения. Да. И так что происходит, если вы начинаете получать кучу по-настоящему сильных связывателей против терапевтических мишеней? Что вы делаете?
RJ [01:11:43]: Выпускаем их. Да.
Gabriel [01:11:45]: Но вы можете выпустить их в open source? Типа,
RJ [01:11:47]: Да, в смысле, знаете, когда мы говорим, что у нас нет интереса в создании лекарств, мы серьёзно. В смысле, когда это было с академическими лабораториями, по сути они их оставляют себе, они делают много этого.
Gabriel [01:12:02]: Я также скажу, и думаю, это была отчасти проблема, которая у меня есть с некоторыми вещами, что говорились в области, — когда мы говорим, что проектируем новые белки или говорим, что проектируем новые молекулы, которые идут и связываются с этими конкретными мишенями, мы должны быть очень ясны: это не лекарства. Это не вещи, готовые к тому, чтобы их вводить человеку. И с ними по-прежнему идёт много разработки. И поэтому это, в некотором роде, для нас — мы видим себя как создающих инструменты для учёных. В конце концов, всё по-настоящему опирается на то, что у учёного есть отличная терапевтическая гипотеза, и затем он проводит её через все стадии разработки. И мы стараемся строить инструменты, которые могут сопровождать их в этом пути. Это не волшебная коробка, где можно просто повернуть ручку и получить одобренные FDA лекарства.
Brandon [01:13:06]: Но на самом деле это поднимает интересный вопрос, о котором я задумывался: видите ли вы себя остающимися на этом, за неимением лучшего способа сказать, слое? Или вы думаете, что начнёте… Да. Либо в физическом смысле, смотря на разные слои виртуальной клетки, так сказать, или ещё, знаете, — есть процесс разработки, который идёт, как бы, дизайн, доклиника, клиника, одобрение, и размышления об улучшении производительности на протяжении всего этого процесса на основе дизайнов. Это направление, в котором вы, ребята, давите? Да.
Gabriel [01:13:45]: Итак, одна из вещей, как сказал Jeremy, — мы не терапевтическая компания. Мы хотим как бы оставаться не терапевтической компанией, всегда быть на службе всех разных компаний, включая терапевтические компании, которые мы обслуживаем. И это в некоторой степени означает, что нам нужно стараться идти всё глубже и глубже в том, чтобы делать эти модели всё лучше и лучше. Одна из вещей, которую мы делаем, как и многие другие в области, — теперь, когда они по-настоящему начинают быть хороши, как для малых молекул, так и для белков, в проектировании связывателей, проектировании относительно прочных связывателей, — это начать смотреть на все эти другие свойства, они называются developability или другими словами, которые нас волнуют при разработке лекарства, и пытаться — можем ли мы спроектировать их с нуля? Особенность этих свойств в том, что для некоторых из них вам нужно начать иметь понимание клетки. И поэтому это, с одной стороны, как бы почему нам нужно это понимание. Но также способ, которым мы думаем обо всех разных и сложных болезнях, в том, что эти модели, эти инструменты, которые мы строим, имеют хорошее понимание биомолекулярных взаимодействий и их взаимодействий. Но при этом каждая болезнь часто уникальна, и каждая терапевтическая гипотеза уникальна. И поэтому вы, может, хотите иметь что-то, что должно поразить конкретную, скажем, мишень в вирусе определённым образом, но вы, может, не знаете точно. Так что можно начать иметь более открытое понимание того, каким способом вы хотите это сделать. И поэтому, может, в первом наборе дизайнов вы попытаетесь нацелиться на разные эпитопы разными способами, а затем протестируете их в лаборатории, может, напрямую in vivo, и увидите, какие работают, а какие нет. И затем вам нужно вернуть эти результаты в модели. И тогда модели могут начать иметь более широкое понимание — не просто биофизики антител, взаимодействующих с этой мишенью, но и того, как это формируется внутри клетки. И поэтому, во-первых, это означает, с одной стороны, что нам нужны эти петли (и это также отчасти то, как мы спроектировали платформу), но это также означает, что нам нужно начать понимать всё больше и больше вещей более высокого уровня. И я бы не сказал, что мы как-то работаем над виртуальной клеткой, как другие, но мы определённо думаем очень глубоко о том, как способ, которым мы нацеливаемся на определённые белки, вмешивается, взаимодействует с, может, путями, существующими в клетке. Один вопрос, который возник: вы много говорите о пользовательском интерфейсе и так далее. И, думаю, это по-настоящему важно, но мой опыт работы с медицинскими химиками, когда вы приносите модели машинного обучения, — это что они самые суеверные, скептичные, как бы псевдорелигиозные люди, с которыми я когда-либо разговаривал, когда речь идёт о занятии наукой. Извините за медицинских химиков, которые слушают. Да, они потрясающие. В смысле, они абсолютно, — я работал с некоторыми выдающимися медицинскими химиками, которые просто снова и снова достают магию из шляпы, и я понятия не имею, как они это делают. Но когда вы приносите им модель машинного обучения, иногда бывает довольно непросто заставить их с ней работать. Каким было ваше взаимодействие с этим? И как вы думали о том, чтобы строить Boltz Lab для работы со скептиками? Одной из больших ценностных разблокировок для нас и для нашего продукта стало то, когда мы привели в команду медицинского химика. Его зовут Jeffrey. Так что, думаю, с одной стороны, в первый же день у него, очевидно, было много мнений о многих способах, которыми нам стоит изменить как то, как работали агенты, так и то, как работала платформа. Но было по-настоящему потрясающе, как, когда мы тоже начали формировать платформу лучше с этой обратной связью, мы перешли от, в некоторой степени, справедливого скептицизма с его стороны к тому, что он на самом деле использует многое из того, что мы сделали. Да. Так что он делает гораздо больше вычислений, чем кто-либо из наших вычислительных специалистов в команде, временами — он запускает, у него есть все эти гипотезы. Окей, может, я могу поразить этот белок таким конкретным способом. Я могу поразить его тем способом. На самом деле, дай-ка я посмотрю на это конкретное молекулярное пространство. Дай-ка попробую оптимизировать под эти конкретные взаимодействия. Так что он в итоге запускает несколько скринингов параллельно, используя сотни GPU, сам по себе. И поэтому это было довольно невероятно — видеть, как, может, способ, которым я больше думал о задаче, а именно: окей, ты просто пытаешься спроектировать связыватель, малую молекулу к конкретному белку, — способ, которым он об этом думает, гораздо глубже, пробуя все эти разные вещи, эти разные гипотезы. И затем, как только он получает результаты от модели, он не просто берёт топ-15, а по-настоящему просматривает их и пытается понять разные вещи. И затем, когда мы выбираем, может, какие-то дизайны, чтобы продвинуть дальше, у него есть нечто, где и модели понимают, что что-то хорошо, но и он сам тоже. И вот почему мы также построили платформу так, чтобы она была интерфейсом для такого химика, а также инженеров. Да. Совместный опыт.
RJ [01:19:09]: Думаю, в конце концов, чтобы убедить людей, вам нужно показать им что-то, что они не считали возможным. И пока у вас нет этого момента «ага», скептицизм останется. Но затем, когда время от времени появляется результат, который по-настоящему удивляет людей, тогда это как: о, вау, окей, с этим я на самом деле могу что-то сделать. Так что вы просто даёте им в руки, даёте попробовать, и они убедятся. Да, или, может, когда вернутся результаты из лаборатории. Или их друзья. Да, или, может, один из их коллег убеждается. Да. Думаю, нужно в какой-то момент идти в лабораторию. Этого не избежать — какой бы красивой ни была платформа, какими бы прекрасными ни выглядели молекулы, что предсказала модель. Думаю, что по-настоящему убеждает людей — это, знаете, попадания (hits). Да.
Gabriel [01:19:54]: Да. Вы видите результаты. Именно. Да. Круто. Спасибо, что нашли время поговорить с нами. Да. Есть ли что-то, что вы хотели бы, чтобы ваша аудитория знала? В смысле, прежде всего, мы только начинаем, продолжаем строить команду. И поэтому мы определённо всегда ищем отличных людей — как со стороны софта, со стороны машинного обучения, так и учёных, чтобы присоединиться к команде и помочь нам формировать. И со стороны инфраструктуры тоже. Действительно. Если вы думаете, что хотите нового вызова, потому что это не просто предсказание следующего токена, это по-настоящему новый инженерный вызов. Именно. Да. Если вы — неважно, сколько у вас опыта с биологами и химией, — если вы хотите прийти и помочь нам сформировать то, как, надеемся, биология и химия будут выглядеть через пять, десять лет, мы будем рады услышать от вас. И поэтому зайдите на boltz.bio и присоединяйтесь к команде. Круто. Спасибо. Потрясающе. Спасибо большое. Спасибо.
Обсуждение этого эпизода