/ Модель

Характеристики

Контекст
512 токенов
Параметры
134 млн
Архитектура
roberta · dense
Опубликована
24 фев 2023

roberta_zinc_480m

Заполнение пропусковТекст → текст3 профессии

Модель RoBERTa, обученная на канонизированных SMILES из ZINC, для заполнения масок и получения эмбеддингов молекул.

306скачиваний за 30 дней3лайкавеса обновлены30 апр 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

roberta_zinc_480m — маскированная языковая модель на архитектуре RoBERTa, разработанная Карлом Хейером. Она обучена на примерно 480 млн канонизированных SMILES-строк из базы ZINC и предназначена для работы с представлениями молекул: модель можно использовать для получения эмбеддингов SMILES, а также для восстановления замаскированных фрагментов последовательности.

Модель содержит 134,2 млн параметров и принимает последовательности длиной до 512 токенов. Для корректной работы автор рекомендует подавать канонизированные SMILES. Репозиторий распространяется в форматах PyTorch и safetensors; лицензия — MIT.

В экосистеме автора также упомянуты отдельные модели для реконструкции входных строк из эмбеддингов, сжатия эмбеддингов с сохранением косинусного сходства и разложения эмбеддингов на представления строительных блоков. Это отдельные модели, а не функции данного чекпойнта. Модель специализирована на молекулярных строках и не предназначена для обычного текста.

Сценарии применения

  • получение эмбеддингов молекул из SMILES
  • заполнение замаскированных токенов в SMILES
  • создание признаков молекул для последующего анализа
  • поиск похожих молекул по эмбеддингам

Ограничения

Входные SMILES следует канонизировать. Контекст ограничен 512 токенами; модель обучена на молекулярных строках и не предназначена для обычного текста.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Model Card for Roberta Zinc 480m

Model Description

roberta_zinc_480m is a ~102m parameter Roberta-style masked language model ~480m SMILES strings from the ZINC database. This model is useful for generating embeddings from SMILES strings.

  • Developed by: Karl Heyer
  • License: MIT

Direct Use

Usage examples. Note that input SMILES strings should be canonicalized.

With the Transformers library:

from transformers import AutoModel, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("entropy/roberta_zinc_480m")
roberta_zinc = AutoModel.from_pretrained("entropy/roberta_zinc_480m", 
                                         add_pooling_layer=False) # model was not trained with a pooler

# smiles should be canonicalized
smiles = [
    "Brc1cc2c(NCc3ccccc3)ncnc2s1",
    "Brc1cc2c(NCc3ccccn3)ncnc2s1",
    "Brc1cc2c(NCc3cccs3)ncnc2s1",
    "Brc1cc2c(NCc3ccncc3)ncnc2s1",
    "Brc1cc2c(Nc3ccccc3)ncnc2s1"
]

batch = tokenizer(smiles, return_tensors='pt', padding=True, pad_to_multiple_of=8)

# mean pooling
outputs = roberta_zinc(**batch, output_hidden_states=True)
full_embeddings = outputs[1][-1]
mask = batch['attention_mask']
embeddings = ((full_embeddings * mask.unsqueeze(-1)).sum(1) / mask.sum(-1).unsqueeze(-1))

With Sentence Transformers:

from sentence_transformers import models, SentenceTransformer

transformer = models.Transformer("entropy/roberta_zinc_480m", 
                                 max_seq_length=256, 
                                 model_args={"add_pooling_layer": False})

pooling = models.Pooling(transformer.get_word_embedding_dimension(), 
                         pooling_mode="mean")

model = SentenceTransformer(modules=[transformer, pooling])

# smiles should be canonicalized
smiles = [
    "Brc1cc2c(NCc3ccccc3)ncnc2s1",
    "Brc1cc2c(NCc3ccccn3)ncnc2s1",
    "Brc1cc2c(NCc3cccs3)ncnc2s1",
    "Brc1cc2c(NCc3ccncc3)ncnc2s1",
    "Brc1cc2c(Nc3ccccc3)ncnc2s1"
]

embeddings = model.encode(smiles, convert_to_tensor=True)

Training Procedure

Preprocessing

~480m SMILES strings were randomly sampled from the ZINC database, weighted by tranche size (ie more SMILES were sampled from larger tranches). SMILES were canonicalized, then used to train the tokenizer.

Training Hyperparameters

The model was trained with cross entropy loss for 150,000 iterations with a batch size of 4096. The model achieved a validation loss of ~0.122.

Downstream Models

Decoder

There is a decoder model trained to reconstruct inputs from embeddings generated with this model

Compression Encoder

There is a compression encoder model trained to compress embeddings generated by this model from the native size of 768 to smaller sizes (512, 256, 128, 64, 32) while preserving cosine similarity between embeddings.

Decomposer

There is a embedding decomposer model trained to "decompose" a roberta-zinc embedding into two building block embeddings from the Enamine library.

BibTeX:

@misc{heyer2023roberta, title={Roberta-zinc-480m}, author={Heyer, Karl}, year={2023} }

APA:

Heyer, K. (2023). Roberta-zinc-480m.

Model Card Authors

Karl Heyer

Model Card Contact

karl@darmatterai.xyz


license: mit

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · fill-mask

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaForMaskedLM
Ревизия весов
05b00ec

0 моделей