Meta открыла FAIRChem v2: молекулярная динамика ИИ теперь работает в Google Colab бесплатно
Meta AI выложила в открытый доступ FAIRChem v2 с универсальным межатомным потенциалом UMA, и теперь любой исследователь с GPU или бесплатным 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 позволяет сократить первичный скрининг кандидатов с недель до часов. Из российских аналогов сопоставимого открытого инструмента пока нет; ближайшая альтернатива, коммерческие квантово-химические пакеты с лицензиями.
FAIRChem v2 делает для вычислительной химии примерно то, что Stable Diffusion сделал для генерации картинок: снимает барьер входа. Раньше для молекулярной динамики ИИ нужен был кластер и лицензия на VASP стоимостью в тысячи евро. Теперь модель открыта, код скопировал, Colab запустил. По моим наблюдениям, результаты на простых молекулах ложатся близко к экспериментальным данным, но для сложных систем (переходные металлы, большие поверхности) стоит перепроверять классическими DFT-расчётами. Это быстрый скрининг, а не замена лаборатории.
Нейросети для авторов и исследователей
Разбираем инструменты ИИ, которые реально работают, от текста до молекулярных расчётов. Подписывайтесь на dzen.guru, чтобы не пропустить практические гайды.
ПодписатьсяДля тех, кто давно смотрел в сторону молекулярного моделирования, но не решался из-за порога входа: сейчас этот порог исчез. Шесть блоков кода, бесплатный GPU и открытые веса. Попробуйте на воде, убедитесь в цифрах, потом переходите к своим задачам.

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

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

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

Спортивная аналитика AI выходит за пределы топ-лиг: три кейса платформы AI4BI
Спортивные клубы тратят недели на сбор статистики из разных источников, ручную сводку данных и подготовку аналитических отчётов, и всё равно получают картину с…
Комментарии