Выбрать главу

Итак, нейросеть — это не страшный чёрный ящик, а просто ученик, который учится на примерах. Ты уже пользуешься этим каждый день, когда смотришь рекомендованные видео на YouTube или когда твой телефон распознаёт лицо. В химии этот подход тоже начинает широко применяться, ведь теперь не нужно выписывать правила — сеть сама в своих глубинах выведет их из данных. И она же не умолчит про исключения, ведь статистика не делит мир на чёрное и белое. Но если ты думаешь, что достаточно взять одну гигантскую нейросеть, скормить ей все реакции мира — и готов универсальный химик-предсказатель, то спешу тебя разочаровать. Одна большая сеть похожа на одного универсального сотрудника, который пытается делать всё сразу: синтезировать новые вещества, чинить ЯМР, мыть посуду и писать статьи. Получается медленно и посредственно. К счастью, природа (и инженеры) придумали выход — артель экспертов, или Mixture of Experts (MoE).

Допустим, тебе надо создать нейросеть, которая предсказывает исход химической реакции. Ты обучаешь её на миллионах примеров: реакции в воде, в органических растворителях, с катализаторами и без, при высоком давлении и при комнатной температуре. Сеть старается запомнить всё сразу и неизбежно усредняет: реакции с водой она предсказывает чуть хуже, чем хотелось бы, реакции с палладием — тоже с огрехами, а уж если речь заходит о редких стереоспецифических превращениях — пиши пропало. Это называется «проблема размазанной памяти»: пытаясь объять необъятное, сеть теряет точность в каждом конкретном случае. А что если внутри одной большой сети создать много маленьких, каждая из которых будет специализироваться на своём типе задач, а маршрутизацией заказов займётся отдельный «диспетчер»? Когда поступает заказ, роутер-диспетчер смотрит, откуда и куда ехать, и мгновенно решает, кому передать «пассажира». Так устроена Mixture of Experts (MoE).

Теперь замени пассажиров молекулами. Есть молекула, для которой нужно предсказать растворимость, или токсичность, или лучший способ синтеза. Роутер (это тоже небольшая нейросеть) смотрит на молекулярную «подпись»: есть ли в ней атомы металлов, много ли водородных связей, насколько она гибкая. И отправляет запрос одному или нескольким экспертам: «Эй, эксперт по водным растворам, это к тебе!», «А эту ароматическую систему пусть забирает себе эксперт по каталитическому кросс-сочетанию». Эксперты — небольшие суб-нейросети (слои), натренированные на своих узких задачах, — выдают предсказание, а роутер взвешивает их ответы и выдаёт итоговый вердикт с вероятностью. Это позволяет одновременно быть и достаточно точным в каждом конкретном случае, и покрывать всё разнообразие химического пространства.

Самое удивительное — специализация экспертов возникает сама, в процессе обучения. Ты не задаёшь вручную: «Ты будешь экспертом по сольватации, а ты — по стереохимии». Ты просто подаёшь на вход миллионы примеров, и сеть в ходе настройки весов сама обнаруживает, что выгоднее разделиться на специализированные суб-нейросети (блоки, «эксперты»). Один «эксперт» начинает чаще срабатывать для молекул с гидроксильными группами и даёт для них меньшую ошибку — и роутер, видя это, всё чаще направляет «спиртовые» запросы именно к нему. Другой «эксперт» случайно лучше предсказал несколько реакций с участием переходных металлов — и постепенно закрепляет за собой нишу металлоорганической химии.

Это очень похоже на то, как в настоящей артели ремесленников плотник сам берётся за работу с деревом, а кузнец — за работу с металлом, хотя никакой начальник им этого не навязывал. Просто разделение труда эффективнее, и оно проявляется в процессе совместной работы. В химических MoE-моделях исследователи после обучения нейросети с удивлением обнаруживают, что эксперт №3 специализируется на предсказании ЯМР-сдвигов атомов в ароматических кольцах, а эксперт №7 — на реакциях элиминирования. Никто их этому не учил специально, просто так сложились веса.