/ Модель

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

Контекст
256 токенов
Лицензия
MIT
Архитектура
gpt2 · dense
Опубликована
11 мая 2023

gpt2_zinc_87m

Генерация текстаТекст → текст3 профессии

Авторегрессионная модель GPT-2 для генерации лекарствоподобных молекул и получения представлений из SMILES.

3 333скачиваний за 30 дней4лайкавеса обновлены15 сен 2023

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

GPT2 Zinc 87m — авторегрессионная языковая модель в стиле GPT-2 от entropy, обученная на примерно 480 млн SMILES-строк из базы ZINC. Модель содержит около 87 млн параметров и предназначена для генерации молекул с лекарствоподобными свойствами, а также получения представлений SMILES.

Модель принимает текстовые последовательности SMILES и продолжает их генерацию; контекст составляет 256 токенов. В опубликованных испытаниях авторы оценивали уникальность и структурную валидность сгенерированных соединений при разных значениях температуры. Для работы с токенизатором нужно учитывать, что он автоматически не добавляет BOS и EOS токены, поэтому их может потребоваться добавлять вручную. Модель распространяется по лицензии MIT.

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

  • генерация новых лекарствоподобных молекул в формате SMILES
  • создание набора разнообразных структурных кандидатов для химического исследования
  • получение представлений молекул из последовательностей SMILES

Ограничения

Токенизатор не добавляет специальные BOS и EOS токены автоматически, поэтому при подготовке входных последовательностей их может потребоваться добавлять вручную. Генерация SMILES сама по себе не подтверждает биологическую активность, безопасность или пригодность соединений.

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

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

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

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

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

Открыть на Hugging Face

GPT2 Zinc 87m

This is a GPT2 style autoregressive language model trained on ~480m SMILES strings from the ZINC database.

The model has ~87m parameters and was trained for 175000 iterations with a batch size of 3072 to a validation loss of ~.615. This model is useful for generating druglike molecules or generating embeddings from SMILES strings

How to use

from transformers import GPT2TokenizerFast, GPT2LMHeadModel

tokenizer = GPT2TokenizerFast.from_pretrained("entropy/gpt2_zinc_87m", max_len=256)
model = GPT2LMHeadModel.from_pretrained('entropy/gpt2_zinc_87m')

To generate molecules:

inputs = torch.tensor([[tokenizer.bos_token_id]])

gen = model.generate(
              inputs,
              do_sample=True, 
              max_length=256, 
              temperature=1.,
              early_stopping=True,
              pad_token_id=tokenizer.pad_token_id,
              num_return_sequences=32
                         )
smiles = tokenizer.batch_decode(gen, skip_special_tokens=True)

To compute embeddings:

from transformers import DataCollatorWithPadding

collator = DataCollatorWithPadding(tokenizer, padding=True, return_tensors='pt')

inputs = collator(tokenizer(smiles))
outputs = model(**inputs, output_hidden_states=True)
full_embeddings = outputs[-1][-1]
mask = inputs['attention_mask']
embeddings = ((full_embeddings * mask.unsqueeze(-1)).sum(1) / mask.sum(-1).unsqueeze(-1))

WARNING

This model was trained with bos and eos tokens around SMILES inputs. The GPT2TokenizerFast tokenizer DOES NOT ADD special tokens, even when add_special_tokens=True. Huggingface says this is intended behavior.

It may be necessary to manually add these tokens

inputs = collator(tokenizer([tokenizer.bos_token+i+tokenizer.eos_token for i in smiles]))

Model Performance

To test generation performance, 1m compounds were generated at various temperature values. Generated compounds were checked for uniqueness and structural validity.

  • percent_unique denotes n_unique_smiles/n_total_smiles
  • percent_valid denotes n_valid_smiles/n_unique_smiles
  • percent_unique_and_valid denotes n_valid_smiles/n_total_smiles
temperaturepercent_uniquepercent_validpercent_unique_and_valid
0.50.92807410.928074
0.750.9984680.9999670.998436
10.9996590.9991640.998823
1.250.9995140.993510.993027
1.50.9987490.9702230.96901

Property histograms computed over 1m generated compounds: property histograms

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

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

GPU в ailist

Универсальный рантайм

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

Подбираем GPU…

Класс архитектуры
GPT2LMHeadModel
Ревизия весов
f42a5a1

0 моделей