# LED

[Longformer-Encoder-Decoder (LED)](https://huggingface.co/papers/2004.05150) là một mô hình transformer encoder-decoder cho các tác vụ sequence-to-sequence như tóm tắt. Nó mở rộng [Longformer](longformer), một mô hình chỉ có encoder được thiết kế để xử lý các đầu vào dài, bằng cách thêm một lớp decoder. Decoder sử dụng full self-attention trên các token đã được mã hóa và các vị trí đã được giải mã trước đó. Nhờ cơ chế self-attention tuyến tính của Longformer, LED hiệu quả hơn các mô hình encoder-decoder tiêu chuẩn khi xử lý các chuỗi dài.

Bạn có thể tìm thấy tất cả các checkpoint [LED] gốc dưới tổ chức [Ai2](https://huggingface.co/allenai/models?search=led).

> [!TIP]
> Mô hình này được đóng góp bởi [patrickvonplaten](https://huggingface.co/patrickvonplaten).
>
> Nhấp vào các mô hình LED ở thanh bên phải để xem thêm các ví dụ về cách áp dụng LED cho các tác vụ ngôn ngữ khác nhau.

Ví dụ dưới đây minh họa cách tóm tắt văn bản bằng [Pipeline](/docs/transformers/main/vi/main_classes/pipelines#transformers.Pipeline), [AutoModel](/docs/transformers/main/vi/model_doc/auto#transformers.AutoModel) và từ dòng lệnh.

```python
import torch

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(
    "allenai/led-base-16384"
)
model = AutoModelForSeq2SeqLM.from_pretrained(
    "allenai/led-base-16384",
    device_map="auto"
)

input_text = """Plants are among the most remarkable and essential life forms on Earth, possessing a unique ability to produce their own food through a process known as photosynthesis. This complex biochemical process is fundamental not only to plant life but to virtually all life on the planet.
Through photosynthesis, plants capture energy from sunlight using a green pigment called chlorophyll, which is located in specialized cell structures called chloroplasts. In the presence of light, plants absorb carbon dioxide from the atmosphere through small pores in their leaves called stomata, and take in water from the soil through their root systems.
These ingredients are then transformed into glucose, a type of sugar that serves as a source of chemical energy, and oxygen, which is released as a byproduct into the atmosphere. The glucose produced during photosynthesis is not just used immediately; plants also store it as starch or convert it into other organic compounds like cellulose, which is essential for building their cellular structure.
This energy reserve allows them to grow, develop leaves, produce flowers, bear fruit, and carry out various physiological processes throughout their lifecycle."""
input_ids = tokenizer(input_text, return_tensors="pt").to(model.device)

# Place global attention on the first token
global_attention_mask = torch.zeros_like(input_ids.input_ids).to(model.device)
global_attention_mask[:, 0] = 1

output = model.generate(**input_ids, global_attention_mask=global_attention_mask, cache_implementation="static")
print(tokenizer.decode(output[0], skip_special_tokens=True))
```

Quantization giảm gánh nặng bộ nhớ của các mô hình lớn bằng cách biểu diễn trọng số ở độ chính xác thấp hơn. Tham khảo tổng quan về [Quantization](../quantization/overview) để biết thêm các backend quantization khả dụng.

Ví dụ bên dưới sử dụng [bitsandbytes](../quantization/bitsandbytes) để chỉ lượng tử hóa trọng số xuống int4.

```python
import torch

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4"
)
model = AutoModelForSeq2SeqLM.from_pretrained(
    "allenai/led-large-16384",
    device_map="auto",
    quantization_config=quantization_config
)

tokenizer = AutoTokenizer.from_pretrained(
    "allenai/led-large-16384"
)

input_text = """Plants are among the most remarkable and essential life forms on Earth, possessing a unique ability to produce their own food through a process known as photosynthesis. This complex biochemical process is fundamental not only to plant life but to virtually all life on the planet.
Through photosynthesis, plants capture energy from sunlight using a green pigment called chlorophyll, which is located in specialized cell structures called chloroplasts. In the presence of light, plants absorb carbon dioxide from the atmosphere through small pores in their leaves called stomata, and take in water from the soil through their root systems.
These ingredients are then transformed into glucose, a type of sugar that serves as a source of chemical energy, and oxygen, which is released as a byproduct into the atmosphere. The glucose produced during photosynthesis is not just used immediately; plants also store it as starch or convert it into other organic compounds like cellulose, which is essential for building their cellular structure.
This energy reserve allows them to grow, develop leaves, produce flowers, bear fruit, and carry out various physiological processes throughout their lifecycle."""
input_ids = tokenizer(input_text, return_tensors="pt").to(model.device)

# Place global attention on the first token
global_attention_mask = torch.zeros_like(input_ids.input_ids).to(model.device)
global_attention_mask[:, 0] = 1

output = model.generate(**input_ids, global_attention_mask=global_attention_mask, cache_implementation="static")
print(tokenizer.decode(output[0], skip_special_tokens=True))
```

## Ghi chú

- [LEDForConditionalGeneration](/docs/transformers/main/vi/model_doc/led#transformers.LEDForConditionalGeneration) là một phần mở rộng của [BartForConditionalGeneration](/docs/transformers/main/vi/model_doc/bart#transformers.BartForConditionalGeneration), thay thế lớp self-attention truyền thống bằng lớp self-attention dạng chunk của Longformer. [LEDTokenizer](/docs/transformers/main/vi/model_doc/led#transformers.RobertaTokenizer) là một alias của [BartTokenizer](/docs/transformers/main/vi/model_doc/led#transformers.RobertaTokenizer).
- LED chèn padding cho `input_ids` để số lượng token là bội số của `config.attention_window` nếu cần. Tốc độ sẽ tăng nhẹ khi [LEDTokenizer](/docs/transformers/main/vi/model_doc/led#transformers.RobertaTokenizer) được sử dụng cùng với tham số `pad_to_multiple_of`.
- LED hoạt động tốt nhất trên các tác vụ sequence-to-sequence tầm xa, trong đó `input_ids` dài hơn đáng kể so với 1024 token.
- LED sử dụng chú ý toàn cục thông qua `global_attention_mask` (xem [LongformerModel](/docs/transformers/main/vi/model_doc/longformer#transformers.LongformerModel)). Đối với tóm tắt, nên đặt chú ý toàn cục chỉ trên token `<s>` đầu tiên. Đối với trả lời câu hỏi, nên đặt chú ý toàn cục trên tất cả các token của câu hỏi.
- Để tinh chỉnh LED trên tất cả 16384 tham số, có thể bật gradient checkpointing trong trường hợp quá trình huấn luyện dẫn đến lỗi hết bộ nhớ (OOM). Bật gradient checkpointing bằng cách thêm `model.gradient_checkpointing_enable()` và đặt `use_cache=False` để tắt cơ chế lưu cache nhằm tiết kiệm bộ nhớ.
- Các đầu vào nên được đệm (padding) ở phía bên phải vì LED sử dụng nhúng vị trí tuyệt đối.

## Tài nguyên

- Đọc [notebook LED trên Arxiv](https://colab.research.google.com/drive/12INTTR6n64TzS4RrXZxMSXfrOd9Xzamo?usp=sharing) để xem cách LED có thể đạt được hiệu suất tiên tiến nhất trong việc tóm tắt bài báo Arxiv.
- Đọc [notebook Fine-tune LED](https://colab.research.google.com/drive/12LjJazBl7Gam0XBPy_y0CTOJZeZ34c2v?usp=sharing) để tìm hiểu cách fine-tune LED trên các bài báo PubMed.

## LEDConfig[[transformers.LEDConfig]]

#### transformers.LEDConfig[[transformers.LEDConfig]]

```python
transformers.LEDConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, is_encoder_decoder: bool = True, vocab_size: int = 50265, max_encoder_position_embeddings: int = 16384, max_decoder_position_embeddings: int = 1024, encoder_layers: int = 12, encoder_ffn_dim: int = 4096, encoder_attention_heads: int = 16, decoder_layers: int = 12, decoder_ffn_dim: int = 4096, decoder_attention_heads: int = 16, encoder_layerdrop: float | int = 0.0, decoder_layerdrop: float | int = 0.0, use_cache: bool = True, activation_function: str = 'gelu', d_model: int = 1024, dropout: float | int = 0.1, attention_dropout: float | int = 0.0, activation_dropout: float | int = 0.0, init_std: float = 0.02, decoder_start_token_id: int = 2, classifier_dropout: float | int = 0.0, pad_token_id: int | None = 1, bos_token_id: int | None = 0, eos_token_id: int | list[int] | None = 2, attention_window: list[int] | int = 512, tie_word_embeddings: bool = True)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/configuration_led.py#L24)

**Tham số:**

is_encoder_decoder (`bool`, *tùy chọn*, mặc định là `True`) : Xác định xem mô hình có được sử dụng như một bộ mã hóa/giải mã hay không.

vocab_size (`int`, *tùy chọn*, mặc định là `50265`) : Kích thước từ vựng của mô hình. Xác định số lượng token khác nhau có thể được biểu diễn bởi `input_ids`.

max_encoder_position_embeddings (`int`, *optional*, mặc định là 16384) : Độ dài chuỗi tối đa mà bộ mã hóa có thể được sử dụng.

max_decoder_position_embeddings (`int`, *optional*, mặc định là 16384) : Độ dài chuỗi tối đa mà bộ giải mã có thể được sử dụng.

encoder_layers (`int`, *tuỳ chọn*, mặc định là `12`) : Số lượng lớp ẩn trong bộ mã hóa Transformer. Sẽ sử dụng cùng giá trị với `num_layers` nếu không được đặt.

encoder_ffn_dim (`int`, *optional*, mặc định là `4096`) : Chiều của lớp "intermediate" (thường được gọi là feed-forward) trong encoder.

encoder_attention_heads (`int`, *tuỳ chọn*, mặc định là `16`) : Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ mã hóa Transformer.

decoder_layers (`int`, *tuỳ chọn*, mặc định là `12`) : Số lượng lớp ẩn trong bộ giải mã Transformer. Nếu không được đặt, giá trị này sẽ giống với `num_layers`.

decoder_ffn_dim (`int`, *tuỳ chọn*, mặc định là `4096`) : Độ lớn chiều của lớp "trung gian" (thường được gọi là lớp feed-forward) trong bộ giải mã.

decoder_attention_heads (`int`, *tuỳ chọn*, mặc định là `16`) : Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.

encoder_layerdrop (`Union[float, int]`, *tùy chọn*, mặc định là `0.0`) : Xác suất LayerDrop cho encoder. Xem [bài báo LayerDrop](see https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.

decoder_layerdrop (`Union[float, int]`, *tùy chọn*, mặc định là `0.0`) : Xác suất LayerDrop cho bộ giải mã. Xem [bài báo LayerDrop](see https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.

use_cache (`bool`, *tùy chọn*, mặc định là `True`) : Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếu `config.is_decoder=True` hoặc khi mô hình là mô hình sinh chỉ có decoder.

activation_function (`str`, *tùy chọn*, mặc định là `gelu`) : Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, `"gelu"`, `"relu"`, `"silu"`, v.v.

d_model (`int`, *tuỳ chọn*, mặc định là `1024`) : Kích thước của các lớp encoder và lớp pooler.

dropout (`Union[float, int]`, *tùy chọn*, mặc định là `0.1`) : Tỷ lệ cho tất cả các lớp dropout.

attention_dropout (`Union[float, int]`, *tùy chọn*, mặc định là `0.0`) : Tỷ lệ dropout cho các xác suất chú ý.

activation_dropout (`Union[float, int]`, *tùy chọn*, mặc định là `0.0`) : Tỷ lệ dropout cho các kích hoạt bên trong lớp liên kết đầy đủ.

init_std (`float`, *optional*, mặc định là `0.02`) : Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.

decoder_start_token_id (`int`, *optional*, mặc định là `2`) : Nếu một mô hình encoder-decoder bắt đầu giải mã bằng một token khác với `bos`, đây là id của token đó.

classifier_dropout (`Union[float, int]`, *tùy chọn*, mặc định là `0.0`) : Tỷ lệ dropout cho bộ phân loại.

pad_token_id (`int`, *tuỳ chọn*, mặc định là `1`) : Id của token được sử dụng để đệm (padding) trong từ vựng.

bos_token_id (`int`, *tuỳ chọn*, mặc định là `0`) : Id của token được dùng cho đầu luồng (beginning-of-stream) trong từ vựng.

eos_token_id (`Union[int, list[int]]`, *tùy chọn*, mặc định là `2`) : Id của token được sử dụng cho end-of-stream trong bảng từ vựng.

attention_window (`int` hoặc `list[int]`, *tuỳ chọn*, mặc định là 512) : Kích thước của một cửa sổ chú ý xung quanh mỗi token. Nếu là `int`, hãy sử dụng cùng một kích thước cho tất cả các lớp. Để chỉ định kích thước cửa sổ khác nhau cho từng lớp, hãy sử dụng `list[int]` trong đó `len(attention_window) == num_hidden_layers`.

tie_word_embeddings (`bool`, *tùy chọn*, mặc định là `True`) : Có nên gắn kết các nhúng trọng số theo ánh xạ `tied_weights_keys` của mô hình hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một LEDModel. Nó được sử dụng để khởi tạo một mô hình Led theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của [allenai/led-base-16384](https://huggingface.co/allenai/led-base-16384)

Các đối tượng cấu hình kế thừa từ [PreTrainedConfig](/docs/transformers/main/vi/main_classes/configuration#transformers.PreTrainedConfig) và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ [PreTrainedConfig](/docs/transformers/main/vi/main_classes/configuration#transformers.PreTrainedConfig) để biết thêm thông tin.

Ví dụ:

```python
>>> from transformers import LEDModel, LEDConfig

>>> # Initializing a LED allenai/led-base-16384 style configuration
>>> configuration = LEDConfig()

>>> # Initializing a model from the allenai/led-base-16384 style configuration
>>> model = LEDModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## LEDTokenizer[[transformers.RobertaTokenizer]]

#### transformers.RobertaTokenizer[[transformers.RobertaTokenizer]]

```python
transformers.RobertaTokenizer(vocab: str | dict[str, int] | None = None, merges: str | list[str] | None = None, errors: str = 'replace', bos_token: str = '<s>', eos_token: str = '</s>', sep_token: str = '</s>', cls_token: str = '<s>', unk_token: str = '<unk>', pad_token: str = '<pad>', mask_token: str = '<mask>', add_prefix_space: bool = False, trim_offsets: bool = True, **kwargs)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/roberta/tokenization_roberta.py#L28)

**Tham số:**

vocab (`str`, `dict` hoặc `list`, *tùy chọn*) : Từ điển từ vựng tùy chỉnh. Nếu không được cung cấp, từ vựng sẽ được tải từ vocab_file.

merges (`str` hoặc `list`, *tùy chọn*) : Danh sách gộp tùy chỉnh. Nếu không được cung cấp, các gộp sẽ được tải từ merges_file.

errors (`str`, *tùy chọn*, mặc định là `"replace"`) : Quy tắc áp dụng khi giải mã bytes sang UTF-8. Xem [bytes.decode](https://docs.python.org/3/library/stdtypes.html#bytes.decode) để biết thêm thông tin.

bos_token (`str`, *tuỳ chọn*, mặc định là `"<s>"`) : Token bắt đầu chuỗi được sử dụng trong quá trình tiền huấn luyện. Có thể được dùng làm token phân loại chuỗi.    Khi xây dựng một chuỗi bằng các token đặc biệt, đây không phải là token được dùng cho phần bắt đầu của chuỗi. Token được dùng là `cls_token`.

eos_token (`str`, *tùy chọn*, mặc định là `"</s>"`) : Token kết thúc chuỗi. Khi xây dựng một chuỗi bằng các token đặc biệt, đây không phải là token được dùng cho việc kết thúc chuỗi. Token được dùng là `sep_token`.

sep_token (`str`, *tùy chọn*, mặc định là `"</s>"`) : Token phân cách, được sử dụng khi xây dựng một chuỗi từ nhiều chuỗi, ví dụ như hai chuỗi cho phân loại chuỗi hoặc một văn bản và một câu hỏi cho trả lời câu hỏi. Nó cũng được sử dụng làm token cuối cùng của một chuỗi được xây dựng với các token đặc biệt.

cls_token (`str`, *tùy chọn*, mặc định là `"<s>"`) : Token phân loại được sử dụng khi thực hiện phân loại chuỗi (phân loại toàn bộ chuỗi thay vì phân loại theo từng token). Đây là token đầu tiên của chuỗi khi được xây dựng với các token đặc biệt.

unk_token (`str`, *tùy chọn*, mặc định là `"<unk>"`) : Token không xác định. Một token không có trong từ vựng sẽ không thể được chuyển đổi thành ID và sẽ được gán thành token này thay thế.

pad_token (`str`, *tùy chọn*, mặc định là `"<pad>"`) : Token được sử dụng để đệm, chẳng hạn khi xử lý các lô (batch) các chuỗi có độ dài khác nhau.

mask_token (`str`, *tùy chọn*, mặc định là `"<mask>"`) : Token được sử dụng để che các giá trị. Đây là token được dùng khi huấn luyện mô hình này với mô hình hóa ngôn ngữ có che (masked language modeling). Đây là token mà mô hình sẽ cố gắng dự đoán.

add_prefix_space (`bool`, *tùy chọn*, mặc định là `False`) : Có thêm một khoảng trắng ban đầu vào đầu vào hay không. Điều này cho phép xử lý từ đầu tiên giống như bất kỳ từ nào khác. (Trình phân tách RoBERTa phát hiện đầu từ bằng khoảng trắng phía trước).

trim_offsets (`bool`, *tùy chọn*, mặc định là `True`) : Xác định xem bước xử lý hậu kỳ có nên cắt bỏ các offset để tránh bao gồm khoảng trắng hay không.

Xây dựng bộ phân từ RoBERTa (dựa trên thư viện tokenizers của HuggingFace). Dựa trên Byte-Pair-Encoding.

Tokenizer này được huấn luyện để coi khoảng trắng như một phần của các token (tương tự như sentencepiece) nên một từ sẽ

sẽ được mã hóa khác nhau tùy thuộc vào việc nó nằm ở đầu câu (không có khoảng trắng) hay không:

```python
>>> from transformers import RobertaTokenizer

>>> tokenizer = RobertaTokenizer.from_pretrained("FacebookAI/roberta-base")
>>> tokenizer("Hello world")["input_ids"]
[0, 31414, 232, 2]

>>> tokenizer(" Hello world")["input_ids"]
[0, 20920, 232, 2]
```

Bạn có thể tránh hành vi đó bằng cách truyền `add_prefix_space=True` khi khởi tạo tokenizer này hoặc khi gọi nó trên một số văn bản, nhưng vì mô hình không được tiền huấn luyện theo cách này, nó có thể dẫn đến giảm hiệu suất.

Khi được sử dụng với `is_split_into_words=True`, tokenizer này cần được khởi tạo với `add_prefix_space=True`.

Tokenizer này kế thừa từ [TokenizersBackend](/docs/transformers/main/vi/main_classes/tokenizer#transformers.TokenizersBackend), lớp chứa hầu hết các phương thức chính. Người dùng nên tham khảo lớp cha này để biết thêm thông tin về các phương thức đó.

#### get_special_tokens_mask[[transformers.RobertaTokenizer.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list[int], token_ids_1: list[int] | None = None, already_has_special_tokens: bool = False)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L1338)

**Tham số:**

token_ids_0 : Danh sách các ID của chuỗi (có thể đã được định dạng).

token_ids_1 : Không được sử dụng khi `already_has_special_tokens=True`. Trong trường hợp đó, giá trị phải là None.

already_has_special_tokens : Xác định xem chuỗi đã được định dạng với các token đặc biệt hay chưa.

**Trả về:** Một danh sách các số nguyên trong khoảng [0, 1]

1 cho token đặc biệt, 0 cho token chuỗi.

Lấy các id chuỗi từ một danh sách token không có token đặc biệt nào được thêm vào.

Đối với các tokenizer nhanh, các data collator gọi hàm này với `already_has_special_tokens=True` để xây dựng một mask trên một chuỗi đã được định dạng sẵn. Trong trường hợp đó, chúng ta tính mask bằng cách kiểm tra sự thuộc về trong `all_special_ids`.

#### save_vocabulary[[transformers.RobertaTokenizer.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L546)

## Đầu ra cụ thể cho LED[[transformers.models.led.modeling_led.LEDEncoderBaseModelOutput]]

#### transformers.models.led.modeling_led.LEDEncoderBaseModelOutput[[transformers.models.led.modeling_led.LEDEncoderBaseModelOutput]]

```python
transformers.models.led.modeling_led.LEDEncoderBaseModelOutput(last_hidden_state: Tensor, hidden_states: tuple[torch.Tensor, ...] | None = None, attentions: tuple[torch.Tensor, ...] | None = None, global_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1063)

**Tham số:**

last_hidden_state (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`) : Chuỗi các hidden-states tại đầu ra của lớp cuối cùng của mô hình.

hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`. Hidden-states của model tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu tùy chọn.

attentions (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x + attention_window + 1)`, trong đó `x` là số lượng token có mặt nạ chú ý toàn cục. Trọng số chú ý cục bộ sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự thân. Đây là các trọng số chú ý từ mọi token trong chuỗi đến mọi token có chú ý toàn cục (các giá trị đầu tiên `x`) và đến mọi token trong cửa sổ chú ý (các giá trị còn lại `attention_window + 1`). Lưu ý rằng `x` giá trị đầu tiên tham chiếu đến các token có vị trí cố định trong văn bản, nhưng `attention_window + 1` giá trị còn lại tham chiếu đến các token có vị trí tương đối: trọng số chú ý của một token đến chính nó nằm ở chỉ mục `x + attention_window / 2` và `attention_window / 2` giá trị trước (sau) đó là các trọng số chú ý đến `attention_window / 2` token trước (sau) đó. Nếu cửa sổ chú ý chứa một token có chú ý toàn cục, trọng số chú ý tại chỉ mục tương ứng được đặt thành 0; giá trị nên được truy cập từ `x` trọng số chú ý đầu tiên. Nếu một token có chú ý toàn cục, các trọng số chú ý đến tất cả các token khác trong `attentions` được đặt thành 0, các giá trị nên được truy cập từ `global_attentions`.

global_attentions (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có mặt nạ chú ý toàn cục. Trọng số chú ý toàn cục sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

Lớp cơ sở cho đầu ra của LEDEncoder, với các trạng thái ẩn tiềm năng, chú ý cục bộ và toàn cục.

#### transformers.models.led.modeling_led.LEDSeq2SeqModelOutput[[transformers.models.led.modeling_led.LEDSeq2SeqModelOutput]]

```python
transformers.models.led.modeling_led.LEDSeq2SeqModelOutput(last_hidden_state: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, decoder_hidden_states: tuple[torch.Tensor, ...] | None = None, decoder_attentions: tuple[torch.Tensor, ...] | None = None, cross_attentions: tuple[torch.Tensor, ...] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor, ...] | None = None, encoder_attentions: tuple[torch.Tensor, ...] | None = None, encoder_global_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1102)

**Tham số:**

last_hidden_state (`torch.Tensor` có shape `(batch_size, sequence_length, hidden_size)`) : Chuỗi hidden-states tại đầu ra của lớp cuối cùng của decoder của model. Nếu `past_key_values` được sử dụng, chỉ có hidden-state cuối cùng của các chuỗi với shape `(batch_size, 1, hidden_size)` được đưa ra.

past_key_values (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) : Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi. Chứa các hidden-states đã được tính toán trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.

decoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.  Hidden-states của decoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

decoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`. Trọng số chú ý của decoder, sau softmax của attention, được dùng để tính trung bình có trọng số trong các đầu self-attention.

cross_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của lớp cross-attention của decoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý cross-attention.

encoder_last_hidden_state (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder trong mô hình.

encoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`. Hidden-states của encoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

encoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của encoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

encoder_global_attentions (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi truyền `output_attentions=True` hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có global attention mask. Trọng số global attention sau softmax của attention, được dùng để tính trung bình có trọng số trong các đầu self-attention. Đây là các trọng số attention từ mọi token có global attention đến mọi token trong chuỗi.

Lớp cơ sở cho đầu ra của bộ mã hóa mô hình, đồng thời chứa: các trạng thái ẩn đã được tính trước, có thể tăng tốc độ giải mã tuần tự.

#### transformers.models.led.modeling_led.LEDSeq2SeqLMOutput[[transformers.models.led.modeling_led.LEDSeq2SeqLMOutput]]

```python
transformers.models.led.modeling_led.LEDSeq2SeqLMOutput(loss: typing.Optional[torch.Tensor] = None, logits: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, decoder_hidden_states: tuple[torch.Tensor, ...] | None = None, decoder_attentions: tuple[torch.Tensor, ...] | None = None, cross_attentions: tuple[torch.Tensor, ...] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor, ...] | None = None, encoder_attentions: tuple[torch.Tensor, ...] | None = None, encoder_global_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1140)

**Tham số:**

loss (`torch.Tensor` có hình dạng `(1,)`, *tùy chọn*, được trả về khi `labels` được cung cấp) : Tổn mô hình hóa ngôn ngữ.

logits (`torch.Tensor` có hình dạng `(batch_size, sequence_length, config.vocab_size)`) : Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token từ vựng trước SoftMax).

past_key_values (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) : Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi. Chứa các hidden-states đã được tính toán trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.

decoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.  Hidden-states của decoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

decoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của bộ giải mã, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

cross_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của lớp cross-attention của decoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý cross-attention.

encoder_last_hidden_state (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder trong mô hình.

encoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`. Hidden-states của encoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

encoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_attentions=True` hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của encoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

encoder_global_attentions (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có mặt nạ chú ý toàn cục. Trọng số chú ý toàn cục sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

Lớp cơ sở cho đầu ra của các mô hình ngôn ngữ tuần tự-đến-tuần tự.

#### transformers.models.led.modeling_led.LEDSeq2SeqSequenceClassifierOutput[[transformers.models.led.modeling_led.LEDSeq2SeqSequenceClassifierOutput]]

```python
transformers.models.led.modeling_led.LEDSeq2SeqSequenceClassifierOutput(loss: typing.Optional[torch.Tensor] = None, logits: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, decoder_hidden_states: tuple[torch.Tensor, ...] | None = None, decoder_attentions: tuple[torch.Tensor, ...] | None = None, cross_attentions: tuple[torch.Tensor, ...] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor, ...] | None = None, encoder_attentions: tuple[torch.Tensor, ...] | None = None, encoder_global_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1178)

**Tham số:**

loss (`torch.Tensor` có shape `(1,)`, *tùy chọn*, được trả về khi `label` được cung cấp) : Loss phân loại (hoặc hồi quy nếu config.num_labels==1).

logits (`torch.Tensor` có hình dạng `(batch_size, config.num_labels)`) : Điểm phân loại (hoặc hồi quy nếu config.num_labels==1) (trước SoftMax).

past_key_values (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) : Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi. Chứa các hidden-states đã được tính toán trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.

decoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.  Hidden-states của decoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

decoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`. Trọng số chú ý của decoder, sau softmax của attention, được dùng để tính trung bình có trọng số trong các đầu self-attention.

cross_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của lớp cross-attention trong decoder, sau softmax của attention, được dùng để tính trung bình có trọng số trong các đầu chú ý cross-attention.

encoder_last_hidden_state (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder trong mô hình.

encoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`. Hidden-states của encoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

encoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của encoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

encoder_global_attentions (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có mặt nạ chú ý toàn cục. Trọng số chú ý toàn cục sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

Lớp cơ sở cho đầu ra của các mô hình phân loại câu sequence-to-sequence.

#### transformers.models.led.modeling_led.LEDSeq2SeqQuestionAnsweringModelOutput[[transformers.models.led.modeling_led.LEDSeq2SeqQuestionAnsweringModelOutput]]

```python
transformers.models.led.modeling_led.LEDSeq2SeqQuestionAnsweringModelOutput(loss: typing.Optional[torch.Tensor] = None, start_logits: typing.Optional[torch.Tensor] = None, end_logits: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, decoder_hidden_states: tuple[torch.Tensor, ...] | None = None, decoder_attentions: tuple[torch.Tensor, ...] | None = None, cross_attentions: tuple[torch.Tensor, ...] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor, ...] | None = None, encoder_attentions: tuple[torch.Tensor, ...] | None = None, encoder_global_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1216)

**Tham số:**

loss (`torch.Tensor` có shape `(1,)`, *tùy chọn*, được trả về khi `labels` được cung cấp) : Tổng loss trích xuất span là tổng của Cross-Entropy cho các vị trí bắt đầu và kết thúc.

start_logits (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Điểm bắt đầu span (trước SoftMax).

end_logits (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Điểm kết thúc span (trước SoftMax).

past_key_values (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) : Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi. Chứa các hidden-states đã được tính toán trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.

decoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.  Hidden-states của decoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

decoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`. Trọng số chú ý của decoder, sau softmax của attention, được dùng để tính trung bình có trọng số trong các đầu self-attention.

cross_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có shape `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của lớp cross-attention của decoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý cross-attention.

encoder_last_hidden_state (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder trong mô hình.

encoder_hidden_states (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_hidden_states=True` được truyền vào hoặc khi `config.output_hidden_states=True`) : Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`. Hidden-states của encoder tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu.

encoder_attentions (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.  Trọng số chú ý của encoder, sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

encoder_global_attentions (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) : Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có mặt nạ chú ý toàn cục. Trọng số chú ý toàn cục sau softmax chú ý, được dùng để tính trung bình có trọng số trong các đầu chú ý tự. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

Lớp cơ sở cho đầu ra của các mô hình trả lời câu hỏi theo kiểu chuỗi-sang-chuỗi.

## LEDModel[[transformers.LEDModel]]

#### transformers.LEDModel[[transformers.LEDModel]]

```python
transformers.LEDModel(config: LEDConfig)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1719)

**Tham số:**

config ([LEDConfig](/docs/transformers/main/vi/model_doc/led#transformers.LEDConfig)) : Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức [from_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.from_pretrained) để tải trọng số của mô hình.

Mô hình Led cơ bản, xuất ra các hidden-state thô mà không có bất kỳ head cụ thể nào ở phía trên.

Mô hình này kế thừa từ [PreTrainedModel](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu ra, v.v.)

Mô hình này cũng là một lớp con của [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

#### forward[[transformers.LEDModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, global_attention_mask: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1745)

**Tham số:**

input_ids (`torch.LongTensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Mặc định, các token đệm (padding) sẽ bị bỏ qua. Có thể lấy chỉ số bằng cách sử dụng [AutoTokenizer](/docs/transformers/main/vi/model_doc/auto#transformers.AutoTokenizer). Xem [PreTrainedTokenizer.encode()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) và [PreTrainedTokenizer.__call__()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) để biết chi tiết. [ID đầu vào là gì?](../glossary#input-ids)

attention_mask (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong `[0, 1]`:  - 1 cho các token **không bị che**, - 0 cho các token **bị che**.  [Mặt nạ chú ý là gì?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` có shape `(batch_size, target_sequence_length)`, *tùy chọn*) : Chỉ số của các token trong chuỗi đầu vào của bộ giải mã trong từ vựng.  Các chỉ số có thể được lấy bằng cách sử dụng `LedTokenizer`. Xem [PreTrainedTokenizer.encode()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) và [PreTrainedTokenizer.__call__()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) để biết chi tiết.  [Input IDs là gì?](../glossary#input-ids)  LED sử dụng `eos_token_id` làm token bắt đầu cho việc tạo `decoder_input_ids`. Nếu `past_key_values` được sử dụng, tùy chọn chỉ cần nhập `decoder_input_ids` cuối cùng (xem `past_key_values`).

decoder_attention_mask (`torch.LongTensor` có shape `(batch_size, target_sequence_length)`, *tùy chọn*) : Hành vi mặc định: tạo một tensor bỏ qua các pad token trong `decoder_input_ids`. Causal mask cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi padding, bạn nên đọc `modeling_led._prepare_decoder_inputs` và chỉnh sửa theo nhu cầu. Xem hình 1 trong [bài báo](https://huggingface.co/papers/1910.13461) để biết thêm thông tin về chiến lược mặc định.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *tùy chọn*) : Tuple bao gồm (`last_hidden_state`, *tùy chọn*: `hidden_states`, *tùy chọn*: `attentions`) `last_hidden_state` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.

global_attention_mask (`torch.Tensor` có shape `(batch_size, sequence_length)`, *tùy chọn*) : Mask để quyết định mức độ chú ý (attention) dành cho từng token, là local attention hay global attention đối với encoder. Các token có global attention sẽ chú ý đến tất cả các token khác, và tất cả các token khác cũng chú ý đến chúng. Điều này rất quan trọng cho việc finetuning theo từng tác vụ vì nó giúp mô hình linh hoạt hơn trong việc biểu diễn tác vụ. Ví dụ, đối với phân loại, token  nên được cấp global attention. Đối với QA, tất cả các token của câu hỏi cũng nên có global attention. Vui lòng tham khảo [bài báo Longformer](https://huggingface.co/papers/2004.05150) để biết thêm chi tiết. Các giá trị mask được chọn trong `[0, 1]`:  - 0 cho local attention (sliding window attention), - 1 cho global attention (các token chú ý đến tất cả các token khác, và tất cả các token khác chú ý đến chúng).

past_key_values (`~cache_utils.Cache`, *tùy chọn*) : Các hidden-states đã tính trước (key và values trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm `past_key_values` do mô hình trả về ở một giai đoạn giải mã trước đó, khi `use_cache=True` hoặc `config.use_cache=True`.  Chỉ cho phép [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache) instance làm đầu vào, xem [hướng dẫn kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi. Nếu không truyền `past_key_values`, [DynamicCache](/docs/transformers/main/vi/internal/generation_utils#transformers.DynamicCache) sẽ được khởi tạo theo mặc định.  Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.  Nếu sử dụng `past_key_values`, người dùng được kỳ vọng chỉ nhập các `input_ids` chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có shape `(batch_size, unprocessed_length)` thay vì tất cả `input_ids` có shape `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Tùy chọn, thay vì truyền `input_ids`, bạn có thể chọn cách truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số `input_ids` thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.

decoder_inputs_embeds (`torch.Tensor` có shape `(batch_size, target_sequence_length, hidden_size)`, *tùy chọn*) : Tùy chọn, thay vì truyền `decoder_input_ids`, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Nếu `past_key_values` được sử dụng, tùy chọn chỉ cần nhập `decoder_inputs_embeds` cuối cùng (xem `past_key_values`). Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số `decoder_input_ids` thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. Nếu cả `decoder_input_ids` và `decoder_inputs_embeds` đều không được đặt, `decoder_inputs_embeds` sẽ nhận giá trị của `inputs_embeds`.

use_cache (`bool`, *tùy chọn*) : Nếu được đặt thành `True`, các trạng thái khóa và giá trị `past_key_values` sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem `past_key_values`).

output_attentions (`bool`, *tùy chọn*) : Có trả về các tensor chú ý của tất cả các lớp chú ý hay không. Xem `attentions` trong phần tensor trả về để biết thêm chi tiết.

output_hidden_states (`bool`, *tuỳ chọn*) : Có trả về trạng thái ẩn của tất cả các lớp hay không. Xem `hidden_states` trong phần tensor trả về để biết thêm chi tiết.

return_dict (`bool`, *tùy chọn*) : Có trả về [ModelOutput](/docs/transformers/main/vi/main_classes/output#transformers.utils.ModelOutput) thay vì một tuple thông thường hay không.

**Trả về:** [LEDSeq2SeqModelOutput](/docs/transformers/main/vi/model_doc/led#transformers.models.led.modeling_led.LEDSeq2SeqModelOutput) hoặc `tuple(torch.Tensor)`

Một [LEDSeq2SeqModelOutput](/docs/transformers/main/vi/model_doc/led#transformers.models.led.modeling_led.LEDSeq2SeqModelOutput) hoặc một tuple của `torch.Tensor` (nếu `return_dict=False` được truyền hoặc khi `config.return_dict=False`) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình ([LEDConfig](/docs/transformers/main/vi/model_doc/led#transformers.LEDConfig)) và đầu vào.

Phương thức forward của [LEDModel](/docs/transformers/main/vi/model_doc/led#transformers.LEDModel) ghi đè lên phương thức đặc biệt `__call__`.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, bạn nên gọi instance của `Module` sau đó thay vì gọi hàm này, vì instance `Module` sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ bỏ qua chúng một cách im lặng.

- **last_hidden_state** (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`) -- Chuỗi các trạng thái ẩn (hidden-states) tại đầu ra của lớp cuối cùng của bộ giải mã (decoder) của mô hình.

  Nếu `past_key_values` được sử dụng, chỉ có hidden-state cuối cùng của các chuỗi có shape `(batch_size, 1, hidden_size)` được xuất ra.
- **past_key_values** (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) -- Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi.

  Chứa các hidden-states đã được tính trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.
- **decoder_hidden_states** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_hidden_states=True` hoặc khi `config.output_hidden_states=True`) -- Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.

  Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.
- **decoder_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).
- **cross_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Bộ tuple các `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.
- **encoder_last_hidden_state** (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) -- Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.
- **encoder_hidden_states** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_hidden_states=True` hoặc khi `config.output_hidden_states=True`) -- Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.

  Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.
- **encoder_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_attentions=True` hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự thân.
- **encoder_global_attentions** (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi truyền `output_attentions=True` hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có global attention mask.

  Trọng số chú ý toàn cục sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu tự chú ý. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

## LEDForConditionalGeneration[[transformers.LEDForConditionalGeneration]]

#### transformers.LEDForConditionalGeneration[[transformers.LEDForConditionalGeneration]]

```python
transformers.LEDForConditionalGeneration(config: LEDConfig)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1861)

**Tham số:**

config ([LEDConfig](/docs/transformers/main/vi/model_doc/led#transformers.LEDConfig)) : Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức [from_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.from_pretrained) để tải trọng số của mô hình.

Mô hình LED với đầu mô hình hóa ngôn ngữ. Có thể được sử dụng cho việc tóm tắt.

Mô hình này kế thừa từ [PreTrainedModel](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu ra, v.v.)

Mô hình này cũng là một lớp con của [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

#### forward[[transformers.LEDForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, global_attention_mask: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L1893)

**Tham số:**

input_ids (`torch.LongTensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Mặc định, các token đệm (padding) sẽ bị bỏ qua. Có thể lấy chỉ số bằng cách sử dụng [AutoTokenizer](/docs/transformers/main/vi/model_doc/auto#transformers.AutoTokenizer). Xem [PreTrainedTokenizer.encode()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) và [PreTrainedTokenizer.__call__()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) để biết chi tiết. [ID đầu vào là gì?](../glossary#input-ids)

attention_mask (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong `[0, 1]`:  - 1 cho các token **không bị che**, - 0 cho các token **bị che**.  [Mặt nạ chú ý là gì?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` có shape `(batch_size, target_sequence_length)`, *tùy chọn*) : Chỉ số của các token trong chuỗi đầu vào của bộ giải mã trong từ vựng.  Các chỉ số có thể được lấy bằng cách sử dụng `LedTokenizer`. Xem [PreTrainedTokenizer.encode()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) và [PreTrainedTokenizer.__call__()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) để biết chi tiết.  [Input IDs là gì?](../glossary#input-ids)  LED sử dụng `eos_token_id` làm token bắt đầu cho việc tạo `decoder_input_ids`. Nếu `past_key_values` được sử dụng, tùy chọn chỉ cần nhập `decoder_input_ids` cuối cùng (xem `past_key_values`).

decoder_attention_mask (`torch.LongTensor` có shape `(batch_size, target_sequence_length)`, *tùy chọn*) : Hành vi mặc định: tạo một tensor bỏ qua các pad token trong `decoder_input_ids`. Causal mask cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi padding, bạn nên đọc `modeling_led._prepare_decoder_inputs` và chỉnh sửa theo nhu cầu. Xem hình 1 trong [bài báo](https://huggingface.co/papers/1910.13461) để biết thêm thông tin về chiến lược mặc định.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *tùy chọn*) : Tuple bao gồm (`last_hidden_state`, *tùy chọn*: `hidden_states`, *tùy chọn*: `attentions`) `last_hidden_state` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.

global_attention_mask (`torch.Tensor` có shape `(batch_size, sequence_length)`, *tùy chọn*) : Mask để quyết định mức độ chú ý (attention) dành cho từng token, là local attention hay global attention đối với encoder. Các token có global attention sẽ chú ý đến tất cả các token khác, và tất cả các token khác cũng chú ý đến chúng. Điều này quan trọng cho việc finetuning theo từng tác vụ vì nó giúp mô hình linh hoạt hơn trong việc biểu diễn tác vụ. Ví dụ, đối với phân loại, token  nên được gán global attention. Đối với QA, tất cả các token của câu hỏi cũng nên có global attention. Vui lòng tham khảo [bài báo Longformer](https://huggingface.co/papers/2004.05150) để biết thêm chi tiết. Các giá trị mask được chọn trong `[0, 1]`:  - 0 cho local attention (chú ý theo cửa sổ trượt), - 1 cho global attention (các token chú ý đến tất cả các token khác, và tất cả các token khác chú ý đến chúng).

past_key_values (`~cache_utils.Cache`, *tùy chọn*) : Các hidden-states đã tính trước (key và values trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm `past_key_values` do mô hình trả về ở một giai đoạn giải mã trước đó, khi `use_cache=True` hoặc `config.use_cache=True`.  Chỉ cho phép [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache) instance làm đầu vào, xem [hướng dẫn kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi. Nếu không truyền `past_key_values`, [DynamicCache](/docs/transformers/main/vi/internal/generation_utils#transformers.DynamicCache) sẽ được khởi tạo theo mặc định.  Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.  Nếu sử dụng `past_key_values`, người dùng được kỳ vọng chỉ nhập các `input_ids` chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có shape `(batch_size, unprocessed_length)` thay vì tất cả `input_ids` có shape `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Tùy chọn, thay vì truyền `input_ids`, bạn có thể chọn cách truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số `input_ids` thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.

decoder_inputs_embeds (`torch.Tensor` có shape `(batch_size, target_sequence_length, hidden_size)`, *tùy chọn*) : Tùy chọn, thay vì truyền `decoder_input_ids`, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Nếu `past_key_values` được sử dụng, tùy chọn chỉ cần nhập `decoder_inputs_embeds` cuối cùng (xem `past_key_values`). Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số `decoder_input_ids` thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. Nếu cả `decoder_input_ids` và `decoder_inputs_embeds` đều không được đặt, `decoder_inputs_embeds` sẽ nhận giá trị của `inputs_embeds`.

labels (`torch.LongTensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có mặt nạ. Chỉ số phải nằm trong `[0, ..., config.vocab_size]` hoặc -100 (xem docstring của `input_ids`). Các token có chỉ số được đặt thành `-100` sẽ bị bỏ qua (mặt nạ), tổn thất chỉ được tính cho các token có nhãn nằm trong `[0, ..., config.vocab_size]`.

use_cache (`bool`, *tùy chọn*) : Nếu được đặt thành `True`, các trạng thái khóa và giá trị `past_key_values` sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem `past_key_values`).

output_attentions (`bool`, *tùy chọn*) : Có trả về các tensor chú ý của tất cả các lớp chú ý hay không. Xem `attentions` trong phần tensor trả về để biết thêm chi tiết.

output_hidden_states (`bool`, *tuỳ chọn*) : Có trả về trạng thái ẩn của tất cả các lớp hay không. Xem `hidden_states` trong phần tensor trả về để biết thêm chi tiết.

return_dict (`bool`, *tùy chọn*) : Có trả về [ModelOutput](/docs/transformers/main/vi/main_classes/output#transformers.utils.ModelOutput) thay vì một tuple thông thường hay không.

**Trả về:** [LEDSeq2SeqLMOutput](/docs/transformers/main/vi/model_doc/led#transformers.models.led.modeling_led.LEDSeq2SeqLMOutput) hoặc `tuple(torch.Tensor)`

Một [LEDSeq2SeqLMOutput](/docs/transformers/main/vi/model_doc/led#transformers.models.led.modeling_led.LEDSeq2SeqLMOutput) hoặc một tuple của `torch.Tensor` (nếu `return_dict=False` được truyền hoặc khi `config.return_dict=False`) bao gồm các phần tử khác nhau tùy thuộc vào cấu hình ([LEDConfig](/docs/transformers/main/vi/model_doc/led#transformers.LEDConfig)) và đầu vào.

Phương thức forward của [LEDForConditionalGeneration](/docs/transformers/main/vi/model_doc/led#transformers.LEDForConditionalGeneration) ghi đè lên phương thức đặc biệt `__call__`.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, bạn nên gọi instance của `Module` sau đó thay vì gọi hàm này, vì instance `Module` sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ bỏ qua chúng một cách im lặng.

- **loss** (`torch.Tensor` có shape `(1,)`, *tuỳ chọn*, được trả về khi `labels` được cung cấp) -- Loss của language modeling.
- **logits** (`torch.Tensor` có hình dạng `(batch_size, sequence_length, config.vocab_size)`) -- Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token từ vựng trước SoftMax).
- **past_key_values** (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) -- Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi.

  Chứa các hidden-states đã được tính trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.
- **decoder_hidden_states** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_hidden_states=True` hoặc khi `config.output_hidden_states=True`) -- Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.

  Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.
- **decoder_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).
- **cross_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Bộ tuple các `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.
- **encoder_last_hidden_state** (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) -- Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.
- **encoder_hidden_states** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_hidden_states=True` hoặc khi `config.output_hidden_states=True`) -- Bộ tuple các `torch.Tensor` (một cho đầu ra của lớp nhúng, nếu mô hình có lớp nhúng, + một cho đầu ra của mỗi lớp) có hình dạng `(batch_size, sequence_length, hidden_size)`.

  Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.
- **encoder_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Bộ tuple các `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự thân.
- **encoder_global_attentions** (`tuple(torch.Tensor)`, *tuỳ chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Bộ tuple các `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có mặt nạ chú ý toàn cục.

  Trọng số chú ý toàn cục sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu tự chú ý. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

Ví dụ tóm tắt:

```python
>>> import torch
>>> from transformers import AutoTokenizer, LEDForConditionalGeneration

>>> model = LEDForConditionalGeneration.from_pretrained("allenai/led-large-16384-arxiv")
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/led-large-16384-arxiv")

>>> ARTICLE_TO_SUMMARIZE = '''Transformers (Vaswani et al., 2017) have achieved state-of-the-art
...     results in a wide range of natural language tasks including generative language modeling
...     (Dai et al., 2019; Radford et al., 2019) and discriminative ... language understanding (Devlin et al., 2019).
...     This success is partly due to the self-attention component which enables the network to capture contextual
...     information from the entire sequence. While powerful, the memory and computational requirements of
...     self-attention grow quadratically with sequence length, making it infeasible (or very expensive) to
...     process long sequences. To address this limitation, we present Longformer, a modified Transformer
...     architecture with a self-attention operation that scales linearly with the sequence length, making it
...     versatile for processing long documents (Fig 1). This is an advantage for natural language tasks such as
...     long document classification, question answering (QA), and coreference resolution, where existing approaches
...     partition or shorten the long context into smaller sequences that fall within the typical 512 token limit
...     of BERT-style pretrained models. Such partitioning could potentially result in loss of important
...     cross-partition information, and to mitigate this problem, existing methods often rely on complex
...     architectures to address such interactions. On the other hand, our proposed Longformer is able to build
...     contextual representations of the entire context using multiple layers of attention, reducing the need for
...     task-specific architectures.'''
>>> inputs = tokenizer.encode(ARTICLE_TO_SUMMARIZE, return_tensors="pt")

>>> # Global attention on the first token (cf. Beltagy et al. 2020)
>>> global_attention_mask = torch.zeros_like(inputs)
>>> global_attention_mask[:, 0] = 1

>>> # Generate Summary
>>> summary_ids = model.generate(inputs, global_attention_mask=global_attention_mask, num_beams=3, max_length=32)
>>> print(tokenizer.decode(summary_ids[0], skip_special_tokens=True, clean_up_tokenization_spaces=True))
```

Ví dụ Sinh có điều kiện :

```python
>>> from transformers import AutoTokenizer, LEDForConditionalGeneration

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/led-base-16384")
>>> TXT = "My friends are <mask> but they eat too many carbs."

>>> model = LEDForConditionalGeneration.from_pretrained("allenai/led-base-16384")
>>> input_ids = tokenizer([TXT], return_tensors="pt")["input_ids"]

>>> prediction = model.generate(input_ids)[0]
>>> print(tokenizer.decode(prediction, skip_special_tokens=True))
```

## LEDForQuestionAnswering[[transformers.LEDForQuestionAnswering]]

#### transformers.LEDForQuestionAnswering[[transformers.LEDForQuestionAnswering]]

```python
transformers.LEDForQuestionAnswering(config: LEDConfig)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L2047)

**Tham số:**

config ([LEDConfig](/docs/transformers/main/vi/model_doc/led#transformers.LEDConfig)) : Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức [from_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.from_pretrained) để tải trọng số của mô hình.

Biến áp Led có đầu phân loại khoảng (span classification head) phía trên cho các tác vụ trả lời câu hỏi trích xuất (extractive question-answering) như SQuAD (một lớp tuyến tính phía trên đầu ra hidden-states để tính toán `span start logits` và `span end logits`).

Mô hình này kế thừa từ [PreTrainedModel](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu ra, v.v.)

Mô hình này cũng là một lớp con của [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

#### forward[[transformers.LEDForQuestionAnswering.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, global_attention_mask: typing.Optional[torch.Tensor] = None, start_positions: typing.Optional[torch.LongTensor] = None, end_positions: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/led/modeling_led.py#L2060)

**Tham số:**

input_ids (`torch.LongTensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Mặc định, các token đệm (padding) sẽ bị bỏ qua. Có thể lấy chỉ số bằng cách sử dụng [AutoTokenizer](/docs/transformers/main/vi/model_doc/auto#transformers.AutoTokenizer). Xem [PreTrainedTokenizer.encode()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) và [PreTrainedTokenizer.__call__()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) để biết chi tiết. [ID đầu vào là gì?](../glossary#input-ids)

attention_mask (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) : Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong `[0, 1]`:  - 1 cho các token **không bị che**, - 0 cho các token **bị che**.  [Mặt nạ chú ý là gì?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` có shape `(batch_size, target_sequence_length)`, *tùy chọn*) : Chỉ số của các token trong chuỗi đầu vào của bộ giải mã trong từ vựng.  Các chỉ số có thể được lấy bằng cách sử dụng `LedTokenizer`. Xem [PreTrainedTokenizer.encode()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) và [PreTrainedTokenizer.__call__()](/docs/transformers/main/vi/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) để biết chi tiết.  [Input IDs là gì?](../glossary#input-ids)  LED sử dụng `eos_token_id` làm token bắt đầu cho việc tạo `decoder_input_ids`. Nếu `past_key_values` được sử dụng, tùy chọn chỉ cần nhập `decoder_input_ids` cuối cùng (xem `past_key_values`).

decoder_attention_mask (`torch.LongTensor` có shape `(batch_size, target_sequence_length)`, *tùy chọn*) : Hành vi mặc định: tạo một tensor bỏ qua các pad token trong `decoder_input_ids`. Causal mask cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi padding, bạn nên đọc `modeling_led._prepare_decoder_inputs` và chỉnh sửa theo nhu cầu. Xem hình 1 trong [bài báo](https://huggingface.co/papers/1910.13461) để biết thêm thông tin về chiến lược mặc định.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *tùy chọn*) : Tuple bao gồm (`last_hidden_state`, *tùy chọn*: `hidden_states`, *tùy chọn*: `attentions`) `last_hidden_state` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.

global_attention_mask (`torch.Tensor` có shape `(batch_size, sequence_length)`, *tùy chọn*) : Mask để quyết định mức độ chú ý (attention) dành cho từng token, là local attention hay global attention đối với encoder. Các token có global attention sẽ chú ý đến tất cả các token khác, và tất cả các token khác cũng chú ý đến chúng. Điều này rất quan trọng cho việc finetuning theo từng tác vụ vì nó giúp mô hình linh hoạt hơn trong việc biểu diễn tác vụ. Ví dụ, đối với phân loại, token  nên được cấp global attention. Đối với QA, tất cả các token của câu hỏi cũng nên có global attention. Vui lòng tham khảo [bài báo Longformer](https://huggingface.co/papers/2004.05150) để biết thêm chi tiết. Các giá trị mask được chọn trong `[0, 1]`:  - 0 cho local attention (chú ý dạng cửa sổ trượt), - 1 cho global attention (các token chú ý đến tất cả các token khác, và tất cả các token khác chú ý đến chúng).

start_positions (`torch.LongTensor` có hình dạng `(batch_size,)`, *tùy chọn*) : Nhãn cho vị trí (chỉ số) bắt đầu của đoạn được gắn nhãn để tính toán tổn thất phân loại token. Các vị trí được kẹp (clamp) theo độ dài của chuỗi (`sequence_length`). Các vị trí nằm ngoài chuỗi sẽ không được tính đến khi tính toán tổn thất.

end_positions (`torch.LongTensor` có hình dạng `(batch_size,)`, *tùy chọn*) : Nhãn cho vị trí (chỉ số) của điểm kết thúc của đoạn được gắn nhãn để tính toán tổn thất phân loại token. Các vị trí được kẹp (clamp) theo độ dài của chuỗi (`sequence_length`). Các vị trí nằm ngoài chuỗi sẽ không được tính đến khi tính toán tổn thất.

inputs_embeds (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) : Tùy chọn, thay vì truyền `input_ids`, bạn có thể chọn cách truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số `input_ids` thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.

decoder_inputs_embeds (`torch.Tensor` có shape `(batch_size, target_sequence_length, hidden_size)`, *tùy chọn*) : Tùy chọn, thay vì truyền `decoder_input_ids`, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Nếu `past_key_values` được sử dụng, tùy chọn chỉ cần nhập `decoder_inputs_embeds` cuối cùng (xem `past_key_values`). Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số `decoder_input_ids` thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. Nếu cả `decoder_input_ids` và `decoder_inputs_embeds` đều không được đặt, `decoder_inputs_embeds` sẽ nhận giá trị của `inputs_embeds`.

use_cache (`bool`, *tùy chọn*) : Nếu được đặt thành `True`, các trạng thái khóa và giá trị `past_key_values` sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem `past_key_values`).

output_attentions (`bool`, *tùy chọn*) : Có trả về các tensor chú ý của tất cả các lớp chú ý hay không. Xem `attentions` trong phần tensor trả về để biết thêm chi tiết.

output_hidden_states (`bool`, *tuỳ chọn*) : Có trả về trạng thái ẩn của tất cả các lớp hay không. Xem `hidden_states` trong phần tensor trả về để biết thêm chi tiết.

return_dict (`bool`, *tùy chọn*) : Có trả về [ModelOutput](/docs/transformers/main/vi/main_classes/output#transformers.utils.ModelOutput) thay vì một tuple thông thường hay không.

**Trả về:** [LEDSeq2SeqQuestionAnsweringModelOutput](/docs/transformers/main/vi/model_doc/led#transformers.models.led.modeling_led.LEDSeq2SeqQuestionAnsweringModelOutput) hoặc `tuple(torch.Tensor)`

Một [LEDSeq2SeqQuestionAnsweringModelOutput](/docs/transformers/main/vi/model_doc/led#transformers.models.led.modeling_led.LEDSeq2SeqQuestionAnsweringModelOutput) hoặc một tuple của `torch.Tensor` (nếu `return_dict=False` được truyền hoặc khi `config.return_dict=False`) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình ([LEDConfig](/docs/transformers/main/vi/model_doc/led#transformers.LEDConfig)) và đầu vào.

Phương thức forward của [LEDForQuestionAnswering](/docs/transformers/main/vi/model_doc/led#transformers.LEDForQuestionAnswering) ghi đè lên phương thức đặc biệt `__call__`.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, bạn nên gọi instance của `Module` sau đó thay vì gọi hàm này, vì instance `Module` sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ bỏ qua chúng một cách im lặng.

- **loss** (`torch.Tensor` có shape `(1,)`, *optional*, được trả về khi `labels` được cung cấp) -- Tổng loss trích xuất span là tổng của Cross-Entropy cho các vị trí bắt đầu và kết thúc.
- **start_logits** (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) -- Điểm bắt đầu span (trước SoftMax).
- **end_logits** (`torch.Tensor` có hình dạng `(batch_size, sequence_length)`, *tùy chọn*) -- Điểm số kết thúc đoạn (trước SoftMax).
- **past_key_values** (`Cache`, *tùy chọn*, được trả về khi `use_cache=True` được truyền vào hoặc khi `config.use_cache=True`) -- Đây là một instance của [Cache](/docs/transformers/main/vi/internal/generation_utils#transformers.Cache). Để biết thêm chi tiết, hãy xem [hướng dẫn về kv cache](https://huggingface.co/docs/transformers/en/kv_cache) của chúng tôi.

  Chứa các hidden-states đã được tính trước (key và values trong các khối attention) của decoder, có thể được sử dụng (xem đầu vào `past_key_values`) để tăng tốc độ giải mã tuần tự.
- **decoder_hidden_states** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_hidden_states=True` hoặc khi `config.output_hidden_states=True`) -- Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.

  Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.
- **decoder_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).
- **cross_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi `output_attentions=True` được truyền vào hoặc khi `config.output_attentions=True`) -- Bộ tuple các `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.
- **encoder_last_hidden_state** (`torch.Tensor` có hình dạng `(batch_size, sequence_length, hidden_size)`, *tùy chọn*) -- Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.
- **encoder_hidden_states** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_hidden_states=True` hoặc khi `config.output_hidden_states=True`) -- Tuple của `torch.Tensor` (một cho đầu ra của embeddings, nếu model có lớp embedding, + một cho đầu ra của mỗi lớp) có shape `(batch_size, sequence_length, hidden_size)`.

  Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.
- **encoder_attentions** (`tuple[torch.Tensor, ...]`, *tùy chọn*, được trả về khi truyền `output_attentions=True` hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, sequence_length)`.

  Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự thân.
- **encoder_global_attentions** (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi truyền `output_attentions=True` hoặc khi `config.output_attentions=True`) -- Tuple của `torch.Tensor` (một cho mỗi lớp) có hình dạng `(batch_size, num_heads, sequence_length, x)`, trong đó `x` là số lượng token có global attention mask.

  Trọng số chú ý toàn cục sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu tự chú ý. Đây là các trọng số chú ý từ mọi token có chú ý toàn cục đến mọi token trong chuỗi.

Ví dụ:

```python
>>> from transformers import AutoTokenizer, LEDForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/led-base-16384")
>>> model = LEDForQuestionAnswering.from_pretrained("allenai/led-base-16384")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...

>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...
```

