23 điểm bởi GN⁺ 2025-12-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Giải thích trực quan cấu trúc và nguyên lý hoạt động của mô hình Transformer, đồng thời cho thấy cơ chế attention cải thiện việc huấn luyện song song và hiệu năng dịch như thế nào
  • Mô hình gồm ngăn xếp encoder và decoder, trong đó mỗi encoder có hai lớp: self-attentionmạng nơ-ron feedforward
  • Trình bày từng bước quy trình tính toán self-attention ở mức vector và ma trận, đồng thời mở rộng sang multi-head attention để học trong nhiều không gian biểu diễn
  • Minh họa cụ thể các thành phần cốt lõi như positional encoding, kết nối residual, layer normalization, và masked attention của decoder
  • Đây là một tài liệu tiêu biểu giúp hiểu dễ hơn các khái niệm nền tảng của Transformer, và còn được dùng trong bài giảng và giáo trình của các trường lớn như MIT, Stanford

Tổng quan về Transformer

  • Transformer là mô hình dịch máy nơ-ron dựa trên attention, cho hiệu năng cao hơn Google Neural Machine Translation trước đây ở một số tác vụ
    • Ưu điểm lớn nhất là dễ song song hóa, và được khuyến nghị làm mô hình tham chiếu cho Google Cloud TPU
  • Mô hình được cấu thành từ ngăn xếp encoder và decoder; mỗi encoder có cùng kiến trúc nhưng không chia sẻ trọng số
  • Đầu vào của encoder đi qua lớp self-attention để tích hợp thông tin ngữ cảnh, rồi sau đó đi qua mạng nơ-ron feedforward
  • Decoder ngoài cấu trúc tương tự encoder còn có thêm lớp attention encoder-decoder để tập trung vào các phần liên quan của câu đầu vào

Dòng chảy tensor và embedding

  • Câu đầu vào được chuyển thành vector 512 chiều cho mỗi từ thông qua thuật toán word embedding
  • Mỗi lớp của encoder nhận và xử lý một danh sách vector có cùng kích thước, còn độ dài câu được đặt như một siêu tham số
  • Lớp feedforward xử lý độc lập vector ở từng vị trí nên có thể tính toán song song

Khái niệm self-attention

  • Self-attention cho phép mỗi từ tham chiếu tới các từ khác trong câu để học được biểu diễn tốt hơn
    • Ví dụ: trong câu “The animal didn’t cross the street because it was too tired”, “it” liên hệ với “animal”
  • Khác với việc duy trì hidden state của RNN, Transformer dùng self-attention để tích hợp thông tin ngữ cảnh

Các bước tính toán self-attention

  • Từ embedding của mỗi từ, tạo ra các vector Query, Key, Value (kích thước 64)
  • Tính điểm liên quan giữa các từ bằng tích vô hướng (dot product) của Query và Key
  • Chia điểm cho √64 rồi áp dụng softmax để chuẩn hóa thành phân phối xác suất
  • Nhân mỗi vector Value với điểm softmax rồi cộng lại để tạo đầu ra attention cuối cùng
  • Trong triển khai thực tế, toàn bộ quá trình này được thực hiện bằng phép toán ma trận để tăng hiệu quả

Multi-head attention

  • Sử dụng nhiều attention head (mặc định 8) để học trong nhiều không gian biểu diễn khác nhau
    • Mỗi head có ma trận trọng số Q/K/V độc lập
  • Đầu ra của nhiều head được nối lại (concat) rồi kết hợp bằng ma trận trọng số bổ sung WO
  • Nhờ đó, mô hình có thể nắm bắt đồng thời nhiều khía cạnh khác nhau của ngữ cảnh

Positional encoding

  • Vì Transformer không xử lý trực tiếp thứ tự, nó cộng thêm vector vị trí vào embedding của từng từ
  • Vector vị trí được tạo bằng các hàm sincos, cung cấp thông tin về khoảng cách tương đối giữa các từ
  • Cách làm này còn có thể mở rộng sang những câu dài hơn dữ liệu huấn luyện
  • Bản cập nhật năm 2020 cũng giới thiệu cách đan xen (interleave) hai tín hiệu này

Kết nối residual và chuẩn hóa

  • Mỗi lớp con (self-attention, feedforward) đều áp dụng kết nối residuallayer normalization
  • Cấu trúc này giúp tránh tiêu biến gradientcải thiện độ ổn định khi huấn luyện

Cấu trúc decoder

  • Decoder nhận vector Key/Value từ đầu ra encoder để thực hiện attention encoder-decoder
  • Dùng masking để ngăn mô hình tham chiếu đến các từ trong tương lai
  • Ở cuối, lớp Linearlớp Softmax tạo ra phân phối xác suất của từ
    • Ví dụ: nếu kích thước từ vựng là 10.000, mỗi vector đầu ra sẽ được chuyển thành phân phối xác suất 10.000 chiều

Huấn luyện và hàm mất mát

  • Khi huấn luyện, phân phối xác suất đầu ra của mô hình được so sánh với phân phối đáp án đúng (one-hot encoding)
  • Dùng cross-entropy hoặc phân kỳ KL để tính sai số, rồi điều chỉnh trọng số bằng backpropagation
  • Beam search giữ lại nhiều bản dịch ứng viên để nâng cao độ chính xác

Nghiên cứu tiếp nối và tài liệu tham khảo

  • Các bài báo liên quan: Attention Is All You Need, Training Tips for the Transformer Model, Self-Attention with Relative Position Representations v.v.
  • Tài liệu triển khai: gói Tensor2Tensor, hướng dẫn Harvard NLP PyTorch, Colab Notebook
  • Về sau, Transformer còn được mở rộng thành phiên bản tại LLM-book.com (Chapter 3), đề cập tới các mô hình mới như Multi-Query AttentionRoPE positional embedding

Kết luận

  • Transformer là kiến trúc dựa trên attention có thể song song hóa, và đã trở thành mô hình cốt lõi của deep learning hiện đại
  • Bài viết này là một tài liệu tiêu biểu minh họa trực quan cấu trúc, toán học và trực giác của Transformer, và được dùng làm tài liệu tham khảo trong các khóa học của Stanford, MIT, Harvard và nhiều trường lớn khác

1 bình luận

 
GN⁺ 2025-12-23
Ý kiến trên Hacker News
  • Tôi đã đọc bài này khi học những kiến thức nền tảng về transformer. Phần trực quan hóa thực sự rất hữu ích
    Nhưng trong công việc thực tế ứng dụng LLM, việc biết kiến trúc transformer hầu như không có nhiều tác dụng. Dù vậy, việc mơ hồ hiểu được cách nó vận hành bên trong vẫn mang lại cảm giác yên tâm về mặt tâm lý
    Việc cố giải thích hành vi của LLM chỉ bằng kiến trúc là một cái bẫy, vì các mô hình mới nhất thể hiện những emergent phenomena khó dự đoán do reinforcement learning và các yếu tố khác
    Trước đây tôi từng chắc chắn rằng LLM sẽ không thể giỏi toán hay lập trình, nhưng tôi đã hoàn toàn sai. Cuối cùng, suy luận năng lực của mô hình chỉ từ kiến trúc vẫn có giới hạn
    Dạo này trong kỳ nghỉ tôi đang ôn lại bằng cách tự triển khai transformer với PyTorch. Rất thú vị và vui
    Nếu muốn nhập môn, tôi khuyên dùng tài liệu LLMs from Scratch của Sebastian Raschka.
    Nếu ai đã đọc cuốn sách của Jay Alammar xuất bản năm 2024 thì tôi muốn biết liệu nó có đáng được giới thiệu theo góc nhìn cập nhật hiện nay không

    • Tôi cũng đồng ý, nhưng lại nghĩ khác ở một vài điểm. Khi làm việc với vai trò kỹ sư AI, tôi hầu như không bao giờ phải trực tiếp dùng deep learning “cổ điển”, nhưng tôi tin rằng khả năng hiểu sâu bên trong LLM là thứ phân biệt top 1% kỹ sư
      Vì nó tạo ra trực giác để nắm bắt được các giới hạn của mô hình. Đây là lời khuyên tôi từng nghe trực tiếp từ Clem Delangue của Hugging Face, và sau đó tôi đã học sâu về kiến trúc LLM, điều này giúp ích rất nhiều
      Tôi cũng đưa ra lời khuyên tương tự cho những người tốt nghiệp coding bootcamp — chỉ với Python và React bạn vẫn có thể làm việc được, nhưng nếu hiểu kiến trúc máy tính và ngôn ngữ cấp thấp thì về lâu dài bạn sẽ trở thành một lập trình viên mạnh hơn rất nhiều
    • Tôi nghĩ vấn đề là phần lớn tutorial giải thích cơ chế attention theo hướng lấy từ làm trung tâm. Trên thực tế, bên trong transformer không có token nào tương ứng trực tiếp với từ
      Token không phải là mảnh của từ, và trong xử lý ngôn ngữ hay hình ảnh, chúng chỉ có ý nghĩa ở giai đoạn đầu vào. Tôi cho rằng sự hiểu lầm này là một trong các nguyên nhân khiến người ta đánh giá thấp tiềm năng của transformer
    • Một ví dụ cho thấy vì sao hiểu biết cơ bản lại quan trọng: trên HN có rất nhiều lời phàn nàn rằng LLM tạo ra quá nhiều chú thích trong mã
      Nhưng thực ra đây lại là hiện tượng giúp nâng cao chất lượng mã. Nhờ positional encoding của causal transformer, mô hình có thể để lại các token tạm thời phục vụ suy luận cục bộ rồi dễ dàng quên chúng đi
      Nói cách khác, nó hoạt động như một loại scratchpad dùng một lần. Giải pháp là hậu xử lý đầu ra của LLM, chứ không phải làm cho mô hình kìm hãm việc tạo chú thích
    • Có một video rất hay của Welch Labs về mechanistic interpretability: liên kết YouTube
    • Tôi cảm thấy nhận thức của mọi người về LLM chia thành ba nhóm
      1. Những người tin rằng LLM chỉ là máy sinh vô dụng
      2. Những người tin rằng AGI đã đạt được
      3. Những người tin rằng LLM sẽ hủy diệt thế giới trong vòng 5 năm tới
        Từ sau khi ChatGPT ra mắt, tỷ lệ của ba nhóm này gần như không thay đổi, và cũng hiếm khi có thể thuyết phục họ bằng bằng chứng
  • Phần trực quan hóa của nhóm Transformer Explainer thực sự xuất sắc.
    Xem Transformer Explainer cùng với video của 3blue1brown giúp tôi hiểu chắc hơn hẳn

    • Đây là một trong những tài liệu trực quan hóa xuất sắc nhất mà tôi từng xem
  • Trong phần bình luận do chính tác giả Jay Alammar để lại, ông có giới thiệu thêm các tài liệu học transformer hay khác
    Liên kết liên quan

  • Tài liệu giải thích transformer giờ nhiều đến mức tạo cảm giác như tutorial về monad.
    Có người tưởng rằng mình đã giác ngộ, nhưng thực tế vẫn đang rối và lại muốn chia sẻ điều đó thật rộng rãi

    • Dù vậy, tôi vẫn nghĩ bài blog này là một trong những cách giải thích transformer rõ ràng nhất
    • Không có lý do gì mà trên Internet chỉ nên tồn tại một cách giải thích duy nhất. Chỉ cần tìm được cách giải thích phù hợp với mình
      Khi học các khái niệm toán học hay điện tử cũng vậy, phần giải thích đầu tiên thường khó, nhưng nếu tiếp xúc với nhiều phiên bản thì cuối cùng sự hiểu biết sẽ sâu hơn
  • Có thể là tôi đã lỗi thời, nhưng tôi muốn biết liệu transformer đã hoàn toàn thay thế các kiến trúc deep learning cũ như U-net hay chưa

    • Hoàn toàn không. Sự ám ảnh quá mức với transformer không được dữ liệu hiệu năng thực tế hậu thuẫn
      Ví dụ, CNN vẫn rất mạnh, đặc biệt phù hợp hơn trong các tác vụ thị giác chuyên biệt như ảnh y tế
      Với mô hình bất biến quay, graph neural network, mô hình point cloud... thì transformer thậm chí có thể còn không phù hợp
      Nói cách khác, vẫn còn nhiều kiến trúc thay thế khác
      Bài báo liên quan: CNNs can still do just as well
  • Tôi có cuốn sách này, và khi nhóm quyết định đưa LLM vào hệ thống thì nó thực sự là tài liệu cứu mạng

    • Nhưng tôi không nghĩ rằng phải hiểu kiến trúc transformer thì mới có thể làm việc với LLM
      Xét cho cùng, LLM là một hệ thống tổng hợp mô phỏng suy luận của con người, nên ngay cả khi biết kiến trúc bên trong, vẫn rất khó dự đoán các kiểu lỗi
      Việc xây dựng cảm giác thông qua trải nghiệm và thử nghiệm còn quan trọng hơn
  • Tôi nghĩ rồi nội bộ của transformer cuối cùng sẽ trở nên bớt quan trọng hơn, giống như nội bộ của compiler.
    Phần lớn lập trình viên sẽ chỉ quan tâm đến “dùng nó như thế nào”, thay vì cách nó được triển khai bên trong

    • Thực tế, nhiều người làm nghề dùng LLM nhưng thậm chí còn không biết các khái niệm machine learning cơ bản. Ngay cả việc phân biệt bias và variance cũng hiếm người biết
    • Nhưng vẫn phải có ai đó hiểu sâu bên trong. Để cập nhật và bảo trì SOTA, cần những chuyên gia hiểu kiến trúc nội bộ
      Cũng như hệ điều hành, compiler, hay phần cứng như GPU/TPU vẫn phải liên tục được cải tiến, transformer cũng vậy, nên vai trò của những người có kiến thức này sẽ còn quan trọng hơn
  • Đây là một bài viết tuyệt vời, và có vẻ đã truyền cảm hứng cho dự án Illustrated Evo 2 gần đây
    Liên kết blog NVIDIA Research

  • Mọi người hay nghĩ Key/Query/Value là những khái niệm đặc biệt, nhưng thật ra transformer chỉ là một cấu trúc mở rộng của phép nhân ma trận
    Nếu một tầng của mạng nơ-ron thông thường là matrix * input, thì transformer tính input * MatrixA, input * MatrixB, input * MatrixC rồi kết hợp chúng lại
    Cuối cùng thì mọi thứ đều là sự lặp lại của các phép toán ma trận. Xem thêm trong blog PyTorch

    • Tôi thường hình dung convolution như một mô hình tinh thần cho cơ chế K/Q/V.
      Attention cũng được học theo cách không phụ thuộc vị trí, biến đổi các đoạn lớn của đầu vào thành giá trị mới, và nhiều head học song song các khía cạnh khác nhau. Nó là một khái niệm tương tự với kernel của convolution
  • Hướng dẫn này thực sự rất đồ sộ. Dùng cùng các công cụ như Claude Code để tạo mã giả PyTorch sẽ cực kỳ hữu ích cho việc hiểu khái niệm một cách trực quan
    Đây là tài liệu rất thích hợp để ngồi học tập trung vài tiếng đồng hồ