(+84) 236.3827111 ex. 402

Giải Ngố Transformer – Tập 2: "Attention" – Bí Kíp Đọc Hiểu Của AI


Ôn bài cũ: chúng ta đang ở đâu?

Ở tập 1, chúng ta đã biết Transformer không phải robot biến hình, mà là kiến trúc mạng nơ-ron đứng sau ChatGPT, Claude, Gemini và gần như mọi mô hình ngôn ngữ lớn hiện nay. Nó ra đời năm 2017 qua bài báo nổi tiếng "Attention Is All You Need" của nhóm nghiên cứu Google.

Nhưng tập 1 còn để lại một câu hỏi lớn: cái "Attention" được nhắc đến trong tiêu đề bài báo ấy rốt cuộc là gì? Vì sao chỉ một ý tưởng mà lại làm cả ngành AI thay đổi?

Tập 2 này sẽ mổ xẻ đúng trái tim của trái tim: cơ chế Attention (cơ chế chú ý). Đọc xong, bạn sẽ hiểu máy "đọc hiểu" một câu như thế nào, mà không cần một dòng toán phức tạp nào ngoài phép nhân và phép cộng.

Attention là gì? Hãy nghĩ về một bữa tiệc ồn ào

Bạn đang ở một đám cưới, nhạc to, hàng chục người nói cùng lúc. Vậy mà khi ai đó gọi đúng tên bạn, bạn nghe thấy ngay. Bộ não đã tự động tập trung vào cái quan trọng và lờ đi phần còn lại. Đó chính là "chú ý".

Trong ngôn ngữ cũng vậy. Thử đọc câu sau:

"Con mèo không ăn cá vì nó đã no."

Bạn biết ngay "nó" là con mèo. Giờ đổi một chữ:

"Con mèo không ăn cá vì nó đã ươn."

Lần này "nó" lại là con cá. Chỉ một từ cuối câu thay đổi mà nghĩa của "nó" đổi hẳn. Muốn hiểu đúng, khi đọc chữ "nó", bạn phải liếc lại toàn bộ câu và tự hỏi: từ nào liên quan đến mình nhất?

Các mô hình đời cũ như RNN đọc câu lần lượt từng chữ, trái sang phải, giống người chỉ được nhìn qua một khe hẹp. Câu càng dài, chữ ở đầu càng dễ bị "quên". Attention giải quyết việc này: mỗi từ được nhìn thẳng vào mọi từ khác trong câu cùng một lúc, rồi tự quyết định nên chú ý tới từ nào nhiều, từ nào ít.

Vì từ trong câu tự nhìn vào chính câu của mình, người ta gọi nó là Self-Attention (tự chú ý).

Query, Key, Value: bộ ba "đi chợ" của AI

Để biết từ nào nên chú ý tới từ nào, Transformer cho mỗi từ mang theo ba "tấm thẻ". Cách dễ hiểu nhất là tưởng tượng bạn đi chợ Hàn mua đồ:

Tấm thẻ

Ý nghĩa

Ở chợ Hàn

Query (Q) – câu hỏi

"Tôi đang tìm gì?"

Bạn cần mua vải may túi

Key (K) – nhãn

"Tôi có gì để người khác tìm thấy?"

Biển hiệu từng sạp: "Vải", "Trái cây", "Đồ khô"

Value (V) – nội dung

"Thông tin thật sự tôi đóng góp"

Món hàng thực tế bày trong sạp

Bạn đem Query của mình so với Key của từng sạp. Sạp nào khớp nhiều (sạp vải) thì bạn ghé lâu, lấy nhiều Value (hàng) từ đó. Sạp ít khớp (trái cây) thì chỉ liếc qua.

Trong câu "Con mèo không ăn cá vì nó đã no":

  • Từ "nó" phát ra Query: "Tôi là đại từ, tôi đang tìm một con vật có thể no."
  • Từ "mèo" có Key: "Tôi là con vật, chủ ngữ của câu." → khớp mạnh.
  • Từ "cá" có Key: "Tôi là con vật, nhưng là thứ bị ăn." → khớp vừa.
  • Từ "vì" có Key: "Tôi là từ nối." → gần như không khớp.

Kết quả: "nó" hút phần lớn thông tin (Value) từ "mèo", và mô hình hiểu "nó" = con mèo.

Điểm hay là ba tấm thẻ này không do con người viết tay. Mô hình tự học cách tạo Q, K, V cho mỗi từ sau khi đọc hàng tỷ câu văn.

Máy "chấm điểm chú ý" như thế nào? 4 bước đơn giản

Đằng sau ví dụ đi chợ là một quy trình chỉ gồm phép nhân, phép cộng và một chút chia tỷ lệ:

  1. Đo độ khớp. Lấy Query của "nó" nhân (tích vô hướng) với Key của từng từ. Hai vector càng cùng hướng, điểm càng cao.
  2. Hạ nhiệt con số. Chia điểm cho căn bậc hai của số chiều vector, để các con số không quá lớn khiến mô hình học khó.
  3. Đổi điểm thành tỷ lệ phần trăm. Dùng hàm softmax biến các điểm thành trọng số dương, cộng lại đúng 100%.
  4. Trộn thông tin. Nhân mỗi Value với trọng số của nó rồi cộng lại. Kết quả là một "phiên bản mới" của từ "nó", đã thấm đẫm ý nghĩa của "mèo".

Ví dụ minh họa (số liệu tưởng tượng) khi từ "nó" nhìn quanh câu:

 

Từ

Điểm khớp thô

Trọng số sau softmax

mèo

4,0

72%

cá

2,5

16%

no

1,8

8%

các từ còn lại

≈ 0

4%

Toàn bộ 4 bước được gói gọn trong một công thức nổi tiếng nhất ngành AI:

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^{T}}{\sqrt{d_k}}\right)V

Đừng sợ công thức: QKᵀ là bước 1, chia √dₖ là bước 2, softmax là bước 3, nhân V là bước 4. Thế thôi!

Và vì mọi từ đều làm việc này cùng một lúc chứ không phải chờ nhau, Transformer chạy song song cực tốt trên GPU. Đây là lý do nó có thể được huấn luyện trên lượng dữ liệu khổng lồ.

Multi-Head Attention: một câu, nhiều "cặp mắt"

Một lần chú ý thường chỉ bắt được một kiểu quan hệ. Nhưng một câu chứa rất nhiều tầng nghĩa cùng lúc. Vì vậy Transformer dùng nhiều "đầu chú ý" (attention heads) chạy song song, mỗi đầu có bộ Q, K, V riêng.

Hãy hình dung một hội đồng chấm luận văn gồm nhiều thầy cô. Cùng đọc một bài, nhưng mỗi người soi một khía cạnh khác nhau. Với câu "Con mèo không ăn cá vì nó đã no", các đầu chú ý có thể chia việc như sau:

  • Đầu 1 – ngữ pháp: "ăn" liên kết với chủ ngữ "mèo" và tân ngữ "cá".
  • Đầu 2 – đại từ: "nó" trỏ về "mèo".
  • Đầu 3 – nhân quả: "vì" nối "không ăn" với "đã no".
  • Đầu 4 – phủ định: "không" đảo nghĩa của "ăn".

Kết quả của các đầu được ghép lại, cho ra một hiểu biết nhiều chiều về câu. Bài báo gốc năm 2017 dùng 8 đầu chú ý; các mô hình lớn ngày nay dùng hàng chục đầu ở mỗi tầng, và xếp chồng hàng chục tầng như vậy.

Lưu ý nhỏ: các "chuyên môn" ở trên chỉ là cách minh họa. Trong thực tế, mô hình tự học cách chia việc, và nhiều đầu chú ý làm những việc mà con người vẫn đang nghiên cứu để hiểu.

Positional Encoding: "tôi yêu em" khác "em yêu tôi"

Có một vấn đề: vì Attention nhìn mọi từ cùng lúc, bản thân nó không biết từ nào đứng trước, từ nào đứng sau. Với nó, "tôi yêu em" và "em yêu tôi" chỉ là cùng một túi ba chữ. Mà với người Việt, hai câu này khác nhau một trời một vực!

Giải pháp là mã hóa vị trí (positional encoding): trước khi vào Attention, mỗi từ được gắn thêm một "số báo danh" cho biết nó đứng ở vị trí thứ mấy trong câu.

Giống như phòng thi: thí sinh có thể trả lời song song cùng lúc, nhưng ai ngồi bàn số mấy thì đã ghi rõ trên thẻ. Nhờ "số báo danh" ấy, mô hình vừa xử lý song song được, vừa không làm lẫn lộn trật tự câu.

Bài báo gốc dùng các sóng hình sin với tần số khác nhau làm số báo danh. Các mô hình mới hơn có những cách tinh tế hơn, nhưng ý tưởng vẫn y nguyên: nghĩa của câu nằm cả ở từ lẫn ở thứ tự của từ.

Tóm tắt 30 giây

  • Attention = mỗi từ nhìn vào mọi từ khác trong câu và tự quyết định nên chú ý tới đâu.
  • Query – Key – Value = câu hỏi, nhãn, nội dung; Query khớp Key nào thì lấy nhiều Value của từ đó.
  • Softmax biến điểm khớp thành tỷ lệ phần trăm cộng lại bằng 100%.
  • Multi-Head = nhiều cặp mắt cùng đọc, mỗi cặp bắt một kiểu quan hệ.
  • Positional Encoding = số báo danh giúp mô hình nhớ thứ tự từ.

Nhờ bộ đôi "nhìn toàn cảnh" và "chạy song song", Transformer vừa hiểu ngữ cảnh tốt hơn, vừa học nhanh hơn hẳn các mô hình cũ. Đó là lý do bài báo năm 2017 dám tuyên bố: Attention là tất cả những gì bạn cần.

Hẹn gặp ở tập 3

Hiểu được câu rồi, nhưng làm sao ChatGPT viết ra được cả đoạn văn trôi chảy? Tập 3 sẽ giải ngố cách mô hình đoán từng chữ tiếp theo, "token" là gì, và vì sao AI đôi khi "bịa chuyện" một cách rất tự tin.

Nếu bạn thấy bài viết hữu ích, hãy chia sẻ cho bạn bè đang tò mò về AI, và để lại câu hỏi ở phần bình luận nhé!