paint-brush
Transformers: Thời đại của sự chú ýtừ tác giả@bhavdeepsethi
1,934 lượt đọc
1,934 lượt đọc

Transformers: Thời đại của sự chú ý

từ tác giả Bhavdeep Sethi7m2024/08/26
Read on Terminal Reader

dài quá đọc không nổi

Giải thích đơn giản về mô hình Transformer từ bài báo mang tính cách mạng "Attention is All You Need" - cơ sở của nhiều mô hình hiện đại như BERT và GPT.
featured image - Transformers: Thời đại của sự chú ý
Bhavdeep Sethi HackerNoon profile picture
0-item



Vào năm 2017, một nhóm các nhà nghiên cứu (từ Google và Đại học Toronto) đã giới thiệu một cách mới để xử lý các tác vụ xử lý ngôn ngữ tự nhiên (NLP). Bài báo mang tính cách mạng của họ “ Attention is All You Need ” đã trình bày mô hình Transformer, một kiến trúc từ đó đã trở thành nền tảng của nhiều hệ thống AI tiên tiến ngày nay. Hiệu suất, khả năng mở rộng và tính linh hoạt của mô hình đã dẫn đến việc áp dụng rộng rãi, tạo thành xương sống của các mô hình tiên tiến như BERT (Bidirectional Encoder Representations) và GPT (Generative Pre-trained Transformers).


Trước mô hình Transformer, hầu hết các mô hình AI xử lý ngôn ngữ đều dựa nhiều vào một loại mạng nơ-ron gọi là Mạng nơ-ron hồi quy (RNN) hoặc phiên bản cải tiến của nó, Mạng bộ nhớ dài hạn ngắn hạn (LSTM). Đặc biệt, các vấn đề như mô hình hóa ngôn ngữ và dịch máy (còn gọi là chuyển đổi chuỗi). Các mô hình này xử lý các từ theo trình tự, từng từ một, từ trái sang phải (hoặc ngược lại). Mặc dù cách tiếp cận này có ý nghĩa vì các từ trong câu thường phụ thuộc vào các từ trước đó, nhưng nó có một số nhược điểm đáng kể:


  • Chậm đào tạo: Vì RNN và LSTM xử lý từng từ một nên việc đào tạo các mô hình này trên các tập dữ liệu lớn rất tốn thời gian.
  • Khó khăn với câu dài: Các mô hình này thường gặp khó khăn trong việc hiểu mối quan hệ giữa các từ cách xa nhau trong câu.
  • Song song hóa hạn chế: Do các từ được xử lý tuần tự nên rất khó để tận dụng phần cứng máy tính hiện đại có khả năng thực hiện nhiều thao tác cùng lúc (song song hóa).


Ý tưởng chính: Chú ý đến kiến trúc

Ý tưởng cốt lõi đằng sau mô hình Transformer là thứ gọi là "sự chú ý". Nói một cách đơn giản, sự chú ý giúp mô hình tập trung vào các phần cụ thể của câu khi cố gắng hiểu ý nghĩa/bối cảnh của một từ. Hãy xem xét câu "Chiếc xe đỗ trong gara có màu xanh lam". Khi bạn nghĩ về từ "blue", bạn tự nhiên tập trung vào từ "car" trước đó trong câu vì nó cho bạn biết màu xanh lam là gì. Các mô hình dịch máy sẽ gặp khó khăn trong việc xác định xem "màu xanh lam" ám chỉ đến xe hơi hay gara. Đây chính là chức năng của self-attention - chức năng này giúp mô hình tập trung vào các từ có liên quan, bất kể chúng ở đâu trong câu.


Lưu ý rằng sự chú ý không phải là một khái niệm mới và đã được sử dụng song song với RNN. Transformer là mô hình chuyển đổi đầu tiên chỉ dựa vào sự chú ý, do đó loại bỏ nhu cầu về mạng nơ-ron. Điều này mang lại những lợi thế sau:

  • Xử lý song song: Không giống như RNN, xử lý các từ lần lượt, Transformer có thể xử lý tất cả các từ trong một câu cùng một lúc. Điều này giúp đào tạo nhanh hơn nhiều.
  • Hiểu rõ hơn về ngữ cảnh: Nhờ cơ chế tự chú ý, Transformer có thể nắm bắt mối quan hệ giữa các từ bất kể chúng cách xa nhau như thế nào trong một câu. Điều này rất quan trọng để hiểu các câu phức tạp.
  • Khả năng mở rộng: Mô hình có thể được mở rộng dễ dàng bằng cách thêm nhiều lớp hơn, cho phép xử lý các tập dữ liệu rất lớn và các tác vụ phức tạp.


Như bạn có thể thấy, mô hình mới không chỉ loại bỏ mọi nhược điểm của mạng nơ-ron mà còn cải thiện hiệu suất dịch máy nữa!


Vì bài báo gốc có thể hơi khó hiểu, sau đây là lời giải thích đơn giản hơn về kiến trúc mô hình được mô tả trong bài báo.

Máy biến áp - Kiến trúc mô hình


Bộ mã hóa và bộ giải mã : Bộ chuyển đổi bao gồm một bộ mã hóa (bên trái) và một bộ giải mã (bên phải). Bộ mã hóa chuyển đổi chuỗi đầu vào (như một câu) thành một tập hợp các biểu diễn liên tục, trong khi bộ giải mã chuyển đổi các biểu diễn này thành một chuỗi đầu ra (như một bản dịch). Đối với mỗi bộ mã hóa, từ dưới lên trên, sau đây là các thành phần cốt lõi của mô hình được giải thích bằng một ví dụ.


  1. Xử lý câu đầu vào trong bộ mã hóa

    • Đầu vào : Văn bản bạn muốn dịch. Ví dụ: "Chiếc xe đỗ trong gara có màu xanh lam".

    • Nhúng đầu vào : Chuyển đổi các từ thành các biểu diễn số có độ dài cố định (vectơ) được gọi là nhúng. Các nhúng này nắm bắt ý nghĩa ngữ nghĩa của các từ theo cách mà mô hình có thể hiểu được. Từ ví dụ của chúng tôi:

      • "The" -> [0,9, -0,4, 0,2, ...]

      • "xe hơi" -> [0,5, 0,1, -0,7, ...]

      • "đó" -> [-0,8, 0,2, 0,8, ...]

      • và tương tự với mỗi từ trong câu trên.


    • Mã hóa vị trí : Vì mô hình xử lý các nhúng đầu vào không có thứ tự nào nên cần có cách để hiểu thứ tự các từ trong câu. Mã hóa vị trí thêm thông tin này về vị trí của từng từ trong chuỗi vào nhúng của nó.

      • "The" ở vị trí 1 có thể được điều chỉnh thành [0,9 + P1, -0,4 + P1, 0,2 + P1, ...], trong đó P1 biểu thị mã hóa vị trí cho vị trí đầu tiên, do đó tạo ra một nhúng mới duy nhất cho vị trí P1.


    • Cơ chế tự chú ý : Như đã mô tả trước đó, điều này cho phép mô hình tập trung vào các từ khác nhau trong một câu tùy thuộc vào ngữ cảnh. Đối với mỗi từ, cơ chế tự chú ý sẽ tính toán điểm số biểu thị mức độ tập trung nên dành cho các từ khác khi mã hóa từ hiện tại.

      • Đối với từ “car”, sự chú ý có thể xác định rằng “parked”, “gara” và “blue” đặc biệt liên quan đến việc hiểu ngữ cảnh của nó.


    • Sự chú ý nhiều đầu : Phần mới của mô hình máy biến áp. Sự chú ý nhiều đầu chỉ đơn giản là nhiều lớp/hoạt động tự chú ý chạy song song và nối tiếp nhau theo tuyến tính.

      • Ví dụ, một câu có thể tập trung vào chủ ngữ chính (“car”) và đặc điểm của nó (“blue”), trong khi câu khác có thể tập trung vào mệnh đề quan hệ (“that was parked in the garage”).

      • Mô-đun chú ý đa đầu cung cấp cho mô hình khả năng hiểu rằng "màu xanh" có liên quan nhiều hơn đến ô tô so với gara.


    • Mạng nơ-ron truyền thẳng : Sau lớp tự chú ý, đầu ra được truyền qua mạng nơ-ron truyền thẳng được áp dụng cho từng vị trí riêng biệt và giống hệt nhau (một lần nữa, có thể chạy song song!). Mạng này bao gồm hai phép biến đổi tuyến tính với một kích hoạt ReLU ở giữa.


    • Add & Norm : Các kết nối còn lại (add) được sử dụng để thêm đầu vào của một lớp vào đầu ra của nó, sau đó được chuẩn hóa (norm). Điều này giúp đào tạo các mạng sâu bằng cách ngăn chặn các gradient biến mất hoặc bùng nổ.


  2. Tạo bản dịch trong bộ giải mã

    Trong NLP, thông thường người ta sẽ biểu thị phần bắt đầu của mã thông báo bắt đầu chuỗi bằng ký tự đặc biệt <SOS> và phần kết thúc của chuỗi bằng <EOS>. Bộ giải mã lấy dữ liệu đầu vào đã xử lý từ bộ mã hóa và tạo ra bản dịch tiếng Pháp "La voiture qui était garée dans le garage est bleue." Đây là cách phần này hoạt động:


    • Đầu vào cho Bộ giải mã : Bộ giải mã bắt đầu bằng biểu diễn được mã hóa của câu tiếng Anh từ bộ mã hóa. Nếu bạn để ý, bộ giải mã cũng lấy đầu ra của chính nó làm đầu vào. Vì nó sẽ không có đầu vào cho từ đầu tiên, chúng ta chèn mã thông báo <SOS> vào đầu (do đó dịch chuyển sang phải) và xóa từ cuối cùng. Chuỗi dịch chuyển này là thứ được đưa vào bộ giải mã.


    • Tự chú ý có mặt nạ : Trong bộ giải mã, cơ chế tự chú ý có mặt nạ đảm bảo rằng mỗi từ trong chuỗi đầu ra chỉ có thể chú ý đến các từ trước nó. Điều này ngăn mô hình nhìn về phía trước và đảm bảo nó tạo ra bản dịch từng từ một từ một từ từ trái sang phải.

      • Ví dụ, khi bộ giải mã chuẩn bị tạo ra từ “La” (từ đầu tiên trong tiếng Pháp), nó chỉ biết ngữ cảnh từ <SOS> chứ không biết các từ tương lai như “Voiture”.


    • Mạng nơ-ron truyền thẳng : Bộ giải mã áp dụng một mạng nơ-ron truyền thẳng khác để xử lý thông tin này thêm nữa, tinh chỉnh bản dịch từng bước.


Trong bộ giải mã, sau khi xử lý câu đầu vào thông qua nhiều lớp chú ý tự che giấu, chú ý mã hóa-giải mã và mạng lưới truyền thẳng, chúng ta thu được một chuỗi các biểu diễn liên tục (vectơ của các số thực) cho mỗi vị trí trong câu mục tiêu (trong trường hợp của chúng ta là tiếng Pháp). Các biểu diễn này cần được chuyển đổi thành các từ thực tế. Đây là nơi lớp tuyến tính và softmax cuối cùng phát huy tác dụng.


  • Lớp tuyến tính : Lớp này là lớp mạng nơ-ron được kết nối đầy đủ, chuyển đổi đầu ra của lớp giải mã cuối cùng (biểu diễn vectơ dày đặc cho mỗi vị trí) thành vectơ có kích thước bằng từ vựng mục tiêu (ví dụ: tất cả các từ có thể có trong tiếng Pháp).
  • Lớp Softmax : Sau khi chuyển đổi tuyến tính, một hàm softmax được áp dụng để chuyển đổi các logit (điểm thô) này thành xác suất. Các xác suất này chỉ ra khả năng mỗi từ trong từ vựng mục tiêu là từ tiếp theo chính xác trong bản dịch. Điều này cho phép chúng ta đoán từ nào trong từ vựng tiếng Pháp nên được chọn (ô có xác suất cao nhất).


Bộ giải mã về cơ bản thực hiện điều này:

  • Bước đầu tiên: Bộ giải mã bắt đầu bằng <SOS> và tạo ra từ đầu tiên “La”.
  • Bước thứ hai: Với đầu vào <SOS> La, mô hình dự đoán từ tiếp theo, “Voiture”.
  • Bước thứ ba: Bộ giải mã lấy <SOS> La Voiture và tạo ra từ “quit”.
  • Quá trình tiếp tục: Quá trình này tiếp tục, tạo ra “était”, “garée”, “dans”, “le”, “garage”, “est” và cuối cùng là “bleue”.
  • Mã thông báo kết thúc chuỗi: Bộ giải mã cuối cùng sẽ tạo ra mã thông báo kết thúc chuỗi <EOS> để báo hiệu quá trình dịch đã hoàn tất.


Bằng cách kết hợp các bước này, Transformer có thể hiểu toàn bộ cấu trúc và ý nghĩa của câu hiệu quả hơn các mô hình trước đây. Cơ chế tự chú ý và xử lý song song cho phép Transformer nắm bắt hiệu quả các sắc thái và cấu trúc của cả ngôn ngữ nguồn và ngôn ngữ đích, giúp nó có khả năng thực hiện các tác vụ như dịch máy.