# RFD4ProteinaTransformer

Bộ khử nhiễu của [RFD4-Proteína](../pipelines/rfd4_proteina). Nó dự đoán vận tốc cho hai phương thức mà trình lấy mẫu tích hợp — vị trí CA của khung xương và ẩn cục bộ theo từng token — từ các tensor phân tử đã được chuẩn bị. Đầu vào là các tensor có tên cùng với một ánh xạ điều kiện, trong đó nội dung được cấu hình checkpoint chọn; việc phân tích cấu trúc nằm ngoài phạm vi của lớp này.

```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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L906)

**Tham số:**

nlayers (`int`, mặc định là `14`) : Số lượng lớp thân.

token_dim (`int`, mặc định là `768`) : Độ rộng biểu diễn token.

nheads (`int`, mặc định là `12`) : Số đầu attention mỗi lớp.

dim_cond (`int`, mặc định là `256`) : Độ rộng của vector điều kiện (thời gian, chỉ số tái chế, nhãn CATH).

pair_repr_dim (`int`, mặc định là `384`) : Độ rộng biểu diễn cặp.

latent_dim (`int`, mặc định là `32`) : Độ rộng của latent cục bộ cho từng token.

token_type_emb_dim (`int`, mặc định là `32`) : Độ rộng nhúng kiểu token.

cath_emb_dim (`int`, mặc định là `32`) : Độ rộng của mỗi embedding lớp/kiến trúc/topology CATH.

t_emb_dim (`int`, mặc định là `256`) : Độ rộng của nhúng thời gian hình sin.

seq_sep_dim (`int`, mặc định là `64`) : Số lượng bin của độ dài đường liên kết.

xt_pair_dist_dim (`int`, mặc định là `30`) : Số lượng bin khoảng cách cặp của backbone.

xt_pair_dist_min (`float`, mặc định là `0.1`), xt_pair_dist_max (`float`, mặc định là `3.0`) : Khoảng cách cặp tính bằng nanomet.

feats_seq, feats_cond_seq, feats_pair_repr, feats_pair_cond (`list[str]`) : Tên của các đặc trưng được chiếu vào các đầu vào token, điều kiện, cặp và cặp-điều kiện.

update_pair_repr_every_n (`int`, mặc định là `2`) : Tần suất cập nhật biểu diễn cặp từ các token giữa các lớp.

tri_mult_c (`int`, mặc định là `256`) : Độ rộng ẩn của phép nhân tam giác trong các bản cập nhật đó.

num_token_types (`int`, mặc định là `7`) : Kích thước của từ điển token-type: protein, RNA, DNA, atomized, unknown, glycan và amino acid không chính tắc.

recycle_conditioning_dim (`int`, mặc định là `1`) : Độ rộng của one-hot `recycle_remaining`, khi đặc trưng đó nằm trong `feats_cond_seq`.

num_sequence_classes (`int`, mặc định là `147`) : Kích thước của bảng từ vựng residue mà phần đọc chuỗi dự đoán.

RFD4 velocity denoiser với các chế độ backbone ghép cặp và local-latent.

Mô hình chạy với dtype riêng của nó: hãy nạp nó với `dtype=torch.bfloat16` để suy luận độ chính xác giảm. Trạng thái lấy mẫu được truyền vào `forward` vẫn ở float32; các nhúng đặc trưng được tính toán ở float32 và được chuyển đổi tại phép chiếu đầu vào.

#### 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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L1062)

**Tham số:**

bb_ca (`torch.Tensor`) : Tọa độ backbone nhiễu `(batch, tokens, 3)` tính bằng nanomet.

local_latents (`torch.Tensor`) : Latents cục bộ nhiễu `(batch, tokens, latent_dim)`.

bb_ca_time (`torch.Tensor`) : `(batch,)` thời gian của backbone trong [0, 1].

local_latents_time (`torch.Tensor`) : `(batch,)` thời gian local-latent trong [0, 1].

padding_mask (`torch.Tensor`) : `(batch, tokens)`, giá trị true tại các token thực, không phải padding.

token_type (`torch.Tensor`, *tùy chọn*) : mã token-type `(batch, tokens)`.

atom37_mask (`torch.Tensor`, *tùy chọn*) : `(batch, tokens, 37)`, giá trị true tại các vị trí mà một slot nguyên tử được sử dụng.

conditioning (`dict[str, Any]`, *tùy chọn*) : Các tensor topology và conditioning còn lại, nằm dưới các key mà preprocessor phát ra. Việc đọc key nào được cố định bởi `feats_seq`, `feats_cond_seq`, `feats_pair_repr` và `feats_pair_cond` của checkpoint; một key mà một feature được cấu hình yêu cầu nhưng không có sẽ khiến feature đó không được conditioning thay vì gây ra lỗi.

recycle_depth (`int`, mặc định là `0`) : Số lần chạy qua phần thân; giá trị 0 vẫn thực hiện một lần chạy.

attention_kwargs (`dict`, *tùy chọn*) : Chỉ `scale` được đọc, như là tỷ lệ LoRA cho lần gọi này.

return_dict (`bool`, mặc định là `True`) : Trả về một đầu ra có kiểu, hoặc một bộ (tuple) các trường không phải None.

**Trả về:** `RFD4ProteinaTransformerOutput` hoặc `tuple`

Tốc độ backbone/local-latent và logits sequence/insertion tùy chọn, trước khi tích hợp scheduler.

Dự đoán vận tốc từ các tensor phân tử đã chuẩn bị mà không tiến bộ trình lấy mẫu.

## 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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L890)

**Tham số:**

backbone (`torch.Tensor`) : Tốc độ của backbone có hình dạng `(batch, tokens, 3)`, tính bằng nanomet trên một đơn vị thời gian.

local_latents (`torch.Tensor`) : Tốc độ tiềm ẩn có hình dạng `(batch, tokens, latent_dim)`.

sequence_logits (`torch.Tensor`, *tùy chọn*) : Residue logits có hình dạng `(batch, tokens, 147)`.

insertion_logits (`torch.Tensor`, *tùy chọn*) : Gán logits chèn có hình dạng `(batch, tokens, tokens)`.

Dự đoán của Denoiser trước khi tích hợp scheduler.

