Как нейросети учатся понимать язык жизни - разбираем проект ESM от Biohub
Представьте, что белки — это тексты, написанные на странном языке из 20 букв-аминокислот. Эволюция «писала» эти тексты миллиарды лет, создавая сложнейшие механизмы: от мышц до антител. Проблема в том, что мы до сих пор плохо читаем этот код. Если изменить одну «букву», белок может перестать работать или, наоборот, обрести новые свойства. Раньше для предсказания структуры белка требовались месяцы лабораторных исследований. Сегодня проект ESM (Evolutionary Scale Modeling) предлагает делать это на видеокарте за секунды.
Что это такое и зачем оно разработчику
Репозиторий Biohub/esm — это не просто библиотека, а целая экосистема моделей для работы с биологическими данными. Если вы занимались NLP, то быстро узнаете знакомые архитектуры. Авторы применили подход больших языковых моделей (LLM) к белковым последовательностям. Вместо слов здесь аминокислоты, а вместо смысла предложений — трехмерная структура и биологическая функция.
Это нужно не только биологам. Разработчикам в сфере BioTech или тем, кто хочет пощупать нестандартное применение трансформеров, этот проект дает инструменты для дизайна новых лекарств, поиска ферментов для переработки пластика или понимания мутаций вирусов.
Из чего состоит проект
Внутри лежат три мощных компонента, которые закрывают разные задачи:
- ESMC — языковая модель, обученная на миллиардах последовательностей. Она понимает «контекст» аминокислот. Если ESM2 была отличной базой, то ESMC 6B (на 6 миллиардов параметров) гораздо лучше справляется с пониманием дальних связей внутри белка.
- ESMFold2 — «принтер» структур. Вы даете ей строку текста, она выдает 3D-модель белка в атомарном разрешении. Она работает быстрее AlphaFold и при этом не уступает в точности.
- ESM Atlas — огромная карта из 6.8 миллиардов белков, структурированная с помощью нейросети. Это своего рода Google Maps для биологического разнообразия Земли.
Как запустить это локально
Для работы с моделями такого масштаба понадобится GPU с приличным объемом памяти (особенно для версии 6B). Установка простая, пока что через прямой линк на GitHub:
pip install esm@git+https://github.com/Biohub/esm.git
Загрузка модели и получение эмбеддингов (числовых векторов, описывающих свойства белка) выглядит привычно для тех, кто работал с Hugging Face:
import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
# Загружаем модель 6B. Будьте готовы, она весит прилично.
model = AutoModelForMaskedLM.from_pretrained(
"Biohub/ESMC-6B",
device_map="auto",
).eval()
tokenizer = AutoTokenizer.from_pretrained("Biohub/ESMC-6B")
sequence = ["MSKGEELFTGVVP..."] # Укороченная последовательность белка
inputs = tokenizer(sequence, return_tensors="pt", padding=True)
inputs = {k: v.to(model.device) for k, v in inputs.items()}
with torch.inference_mode():
output = model(**inputs)
Интерпретируемость: заглядываем под капот
Обычно нейросети — это «черные ящики». Мы не знаем, почему модель решила, что этот белок связывается с железом, а тот — нет. В Biohub решили эту проблему с помощью разреженных автоэнкодеров (Sparse Autoencoders, SAE).
Они разложили скрытые представления модели на 16 000 понятных признаков. Каждый признак описывает конкретную биологическую функцию. Это как если бы в языковой модели мы нашли конкретный нейрон, отвечающий за «сарказм» или «юридический стиль». В ESM это позволяет понять, какие именно части белка отвечают за его свойства.
Практическая ценность: дизайн антител
Самое крутое — это возможность инвертировать модель. ESMFold2 уже проверили «в мокрой лабе» (на реальных экспериментах). С помощью нее ученые создали мини-связующие белки (minibinders) и антитела для пяти терапевтических целей.
Для разработчика это означает, что можно построить пайплайн:
- Генерируем последовательность.
- Проверяем структуру через ESMFold2.
- Оцениваем аффинность (силу связи).
- Итерируем до получения нужного результата.
Безопасность и этика
Авторы серьезно подошли к вопросу безопасности. Поскольку такие модели могут быть использованы для создания опасных патогенов, в облачную платформу Biohub встроены фильтры. Они блокируют генерацию последовательностей, связанных с токсинами и контролируемыми вирусами. При локальном запуске вся ответственность ложится на вас, поэтому стоит ознакомиться с их политикой приемлемого использования.
Кому стоит попробовать
Если вы Python-разработчик и вам надоело перекладывать JSON-ы, загляните в этот репозиторий. Биоинформатика сейчас переживает свой «момент трансформеров». Проект отлично документирован, есть туториалы в формате ноутбуков, а веса моделей открыты под лицензией MIT.
Начать лучше всего с их Cookbook — там есть готовые примеры, как предсказывать структуру и работать с атласом белков. Это отличный вход в область, где код напрямую влияет на физический мир и здоровье людей.
