

















Preview text:
Báo cáo bài tập lớn
Học phần: XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Dịch máy Anh-Việt với Transformer
Giảng viên: PGS.TS. Lê Thanh Hương Nhóm 15
Nguyễn Bình Dương – 20173062
Vũ Ngọc Hiển – 20173103
Nghiêm Văn Nghĩa – 20173283 Đặng Văn Nam - 20173268
Mục lục 1 – Tổng quan .............................................................. Error! Bookmark not defined.
2 – Nội dung .......................................................................................................................... 2
2.1 – Đặt vấn đề .................................................................................................................... 2
2.2 – Cơ sở lý thuyết ............................................................................................................. 4
2.3 – Đề xuất giải pháp ........................................................................................................ 10
2.4 – Thử nghiệm ................................................................................................................ 12
2.5 – Đánh giá kết quả......................................................................................................... 15
3 – Kết luận ........................................................................................................................... 18 1. Tổng quan
Transformer mô hình xử lý ngôn ngữ tự nhiên thành công nhất trong giai đoạn
gần đây. Hầu hết các mô hình SOTA mới nhất đều được xây dựng dựa trên
hoặc lấy ý tưởng từ Transformer và cơ chế Attention.
Bên cạnh cơ chế self-attention làm nên thành công cho Transformer, mô hình
transformer còn có nhiều thành phần quan trọng khác cũng có khả năng ảnh
hưởng tới chất lượng mô hình cũng như tốc độ hội tụ.
Trong bài tập lớn này, nhóm chúng em đưa ra giả thuyết và thử nghiệm cải tiến
mô hình transformer với những phương pháp lập lịch cập nhật learningrate
mới, đồng thời thử nghiệm những hàm Normalization và vị trí thực hiện
normalization trong mô hình nhằm tăng mức độ ổn định. Cuối cùng, nhóm
thực hiện crawl dữ liệu tăng cường và đánh giá chất lượng mô hình sau khi
được huấn luyện với bộ dữ liệu lớn hơn. 2. Nội dung 2.1. Đặt vấn đề
2.1.1. Vấn đề warmup trong mô hình Transformer
Learning-rate warmup là một kỹ thuật lập lịch learning-rate trong
deep learning, nhằm giải quyết vấn đề “quá khớp sớm” (earlyoverfitting).
Trong quá trình huấn luyện mô hình học máy, dữ liệu thường được
chia thành các batch, các batch được huấn luyện lần lượt. Có thể
xảy ra hiện tượng những batch dữ liệu đầu tiên có những tính chất
đặc biệt, thể hiện mạnh ở batch dữ liệu đó nhưng không phải là
tính chất toàn cục của toàn bộ dataset (cực tiểu địa phương).
Những batch dữ liệu bias này có thể khiến model nhanh chóng hội
tụ về một điểm cực tiểu địa phương, dẫn đến chất lượng dự đoán của model thấp. Ví dụ bias data
1 giải pháp phổ biến để giải quyết vấn đề này là phương pháp
learning-rate warmup, trong đó ở những iteration đầu tiên của
quá trình huấn luyện, giá trị learning rate được giữ ở mức nhỏ. Kỹ
thuật này được nhóm tác giả của Transformer sử dụng, giúp cho
model không hội tụ một cách “vội vàng”. Tuy nhiên, đây cũng là sự
đánh đổi tốc độ hội tụ của model. Nếu dữ liệu được xử lý tốt,
không xuất hiện bias ở những batch đầu, warm up là không cần thiết.
Chính vì vậy, nhóm đặt ra câu hỏi liệu có thể loại bỏ kỹ thuật
warmup trong khi vẫn đảm bảo độ chính xác của model hay
không? Normalization có thể thay thế vai trò của warmup được hay không?
2.1.2. Normalization trong mô hình Transformer
Trong kiến trúc của mô hình Transformer, layer normalization là
một thành phần thiết yếu những thường ít được chú ý trong công
tác nghiên cứu tối ưu mô hình. Tuy nhiên, nhiều nghiên cứu chỉ ra
rằng normalization layer có khả năng tác động lớn tới sự hội tụ
của mô hình theo 2 hướng:
- Vị trí đặt layer normalization có thể tác động tới sự hội tụ của
mô hình. Trong mô hình Transformer gốc, tác giả sử dụng
postnorm residual units (POSTNORM), trong đó layer
normalization được đặt ngay sau sub-layer và bước residual
addition. Tuy nhiên, đã có những nhà nghiên cứu đặt ra giả thuyết về việc
POSTNORM có thể gián tiếp gây ra hiệu ứng gradient vanishing/exploding đối
với mạng neural nhiều layer. Nhóm đặt ra câu hỏi: Liệu việc thay đổi vị trí của
layer normalization (ví dụ: đặt layer normalization liền trước các attention
sublayer) có thể cải thiện mức độ ổn định cao hơn trong quá trinh hội tụ của model hay không?
- Lựa chọn công thức normalization có thể tác động tới sự hội tụ
của mô hình. Nhóm đề xuất thử nghiệm áp dụng các phương
pháp SCALENORM, FIXNORM tại layer normalization và quan
sát khả năng cải thiện của model.
2.1.3. Lập lịch learning rate
Nhìn chung, chiến lược lập lịch learning rate được áp dụng bởi
nhóm tác giả Transformer khá thận trọng. Nhóm tác giả sử dụng
kỹ thuật warm-up đồng thời giữ learning rate ở ngưỡng nhỏ. Cách
tiếp cận này có thể làm chậm tốc độ hội tụ của mô hình, và không
xét đến chất lượng dự đoán của mô hình trên tập validation để
đưa ra những điều chỉnh về learning rate phù hợp.
2.1.4. Vấn đề thiếu dữ liệu huấn luyện model
Dữ liệu huấn luyện đóng vai trò quan trong tới chất lượng của
model. Tuy rằng có nhiều bộ dữ liệu dịch máy Anh-Việt được công
bố trên Internet, nhóm cho rằng bên cạnh việc huấn luyện mô
hình với các dataset sẵn có, nhóm có thể tự thu thập và bổ sung
các dataset khác để bổ sung vào pipeline huấn luyện model. Nhóm
dự kiến sẽ đánh giá chất lượng mô hình trên các datatset sẵn có
cũng như dataset tự thu thập, đánh giá và giải thích sự cải thiện của mô hình (nếu có). 2.2. Cơ sở lý thuyết
2.2.1. Tổng quan mô hình Transformer 2.2.1.1.
Vấn đề của mô hình NLP Sequence-to-Sequence truyền thống
Mô hình Sequence-to-Sequence nhận input là một sequence và
trả lại output cũng là một sequence. Ví dụ bài toán Q&A, input
là câu hỏi "how are you ?" và output là câu trả lời "I am good".
Phương pháp truyền thống sử dụng RNNs cho cả encoder
(phần mã hóa input) và decoder (phần giải mã input và đưa ra output tương ứng).
Điểm yếu thứ nhất của RNNs là thời gian train rất chậm, đến
mức người ta phải sử dụng phiên bản Truncated
Backpropagation để train nó. Mặc dù vậy, tốc độ train vẫn rất
chậm do phải sử dụng CPU, không tận dụng được tính toán song song trên GPU.
Điểm yếu thứ hai là nó xử lý không tốt với những câu dài do
hiện tượng Gradient Vanishing/Exploding. Khi số lượng units
càng lớn, gradient giảm dần ở các units cuối do công thức Đạo
hàm chuỗi, dẫn đến mất thông tin/sự phụ thuộc xa giữa các units. 2.2.1.2. Kiến trúc Transformer
2.2.2. Learning-rate scheduler
Trong giải pháp gốc của nhóm tác giả Transformer, kỹ thuật lập lịch
learning rate được sử dụng là inverted square root decay.
Trong đó, d là số chiều ẩn của layer self-attention, lambda và
n_warmup lần lượt là giá trị tối đa của learning rate và số bước
cần có để đạt được giá trị lambda đó. 2.2.3. Residual connection Ví dụ residual block
Residual connection là một kỹ thuật skip-connection được áp dụng
phổ biến trong các mô hình học sâu, bao gồm Transformer. Khi
một mô hình được áp dụng kỹ thuật residual connection, mô hình
đó được cấu thành bởi các residual block (hình minh họa trên).
Với giả định các layer được biểu diễn bởi hàm phi tuyến F, residual
connection thực hiện phép cộng element-wise output của stack
các layer với input của các layer: x + F(x). 2.2.4. Normalization
Trong phần này, nhóm trình bày một số phương pháp normalization
được áp dụng phổ biến trong các model SOTA, phân tích ưu/nhược điểm
(trên cơ sở lý thuyết) của các phương pháp. 2.2.4.1. LAYERNORMALIZATION (pytorch)
Đây là phương pháp normalization căn bản nhất, xuất phát trực
tiếp từ lý thuyết Phân phối chuẩn tắc. Đây cũng là phương pháp
được sử dụng bởi nhóm tác giả của mô hình Transformer. Giải
pháp này cũng được implement dưới dạng hàm của framework PyTorch.
Công thức của phương pháp LAYERNORM như sau:
Trong đó, kỳ vọng và độ lệch chuẩn được tính theo chiều cuối cùng của tensor x.
Beta và gamma là các tham số của phép biến đổi affine, có tác
dụng quyết định giá trị kỳ vọng và phương sai của dữ liệu sau
normalize. Beta và gamma là 2 tham số learnable.
LAYERNORMALIZATION là phương pháp normalization được sử
dụng phổ biến do có nhiều ưu điểm, trong đó bao gồm:
- Khả năng bảo toàn hình dạng của phân phối dữ liệu. Tuy rằng
giá trị kỳ vọng và phương sai bị thay đổi, hình dạng phân phối
dữ liệu nhìn chung được giữ nguyên. Phép biến đổi affine có
tính chất bảo toàn các đường thẳng song song, các mặt phẳng
trong không gian nhiều chiều.
- Linh hoạt. Các tham số beta, gamma có thể được thiết lập giá
trị tùy ý, và có thể được học và cập nhật. Điều này cho phép tận
dụng tối đa kỹ thuật gradient decent trong mô hình học sâu,
đồng thời giúp kỹ thuật normalization có thể thích ứng với
nhiều kiến trúc mô hình khác nhau.
Tuy nhiên, normalization có thể gây ra hiện tượng gradient
vanishing nếu lớp normalization được đặt ngay sau residual connection. 2.2.4.2. SCALENORM
Scale Norm là một phương pháp normalization dữ liệu, đảm
bảo vector đầu ra luôn có norm = scale (scale là tham số cho
trước). Công thức cụ thể xem phần 2.2.1. 2.2.5. Data augmentation
Data augmentation là các kỹ thuật được sử dụng để tăng lượng
dữ liệu bằng cách thêm các bản sao được sửa đổi nhẹ của dữ liệu
đã có hoặc dữ liệu tổng hợp mới được tạo từ dữ liệu hiện có. Nó
hoạt động như một bộ điều chỉnh và giúp làm giảm tình trạng quá
tải khi đào tạo các mô hình học máy.
- Các phương pháp làm giàu dữ liệu trong NLP:
+ Back translation: Tiến hành dịch dữ liệu từ ngôn ngữ này
sang ngôn ngữ khác và ngược lại. Điều này có thể giúp
tạo dữ liệu với các từ khác nhau trong khi văn bản mẫu
bảo toàn ngữ cảnh của dữ liệu văn bản.
+ Easy Data Augmentation: Sử dụng các phương pháp tăng
cường dữ liệu truyền thống đơn giản. EDA có thể giúp
ngăn chặn việc dữ liệu quá mức và đào tạo mô hình mạnh mẽ hơn:
● Synonym replacement: Chọn ngẫu nhiên các từ
trong câu không phải là stop words. Thay thế
chúng bằng một trong các từ đồng nghĩa được chọn ngẫu nhiên.
● Random insertion: Tìm một từ đồng nghĩa ngẫu
nhiên của một từ ngẫu nhiên trong câu không phải
stop words, chèn từ đó vào một vị trí ngẫu nhiên trong câu.
● Random swap: Chọn ngẫu nhiên hai từ trong câu
và hoán đổi vị trí của chúng.
● Random deletion: Xóa bỏ ngẫu nhiên từng từ
trong câu với xác suất P. + NLP Albumentation:
● Shuffle Sentences Transform: Xáo trộn các câu để tạo ra một mẫu mới.
● Exclude duplicate transform: Nếu văn bản chứa
nhiều câu trùng lặp, tiến hành loại bỏ các câu
trùng lặp để tạo ra mẫu mới.
2.3. Đề xuất giải pháp
2.3.1. Xây dựng và thử nghiệm phương pháp normalization mới
Thử nghiệm loại Normalization mới (Scale L2 Norm):
y = scale*(x/L2-norm(x)) trong đó: scale = embedding_dim^(0.5)
2.3.2. Thử nghiệm giải pháp Validation-based learning-rate scheduler
Nhóm chúng em áp dụng kỹ thuật lập lịch learning-rate dựa trên
thông tin từ tập dữ liệu validation. Ý tưởng của kỹ thuật như sau:
Mô hình được huấn luyện với giá trị learning-rate lớn, sau mỗi
epoch chất lượng mô hình được đánh giá lại trên tập dữ liệu
validation. Nếu mô hình cho thấy performance suy giảm,
learningrate được nhân với hệ số suy giảm alpha_decay.
Mô hình sử dụng 1 metric duy nhất để đánh giá performance qua từng epoch: BLEU
Điều kiện đánh giá sự “suy giảm” của performance được nới lỏng
bằng chiến lược patience:
Truyền vào mô hình một siêu tham số “patience”, với giá trị là một
số nguyên dương nhỏ (nhóm chọn giá trị 3). Patience đại diện cho
số epoch liền trước epoch hiện tại được đánh giá khi đưa ra quyết
định có giảm learning rate hay không.
Cụ thể, tại mỗi epoch, nếu số lượng epoch hiện tại lớn hơn
patience và giá trị BLEU trong epoch hiện tại là nhỏ nhất so với
patience (VD: 3) epoch gần nhất, thì ta giảm learning rate
Sơ đồ phương pháp patience
Learning rate được giảm bằng cách nhân với một hệ số decay:
Ngoài ra, nhóm cũng thử nghiệm loại bỏ bước WarmUp để đánh
giá liệu việc loại bỏ warm-up có gây ảnh hưởng tới chất lượng model hay không 2.3.3. Làm giàu dữ liệu
Trong bài toán dịch văn bản từ tiếng Anh sang tiếng Việt, lý do mà
các mô hình hiện tại cho ra được kết quả chưa được tốt cho lắm,
đặc biệt là khi xử lý các văn bản mang đậm tính ngữ cảnh, và sử
dụng các từ ngữ có tính liên kết cao, một phần lớn là do việc thiếu
dữ liệu trong quá trình huấn luyện.
Trong mô hình ban đầu mà nhóm đã xây dựng, nhóm đã xây dựng
mô hình transformer và thực hiện quá trình training trên tập dữ
liệu của Stanford, gồm 133 nghìn cặp câu tiếng Anh và tiếng Việt.
133 nghìn về mặt số lượng để cho mô hình có cơ hội hiểu và học
được những khái niệm và liên kết tổng quát về mặt ngữ nghĩa của
tiếng Việt và tiếng Anh theo đánh giá của nhóm là không nhiều.
Stanford cũng đồng ý với nhận định này của nhóm với việc đánh
dấu bộ dữ liệu này là low-resource. Trên thực tế, khi thực hiện quá
trình training cho mô hình Transformer trên bộ dữ liệu trên, kết
quả thu được trên tập Validate hội tụ tại khoảng ~28 BLEU SCORE,
một con số chấp nhận được tuy nhiên vẫn khá là khiêm tốn.
Nhận thấy việc có nhiều dữ liệu từ các nguồn khác nhau ảnh
hưởng rất lớn tới kết quả của bài toán, nhóm đã quyết định dành
sự quan tâm đặc biệt tới việc thu thập dữ liệu và làm giàu dữ liệu.
Trong quá trình thu thập dữ liệu, nhóm đã bỏ rất nhiều công sức
để thu thập dữ liệu từ các nguồn khác nhau, ví dụ như các trang
web sách song ngữ, các trang web phim, các trang web về văn bản
pháp luật,... và thu được lượng khoảng 3.5 triệu cặp câu tiếng Anh
và tiếng Việt. Sau đó, nhóm thực hiện nhân bộ dữ liệu này lên
trong bước làm giàu dữ liệu bằng cách thực hiện back-translation,
ghép câu (sentence concatenating), và thực hiện kỹ thuật đánh
nhãn cho các câu này để nhân số lượng các câu lên khoảng 27 triệu cặp câu. 2.4. Thử nghiệm
2.4.1. Cài đặt Transformer với một số điều chỉnh kiến trúc -
Code phương pháp SCALENORM: File layers.py
- Code phương pháp Validation-based learning-rate decay: File controller.py
2.4.2. Huấn luyện mô hình Transformer với dữ liệu làm giàu 2.4.2.1. Dữ liệu làm giàu
Sau bước thu thập dữ liệu, nhóm đã thu thập được tổng cộng
3.5 triệu cặp câu Anh Việt, lưu trong một file json có dung lượng 1.5 GB.
Bộ từ vựng sau quá trình đếm từ tập dữ liệu này hơn là 21
nghìn từ tiếng Anh và tiếng Việt. Số lượng như vậy theo đánh
giá của nhóm là đã đủ để thực hiện các bước tiếp theo là làm
giàu và thực hiện huấn luyện mô hình. 2.4.2.2.
Huấn luyện model với dữ liệu làm giàu
Mô hình được nhóm sử dụng để huấn luyện với dữ liệu thu
thập được cùng với dữ liệu sau khi được làm giàu là
Transformer của thư viện tensor2tensor.
Mô hình Transformer của nhóm bao gồm có 9 lớp encoder và 9
lớp decoder, kích thước của lớp hidden là 768, kích thước filter
là 3072, số attention head của mỗi lớp là 12. 2.5. Đánh giá kết quả
2.5.1. Đánh giá kết quả điều chỉnh kiến trúc Transformer
2.5.1.1. Điều chỉnh learning-rate scheduler
Không có chênh lệch đáng kể trong điểm đánh giá BLEU cuối cùng
khi so sánh các phương pháp LR Scheduler khác nhau.
Tuy nhiên, khi quan sát biến động BLEU qua từng epoch training,
nhóm nhận thấy tác động của việc loại bỏ WarmUp đối với quá
trình hội tụ của mô hình:
Validation-based + NoWarmUp + Decay Multiplication
Validation-based + WarmUp + InvertedSquareRootDecay
Validation-based + NoWarmUp + 2xLR
Có thể thấy việc loại bỏ WarmUp giúp model nhanh chóng hội tụ
hơn, trong khi không ảnh hưởng đến chất lượng của mô hình. Bên
cạnh đó, việc tăng gấp đôi Learning Rate cũng giúp model hội tụ
nhanh hơn. Tuy nhiên, nhóm dự đoán hiện tượng Overfitting đã
xảy ra trên model với x2 Learning Rate, do chất lượng dự đoán của
model trên training dataset tốt hơn so với x1 Learning Rate,
nhưng trên test dataset kết quả lại tệ hơn.
2.5.1.2. Thử nghiệm normalization
Không có sự chênh lệch đáng kể về chất lượng mô hình đánh giá
dựa trên BLEU score, tuy nhiên PRENORM cho thấy sự ổn định trong hội tụ.
Khi thay đổi số bước warm-up, ta nhận thấy với số step warm-up
nhỏ, model dễ dàng xảy ra gradient vanishing khi sử dụng POSTNORM.
Tuy nhiên PRENORM giúp model có thể hội tụ ngay cả với những
warm-up step mà POSTNORM không thể hội tụ, cho thấy mức độ
ổn định vượt trội đáng kể.
2.5.2. Đánh giá kết quả làm giàu dữ liệu (So sánh BLEU giữa các lần train với dữ liệu làm giàu)
Nhóm đã thực hiện huấn luyện mô hình đối với tập dữ liệu gốc
(dữ liệu chưa được làm giàu), và thực hiện huấn luyện lại mô hình
đối với dữ liệu với dữ liệu sau khi được làm giàu, và so sánh kết
quả BLEU SCORE trung bình thu được trên tập Validate trước và
sau khi thực hiện làm giàu, và kết quả thu được trên tập Validate
đã tăng 1.1 BLEU SCORE sau khi thực hiện bước làm giàu dữ liệu.
2.5.3. Phân công công việc Thành viên MSSV Nội dung công việc Nguyễn Bình 20173062 Tìm hiểu paper; Dương
Đề xuất giải pháp cải tiến;
Thử nghiệm điều chỉnh LRScheduler,
ScaleNormalization; Đánh giá
kết quả, visualize kết quả, đưa
ra nhận xét; Làm báo cáo,slide và thuyết trình Vũ Ngọc 20173103
Xây dựng và huấn luyện mô Hiển
hình với augmentation data; Crawl augmentation data;
Đánh giá kết quả với mô hình
augmentation data; Chuẩn bị code demo; Đặng Văn 20173268
Tìm nguồn data bổ sung; Lập Nam
kế hoạch các giai đoạn bổ sung dữ liệu;
Thiết kế và xây dựng giải pháp crawl data; Nghiêm Văn 20173283
Xây dựng và huấn luyện mô Nghĩa
hình Transfomer (2 mô hình); Thử nghiệm LR-Scheduler;
Crawl dữ liệu augmentation;
Đánh giá và tiền xử lý dữ liệu augmentation;
Huấn luyện và đánh giá mô hình với augmentation data; Làm báo cáo; 3. Kết luận
Trong bài tập lớn này, nhóm chúng em đã đặt mục tiêu hiểu rõ kiến trúc mô
hình Transformer, đồng thời nắm bắt những phương pháp cải tiến mô hình
được cộng đồng khoa học đề xuất. Chúng em cũng phối hợp với những kiến
thức học được từ “Học phần Xử lý ngôn ngữ tự nhiên” để tự đưa ra những
đề xuất cải tiến của bản thân.
Những giải pháp đề xuất được thử nghiệm chưa đem lại cải tiến đáng kể,
nhưng phần nào thể hiện được sự thống nhất giữa giả thuyết mà nhóm đề
ra với hành vi thực tế của model. Những giải pháp cải tiến cũng đem lại
mức độ ổn định đáng kể cho quá trình hội tụ của mô hình.
Nhóm cũng đã thu thập bổ sung được một lượng dữ liệu đáng kể, và chứng
minh được dữ liệu bổ sung đem lại cải thiện chất lượng cho mô hình.