Phase 07: Transformers Deep Dive

T5, BART Mô hình mã hóa-tử lý

Các mã hóa hiểu. Các mã hóa tạo ra. Hãy đặt chúng lại với nhau và bạn sẽ có một mô hình được xây dựng cho các nhiệm vụ đầu vào → đầu ra: dịch, tóm tắt, viết lại, sao chép.

Type: Learn

Languages: Python

Prerequisites: Phase 7 · 05 (Full Transformer), Phase 7 · 06 (BERT), Phase 7 · 07 (GPT)

Time: ~45 minutes

Vấn đề

Chỉ có GPT và BERT chỉ có mã hóa mỗi đoạn cắt theo kiến trúc năm 2017 cho một mục tiêu khác nhau.

  • Dịch: tiếng Anh → tiếng Pháp.
  • Kết luận: 5000 token bài viết → 200 token tổng kết.
  • Nhận dạng giọng nói: mã thông báo âm thanh → mã thông báo văn bản.
  • Phân xuất cấu trúc: prose → JSON.

Đối với những thứ này, bộ mã hóa-cập mã làm cho phù hợp nhất. bộ mã hóa tạo ra một đại diện dày đặc của nguồn. bộ mã hóa tạo ra đầu ra, phục vụ chéo cho đại diện đó ở mỗi bước. Trình luyện là chuyển đổi từng người ở phía đầu ra.

Hai bài báo đã định nghĩa cuốn sách chơi game hiện đại:

  1. T5(Raffel et al. 2019). "Transformer Transfer Text-to-Text". Mỗi nhiệm vụ NLP được định dạng lại như text-in, text-out. kiến trúc đơn, từ vựng đơn, mất mát đơn. Được đào tạo trước trên dự đoán thời gian đeo mặt nạ (nhanh tham nhũng trong đầu vào, giải mã chúng trong đầu ra).
  2. BART(Lewis et al. 2019). "Tranformator hai chiều và tự động hồi phục". Phể bỏ autoencoder: nhập nhập bị hư hại theo nhiều cách (xuy nhộn, che giấu, xóa, xoay), yêu cầu máy giải mã tái tạo bản gốc.

Năm 2026, định dạng mã hóa-tài mã hóa sẽ tồn tại ở những nơi cấu trúc đầu vào quan trọng:

  • Nhầm (những lời nói → văn bản).
  • Google dịch vụ.
  • Một số mô hình hoàn thành / sửa chữa mã có cấu trúc ngữ cảnh và chỉnh sửa khác nhau.
  • Flan-T5 và các biến thể cho các nhiệm vụ lý luận có cấu trúc.

Chỉ có decoder đã giành được sự chú ý, nhưng decoder không bao giờ biến mất.

Khái niệm

!Encoder-decoder with cross-attention

Chuyện chuyển tiếp

source tokens ─▶ encoder ─▶ (N_src, d_model)  ──┐
                                                 │
target tokens ─▶ decoder block                   │
                 ├─▶ masked self-attention       │
                 ├─▶ cross-attention ◀───────────┘
                 └─▶ FFN
                ↓
              next-token logits

Điều quan trọng là bộ mã hóa chạy một lần mỗi đầu vào. Bộ mã hóa chạy tự động nhưng phục vụ qua nhau cho cùng một đầu ra mã hóa tại mỗi bước. Caching đầu ra mã hóa là một tốc độ miễn phí cho đầu vào dài.

T5 trước khi đào tạo tham nhũng thời gian

Chọn các khoảng thời gian ngẫu nhiên của đầu vào (giờ trung bình là 3 token, tổng cộng là 15%). Thay thế mỗi khoảng thời gian bằng một sentinel độc đáo: <extra_id_0>- <extra_id_1>, vv. Các decoder chỉ phát ra các span bị hỏng với tiền tố của họ Sentinel:

source: The quick <extra_id_0> fox jumps <extra_id_1> dog
target: <extra_id_0> brown <extra_id_1> over the lazy

tín hiệu rẻ hơn so với dự đoán toàn bộ chuỗi. cạnh tranh với MLM (BERT) và tiền tố-LM (UniLM) trong giấy T5 của ablation.

BART trước khi tập

BART thử nghiệm năm chức năng âm thanh:

  1. - Đánh dấu.
  2. - Đánh dấu.
  3. Đơn văn bản (đóng một khoảng thời gian, trình giải mã chèn chiều dài đúng).
  4. Chuyển đổi câu.
  5. Chuyển đổi tài liệu.

Kết hợp việc lấp đầy văn bản + chuyển đổi câu tạo ra các số lượng thấp nhất. Bộ giải mã luôn tái tạo nguyên bản. Kết quả của BART là toàn bộ chuỗi, không chỉ là các khoảng thời gian bị hỏng vì vậy tính toán trước khi tập là cao hơn T5.

Nhận định

Tạo tự động ngược giống như GPT. Phân tích tham lam / chùm / top-p áp dụng. Tìm kiếm chùm (thiều 45) là tiêu chuẩn cho dịch và tóm tắt vì phân phối đầu ra hẹp hơn trò chuyện.

Khi nào để chọn mỗi biến thể vào năm 2026

TaskEncoder-decoder?Why
TranslationYes, usuallyClear source sequence; fixed output distribution; beam search works
Speech-to-textYes (Whisper)Input modality differs from output; encoder shapes audio features
Chat / reasoningNo, decoder-onlyNo persistent "input" — the conversation is the sequence
Code completionUsually noDecoder-only with long context wins; code models like Qwen 2.5 Coder are decoder-only
SummarizationEither worksBART, PEGASUS beat earlier decoder-only baselines; modern decoder-only LLMs match them
Structured extractionEitherT5 is clean because "text → text" absorbs any output format

Xu hướng từ ~2022: chỉ có trình giải mã tiếp quản các nhiệm vụ mà trình giải mã giải mã đã từng sở hữu bởi vì (a) các LLM chỉ có trình giải mã theo hướng dẫn tổng quát đến bất cứ thứ gì thông qua lời nhắc nhở, (b) một kiến trúc quy mô dễ dàng hơn hai, (c) RLHF giả định một trình giải mã.

Hãy xây dựng nó

Nhìn xemcode/main.pyChúng tôi thực hiện sự tham nhũng thời gian kiểu T5 cho một bộ đồ chơi. Đây là một phần hữu ích nhất của bài học này bởi vì nó xuất hiện trong mọi công thức trước khi tập lập trình và giải mã kể từ đó.

Bước 1: sự tham nhũng span

pythondef corrupt_spans(tokens, mask_rate=0.15, mean_span=3.0, rng=None):
    """Pick spans summing to ~mask_rate of tokens. Return (corrupted_input, target)."""
    n = len(tokens)
    n_mask = max(1, int(n * mask_rate))
    n_spans = max(1, int(round(n_mask / mean_span)))
    ...

Các định dạng mục tiêu là T5 ước: <sent0> span0 <sent1> span1 .... Lập nhập bị hỏng để lại các token không thay đổi với các token Sentinel tại các vị trí span.

Bước 2: xác minh đi lại và đi lại

Với các mục tiêu và đầu vào bị hỏng, hãy xây dựng lại câu gốc. Nếu sự hỏng của bạn là đảo ngược, thông qua trước được xác định rõ ràng. Đây là kiểm tra tâm lý đào tạo thực sự không bao giờ làm điều này, nhưng bài kiểm tra rẻ và bắt được lỗi theo một trong sổ sách thời gian của bạn.

Bước 3: BART tiếng ồn

Năm chức năng: token_mask- token_delete- text_infill- sentence_permute- document_rotate- Tạo hai trong số đó và cho thấy kết quả.

Sử dụng nó

Chuyện em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em em

pythonfrom transformers import T5ForConditionalGeneration, T5Tokenizer
tok = T5Tokenizer.from_pretrained("google/flan-t5-base")
model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-base")

inputs = tok("translate English to French: Attention is all you need.", return_tensors="pt")
out = model.generate(**inputs, max_new_tokens=32)
print(tok.decode(out[0], skip_special_tokens=True))

Trù T5: tên nhiệm vụ đi vào văn bản nhập. mô hình tương tự xử lý hàng chục nhiệm vụ vì mỗi nhiệm vụ là text-in, text-out. Năm 2026 mô hình này đã được phổ biến bởi các mô hình chỉ định-tuning decoder, nhưng T5 đã mã hóa nó trước.

Chuyển nó

Nhìn xemoutputs/skill-seq2seq-picker.md. Kỹ năng chọn giữa mã hóa-decoder và mã hóa-chỉ cho một nhiệm vụ mới do cấu trúc đầu vào-tả ra, độ trễ và mục tiêu chất lượng.

Các bài tập

  1. Easy.Đi chạycode/main.py, áp dụng sự tham nhũng khoảng thời gian cho một câu 30 token, xác minh rằng kết nối các token nguồn không phải Sentinel với các khoảng thời gian mục tiêu được giải mã tái tạo bản gốc.
  2. Medium.Thực hiện BART text_infilltiếng ồn: thay thế các khoảng thời gian ngẫu nhiên bằng một <mask>token, và decoder phải suy luận chiều dài span đúng cộng với nội dung.
  3. Hard.- Đúng rồi.flan-t5-smalltrên một bộ hình tiếng Anh → Lâm-Latin nhỏ (200 cặp). đo BLEU trên một bộ 50 cặp kéo dài. So sánh với điều chỉnh tinh tế Llama-3.2-1Btrên cùng một dữ liệu với cùng một tính toán.

Các điều khoản chính

TermWhat people sayWhat it actually means
Encoder-decoder"Seq2seq transformer"Two stacks: bidirectional encoder for input, causal decoder with cross-attention for output.
Cross-attention"Where source talks to target"Decoder's Q × encoder's K/V. The only place encoder information enters the decoder.
Span corruption"T5's pretraining trick"Replace random spans with sentinel tokens; decoder outputs the spans.
Denoising objective"BART's game"Apply a noise function to the input, train the decoder to reconstruct the clean sequence.
Sentinel token"The <extra_id_N> placeholder"Special tokens that tag corrupted spans in the source and re-tag them in the target.
Flan"Instruction-tuned T5"T5 fine-tuned on >1,800 tasks; made encoder-decoder competitive at instruction-following.
Beam search"Decoding strategy"Keep top-k partial sequences at each step; standard for translation/summarization.
Teacher forcing"Training-time input"During training, feed the true previous output token to the decoder, not the sampled one.

Đọc thêm

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.