Игорь Градов
Игорь Градов
6 мин
ai

Meta открыла FAIRChem v2: молекулярная динамика ИИ теперь работает в Google Colab бесплатно

Meta AI выложила в открытый доступ FAIRChem v2 с универсальным межатомным потенциалом UMA, и теперь любой исследователь с GPU или бесплатным Google Colab может запустить молекулярную динамику ИИ, оптимизацию геометрии и расчёт адсорбции без классических квантово-химических пакетов.

Meta открыла FAIRChem v2: молекулярная динамика ИИ теперь работает в Google Colab бесплатно
Почему это важно

UMA (Universal Machine-Learning Interatomic Potential, универсальный потенциал на основе машинного обучения) заменяет три отдельных квантово-химических расчёта одной предобученной моделью: молекулы, катализ, неорганические материалы. Раньше для каждой задачи требовался свой код, своя калибровка и часы вычислений на кластере.

Что за инструмент и откуда он взялся?

FAIRChem v2 выпущена командой FAIR (подразделение фундаментальных исследований ИИ в Meta). Это опенсорс-библиотека на Python, которая оборачивает предобученную модель UMA и позволяет через несколько строк кода считать энергию, силы, оптимизировать молекулы, моделировать реакции и проводить молекулярную динамику ИИ на GPU.

Модель UMA распространяется через платформу Hugging Face с контролируемым доступом (gated model, то есть нужно принять лицензию и получить токен). Веса открытые (open weights), и код полностью доступен.

Что понадобится

  • Python 3.9+ и менеджер пакетов pip
  • Google Colab (бесплатный тариф с GPU) или собственная машина с видеокартой NVIDIA и поддержкой CUDA
  • Аккаунт на Hugging Face и персональный токен доступа (HF_TOKEN), который генерируется в настройках профиля
  • Библиотеки: fairchem-core, ASE (Atomic Simulation Environment, среда для работы с атомными структурами), matplotlib, huggingface_hub
  • Время: установка занимает от 2 до 4 минут, первый расчёт ещё около минуты

Пошаговая инструкция

1. Установите зависимости и авторизуйтесь.

Код проверяет, стоит ли fairchem, и при необходимости ставит всё одной командой. Затем авторизует вас на Hugging Face, чтобы скачать веса модели.

import importlib.util, subprocess, sys, os

def _pip(*pkgs):
    subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", *pkgs])

if importlib.util.find_spec("fairchem") is None:
    _pip("fairchem-core", "ase", "matplotlib", "huggingface_hub")

from huggingface_hub import login
login(token=os.environ.get("HF_TOKEN") or input("Вставьте HF-токен: "))

2. Загрузите модель и создайте калькуляторы под три задачи.

UMA работает в трёх режимах: omol (молекулы), oc20 (катализ и поверхности), omat (неорганические кристаллы). Калькулятор выбирается один раз, дальше вы передаёте ему атомные структуры.

import torch
from fairchem.core import pretrained_mlip, FAIRChemCalculator

DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
MODEL = "uma-s-1p2"
predictor = pretrained_mlip.get_predict_unit(MODEL, device=DEVICE)

calc_mol = FAIRChemCalculator(predictor, task_name="omol")
calc_cat = FAIRChemCalculator(predictor, task_name="oc20")
calc_mat = FAIRChemCalculator(predictor, task_name="omat")

3. Посчитайте энергию и силы для молекулы воды.

Это базовый single-point расчёт (расчёт в одной точке: энергия и силы без оптимизации геометрии). Обратите внимание на параметры charge (заряд) и spin (спиновая мультиплетность), UMA учитывает спин, что редкость для таких моделей.

from ase.build import molecule

h2o = molecule("H2O")
h2o.info.update({"charge": 0, "spin": 1})
h2o.calc = calc_mol

print(f"Энергия H2O: {h2o.get_potential_energy():.4f} эВ")
print(f"Макс. сила: {abs(h2o.get_forces()).max():.4f} эВ/А")

4. Оптимизируйте геометрию искажённой молекулы.

Здесь вы намеренно сдвигаете атом водорода и просите оптимизатор LBFGS (квазиньютоновский метод минимизации, который быстро находит ближайший минимум энергии) найти равновесную форму.

from ase.optimize import LBFGS

h2o_bad = molecule("H2O")
h2o_bad.positions[1] += [0.25, -0.10, 0.05]
h2o_bad.info.update({"charge": 0, "spin": 1})
h2o_bad.calc = calc_mol

opt = LBFGS(h2o_bad, logfile=None)
opt.run(fmax=0.01, steps=200)

print(f"Длина связи O-H: {h2o_bad.get_distance(0, 1):.3f} А (эксп. ~0.958 А)")
print(f"Угол H-O-H: {h2o_bad.get_angle(1, 0, 2):.1f}° (эксп. ~104.5°)")

5. Сравните спиновые состояния (пример: синглет и триплет CH₂).

UMA различает спиновые конфигурации. Для карбена CH₂ триплет должен быть ниже по энергии.

singlet = molecule("CH2_s1A1d")
singlet.info.update({"charge": 0, "spin": 1})
singlet.calc = FAIRChemCalculator(predictor, task_name="omol")

triplet = molecule("CH2_s3B1d")
triplet.info.update({"charge": 0, "spin": 3})
triplet.calc = FAIRChemCalculator(predictor, task_name="omol")

gap = triplet.get_potential_energy() - singlet.get_potential_energy()
print(f"Триплет-синглет: {gap:.3f} эВ (эксп. ~ -0.39 эВ)")

6. Оцените энергию реакции горения метана.

Формула CH₄ + 2O₂ → CO₂ + 2H₂O. Каждую молекулу сначала релаксируете, потом берёте разность энергий продуктов и реагентов.

def relaxed_energy(name, spin=1):
    m = molecule(name)
    m.info.update({"charge": 0, "spin": spin})
    m.calc = FAIRChemCalculator(predictor, task_name="omol")
    LBFGS(m, logfile=None).run(fmax=0.02, steps=200)
    return m.get_potential_energy()

E = {
    "CH4": relaxed_energy("CH4"),
    "O2":  relaxed_energy("O2", spin=3),
    "CO2": relaxed_energy("CO2"),
    "H2O": relaxed_energy("H2O"),
}

dE = (E["CO2"] + 2 * E["H2O"]) - (E["CH4"] + 2 * E["O2"])
print(f"Энергия реакции: {dE:.3f} эВ")

Что ещё умеет UMA?

Согласно руководству FAIRChem v2, тот же предобученный потенциал применяется к следующим задачам:

  • Колебательный анализ (vibrational analysis): частоты и ИК-спектры молекул
  • Адсорбция на поверхностях: расчёт энергии связи молекулы с катализатором (задача oc20)
  • Релаксация кристаллической ячейки и подгонка уравнения состояния (equation-of-state fitting) для твёрдых материалов (задача omat)
  • Молекулярная динамика ИИ: моделирование движения атомов во времени с термостатом
  • Сканирование поверхности потенциальной энергии (PES scan)

Всё это реализуется через ту же связку FAIRChem + ASE, меняется только набор атомов и тип калькулятора.

Пример: что ввели и что получили

На бесплатном GPU в Google Colab (Tesla T4) расчёт энергии воды и оптимизация геометрии заняли менее минуты. Оптимизатор сошёлся за несколько шагов: длина связи O-H получилась близкой к экспериментальным 0.958 ангстрем, угол H-O-H оказался рядом с 104.5°. Сравнение спинов CH₂ дало отрицательный зазор (триплет ниже синглета), что согласуется с экспериментальным значением около -0.39 эВ.

Частые ошибки
  • Забыли указать spin. UMA учитывает спин, и если вы передадите spin=1 для кислорода O₂ (правильно spin=3), результат будет физически бессмысленным.
  • Выбрали не тот калькулятор. Молекулу считайте через omol, поверхность через oc20, кристалл через omat. Перепутаете задачу и получите мусор вместо энергии.
  • Не приняли лицензию на Hugging Face. Веса модели UMA закрыты гейтом. Если токен есть, но вы не кликнули «Accept» на странице модели, скачивание не начнётся.
  • Запускаете без GPU. Модель работает и на CPU, но расчёты, особенно молекулярная динамика ИИ, замедляются на порядок. Colab с бесплатным Tesla T4 решает эту проблему.
  • Доверяете абсолютным числам. UMA даёт приближение к DFT-расчётам (density functional theory, метод расчёта электронной структуры). Для публикации результатов сверяйте с референсными квантово-химическими данными.

Что с этого прямо сейчас по ролям?

Исследователю-химику в РФ. Если работаете с вычислительной химией, попробуйте FAIRChem v2 как быструю предварительную оценку: геометрию, энергию реакции, адсорбцию на поверхности. Для этого не нужен кластер с лицензией Gaussian или VASP, хватит Google Colab.

Аспиранту или студенту. Готовый tutorial позволяет за один вечер пройти путь от установки до молекулярной динамики ИИ. Код копируется в Colab, не нужно настраивать среду на университетском сервере.

Автору Дзена, пишущему о науке. Молекулярная динамика ИИ, тема, которая выходит за рамки узкого сообщества. FAIRChem v2 даёт наглядные примеры: взяли воду, посчитали угол связи, совпало с экспериментом. Это хороший материал для объяснительного контента.

Предпринимателю в deep tech. Если вашей команде нужны расчёты материалов (катализаторы, аккумуляторы, покрытия), UMA позволяет сократить первичный скрининг кандидатов с недель до часов. Из российских аналогов сопоставимого открытого инструмента пока нет; ближайшая альтернатива, коммерческие квантово-химические пакеты с лицензиями.

Мнение редакции dzen.guru

FAIRChem v2 делает для вычислительной химии примерно то, что Stable Diffusion сделал для генерации картинок: снимает барьер входа. Раньше для молекулярной динамики ИИ нужен был кластер и лицензия на VASP стоимостью в тысячи евро. Теперь модель открыта, код скопировал, Colab запустил. По моим наблюдениям, результаты на простых молекулах ложатся близко к экспериментальным данным, но для сложных систем (переходные металлы, большие поверхности) стоит перепроверять классическими DFT-расчётами. Это быстрый скрининг, а не замена лаборатории.

Нейросети для авторов и исследователей

Разбираем инструменты ИИ, которые реально работают, от текста до молекулярных расчётов. Подписывайтесь на dzen.guru, чтобы не пропустить практические гайды.

Подписаться

Для тех, кто давно смотрел в сторону молекулярного моделирования, но не решался из-за порога входа: сейчас этот порог исчез. Шесть блоков кода, бесплатный GPU и открытые веса. Попробуйте на воде, убедитесь в цифрах, потом переходите к своим задачам.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

PCA, t-SNE и UMAP: какой метод визуализации данных сохраняет структуру, а какой сливает кластеры
ai

PCA, t-SNE и UMAP: какой метод визуализации данных сохраняет структуру, а какой сливает кластеры

Компания или проект, к которому привязан этот материал, не названы в источнике: текст представляет собой обучающий разбор трёх алгоритмов снижения размерности…

5 мин
Транскрибация речи бесплатно и без облака: ставим Whisper на свой ПК за 30 минут
ai

Транскрибация речи бесплатно и без облака: ставим Whisper на свой ПК за 30 минут

Автор Дзена записал подкаст, провёл созвон или снял ролик, и теперь ему нужен текст: для статьи, субтитров или протокола встречи, а платить за онлайн-сервис не…

5 мин
Спортивная аналитика AI выходит за пределы топ-лиг: три кейса платформы AI4BI
ai

Спортивная аналитика AI выходит за пределы топ-лиг: три кейса платформы AI4BI

Спортивные клубы тратят недели на сбор статистики из разных источников, ручную сводку данных и подготовку аналитических отчётов, и всё равно получают картину с…

5 мин