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

Звучит триумфально, правда? Человек оцифровал интуицию, машина думает как химик! Но на практике всё оказалось не так радужно. Нередко LHASA формально соблюдала все химические правила, но игнорировала контекст. Программа могла предложить синтез, в котором на одной стадии получается кислота, а на следующей — добавляется щёлочь, потому что правило «нейтрализуй кислоту» не было явно прописано для этого конкретного случая. Она генерировала тысячи вариантов, и большинство из них были бессмысленными с практической точки зрения — требовали несуществующих реагентов, не учитывали побочные реакции, игнорировали то, что какой-нибудь промежуточный продукт быстро разложится. Кори это понимал. Он ввёл систему оценки маршрутов, пытаясь отсеять самые безумные идеи. Но жёсткие правила оценки — это всё же правила, которые можно обойти. Получался порочный круг: чтобы отличить хороший маршрут от плохого, нужна была та самая интуиция, которую LHASA и пыталась заменить.

Пример LHASA (как и многих других экспертных систем той эпохи) преподнёс химикам важный урок. Химия не сводится к списку из ста или даже тысячи «если… то…». Химическое пространство настолько огромно и причудливо, что любое конечное множество правил рано или поздно наткнётся на исключение. А исключений в химии ненамного меньше, чем самих правил. Кори показал, что интуицию можно формализовать лишь частично. Каждый раз, когда LHASA выдавала очередную глупость, программистам приходилось дописывать новое правило-заплатку. Это была бесконечная гонка: сегодня ты запретил программе смешивать кислоту с мылом, завтра она предложит смешать кислоту с содой, послезавтра — кислоту с аммиаком. Ты не успеешь записать все запреты, потому что их бесконечно много. Нужен был принципиально другой подход: не вбивать правила в голову машины, а дать ей возможность выучить их самой — на примерах. Показать ей тысячи удачных реакций и сказать: «Смотри и запоминай, что работает, а что нет». Но для этого в 1969 году не было ни достаточного количества данных, ни необходимых вычислительных мощностей. Прошло пятьдесят лет, и учёные перестали объяснять машине правила, а просто дали ей прочитать все доступные лабораторные журналы мира. Сегодняшние системы ретросинтеза похожи на бывалого мастера, который повидал миллион синтезов и говорит тебе: «Слушай, вот этот путь — дорогой, но быстрый, а вот этот — копеечный, но придётся повозиться с колонкой. Выбирай».

Помнишь метафору про яичницу? Можно записать роботу инструкцию: «Разбей яйцо, посоли, жарь три минуты». А можно показать тысячу фотографий хорошей яичницы — и робот сам поймёт, что с ней надо делать. В ретросинтезе случилось ровно то же самое. Вместо того чтобы дописывать бесконечные правила «если в молекуле есть карбонил и сопряженная с ним двойная связь, то примени реакцию Михаэля, но только если нет стерических помех, и не забудь про растворитель…», инженеры просто взяли базы данных, где собраны тысячи реально проведённых реакций. Каждая запись — это молекула-мишень и набор исходных веществ, из которых она получилась. Дальше в дело вступают хитрые алгоритмы. Они учатся на этих примерах точно так же, как ты учился отличать кошек от собак в Google Teachable Machine. Только вместо пикселей они анализируют молекулярные графы и SMILES-строки. И постепенно у них вырабатывается статистическая «интуиция»: «Если в молекуле есть пиридиновое кольцо и сложноэфирная группа, то с вероятностью 87% первым шагом надо разорвать эфирную связь гидролизом, а не трогать кольцо». Такой подход не только в разы ускоряет планирование, но и часто находит маршруты, которые химику просто не пришли бы в голову — просто потому что никто не держит в уме всю мировую литературу за последние два века.

Один из самых доступных инструментов этого класса — ASKCOS, разработанный в Массачусетском технологическом институте. Он бесплатный, работает через браузер и умеет сразу несколько вещей: предсказывать одностадийный ретросинтез, искать полные многостадийные маршруты, рекомендовать условия реакции и даже оценивать растворимость промежуточных продуктов. В основе ASKCOS лежит так называемый поиск по дереву Монте-Карло (Monte Carlo Tree Search) — звучит мудрёно, но идея простая. Представь, что тебе нужно пройти лабиринт от выхода к старту. Ты можешь пойти направо или налево, потом ещё раз и ещё — вариантов множество. Чтобы не перебирать всё, ты запускаешь тысячу виртуальных мышей, которые бегут случайно, но каждая запоминает, как далеко она смогла убежать и не упёрлась ли в тупик. Через некоторое время самые успешные маршруты протаптываются, и ты понимаешь: скорее всего, правильный путь — вот этот. MCTS делает то же самое с деревом химических превращений: пробует случайные разрывы связей, оценивает перспективность каждого промежуточного соединения и шаг за шагом выстраивает оптимальный маршрут. При этом ASKCOS использует не одну модель ретросинтеза, а целых четыре — шаблонные и бесшаблонные, что повышает надёжность предсказаний.