/ Модель

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

Контекст
160 токенов
Параметры
113 млн
Лицензия
bsd
Архитектура
roberta · dense
Опубликована
29 апр 2023

AbLang_light

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

Языковая модель RoBERTa для заполнения масок и извлечения признаков из последовательностей лёгких цепей антител.

301скачиваний за 30 дней3лайкавеса обновлены12 ноя 2024

Бенчмарки

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

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

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

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

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

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

AbLang_light — языковая модель AbLang для последовательностей лёгких цепей антител, представленная в формате Hugging Face. Модель разработана для работы с белковыми последовательностями и основана на архитектуре RoBERTa; она содержит 113,3 млн параметров и принимает аминокислоты, записанные заглавными буквами. Максимальная длина контекста — 160 токенов.

Модель можно использовать для извлечения признаков последовательностей антител и как основу для дообучения на прикладных задачах. Задача в метаданных — заполнение замаскированных токенов. Модель распространяется по лицензии BSD.

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

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

  • Заполнение замаскированных аминокислот в последовательностях лёгких цепей антител
  • Извлечение признаков из последовательностей антител
  • Подготовка представлений белковых последовательностей для downstream-классификации
  • Дообучение на специализированных задачах анализа антител

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

AbLang model for light chains

This is a 🤗 version of AbLang: A language model for antibodies. It was introduced in this paper and first released in this repository. This model is trained on uppercase amino acids: it only works with capital letter amino acids.

Intended uses & limitations

The model could be used for protein feature extraction or to be fine-tuned on downstream tasks (TBA).

How to use

Here is how to use this model to get the features of a given antibody sequence in PyTorch:

from transformers import AutoModel, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('qilowoq/AbLang_light')
model = AutoModel.from_pretrained('qilowoq/AbLang_light', trust_remote_code=True)

sequence_Example = ' '.join("GSELTQDPAVSVALGQTVRITCQGDSLRNYYASWYQQKPRQAPVLVFYGKNNRPSGIPDRFSGSSSGNTASLTISGAQAEDEADYYCNSRDSSSNHLVFGGGTKLTVLSQ")
encoded_input = tokenizer(sequence_Example, return_tensors='pt')
model_output = model(**encoded_input)

Sequence embeddings can be produced as follows:

def get_sequence_embeddings(encoded_input, model_output):
    mask = encoded_input['attention_mask'].float()
    d = {k: v for k, v in torch.nonzero(mask).cpu().numpy()} # dict of sep tokens
    # make sep token invisible
    for i in d:
        mask[i, d[i]] = 0
    mask[:, 0] = 0.0 # make cls token invisible
    mask = mask.unsqueeze(-1).expand(model_output.last_hidden_state.size())
    sum_embeddings = torch.sum(model_output.last_hidden_state * mask, 1)
    sum_mask = torch.clamp(mask.sum(1), min=1e-9)
    return sum_embeddings / sum_mask

seq_embeds = get_sequence_embeddings(encoded_input, model_output)

Fine-tune

To save memory we recomend using LoRA:

pip install git+https://github.com/huggingface/peft.git
pip install loralib

LoRA greatly reduces the number of trainable parameters and performs on-par or better than fine-tuning full model.

from peft import LoraConfig, get_peft_model

def apply_lora_bert(model):
    config = LoraConfig(
        r=8, lora_alpha=32, 
        lora_dropout=0.3,
        target_modules=['query', 'value']
    )
    for param in model.parameters():
        param.requires_grad = False  # freeze the model - train adapters later
        if param.ndim == 1:
        # cast the small parameters (e.g. layernorm) to fp32 for stability
            param.data = param.data.to(torch.float32)
    model.gradient_checkpointing_enable()  # reduce number of stored activations
    model.enable_input_require_grads()
    model = get_peft_model(model, config)
    return model

model = apply_lora_bert(model)

model.print_trainable_parameters()
# trainable params: 294912 || all params: 85493760 || trainable%: 0.3449514911965505

Citation

@article{Olsen2022,
  title={AbLang: An antibody language model for completing antibody sequences},
  author={Tobias H. Olsen, Iain H. Moal and Charlotte M. Deane},
  journal={bioRxiv},
  doi={https://doi.org/10.1101/2022.01.20.477061},
  year={2022}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
RobertaForMaskedLMV2
Ревизия весов
32de79f

0 моделей