Kiến trúc mạng Transformer

Một phần của tài liệu XÂY DỰNG HỆ THỐNG TRẢ LỜI CÂU HỎI RAG TRÊN TIẾNG VIỆT - NTTU CHATBOT (Trang 32 - 37)

CHƯƠNG 2: Cơ sở lý luận về vấn đề nghiên cứu

2.5. Lịch sử hình thành mô hình ngôn ngữ

2.5.6. Kiến trúc mạng Transformer

Để giải quyết vấn đề tuần tự không thể song song và đạo hàm quá lớn hoặc quá bé của các mạng truy hồi truyền thống, năm 2017 nhóm nghiên cứu của Google Brain đã cho ra đời

mô hình Transformer [18]. Mô hình này là một đột phá lớn trong việc xử lý dữ liệu liên tục

và được ứng dụng rộng rãi trong các lĩnh vực như NLP (Xử lý ngôn ngữ tự nhiên) và Computer Vision (Xử lý ảnh).

Hình 2.13: Kiến trúc mô hình Transformer

19

Mô hình này gồm 2 thành phần là Khối Encoder và Khối Decoder giống như kiến trúc Seq2seq truyền thống. Tuy vậy, sự đột phá của mô hình này đến từ sự xuất hiện của 3 kỹ thuật mới: Self-Attention, Multi-head Attention Positional Encoding.

Tự tập trung (Self-attention)

Cụ thể lớp tự tập trung (self-attention) sẽ bao gồm 3 đầu vào là: Truy vấn (Query), Khóa

(Key) và Giá trị (Value). Áp dụng theo hướng Chú ý điểm tích có tỉ lệ (Scaled Dot-Product Attention) như sau.

Hình 2.14: Scaled Dot-Product Attention Giả sử ta có chuỗi đầu vào là 𝑥1, . . , 𝑥𝑇 , trong đó 𝑇 là độ dài chuỗi đầu vào, đưa chuỗi này qua lớp embedding độ dài 𝑑 ta có được vector embedding 𝑋𝑇×𝑑 của chuỗi. Sau đó nhân lần lượt với 3 ma trận trọng số 𝑊𝑞, 𝑊𝑘, 𝑊𝑣 để có được 3 vector ma trận 𝑄, 𝐾, 𝑉 tương ứng. Với 𝑑 là kích thước của vector embedding, để đơn giản, ta sẽ cho 𝑑 = 𝑑𝑘 = 𝑑𝑣.

𝑄𝑇×𝑑 = 𝑊𝑑×𝑑𝑞 ∙ 𝑋𝑇×𝑑 với 𝑄 𝜖 ℝ𝑑𝑘

𝐾𝑇×𝑑 = 𝑊𝑑×𝑑𝑘 ∙ 𝑋𝑇×𝑑 với 𝐾 𝜖 ℝ𝑑𝑘

𝑉𝑇×𝑑 = 𝑊𝑑×𝑑𝑣 ∙ 𝑋𝑇×𝑑 với 𝑄 𝜖 ℝ𝑑𝑣 Tiếp tục ta sẽ nhân vô hướng ma trận 𝑄 với ma trận chuyển vị của 𝐾, ta thu được giá trị (𝑄𝐾⊤). Đây chính là giá trị của lớp 𝑀𝑎𝑡𝑀𝑢𝑙.

(𝑄𝐾⊤)𝑇×𝑇 = 𝑄𝑇×𝑑∙ 𝐾⊤𝑇×𝑑 Tiếp tục ta sẽ tiến hành 𝑆𝑐𝑎𝑙𝑒 bằng cách chia cho căn bậc 2 của kích thước ma trận trọng

số 𝑑 rồi đưa qua hàm 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 ta sẽ có được ma trận điểm số 𝐴𝑇×𝑇. Ma trận này có giá trị các phần tử dao động trong khoảng [0,1] sẽ thể hiện mối quan hệ của từng từ trong câu với nhau ở từng vị trí thứ 𝑡 tương ứng.

20

𝐴𝑇×𝑇 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 ((𝑄𝐾⊤)𝑇×𝑇

√𝑑 ) Cuối cùng, ma trận giá trị tập trung 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄, 𝑉, 𝐾) sẽ được tính bằng cách nhân vô hướng 𝐴𝑇×𝑇 với ma trận 𝑉𝑇×𝑑 ban đầu.

𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄, 𝑉, 𝐾)𝑇×𝑑 = 𝐴𝑇×𝑇 ⋅ 𝑉𝑇×𝑑 Như vậy ta đã đi qua công thức toán học của cơ chế Tự tập trung một đầu (Single Head

Self-Attention). Từ cơ chế này người ta đã

Tập trung đa đầu (Multi-head attention)

Ta có thể hình dung đơn giản, Tập trung đa đầu (Multi-head attention) là việc thực hiện

cơ chế Tự tập trung (Self-attention) nhiều lần với mỗi một đầu (head) là một lần thực hiện

tự tập trung. Sau đó sẽ tổng hợp kết quả ở lớp 𝐶𝑜𝑛𝑐𝑎𝑡, nhờ cơ chế này mà mạng Transformer có thể thực hiện song song khi tính toán thay vì tuần tự.

Hình 2.15: Multi-head Attention Tham số đầu ra của hàm MultiHead với ℎ là số lượng head attention được biểu diễn như sau:

𝑀𝑢𝑙𝑡𝑖𝐻𝑒𝑎𝑑(𝑄, 𝐾, 𝑉) = 𝐶𝑜𝑛𝑐𝑎𝑡(ℎ𝑒𝑎𝑑1, . . . , ℎ𝑒𝑎𝑑ℎ)𝑊𝑂 với 𝑊𝑂 𝜖 ℝℎ𝑑𝑣× 𝑑𝑚𝑜𝑑𝑒𝑙 và ℎ𝑒𝑎𝑑𝑖 được tính bằng công thức:

ℎ𝑒𝑎𝑑𝑖 = 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄𝑊𝑖𝑄 , 𝐾𝑊𝑖𝐾 , 𝑉𝑊𝑖𝑉)

21 Trong đó 𝑊𝑖𝑄 𝜖 ℝ𝑑𝑚𝑜𝑑𝑒𝑙 × 𝑑𝑘, 𝑊𝑖𝐾 𝜖 ℝ𝑑𝑚𝑜𝑑𝑒𝑙 × 𝑑𝑘, 𝑊𝑖𝑉 𝜖 ℝ𝑑𝑚𝑜𝑑𝑒𝑙 × 𝑑𝑣 là các trọng số cần

học. Do việc giảm kích thước 𝑑𝑣 =𝑑𝑚𝑜𝑑𝑒𝑙

ℎ cho nên tổng chi phí tính toán sẽ không tăng mà giữ nguyên so với việc dùng self-attention với kích thước 𝑑𝑣 = 𝑑𝑚𝑜𝑑𝑒𝑙 .

Positional Encoding

So với kỹ thuật Self-Attention Multi-head Attention như đã trình bày ở phần trên thì

Positional Encoding chỉ đến việc mã hóa vị trí của từ đưa vào vector embedding của từ, ta

bắt buộc phải mã hóa vị trí của input đầu vào trước khi đưa vào lớp encoder hoặc decoder (đi qua lớp Positional Encoding), bởi kiến trúc của Transformer không tuần như như RNN hoặc LSTM nên cơ chế scaled dot-product attention không thể biểu diễn được vị trí của một từ khi tạo ra vectơ ngữ cảnh của nó. Lớp Positional Encoding này là một ma trận có cùng kích thước với ma trận embedding được thực hiện qua hàm 𝑠𝑖𝑛 và 𝑐𝑜𝑠 có công thức như sau:

𝑃𝐸(𝑝𝑜𝑠,2𝑖) = 𝑠𝑖𝑛(𝑝𝑜𝑠/100002𝑖/𝑑𝑚𝑜𝑑𝑒𝑙)

𝑃𝐸(𝑝𝑜𝑠,2𝑖+1) = 𝑐𝑜𝑠(𝑝𝑜𝑠/100002𝑖/𝑑𝑚𝑜𝑑𝑒𝑙) với 𝑝𝑜𝑠 là vị trí của từ trong câu và cũng là vị trí hàng trong ma trận PE, i là chiều thứ i của ma trận PE. Sau khi đã có được ma trận Positional Encoding ta sẽ cộng nó với ma trận embedding rồi nhân với √𝑑𝑚𝑜𝑑𝑒𝑙 để nhúng thông tin về thứ tự của từ.

Khối Encoder của Transformer: Bao gồm N = 6 lớp encoder (encoder layer) xếp chồng

lên nhau với mỗi lớp sẽ có cấu trúc như sau:

22 Hình 2.16: Cấu trúc khối Encoder Transformer

Ở lớp này sẽ bao gồm 2 lớp con thành phần (sub-layer) là lớp con thành phần thứ nhất bao gồm một lớp Multi-head Attention Fully Connected Network để nhúng ngữ nghĩa các

từ. Đầu ra của nó sẽ qua một lớp chuẩn hóa Add & Norm bao gồm lớp Residual Connection

Layer Normalization với mục tiêu hạn chế khả năng đạo hàm biến mất (vanishing gradient) và giảm lỗi khi huấn luyện (training error), việc tính lớp này minh họa như sau:

𝐿𝑎𝑦𝑒𝑟𝑁𝑜𝑟𝑚(𝑥 + 𝑆𝑢𝑏𝑙𝑎𝑦𝑒𝑟(𝑥)) Sau đó sẽ qua lớp con thành phần thứ 2 là một khối FeedForward, khối này có tác dụng tính toán và trích xuất thông tin được tính bằng cách:

𝐹𝑒𝑒𝑑𝐹𝑜𝑟𝑤𝑎𝑟𝑑(𝑥) = 𝑚𝑎𝑥(0, 𝑥𝑊1+ 𝑏1)𝑊2+ 𝑏2 với các trọng số 𝑊1 𝜖 ℝ𝑑𝑚𝑜𝑑𝑒𝑙 × 𝑑𝑓𝑓, 𝑏1 𝜖 ℝ𝑛 × 1, 𝑊2 𝜖 ℝ 𝑑𝑓𝑓× 𝑑𝑚𝑜𝑑𝑒𝑙, 𝑏2 𝜖 ℝ𝑛 × 1 và 𝑛 là số lượng từ trong chuỗi, 𝑑𝑓𝑓 = 2048 là kích thước của hidden state (trạng thái ẩn) khi qua lớp tuyến tính đầu tiên. Sau lớp FeedForward sẽ là một lớp chuẩn hóa Add & Norm. Một

số mô hình ngôn ngữ lớn hiện đại sử dụng kiến trúc Encoder có thể kể đến như BERT, DeBERTa.

Khối Decoder của Transformer: Tương tự ở khối decoder cũng bao gồm N = 6 lớp decoder (decoder layer) xếp chồng lên nhau với mỗi lớp có cấu trúc như sau:

23 Hình 2.17: Cấu trúc khối Decoder Transformer

Tương tự với khối encoder thì khối decoder cũng có 2 lớp con thành phần giống encoder tuy nhiên sẽ xuất hiện thêm một lớp con thành phần thứ 3 nằm ở trước 2 lớp này để thực hiện attention với đầu ra của khối encoder phía trước. Ở đây là một lớp Masked Multi-head

Attention, về bản chất thì lớp này không khác gì so với lớp Multi-head Attention phía trên,

tuy nhiên nó sẽ loại trừ những từ trong tương lai, tránh lấy thông tin từ các từ trong tương lai khi huấn luyện mô hình. Mô hình tiêu biểu sử dụng kiến trúc Decoder của Transformer

kể đến như GPT.

Một phần của tài liệu XÂY DỰNG HỆ THỐNG TRẢ LỜI CÂU HỎI RAG TRÊN TIẾNG VIỆT - NTTU CHATBOT (Trang 32 - 37)

Tải bản đầy đủ (PDF)

(86 trang)