# RFD4ProteinaTransformer

Денойзер [RFD4-Proteína](../pipelines/rfd4_proteina). Он предсказывает скорости для двух модальностей, которые интегрирует сэмплер — позиции CA каркаса и локальные латенты для каждого токена — на основе подготовленных молекулярных тензоров. Входы представляют собой именованные тензоры и отображение условий, содержимое которого определяется конфигурацией чекпоинта; парсинг структуры не входит в обязанности этого класса.

```py
from diffusers import RFD4ProteinaTransformer

transformer = RFD4ProteinaTransformer.from_pretrained(
    "nvidia/RFD4-Proteina-Diffusers", subfolder="transformer"
)
```

## RFD4ProteinaTransformer[[diffusers.RFD4ProteinaTransformer]]

#### diffusers.RFD4ProteinaTransformer[[diffusers.RFD4ProteinaTransformer]]

```python
diffusers.RFD4ProteinaTransformer(nlayers: int = 14, token_dim: int = 768, nheads: int = 12, dim_cond: int = 256, pair_repr_dim: int = 384, latent_dim: int = 32, token_type_emb_dim: int = 32, cath_emb_dim: int = 32, t_emb_dim: int = 256, seq_sep_dim: int = 64, xt_pair_dist_dim: int = 30, xt_pair_dist_min: float = 0.1, xt_pair_dist_max: float = 3.0, feats_seq: tuple[str, ...] = ('xt_bb_ca', 'xt_local_latents', 'token_type', 'sequence_probabilities', 'cond_a37coors_nm', 'cond_a37coors_internal_nm', 'rasa_binned', 'secondary_structure', 'hbond_modernized', 'pistack', 'pication', 'saltbridge', 'hydrophobic', 'metal_coord', 'na_ss_state', 'hotspot', 'atom_charge', 'atomic_element', 'coord_group_seq', 'chirality', 'chain_centroid_xyz'), feats_cond_seq: tuple[str, ...] = ('time_emb_bb_ca', 'time_emb_local_latents', 'cath_code', 'recycle_remaining'), feats_pair_repr: tuple[str, ...] = ('xt_bb_ca_pair_dists', 'bond_mask', 'bond_order', 'is_aromatic', 'index_group_pair', 'molecule_idx_pair', 'molecule_entity_pair', 'token_bond_path_length', 'canonical_polymer_ordering', 'na_ss_pair'), feats_pair_cond: tuple[str, ...] = ('time_emb_bb_ca', 'time_emb_local_latents'), update_pair_repr_every_n: int = 2, tri_mult_c: int = 256, num_sequence_classes: int = 147, num_token_types: int = 7, recycle_conditioning_dim: int = 1)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L906)

**Параметры:**

nlayers (`int`, по умолчанию `14`) : Количество слоёв стержня.

token_dim (`int`, по умолчанию `768`) : Ширина представления токена.

nheads (`int`, по умолчанию `12`) : Количество головок внимания на слой.

dim_cond (`int`, по умолчанию `256`) : Ширина вектора условий (время, индекс повторного использования, метка CATH).

pair_repr_dim (`int`, по умолчанию `384`) : Ширина представления пары.

latent_dim (`int`, по умолчанию `32`) : Ширина локального латентного представления для каждого токена.

token_type_emb_dim (`int`, по умолчанию `32`) : Ширина эмбеддинга типа токена.

cath_emb_dim (`int`, по умолчанию `32`) : Ширина каждого эмбеддинга класса/архитектуры/топологии CATH.

t_emb_dim (`int`, по умолчанию `256`) : Ширина синусоидального временного эмбеддинга.

seq_sep_dim (`int`, по умолчанию `64`) : Количество интервалов длины связывающего пути.

xt_pair_dist_dim (`int`, по умолчанию `30`) : Количество бинов парных расстояний в backbone.

xt_pair_dist_min (`float`, по умолчанию `0.1`), xt_pair_dist_max (`float`, по умолчанию `3.0`) : Диапазон парных расстояний в нанометрах.

feats_seq, feats_cond_seq, feats_pair_repr, feats_pair_cond (`list[str]`) : Имена признаков, проецируемых во входные токены, условия, пары и пары-условия.

update_pair_repr_every_n (`int`, по умолчанию `2`) : Как часто представление пары обновляется из токенов между слоями.

tri_mult_c (`int`, по умолчанию `256`) : Скрытая ширина треугольного умножения в этих обновлениях.

num_token_types (`int`, по умолчанию `7`) : Размер словаря типов токенов: белок, РНК, ДНК, атомизированный, неизвестный, гликан и неканоническая аминокислота.

recycle_conditioning_dim (`int`, по умолчанию `1`) : Ширина one-hot `recycle_remaining`, когда эта характеристика входит в `feats_cond_seq`.

num_sequence_classes (`int`, по умолчанию `147`) : Размер словаря остатков, который предсказывает считывание последовательности.

Шумоподавитель скорости RFD4 с парным бэкбоном и локально-латентными модальностями.

Модель работает в собственном dtype: загружайте её с `dtype=torch.bfloat16` для инференса с пониженной точностью. Состояние выборки, передаваемое в `forward`, остаётся в float32; эмбеддинги признаков вычисляются в float32 и приводятся к типу на входной проекции.

#### forward[[diffusers.RFD4ProteinaTransformer.forward]]

```python
forward(bb_ca: Tensor, local_latents: Tensor, bb_ca_time: Tensor, local_latents_time: Tensor, padding_mask: Tensor, token_type: typing.Optional[torch.Tensor] = None, atom37_mask: typing.Optional[torch.Tensor] = None, conditioning: dict[str, typing.Any] | None = None, recycle_depth: int = 0, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L1062)

**Параметры:**

bb_ca (`torch.Tensor`) : Координаты шумного бэкбона `(batch, tokens, 3)` в нанометрах.

local_latents (`torch.Tensor`) : Шумные локальные латенты `(batch, tokens, latent_dim)`.

bb_ca_time (`torch.Tensor`) : `(batch,)` время бэкбона в диапазоне [0, 1].

local_latents_time (`torch.Tensor`) : `(batch,)` локальное латентное время в диапазоне [0, 1].

padding_mask (`torch.Tensor`) : `(batch, tokens)`, значения true там, где токен является реальным, а не заполняющим.

token_type (`torch.Tensor`, *необязательный*) : коды типов токенов `(batch, tokens)`.

atom37_mask (`torch.Tensor`, *необязательный*) : `(batch, tokens, 37)`, true там, где используется слот атома.

conditioning (`dict[str, Any]`, *необязательный*) : Остальные тензоры топологии и условий, под ключами, которые выдаёт препроцессор. Какие из них читаются, определяется по `feats_seq`, `feats_cond_seq`, `feats_pair_repr` и `feats_pair_cond` в контрольной точке; если ключ, запрашиваемый настроенной функцией, отсутствует, соответствующая функция остаётся без условий, а не вызывает ошибку.

recycle_depth (`int`, по умолчанию `0`) : Количество проходов по стволу; при нуле выполняется один проход.

attention_kwargs (`dict`, *необязательный*) : Извлекается только `scale`, который используется как масштаб LoRA для этого вызова.

return_dict (`bool`, по умолчанию `True`) : возвращает типизированный вывод или кортеж полей, отличных от None.

**Возвращает:** `RFD4ProteinaTransformerOutput` или `tuple`

Скорости backbone/локальных латентов и необязательные логиты последовательности/вставки, до интеграции планировщика.

Предсказывайте скорости из подготовленных молекулярных тензоров без продвижения сэмплера.

## RFD4ProteinaTransformerOutput[[diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput]]

#### diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput[[diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput]]

```python
diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput(backbone: Tensor, local_latents: typing.Optional[torch.Tensor] = None, sequence_logits: typing.Optional[torch.Tensor] = None, insertion_logits: typing.Optional[torch.Tensor] = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L890)

**Параметры:**

backbone (`torch.Tensor`) : Скорость каркаса с формой `(batch, tokens, 3)`, в нанометрах за единицу времени.

local_latents (`torch.Tensor`) : Скорость латентов, форма `(batch, tokens, latent_dim)`.

sequence_logits (`torch.Tensor`, *необязательный*) : Логиты остатков с формой `(batch, tokens, 147)`.

insertion_logits (`torch.Tensor`, *необязательный*) : Логиты для присваивания при вставке с формой `(batch, tokens, tokens)`.

Прогнозы денуайзера до интеграции планировщика.

