Chương 1 Cơ sở lý thuyết Trước khi bắt đầu tìm hiểu sâu hơn về những mô hình ngôn ngữ lớn (LLM) có khả năng hiểu và tạo sinh ngôn ngữ tự nhiên với độ chính xác và độ phức tạp cao, việc quan trọng là nắm bắt kiến thức cơ bản về những công cụ quan trọng trong lĩnh vực này, đặc biệt là kiến trúc Transformer [3] với cơ chế tự chú ý. Sự hiểu biết vững chắc về cách mà các mô hình này hoạt động không chỉ cung cấp cho chúng ta cái nhìn sâu sắc về ngôn ngữ tự nhiên và cơ sở của công nghệ xử lý ngôn ngữ tự nhiên (NLP), mà còn tạo tiền đề cho việc hiểu và tinh chỉnh mô hình ngôn ngữ lớn trong bài toán xác minh tính chính xác của tin tức.1 Tổng quan về cơ chế chú ý Trong các mô hình chuỗi sang chuỗi, chuỗi đầu vào được bộ mã hóa thành một véc-tơ ngữ cảnh có độ dài cố định đại diện cho lượng thông tin đầu vào. Véc-tơ ngữ cảnh là một véc-tơ có chứa thông tin tổng hợp từ toàn bộ các từ trong câu đầu vào. Sau đó, véc-tơ ngữ cảnh được sử dụng làm trạng thái ban đầu của bộ giải mã để sinh chuỗi đầu ra theo từng bước.
Cách hoạt động này yêu cầu đầu ra trạng thái cuối cùng của bộ mã hóa cần phải chứa tất cả các thông tin về câu nguồn. Dẫn đến việc véc-tơ ngữ cảnh bị quá tải về mặt thông tin nếu như chuỗi nguồn quá dài.1: Cơ chế mã hóa, giải mã 3 Cơ chế chú ý được sinh ra dựa trên nhu cầu ghi nhớ các câu dài, một trong những vấn đề cơ bản của bài toán dịch máy. Cơ chế chú ý cho phép mô hình tập trung vào một hoặc một vài ngữ cảnh địa phương trong câu, đó cũng là nguồn gốc tên gọi cơ chế chú ý. Thay vì để bộ mã hóa nén toàn bộ thông tin vào một véc-tơ trạng thái đầu ra cuối cùng, ta cho phép bộ giải mã quan sát toàn bộ đầu ra của bộ mã hóa.
Thay vì sử dụng véc-tơ ngữ cảnh duy nhất một lần tại đầu vào của bộ mã hóa, ta sử dụng mỗi véc-tơ ngữ cảnh riêng biệt cho từng phần để dự đoán ra từ kế tiếp, mỗi véc-tơ ngữ cảnh được tổng hợp có trọng số từ các trạng thái ẩn trong bộ mã hóa (Hình 1.2: Bộ mã hóa, bộ giải mã với cơ chế chú ý Cách thức tổng hợp để ra được véc-tơ ngữ cảnh (hay véc-tơ chú ý) có nhiều cách, trong phần này, chúng ta tìm hiểu về cơ chế tổng hợp chú ý của Bahdanau [1]. Mô hình toán học của cơ chế mã hóa - giải mã Trong mô hình bộ mã hóa - bộ giải mã, bộ mã hóa đọc một câu đầu vào gồm một chuỗi các véc-tơ x = (x1 ,. , xT ) thành véc-tơ ngữ cảnh c. Khi sử dụng RNN thì ta có: ht = f (xt , ht−1 ) và c = q({h1,.
, hT }) Trong đó: 4 • ht ∈ Rn : Trạng thái ẩn của tại bước t. • c: Véc-tơ sinh bởi chuỗi trạng thái ẩn. • f, q: Các hàm phi tuyến. Bộ giải mã dự đoán yt dựa vào véc-tơ ngữ cảnh c và tất cả các từ trước nó {y1 ,.
Nói cách khác, bộ giải mã định nghĩa một xác xuất qua phép dịch y như sau: T Y p(y) = p(yt |{y1 ,. Khi sử dụng RNN cho bộ giải mã, ta có: p(yt |{y1 ,. , yt−1 }, c) = g(yt−1 , st , c) Trong đó: • g là hàm phi tuyến. • st là trạng thái ẩn của RNN.
Mô hình toán học bộ mã hóa - bộ giải mã với cơ chế chú ý Trong kiến trúc mới với chú ý, xác suất để tạo ra đầu ra yi tại bộ giải mã biết các đầu tra trước đó y1 ,. , yi−1 và câu nguồn x là: p(yi |{y1 ,. Khác với mô hình bộ mã hóa - bộ giải mã thông thường, tại mỗi đầu ra yi , chúng ta sử dụng véc-tơ ngữ cảnh ci. véc-tơ ngữ cảnh ci là véc-tơ phụ thuộc vào bộ h1 ,.
, hT : T X ci = αij hj j=1 Trong đó: exp(eij ) αij = PT k=1 exp(eik ) biểu thị trọng số cho từ mục tiêu yi được dịch từ từ nguồn xj. Tại đây: eij = a(ai−1 , hj ) được gọi là mô hình liên kết với mục đích đánh giá mức độ tương quan của từ tại vị trí j của bộ mã hóa với từ đầu ra tại vị trí i của bộ giải mã bằng việc gán trọng số vào αij. eij biểu thị tầm quan trọng của hj với trạng thái ẩn trước đó si−1 trong việc quyết định trạng thái tiếp theo si và tạo ra yi .3: Hoạt động của cơ chế chú ý [1] Trong bài báo của tác giả Bahdanau, mô hình liên kết a được chọn với công thức như sau: score(si−1 , hj ) = a(si−1 , hj ) = vaT tanh(Wa si−1 + Ua hj ) thực chất là một perceptron nhiều lớp với Wa , Ua , va là các ma trận trọng số.4: Hoạt động của cơ chế chú ý chuyển tiếp [2] Ma trận bất đối xứng (confusion matrix) được tạo ra bởi điểm liên kết thể hiện mức độ tương quan giữa câu nguồn và câu đích. Nói cách khác, thực chất cơ chế chú ý giúp mô hình tập trung vào phần quan trọng trên dữ liệu nguồn, bằng việc tạo ra một mô hình liên kết a tính các điểm liên kết αij để thay đổi lại các trọng số của trạng thái ẩn của bộ mã hóa.2 Các biến thể của cơ chế chú ý Có nhiều cách tính điểm liên kết như sau: 1.
Content-base Attention [20]: score(si−1 , hj ) = consine[si−1 , hj ] 2. Multiplicative Attention hay General Attention [21]: score(si−1 , hj ) = sTi−1 Wa hj 3.2 Mô hình Transformer 1.1 Tổng quan về mô hình Transformer Trong bài báo Attention is all you need [3], các tác giả giới thiệu về kiểu mô hình chú ý được sử dụng trong các tác vụ học máy. Trong bài báo cũng đưa ra một kiến trúc mới là Transformer [3] hoàn toàn khác so với các kiến trúc RNN trước đây, mặc dù cả hai đều thuộc lớp mô hình chuỗi sang chuỗi nhằm chuyển một chuỗi đầu vào ở ngôn ngữ A sang một chuỗi đầu ra ở ngôn ngữ B. Quá trình biến đổi được dựa trên hai phần bộ mã hóa và bộ giải mã.
Nghiên cứu chỉ ra rằng với cơ chế chú ý không cần cần đến RNN đã có thể cải thiện hiệu quả của các tác vụ dịch máy và nhiều tác vụ khác. Kiến trúc mô hình Transformer [3] gồm hai phân bộ mã hóa bên trái và bộ giải mã bên phải (Hình 1. • Bộ mã hóa: Là tổng hợp xếp chồng lên nhau của sáu lớp (layer) xác định. Mỗi lớp bao gồm hai lớp con (sublayer) trong nó.
Lớp con đầu tiên là cơ chế chú ý nhiều đầu (multi-head attention). Lớp con thứ hai đơn thuần là các lớp đầy đủ chuyển tiếp (fully-connected feed-forward). Một lưu ý là chúng ta sẽ sử dụng một kết nối dư (residual) ở mỗi lớp con, kiến trúc này tương tự như mạng resnet trong CNN. Đầu ra của mỗi lớp con là LayerNorm(x+Sublayer(x)) có số chiều là 512 như bài báo.
• Bộ giải mã: Cũng là tổng hợp của sáu lớp xếp chồng nhau, kiến trúc tương tự như các lớp con của bộ mã hóa ngoại trừ thêm một lớp con thể hiện phân phối chú ý ở vị trí đầu tiên. Lớp này không gì khác so với cơ chế chú ý nhiều đầu (multi-head attention) ngoại trừ được điều chỉnh để không đưa các từ trong tương lai vào cơ chế chú ý. Tại bước thứ i của bộ giải mã chúng ta chỉ biết được các từ ở vị trí nhỏ hơn i nên việc điều chỉnh đảm bảo cơ chế chú ý chỉ áp dụng cho những từ nhỏ hơn vị trí thứ i. Kết nối dư cũng được áp dụng tương tự như trong bộ mã hóa.
7 Ngoài ra, chúng ta có một bước cộng thêm mã hóa vị trí (positional encoding) vào các đầu vào của bộ mã hóa và bộ giải mã nhằm thêm yếu tố vị trí vào mô hình để tăng độ chính xác. Đây đơn giản là phép cộng véc-tơ mã hóa vị trí của từ trong câu với véc-tơ biểu diễn từ. Chúng ta có thể mã hóa vị trí dưới dạng {0, 1} véc-tơ vị trí hoặc sử dụng hàm sin, cos như trong bài báo.5: Kiến trúc mô hình Transformer [3] 1.2 Cơ chế tự chú ý (Self attention) Như đã giới thiệu ở phần trên, bộ mã hóa và bộ giải mã cơ bản giống nhau về cấu trúc, gồm nhiều lớp xếp chồng lên nhau, trong mỗi lớp này lại được chia thành hai lớp con (Hình 1.6: Kiến trúc của một lớp trong bộ mã hóa và bộ giải mã Cơ chế tự chú ý (self attention) cho phép mô hình khi mã hóa một từ có thể sử 8 dụng thông tin của những từ liên quan tới nó. Chúng ta có thể tưởng tượng cơ chế tự chú ý giống như cơ chế tìm kiếm.
Với một từ cho trước, cơ chế này sẽ cho phép mô hình tìm kiếm trong các từ còn lại, từ nào “giống” để sau đó thông tin sẽ được mã hóa dựa trên tất cả các từ trên. Chúng ta có câu: mặt trời mọc phía đông và nó lặn ở phía tây thì cơ chế tự chú ý sẽ giúp mô hình khi mã hóa từ nó thì sẽ tập trung vào từ liên quan là mặt trời.7: Ví dụ cơ chế tự chú ý Tích vô hướng tỉ lệ chú ý (Scale dot product attention) Tích vô hướng tỉ lệ chú ý (Scale dot product attention) là một cơ chế tự chú ý. Sau bước nhúng từ ta có đầu vào của bộ mã hóa và bộ giải mã là ma trận X kích thước m × n với m, n lần lượt là độ dài câu và số chiều của một véc-tơ nhúng từ.8: Sơ đồ hoạt động của cơ chế tự chú ý Trong Hình 1.8, khung màu vàng là ba ma trận Wq , Wk , Wv là những hệ số mà mô hình cần huấn luyện. Sau khi nhân các ma trận này với ma trận đầu vào X ta thu được ma trận Q, K, V (tương ứng gọi là truy vấn (Query), khóa (Key), giá trị (Value)).
Ma trận truy vấn và khóa có tác dụng tính toán ra phân phối điểm cho các cặp từ. Ma 9 trận giá trị sẽ dựa trên phân phối điểm để tính ra véc-tơ phân phối xác suất đầu ra. Như vậy, mỗi từ sẽ được gán bởi ba véc-tơ truy vấn, khóa và giá trị là các dòng của ma trận Q, K, V (Hình 1. • Véc-tơ truy vấn: Véc-tơ dùng để chứa thông tin của các từ được tìm kiếm, so sánh.