"Trong các mạng nơron học sau, gradient của hàm mat mát dễ có khả năng bị tiêu biến về gần bằng 0 (vanishing gradient) hoặc bùng nổ giá trị quá lớn (exploding gradient) trong quá trình tính toán đạo hàm lan truyền trên mạng.
Vấn đề gradient tiêu biến xảy ra khi các tham số ở các lớp đầu của mô hình quá nhỏ, khiến hàm tối ưu khó mà cập nhật chúng hơn. Diéu này xảy ra thường là do các hàm kích hoạt bị
Kiến trúc Transformer
bão hòa đưa các giá trị càng nhỏ đầu ra làm giá trị đầu vào của lớp phía sau, các lớp như vay xếp chồng lên nhau khiến giá trị đầu ra càng lúc càng nhỏ và dần tiêu biến về 0. Khi gradient tiêu biến, hàm tối ưu gần như không thể cập nhật được nữa, dẫn đến mô hình bị mất khả năng học. Vấn đề gradient bùng nổ cũng tương tự nhưng xây ra khi các tham số ở các lớp đầu của
mô hình quá lớn, khiến hàm tối ưu khó mà cập nhật chúng hơn. Điều này xy ra thường là do các hàm kích hoạt bị bão hòa đưa các giá trị càng lớn xếp chồng lên nhau khiến chúng lớn càng. lớn hơn và dần tiến về vô cực. Khi gradient trở nên quá lớn, hàm tối ưu sẽ thực hiện việc cập. nhật khiến các tham số trở nên vô cùng lớn, dẫn đến hàm tối ưu bị phân kỳ, khó đưa mô hình hội tụ về một kết quả tốt.
Cả hai vấn đề trên đều có thể được xử lý bằng cách chủ ý khỏi tạo trọng số mô hình theo hướng giảm khả năng dé chúng xảy ra, hoặc sử dụng phương pháp chuẩn hóa một cách can thận. Trong thực tế, việc sử dụng hàm kích hoạt ReLU là một cách hữu hiệu để giảm thiểu khả năng xảy ra vấn đề này. Một cách khác có thé sử dụng đó là clipping gradient, nghĩa là dua ra
một ngưỡng giới hạn cho giá trị hoảng đó không được thấp hơn hay vượt quá mức này.
cách mạng trong cội NLP nói riêng và cộng đồng nghiên cứu machine learning nói chung. Hầu như toàn bộ các mô hình ứng dụng trong các lĩnh vực của NLP hiện nay đạt kết quả cao đều dựa trên nền tảng kiến trúc Transformer. Vậy Transformer rốt cuộc có cải tiến
gì mà lại tạo ra đột phá lớn đến như vậy?
19
Các thành phần của kiến trúc Transformer
Nx
Nx
Positional Positional
Encoding @ © © CY Encoding
hpi Out
Embedding Embedding
Inputs Outputs
(shifted right) Figure 1: The Transformer - model architecture.
Hin! ‘inh transformer.
Trước Transformer, các mô hình xử lý ngôn ngữ thong dụng thường dựa trên kiến trúc của RNN. Tuy nhiên, vấn đề tồn tại của RNN nằm ở việc huấn luyện mô hình tốn quá nhiều thời gian, hơn nữa khi gặp chuỗi data quá dài RNN còn gặp phải vấn đề vanishing gradient. Mạng LSTM ra đời giải quyết được vấn đề này của RNN, nhưng vẫn chưa giải quyết được vấn đề
thời gian. Nhược điểm lớn của cả RNN và LSTM do là dữ liệu phải được truyền vào một cách tuần tự, khiến chúng không tận dụng được GPU để tăng tốc độ tính toán lên gấp nhiều lần, điều thường thầy ở các mô hình deep learning khác. Vay làm cách nào để tính toán song song trên dữ liệu chuỗi, tận dung được nguồn GPU dồi dào như các mô hình deep learning vẫn lam?
Transformer chính là lời giải cho bài toán hóc búa này.
Mô hình transformer được chính thức giới thiệu trong bài báo "Attention is all you need" [63].
Kiến trúc Transformer xây dựng lớp mã hóa - giải mã theo một cách khác để dit liệu có thể
được truyền vào song song.
Các thành phần của kiến trúc Transformer
® Encoder của transformer nhận đầu vào là một chuỗi từ vựng và tạo ra một biểu diễn nén (hay còn gọi là mã hóa) của chuỗi đó. Biểu diễn nén này bao gồm các vector trọng số được tạo ra bởi lớp embedding của transformer, cùng với các vector trọng số được tạo ra
bởi các lớp self-attention và mạng nơ-ron feed-forward.
© Sau đó, decoder của transformer sử dụng biểu diễn nén đó cùng với một chuỗi đích (ví
dụ như một câu hỏi hoặc một đoạn văn bản) để tạo ra một chuỗi kết quả (hay còn gọi là giải ma). Decoder sử dụng lớp self-attention để tạo ra các trọng số trọng tâm cho chuỗi đích, cùng với một số trọng số được tạo ra bởi lớp attention của encoder để "nhìn"vào biểu dién nén của chuỗi đầu vào. Sau đó, decoder sử dụng mạng nơ-ron feed-forward để tính toán kết quả cho mỗi từ trong chuỗi kết quả.
e Lưu ý là chúng ta luôn có một bước cộng thêm Positional Encoding vào các input của
encoder và decoder nhằm đưa thêm yếu tố thời gian vào mô hình làm tăng độ chuẩn xác. Đây chỉ đơn thuần là phép cộng vector mã hóa vị trí của từ trong câu với vector biểu
diễn từ
Điểm đặc trưng nằm ở
vào, Attenti a dian trọng nhất. Cu thể, khi xử lý một câu, mỗi t i 2 à đưa qua một hàm tính điểm dé xác định
trọng số Attentio Mig từ. Các trọng số này được áp dụng để tinh toán trung bình
có trọng số của các vector từ, tạo ra một biểu diễn mới của câu với các thông tin quan trọng được tập trung vào. Các vector này sau đó sẽ được đưa vào một khối khác gọi là khối mã hóa - giải mã attention.
® SelE-attention: Là một cơ chế attention, nó cho phép mô hình tập trung vào các phần khác nhau của đầu vào để tạo ra đầu ra tương ứng. Trong self-attention, đầu vào và đầu ra của.
một lớp đều là cùng một chuỗi, và attention được tính trên các phần tử trong chuỗi này.
¢ Nhược điểm một self-attention là khó để nắm bắt các khía cạnh khác nhau của đầu vào bởi vì nó có xu hướng tập trung vào chính bản thân của nó. Nhưng trong thực tế, ta cần
là tính toán mức độ liên quan giữa những từ khác nhau trong câu, giải pháp được đề xuất
là thay vì sử dụng nhiều self-attention cùng một lúc để học được nhiều attention weight khác nhau giúp chú ý đến nhiều chỗ khác nhau trong cùng một câu. Do đó Multi-Head Attention ra đời nhằm giải quyết vấn đề trên, nó cho phép mô hình tập trung vào các phần
21
Ứng dụng Transformer trong mô hình ngôn ngữ
khác nhau của câu để xác định mối quan hệ giữa chúng. Cơ chế Multi-Head Attention bao gồm nhiều phép Attention đồng thời thực hiện trên cùng một đầu vào nhưng với các trọng số khác nhau. Mỗi phép Attention sẽ học cách trích xuất thông tin quan trọng từ các chuỗi input khác nhau. Khi đó, việc kết hợp các phép Attention này giúp mô hình có khả năng tập trung vào nhiều khía cạnh của đầu vào và đạt được kết quả tốt hơn.