/ Модель

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

Контекст
40 000 токенов
Параметры
503 млн
Лицензия
MIT
Архитектура
bert · dense
Базовая модель
prot_bert_bfd
Опубликована
26 мар 2024

IgBert_unpaired

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

Дообученная на непарных антительных последовательностях BERT-модель для заполнения масок и получения представлений антител.

832скачиваний за 30 дней2лайкавеса обновлены19 июн 2024

Бенчмарки

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

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

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

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

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

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

Exscientia IgBert_unpaired — BERT-модель для белковых и антительных последовательностей, разработанная Exscientia. Она дообучена на непарных последовательностях антител из Observed Antibody Space на основе ProtBert-BFD с целью masked language modeling. В метаданных указаны 503,3 млн параметров, контекст до 40 000 токенов и формат safetensors.

Модель предназначена для заполнения маскированных аминокислот и получения векторных представлений последовательностей антител. Такие представления можно использовать в последующих задачах классификации или другой специализированной настройке. Для загрузки и токенизации README рекомендует библиотеку Transformers; токенизатор добавляет специальные токены начала и конца последовательности и выполняет дополнение до длины в пакете. Лицензия — MIT.

Модель обучалась на непарных антительных последовательностях, поэтому её специализация — антительные и белковые данные; README не приводит результатов сравнительной оценки качества. Для задач на уровне последовательности может потребоваться отдельная настройка или pooling-голова.

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

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

Ограничения

Обучение проводилось на непарных антительных последовательностях, что ограничивает специализацию модели соответствующими данными. Для downstream-задач на уровне последовательности может потребоваться отдельная настройка или pooling-голова.

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

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

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

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

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

Открыть на Hugging Face

IgBert unpaired model

Model pretrained on protein and antibody sequences using a masked language modeling (MLM) objective. It was introduced in the paper Large scale paired antibody language models.

The model is finetuned from ProtBert-BFD using unpaired antibody sequences from the Observed Antibody Space.

Use

The model and tokeniser can be loaded using the transformers library

from transformers import BertModel, BertTokenizer

tokeniser = BertTokenizer.from_pretrained("Exscientia/IgBert_unpaired", do_lower_case=False)
model = BertModel.from_pretrained("Exscientia/IgBert_unpaired", add_pooling_layer=False)

The tokeniser is used to prepare batch inputs

# single chain sequences
sequences = [
    "EVVMTQSPASLSVSPGERATLSCRARASLGISTDLAWYQQRPGQAPRLLIYGASTRATGIPARFSGSGSGTEFTLTISSLQSEDSAVYYCQQYSNWPLTFGGGTKVEIK",
    "ALTQPASVSGSPGQSITISCTGTSSDVGGYNYVSWYQQHPGKAPKLMIYDVSKRPSGVSNRFSGSKSGNTASLTISGLQSEDEADYYCNSLTSISTWVFGGGTKLTVL"
]

# The tokeniser expects input of the form ["E V V M...", "A L T Q..."]
sequences = [' '.join(sequence) for sequence in sequences] 

tokens = tokeniser.batch_encode_plus(
    sequences, 
    add_special_tokens=True, 
    pad_to_max_length=True, 
    return_tensors="pt",
    return_special_tokens_mask=True
) 

Note that the tokeniser adds a [CLS] token at the beginning of each sequence, a [SEP] token at the end of each sequence and pads using the [PAD] token. For example a batch containing sequences E V V M, A L will be tokenised to [CLS] E V V M [SEP] and [CLS] A L [SEP] [PAD] [PAD].

Sequence embeddings are generated by feeding tokens through the model

output = model(
    input_ids=tokens['input_ids'], 
    attention_mask=tokens['attention_mask']
)

residue_embeddings = output.last_hidden_state

To obtain a sequence representation, the residue tokens can be averaged over like so

import torch

# mask special tokens before summing over embeddings
residue_embeddings[tokens["special_tokens_mask"] == 1] = 0
sequence_embeddings_sum = residue_embeddings.sum(1)

# average embedding by dividing sum by sequence lengths
sequence_lengths = torch.sum(tokens["special_tokens_mask"] == 0, dim=1)
sequence_embeddings = sequence_embeddings_sum / sequence_lengths.unsqueeze(1)

For sequence level fine-tuning the model can be loaded with a pooling head by setting add_pooling_layer=True and using output.pooler_output in the down-stream task.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertForMaskedLM
Ревизия весов
53ed1be

0 моделей