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 vi 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 dened.
2 – Nội dung .......................................................................................................................... 2
2.1 – Đặt vn đ .................................................................................................................... 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
hoc lấy ý tưởng từ Transformer và cơ chế Aenon.
Bên cạnh cơ chế self-aenon 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
ởng tới chất lượng mô hình cũng như tốc độ hội tụ.
Trong bài tp lớn này, nhóm chúng em đưa ra giả thuyết và thử nghiệm cải ế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 Normalizaon và vị trí thực hiện
normalizaon 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 luyn với bộ dữ liu lớn hơn.
2. Nội dung
2.1. Đặt vn đ
2.1.1. Vn đề 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 vn đề “quá khớp sớm”
(earlyoverng).
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ữ liu đầu ên có những nh chất
đặc biệt, thể hiện mạnh ở batch dữ liệu đó nhưng không phải là
nh chất toàn cục của toàn bộ dataset (cực 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 cc u đa phương, dẫn đến cht ợ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 vn đề này là phương pháp
learning-rate warmup, trong đó ở những iteraon đầu ê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 dliệ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ì vy, nhóm đặt ra câu hỏi liệu có thloại bỏ kỹ thuật
warmup trong khi vn đm bảo độ chính xác của model hay
không? Normalizaon có thể thay thế vai trò của warmup được
hay không?
2.1.2. Normalizaon trong mô hình Transformer
Trong kiến trúc của mô hình Transformer, layer normalizaon 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 normalizaon 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 normalizaon 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
normalizaon đưc đặt ngay sau sub-layer và bước residual
addion. Tuy nhiên, đã có những nhà nghiên cứu đặt ra giả
thuyết về vic
POSTNORM có thể gián ế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 normalizaon (ví dụ: đặt layer normalizaon liền trước các aenon
sublayer) có thể cải thiện mc độ ổ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 normalizaon 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 normalizaon 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 c lp 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
ếp cận này có thể làm chậm tc độ 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 validaon để
đưa ra những điều chỉnh về learning rate phù hợp.
2.1.4. Vn đề thiếu dliệu huấn luyện model
Dữ liu 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ũ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. Vn đề của mô hình NLP Sequence-to-Sequence truyn
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).
Đim 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
Backpropagaon để train nó. Mặc dù vậy, tốc độ train vn rt
chậm do phải sử dụng CPU, không tận dụng được nh toán
song song trên GPU.
Đim 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ố ợng units
càng lớn, gradient giảm dn ở các units cuối do công thc Đo
hàm chuỗi, dn đến mất thông n/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ố chiu ẩn của layer self-aenon, lambda và
n_warmup lần lượt là giá trị tối đa của learning rate và số c
cần có để đạt được giá trị lambda đó.
2.2.3. Residual connecon
Ví dụ residual block
Residual connecon là một kỹ thuật skip-connecon được áp dụng
phbiế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 connecon, 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 biu diễn bởi hàm phi tuyến F, residual
connecon 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. Normalizaon
Trong phầny, nhóm trình bày một số phương pháp normalizaon
được áp dụng phổ biến trong các model SOTA, phân ch ưu/nhược đim
(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 normalizaon căn bản nht, xuất phát trực
ế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 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 ane, có tác
dụng quyết định giá trị kỳ vọng và phương sai của dữ liu sau
normalize. Beta và gamma là 2 tham số learnable.
LAYERNORMALIZATION là phương pháp normalizaon đượ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 ane có
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 nht. Đ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 normalizaon có thể thích ứng với
nhiều kiến trúc mô hình khác nhau.
Tuy nhiên, normalizaon có thể gây ra hiện tượng gradient
vanishing nếu lớp normalizaon được đặt ngay sau residual
connecon.
2.2.4.2. SCALENORM
Scale Norm là một phương pháp normalizaon 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 augmentaon
Data augmentaon 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ữ liu
đã có hoặc dliu tổng hợp mới được tạo từ dữ liệu hiện có. Nó
hoạt động như một bộ điu chỉnh giúp làm giảm 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 translaon: Tiến hành dịch dữ liu 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ữ liu 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 Augmentaon: Sử dụng các phương pháp tăng
ờng dữ liệu truyền thống đơn giản. EDA có thể giúp
ngăn chặn việc dliệ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
chn ngẫu nhiên.
Random inseron: Tìm một từ đồng nghĩa ngu
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
hoán đổi vị trí của chúng.
Random deleon: Xóa bỏ ngẫu nhiên từng từ
trong câu với xác suất P.
+ NLP Albumentaon:
Shue 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, ế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. y dựng thử nghiệm phương pháp normalizaon mới
Thử nghiệm loại Normalizaon 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 Validaon-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 n từ tập dliệu validaon. Ý 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ữ liu
validaon. 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 paence:
Truyền vào mô hình một siêu tham số “paence”, với giá trị là một
số nguyên dương nhỏ (nhóm chọn giá trị 3). Paence đạ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ố ợng epoch hiện tại lớn hơn
paence và giá trị BLEU trong epoch hiện tại là nhnhất so với
paence (VD: 3) epoch gần nhất, thì ta giảm learning rate
Sơ đồ phương pháp paence
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ỏ ớ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 dliu
Trong bài toán dịch văn bản từ ếng Anh sang ế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 nh ngữ cảnh, và sử
dụng các từ ngữ có 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ữ
liu của Stanford, gồm 133 nghìn cặp câu ếng Anh và ếng Việt.
133 nghìn về mặt số ợ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
ếng Việt và ếng Anh theo đánh giá của nhóm là không nhiều.
Stanford cũng đồng ý với nhận định y của nhóm với việc đánh
dấu bộ dữ liệu này là low-resource. Trên thc 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ố chp nhận được tuy nhiên vẫn khá là khiêm tốn.
Nhận thấy việc có nhiều dliu từ các nguồn khác nhau ảnh
ở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 dliệu và làm giàu dữ liệu.
Trong quá trình thu thập dliệu, nhóm đã bỏ rất nhiều công sức
để thu thập dữ liu 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 ếng Anh
ếng Việt. Sau đó, nhóm thực hiện nhân bộ dữ liệuy lên
trong bước làm giàu dữ liệu bằng cách thực hiện back-translaon,
ghép câu (sentence concatenang), và thực hiện kỹ thuật đánh
nhãn cho các câu y để nhân số ợ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ố điu chỉnh kiến trúc -
Code phương pháp SCALENORM:
File layers.py
- Code phương pháp Validaon-based learning-rate decay:
File controller.py
2.4.2. Huấn luyện mô hình Transformer với dliệu làm giàu
2.4.2.1. Dữ liệu làm giàu
Sau bước thu thập dliệ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 le json có dung
ợ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ừ ếng Anh và ếng Việt. Số ợng như vy theo đánh
giá của nhóm là đã đủ để thc hiện các bước ế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
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 lter
là 3072, số aenon head của mỗi lớp là 12.
2.5. Đánh giá kết quả
2.5.1. Đánh giá kết quả điu 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:
Validaon-based + NoWarmUp + Decay Mulplicaon
Validaon-based + WarmUp + InvertedSquareRootDecay
Validaon-based + NoWarmUp + 2xLR
Có thể thy 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 Overng đã
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 normalizaon
Không có sự chênh lệch đáng k về cht 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ố ớ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ữ liu 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
(dliệu chưa được làm giàu), và thực hiện huấn luyn lại mô hình
đối với dữ liu 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
Dương
20173062
Tìm hiểu paper;
Đề xuất giải pháp cải ến;
Thử nghiệm điu chnh
LRScheduler,
ScaleNormalizaon; Đánh giá
kết quả, visualize kết quả, đưa
ra nhận xét; Làm báo cáo,slide
thuyết trình
Vũ Ngọc
Hin
20173103
Xây dựng và huấn luyện mô
hình với augmentaon data;
Crawl augmentaon data;
Đánh giá kết quả với mô hình
augmentaon data; Chuẩn b
code demo;
Đặng Văn
Nam
20173268
Tìm nguồn data bổ sung; Lập
kế hoạch các giai đoạn b
sung dữ liu;
Thiết kế và y dựng giải pháp
crawl data;
Nghiêm Văn
Nghĩa
20173283
Xây dựng và huấn luyện mô
hình Transfomer (2 mô hình);
Thử nghiệm LR-Scheduler;
Crawl dliệu augmentaon;
Đánh giá và ền xử lý dữ liu
augmentaon;
Huấn luyện và đánh giá mô hình
với augmentaon data;
Làm báo cáo;
3. Kết luận
Trong bài tp lớn này, nhóm chúng em đã đặt mục êu hiểu rõ kiến trúc
hình Transformer, đồng thời nắm bắt những phương pháp cải ế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“Hc phn X lý ngôn ngữ tự nhiên” để tự đưa ra những
đề xuất cải ế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 ến đáng k,
nhưng phần nào thể hiện được sthố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 ế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 dliu bổ sung đem lại cải thiện cht lượng cho mô hình.

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.