Tải bản đầy đủ (.pdf) (61 trang)

Xây dựng Chatbot tư vấn và hướng dẫn tự chăm sóc sức khỏe tại nhà với những bệnh nhân nhiễm/nghi nhiễm virus SARS-CoV-2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.63 MB, 61 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Xây dựng Chatbot tư vấn và hướng dẫn
tự chăm sóc sức khỏe tại nhà với những bệnh nhân
nhiễm/nghi nhiễm virus SARS-CoV-2
NGÀNH: KHOA HỌC MÁY TÍNH

HỘI ĐỒNG: KHOA HỌC MÁY TÍNH 11
GVHD: PGS. TS. Quản Thành Thơ
ThS. Mai Đức Trung
GVPB: ThS. Lê Đình Thuận
SVTH1: Bùi Trần Cơng Minh - 1813060
SVTH2: Đồn Quang Chính - 1810685

TP. HỒ CHÍ MINH, THÁNG 5/2022


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Lời cam đoan
Chúng tơi xin cam đoan rằng, luận văn tốt nghiệp "Xây dựng Chatbot tư vấn về các
triệu chứng và hướng dẫn tự chăm sóc sức khỏe tại nhà với những bệnh nhân nhiễm/nghi
nhiễm virus SARS-CoV-2" là cơng trình nghiên cứu của chúng tơi dưới sự hướng dẫn
của thầy PGS. TS. Quản Thành Thơ, xuất phát từ nhu cầu thực tiễn đại dịch covid-19
đang diễn ra gây ảnh hưởng lớn tới cuộc sống và nguyện vọng tìm hiểu của bản thân
chúng tơi.


Ngoại trừ kết quả tham khảo từ các cơng trình khác đã ghi rõ trong luận văn,
các nội dung trình bày trong luận văn này là kết quả nghiên cứu do chính chúng tôi
thực hiện và kết quả của luận văn chưa từng cơng bố trước đây dưới bất kỳ hình thức nào.
TP. Hồ Chí Minh, ngày .... tháng .... năm .......
Nhóm tác giả

Bùi Trần Công Minh

Luận văn tốt nghiệp - Năm học 2021-2022

Đồn Quang Chính

Trang 1/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Lời cảm ơn
Chúng tơi xin cảm ơn PGS. TS. Quản Thành Thơ đã tận tình giúp đỡ chúng tơi
trong q trình thực hiện đề tài. Sự nhiệt tình và những lời động viên, chỉ dẫn và góp ý
vơ giá của thầy đã giúp chúng tơi hồn thành tốt luận văn tốt nghiệp này.
Chúng tơi cũng xin cảm ơn TS. Nguyễn Như Vinh cùng các anh chị sinh viên đến từ
trường Đại học Y Dược thành phố Hồ Chí Minh đã nhiệt tình giúp đỡ nhóm trong việc
gán nhãn, thu thập dữ liệu và góp ý trong quá trình thực hiện đề tài.

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 2/60



Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Tóm tắt
Hiện nay với sự phát triển của các kỹ thuật Trí Tuệ Nhân Tạo (Artificial Intelligence),
các hệ thống Chatbot thông minh đang thu hút nhiều sự chú ý vì tính hiệu quả của
chúng trong việc thay thế con người trong nhiều lĩnh vực. Trong lĩnh vực y tế, sự ứng
dụng của Chatbot này càng được quan tâm vì lĩnh vực này có nhu cầu lớn từ cộng đồng
và địi hỏi nhân lực có trình độ nhất định tham gia tư vấn. Để xây dựng một Chatbot
phục vụ người dân hiệu quả trong lĩnh vực y tế, các thách thức cần phải giải quyết bao
gồm: (i) tích hợp các kiến thức y tế chuyên ngành vào cơ sở tri thức của Chatbot; và (ii)
huấn luyện cho Chatbot có thể giao tiếp hiệu quả với con người bằng ngôn ngữ tự nhiên.
Trong đề tài này, chúng tôi đã giải quyết các vấn đề trên bằng các phương pháp học
máy tiên tiến để xây dựng một Chatbot tư vấn cho người dùng các vấn đề y tế liên quan
đến các triệu chứng hậu Covid. Đây là một vấn đề cấp thiết và có tính ứng dụng cao đối
với TPHCM nói riêng và Việt Nam nói chung sau khi đã phần nào khống chế được đại
dịch Covid-19. Hệ thống Chatbot này hiện đang trong quá trình triển khai thử nghiệm
tại Đại học Y dược TPHCM và ghi nhận được các phản hồi khá tích cực từ người dùng.
Luận văn của nhóm được trình bày tại Hội nghị Khoa học công nghệ lần thứ 15:
Hướng tới mạng lưới bác sĩ gia đình thơng minh được tổ chức tại Đại học Y khoa Phạm
Ngọc Thạch.

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 3/60


Mục lục
Danh sách hình vẽ


6

Danh sách bảng biểu

8

1 Giới thiệu
1.1 Đặt vấn đề . . . . . . . . . . . .
1.2 Ví dụ minh họa . . . . . . . . .
1.3 Mục tiêu của đề tài . . . . . . .
1.3.1 Mục tiêu . . . . . . . . .
1.3.2 Các giai đoạn thực hiện
1.4 Tổng quan về báo cáo . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.

.
.
.
.
.
.

2 Kiến thức nền tảng
2.1 Chatbot . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Giao thức Websocket . . . . . . . . . . . . . . . . . .
2.3 Intent . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Entity . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Thuật toán Support Vector Machine (SVM) . . . . .
2.6 Thuật Toán K-Nearest Neighbors (KNN) . . . . . . .
2.7 Mơ Hình Transformer . . . . . . . . . . . . . . . . . .
2.7.1 Tổng quan về mơ hình . . . . . . . . . . . . .
2.7.2 Cơ chế Self-Attention . . . . . . . . . . . . . .
2.7.3 Multi-Head Attention . . . . . . . . . . . . . .
2.7.4 Mã hố vị trí (Positional Encoding) . . . . . .
2.8 Mơ Hình Bert . . . . . . . . . . . . . . . . . . . . . .
2.8.1 Tổng quan . . . . . . . . . . . . . . . . . . . .
2.8.2 Kiến trúc . . . . . . . . . . . . . . . . . . . .
2.8.3 Huấn luyện BERT . . . . . . . . . . . . . . .
2.8.3.1 Masked Language Model (MLM) . .
2.8.3.2 Next Sentence Prediction (NSP) . .
2.8.3.3 Phương pháp Fine-tuning BERT . .
2.8.4 RoBERTa . . . . . . . . . . . . . . . . . . . .
2.8.5 PhoBERT . . . . . . . . . . . . . . . . . . . .

2.9 Hệ thống TODS . . . . . . . . . . . . . . . . . . . . .
2.9.1 Khối Natural Language Understanding (NLU)
2.9.2 Khối Dialogue Manager (DM) . . . . . . . . .
2.9.3 Khối Natural Language Generation (NLG) . .

4

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.

9
9
10
10
10
10
11

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

12
12
14
14
15
15
17
17
17
18
19
20
21
21
21
21
21
22
23
24
25

26
27
27
28


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

3 Cơng nghệ sử dụng
3.1 Ngơn ngữ lập trình . . . . . . .
3.1.1 Python . . . . . . . . . .
3.1.2 Javascript . . . . . . . .
3.2 Framework và Library . . . . .
3.2.1 React . . . . . . . . . .
3.2.2 FastAPI . . . . . . . . .
3.2.3 Botkit . . . . . . . . . .
3.3 Công cụ . . . . . . . . . . . . .
3.3.1 Google Colab . . . . . .
3.3.2 MongoDB - Mongo Atlas
3.3.3 Heroku . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.

4 Thiết kế và hiện thực hệ thống
4.1 Tổng quan về kiến trúc và chức năng . . . . . . . . . . .
4.1.1 Định nghĩa các intent, entity cho Chatbot . . . .
4.1.2 Các yêu cầu hệ thống . . . . . . . . . . . . . . . .
4.1.3 Kiến trúc . . . . . . . . . . . . . . . . . . . . . .
4.1.3.1 Natural Language Understanding . . . .
4.1.3.2 Dialogue Manager . . . . . . . . . . . .
4.1.3.3 Natural Language Generation . . . . . .
4.1.4 Các khó khăn . . . . . . . . . . . . . . . . . . . .
4.2 Lưu trữ dữ liệu và truy vấn . . . . . . . . . . . . . . . .
4.2.1 Thu thập dữ liệu . . . . . . . . . . . . . . . . . .
4.2.2 Xây dựng cơ sở dữ liệu của hệ thống . . . . . . .
4.2.3 Xử lí và truy vấn dữ liệu . . . . . . . . . . . . . .
4.3 Huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . .
4.3.1 Mơ hình SVM thứ nhất . . . . . . . . . . . . . .
4.3.2 Mô hình SVM thứ hai . . . . . . . . . . . . . . .
4.3.3 Mô hình Named Entity Recognition . . . . . . . .
4.3.4 Mơ hình KNN tìm kiếm câu hỏi gần nhất với tin
dùng . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.5 Huấn luyện lại mơ hình Chatbot với dữ liệu mới .

4.4 Kết quả hiện thực Chatbot . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .

. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
nhắn của người
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

29
29
29
30
30
30
31

31
32
32
32
33

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

34
34
34
36
37
37
38

38
39
39
39
41
42
45
46
47
49

. 52
. 54
. 54

5 Tổng kết
57
5.1 Các công việc đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Các hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 Mục tiêu phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Tài liệu tham khảo

Luận văn tốt nghiệp - Năm học 2021-2022

58

Trang 5/60


Danh sách hình vẽ

1.1
1.2

Thống kê số ca mắc covid trong tháng 4 năm 2022 . . . . . . . . . . . . . 9
Ví dụ minh hoạ về đoạn hội thoại tư vấn của Chatbot . . . . . . . . . . . 10

2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17

Cách thức hoạt động của một Chatbot . . . . . . . . . . . . . . . . . .
Kiến trúc mơ hình khái qt hóa (Generative model)[11] . . . . . . . .
Kiến trúc mơ hình truy vấn (Retrieval-based model)[11] . . . . . . . . .
Mô tả các siêu phẳng phân tách tập dữ liệu[10] . . . . . . . . . . . . .
Mô tả đường phân chia tốt nhất đối với tập dữ liệu[10] . . . . . . . . .
Thuật toán KNN[9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Kiến trúc Transformer[15] . . . . . . . . . . . . . . . . . . . . . . . . .
Ví dụ về attention trong transformer[16] . . . . . . . . . . . . . . . . .
Mô tả các bước tính ma trận attention[16] . . . . . . . . . . . . . . . .
Positional Encoding trong kiến trúc Transformer[15] . . . . . . . . . . .
Mô tả quá trình add vector thể hiện vị trí vào vector Embedding[13] . .
Kiến trúc Masked LM[3] . . . . . . . . . . . . . . . . . . . . . . . . . .
Mơ tả input cho bài tốn Next Sentence Prediction[3] . . . . . . . . . .
BERT trong nhiều loại bài tốn xử lí ngơn ngữ tự nhiên khác nhau[12]
Trích từ paper của RoBERTa[4] . . . . . . . . . . . . . . . . . . . . . .
Hiệu năng của các mơ hình với tập data NER và NLI[6] . . . . . . . . .
Kiến trúc của hệ thống TODs[5] . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

12
13
13
16
16
17
18
18
19
20
21
22

23
24
25
25
26

3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8

Ngơn ngữ lập trình Python . .
Ngơn ngữ lập trình Javascript
Reactjs . . . . . . . . . . . . .
FastAPI . . . . . . . . . . . .
Botkit . . . . . . . . . . . . .
Google Colab . . . . . . . . .
MongoDB . . . . . . . . . . .
Heroku . . . . . . . . . . . . .

.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

29
30
31
31
32
32
33
33

4.1
4.2
4.3

4.4
4.5
4.6
4.7
4.8
4.9

Kiến trúc tổng thể của Chatbot . . . . . . . . . . . . . . . . . . .
Kiến trúc khối NLU . . . . . . . . . . . . . . . . . . . . . . . . .
Kiến trúc khối Dialogue Policy . . . . . . . . . . . . . . . . . . . .
Kiến trúc khối NLG . . . . . . . . . . . . . . . . . . . . . . . . .
Trang web tư vấn covid: . .
Chi tiết cuộc hội thoại tư vấn covid . . . . . . . . . . . . . . . . .
Dữ liệu phản hồi cho kịch bản tư vấn triệu chứng . . . . . . . . .
Dữ liệu phản hồi cho kịch bản tư vấn thông tin chung . . . . . .
Các siêu tham số tốt nhất sau khi sử dụng RandomizedSearchCV

.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.

37
37
38
39
40
40
41
42
46

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

6

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25

4.26
4.27

Dữ liệu huấn luyện mơ hình thứ nhất . . . . . . . . . . . . . . . .
Kết quả huấn luyện mơ hình thứ nhất . . . . . . . . . . . . . . .
Các siêu tham số tốt nhất sau khi sử dụng RandomizedSearchCV
Dữ liệu huấn luyện mơ hình thứ hai . . . . . . . . . . . . . . . . .
Kết quả huấn luyện mơ hình thứ hai . . . . . . . . . . . . . . . .
Kịch bản chẩn đoán khả năng nhiễm bệnh . . . . . . . . . . . . .
Dữ liệu thu thập được từ VinAI[14] . . . . . . . . . . . . . . . .
Kiến trúc mơ hình phobert cho bài tốn NER . . . . . . . . . . .
Quá trình training theo micro-f1-score . . . . . . . . . . . . . . .
Quá trình training theo Cross-entropy loss . . . . . . . . . . . . .
Kết quả mơ hình . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ví dụ về tập data mẫu . . . . . . . . . . . . . . . . . . . . . . . .
Ví dụ về phản hồi của mơ hình KNN . . . . . . . . . . . . . . . .
Ví dụ về dữ liệu hội thoại được lưu trữ trong cơ sở dữ liệu . . . .
Kịch bản cung cấp thông tin liên hệ . . . . . . . . . . . . . . . . .
Kịch bản cung cấp thông tin số ca nhiễm . . . . . . . . . . . . . .
Kịch bản tư vấn khả năng nhiễm bệnh . . . . . . . . . . . . . . .
Kịch bản cung cấp các thông tin chung . . . . . . . . . . . . . . .

Luận văn tốt nghiệp - Năm học 2021-2022

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

46

47
47
48
48
49
50
50
51
51
52
52
53
54
55
55
56
56

Trang 7/60


Danh sách bảng biểu
1.1

Tổng quan về báo cáo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1
2.2


Các sự kiện WebSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Các phương thức của WebSocket . . . . . . . . . . . . . . . . . . . . . . . 14

8


Chương 1
Giới thiệu
1.1

Đặt vấn đề

Trong hai năm vừa qua Việt Nam hay cụ thể là Thành phố Hồ Chí Minh đang đối
mặt với tình trạng dịch bệnh Covid hồnh hành. Số ca nhiễm liên tục tăng cao dẫn đến
quá tải, thiếu nhân sự y tế hỗ trợ tư vấn điều trị cho các bệnh nhân. Ngồi ra, thơng tin
về các chủng biến thể, các loại thuốc, vắc xin, chính sách cập nhật thay đổi liên tục gây
ra hoang mang đối với cả người dân và chính quyền trong việc chống dịch cũng như tiếp
cận, chọn lọc các thông tin liên quan về đại dịch.

Hình 1.1: Thống kê số ca mắc covid trong tháng 4 năm 2022

Từ những vấn đề cấp bách ở trên, chúng tôi muốn xây dựng một hệ thống hội thoại
tự động cung cấp các thơng tin chính thống, đồng thời có khả năng chẩn đốn cơ bản về
khả năng nhiễm bệnh dựa vào một số thông tin của bệnh nhân. Qua đó mong muốn có
thể giúp đỡ, giảm tải áp lực lên các đội ngũ y bác sĩ tuyến đầu chống dịch và là nguồn
cung cấp thông tin nhanh chóng, chính xác và kịp thời đến người dân.

9



Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

1.2

Ví dụ minh họa

Hình 1.2: Ví dụ minh hoạ về đoạn hội thoại tư vấn của Chatbot

Hình trên là ví dụ về một đoạn hội thoại giữa Chatbot và người dùng. Khi người dùng
đã truyền đạt nhu cầu của mình, Chatbot sẽ phân tích nhu cầu đó và trả về các kết quả
có được từ cơ sở dữ liệu là các thơng tin chính thống đã được kiểm chứng từ các ban
ngành y tế có chuyên môn.

1.3
1.3.1

Mục tiêu của đề tài
Mục tiêu

Mục tiêu của đề tài là xây dựng một hệ thống hội thoại tự động (Chatbot) trong lĩnh
vực tư vấn cho bệnh Covid có khả năng giao tiếp với người dùng một cách đơn giản và
phân tích được nhu cầu người dùng để trả về kết quả phù hợp từ cơ sở dữ liệu đồng thời
có thể mở rộng cho các loại bệnh khác trong tương lai.
Ngồi ra, Chatbot có thể được triển khai vào thực tế góp phần giảm bớt sự quá tải
cho hệ thống các y bác sĩ tuyến đầu, qua đó đóng góp phần nào cơng sức vào cơng cuộc
phịng chống đại dịch Covid-19.

1.3.2


Các giai đoạn thực hiện

Với các mục tiêu trên đề tài được chia làm 5 giai đoạn chính:

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 10/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
• Giai đoạn 1: Thu thập và gắn nhãn dữ liệu. Đồng thời thu thập lượng thơng tin
chính thống xoay quanh đại dịch.
• Giai đoạn 2: Thiết kế cấu trúc dữ liệu, cấu trúc hệ thống.
• Giai đoạn 3: Huấn luyện mơ hình Intent Classification và hiện thực mơ-đun Information Extraction.
• Giai đoạn 4: Hồn thiện Chatbot với các chức năng ban đầu và tiến hành deploy
lên host(heroku) để khảo sát và thử nghiệm hệ thống.
• Giai đoạn 5: Từ dữ liệu thực tế thu thập được tiến hành đánh giá và cải thiện
Chatbot dựa trên dữ liệu thực tế.

1.4

Tổng quan về báo cáo

Chương
1
2
3
4

5

Nội dung
Giới thiệu tổng quan về nội dung đề tài, các giai đoạn thực hiện.
Trình bày các kiến thức nền tảng có được áp dụng vào đề tài như intent,
entity, hệ thống TODs, các kiến trúc học máy và học sâu ...
Trình bày về các công nghệ được áp dụng trong đề tài.
Trình bày tổng quan về kiến trúc, chức năng và chi tiết hiện thực
hệ thống của đề tài.
Tổng kết, đánh giá kết quả của đề tài và những hạn chế còn gặp phải.
Bảng 1.1: Tổng quan về báo cáo

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 11/60


Chương 2
Kiến thức nền tảng
2.1

Chatbot

Hình 2.1: Cách thức hoạt động của một Chatbot

Chatbot là cơng cụ có khả năng tương tác với người dùng qua tin nhắn theo thời gian
thực, 24/7/365. Do đó, người dùng sẽ khơng phải chờ đợi lâu để nhận được sự hỗ trợ
từ con người. Chatbot hỗ trợ con người thực hiện tự động các công việc tốn nhiều thời
gian nhất, giúp các doanh nghiệp tiết kiệm được khoản chi phí lớn cho nhân sự. Đội ngũ
nhân viên được tối ưu nhiệm vụ, tập trung xử lí các cơng việc chun sâu ở mức độ khó hơn.

Chatbot đã được phát minh ra từ hàng chục năm trước. Tuy nhiên, Chatbot thường
chỉ thực hiện được các nhiệm vụ với câu hỏi và câu trả lời chuẩn theo mẫu đã được
chuẩn bị trước. Do đó, gây ra những hạn chế trong việc giao tiếp với người dùng, tạo
cảm giác nhàm nhán và mất thiện cảm.
Khoảng 5 năm trở lại đây, Trí tuệ nhân tạo phát triển mạnh mẽ. Chatbot được trang
bị thêm cơng nghệ Trí tuệ nhân tạo (AI), cơng nghệ Học máy, Học sâu giúp Chatbot có
12


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

khả năng tự học từ những cuộc trò chuyện thực tế với người dùng để trở nên thông minh
hơn theo thời gian. Người dùng không phải nhập những câu rập khn máy móc để giao
tiếp với Chatbot mà nó có thể hồn tồn có thể diễn tả ý định theo cách của riêng mình.
Dưới đây là 2 loại cấu trúc Chatbot truyền thống và Chatbot hiện đại:

Hình 2.2: Kiến trúc mơ hình khái qt hóa (Generative model)[11]

Phương pháp đầu sử dụng mơ hình học sâu để sinh ra câu trả lời thường rất khó để
xây dựng và huấn luyện. Thơng thường cần phải có tập dữ liệu lớn gồm hàng triệu ví dụ
để huấn luyện mơ hình học sâu có thể tạo ra đoạn hội thoại có chất lượng tạm ổn, tuy
nhiên cũng khơng thể biết chắc được là mơ hình sẽ sinh ra câu trả lời gì. Phương pháp
này là tương lai của Chatbot vì nó sẽ làm cho Chatbot thơng minh hơn.

Hình 2.3: Kiến trúc mơ hình truy vấn (Retrieval-based model)[11]

Mơ hình thứ hai dễ xây dựng hơn và đáng tin cậy hơn. Mặc dù khơng thể có 100%
độ chính xác của các câu trả lời, nhưng chúng ta có thể biết các loại câu trả lời có thể
có và đảm bảo rằng Chatbot không đưa ra những phản hồi không phù hợp hoặc khơng

chính xác. Ở mơ hình này thì Chatbot sẽ dựa trên những tin nhắn của người dùng và
ngữ cảnh lúc đó của cuộc hội thoại để đưa ra những câu trả lời từ danh sách các câu trả
lời đã được định nghĩa sẵn.
Để Chatbot có thể lựa chọn được câu trả lời phù hợp thì ý định (intent) trong tin
nhắn của người dùng cần được xác định. Phương pháp cổ điển trong việc xác định ý định
Luận văn tốt nghiệp - Năm học 2021-2022

Trang 13/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

của người dùng là sử dụng các phương pháp so trùng mẫu. Tuy nhiên phương pháp này
không thể giải quyết được hết tất cả các trường hợp, vì trong ngơn ngữ tự nhiên, một
ý định có thể được diễn đạt bằng nhiều cách khác nhau. Do vậy các phương pháp học
máy/học sâu nhằm phát hiện ý định của người dùng được ưa chuộng hơn.

2.2

Giao thức Websocket

WebSocket là một giao thức giúp truyền dữ liệu hai chiều giữa server-client qua một
kết nối TCP duy nhất. Hơn nữa, webSocket là một giao thức được thiết kế để truyền
dữ liệu bằng cách sử dụng cổng 80 và cổng 443 và nó là một phần của HTML5. Vì vậy,
webSockets có thể hoạt động trên các cổng web tiêu chuẩn, nên khơng có rắc rối về
việc mở cổng cho các ứng dụng, lo lắng về việc bị chặn bởi các tường lửa hay proxy server.
Tất cả dữ liệu giao tiếp giữa client-server sẽ được gửi trực tiếp qua một kết nối cố
định làm cho thông tin được gửi đi nhanh chóng và liên tục khi cần thiết. WebSocket
làm giảm độ trễ bởi vì một khi kết nối WebSocket được thành lập, server không cần phải

chờ đợi cho một yêu cầu từ client.
Các sự kiện WebSocket:
Sự kiện

Hàm xử lý

open

onopen

message
error

onmessage
onerror

close

onclose

Mô tả
Khi một WebSocket chuyển sang trạng thái mở, “onopen”
sẽ được gọi.
Khi WebSocket nhận dữ liệu từ Server.
Có bất kỳ lỗi nào trong giao tiếp.
Kết nối được đóng. Những sự kiện được truyền cho “onclose”
có ba tham số là “code”, “reason”, và “wasClean”.
Bảng 2.1: Các sự kiện WebSocket

Các phương thức của WebSocket:

Phương thức
send()
close()

Mô tả
send(data) gửi dữ liệu tới server. Message data là string, ArrayBuffer
và blob.
Đóng kết nối đang tồn tại.
Bảng 2.2: Các phương thức của WebSocket

Ưu điểm WebSocket là nó cung cấp giao thức giao tiếp hai chiều mạnh mẽ. Có độ
trễ thấp và dễ xử lý lỗi. Websocket thường được sử dụng cho những trường hợp yêu cầu
real time như chat, hiển thị biểu đồ hay thơng tin chứng khốn. Do đó chúng tôi sử dụng
websocket để giao tiếp giữa frontend và backend trong hệ thống của chúng tôi.

2.3

Intent

Khi tham gia tư vấn, người dùng ln có các nhu cầu tư vấn nhất định (gọi
là intent hay ý định người dùng). Để đảm bảo hệ thống Chatbot hoạt động tốt và

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 14/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính


làm hài lịng người dùng, việc phân loại cũng như hiểu các ý định này là vơ cùng cần thiết.
Với ví dụ “Tơi muốn biết về các triệu chứng thường gặp của Covid”, thì ý định của
người dùng ở đây là mong muốn biết được các triệu chứng gặp phải nếu nhiễm bệnh. Ý
định đều có thể đặt tên, thường là một động từ kết hợp với một danh từ, chẳng hạn:
“request_symptom”.
Để làm nhiệm vụ phân loại intent, cần một mơ hình phân loại ý định người dùng
(Intent classification). Dữ liệu là tập hợp các đoạn text (trong trường hợp này là các tin
nhắn của người dùng) đã được gán sẵn nhãn chủ đề.

2.4

Entity

Entity là các thực thể bổ nghĩa cho một ý định. Vẫn ví dụ "tơi muốn biết về số ca
nhiễm hiện nay ở Tp.HCM”, thì các thực thể bổ nghĩa là “Tp.HCM”. Các thực thể cũng
đều có thể được đặt tên, ví dụ: “dateTime” hoặc “location”. Các thực thể này đôi khi
được gọi là các “Slot”, có thể hình dung đó là các khe thông tin.
Trong xử lý ngôn ngữ tự nhiên, để nhận ra một thực thể (Tên người, tên địa danh,
ngày tháng, con số,. . . ) trong một văn bản, người ta sử dụng một kỹ thuật học máy có
tên gọi: Named Entity Recognition (NER) hay cịn gọi là Entity Extraction (Nhận dạng
thực thể có tên hay trích xuất thực thể).

2.5

Thuật toán Support Vector Machine (SVM)

SVM (Support Vector Machine) là một thuật tốn học máy có giám sát được sử dụng
rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi qui (Regression).
Ý tưởng của SVM là tìm một siêu phẳng (hyperlane) để phân tách các điểm dữ liệu.
Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa một

loại dữ liệu.
Để dễ hình dung hơn, chúng ta vẽ đồ thị dữ liệu là các điểm trong n chiều ( ở đây n là
số lượng các feature) với giá trị của mỗi tính năng sẽ là một phần liên kết. Sau đó chúng
ta thực hiện tìm "đường biên giới" phân chia các lớp. Đường biên giới - nó chỉ hiểu đơn
giản là 1 đường thằng có thể phân chia các lớp ra thành hai phần riêng biệt.

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 15/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Hình 2.4: Mơ tả các siêu phẳng phân tách tập dữ liệu[10]

Như hình 2.4 thì ta có thể thấy có nhiều hyperlane có thể tìm thấy trong mặt phẳng
(đường đen đậm nét liền và đường xanh đậm nét đứt), do đó ta cần tìm một hyperlane
sao cho phân chia tốt nhất tập dữ liệu trên. Hyperlane đó phải thỏa mãn: (i) khoảng
cách từ điểm gần nhất của mỗi class (các điểm được khoanh tròn) tới đường phân chia
là như nhau và (ii) khoảng cách từ điểm gần nhất của mỗi class tới đường phân chia
(margin) phải là lớn nhất. Từ đó ta có thể nhận thấy đường tô đậm màu đen là đường
phân chia tốt nhất cho tập dữ liệu này (Hình 2.5).

Hình 2.5: Mơ tả đường phân chia tốt nhất đối với tập dữ liệu[10]

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 16/60



Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

2.6

Thuật Tốn K-Nearest Neighbors (KNN)

Hình 2.6: Thuật toán KNN[9]

K-nearest neighbor là một trong những thuật tốn học có giám sát đơn giản nhất
(mà hiệu quả trong một vài trường hợp) trong Machine Learning. Khi huấn luyện, thuật
tốn này khơng học một điều gì từ dữ liệu huấn luyện nên thuật toán này được xếp vào
loại lazy learning, mọi tính tốn được thực hiện khi nó cần dự đoán kết quả của dữ liệu
mới. K-nearest neighbor có thể áp dụng được vào cả hai loại của bài toán Học giám sát
là bài toán Phân loại và Hồi quy. KNN cịn được gọi là một thuật tốn Instance-based
hay Memory-based learning.
Với KNN, trong bài toán phân loại, nhãn của một điểm dữ liệu mới được suy ra trực
tiếp từ K điểm dữ liệu gần nhất trong tập dữ liệu huấn luyện trước đó. Nhãn của một
điểm dữ liệu thử nghiệm có thể được quyết định bằng major voting (bầu chọn theo số
phiếu) giữa các điểm gần nhất, hoặc nó có thể được suy ra bằng cách đánh trọng số khác
nhau cho mỗi trong các điểm gần nhất đó rồi suy ra nhãn tương ứng.
Ví dụ như trong hình 2.6, với K=3 thì nhãn của điểm cần tìm sẽ là B bởi vì trong 3
điểm gần nhất thì B chiếm tới 2. Tương tự như vậy nếu K=7 thì nhãn sẽ là A.

2.7
2.7.1

Mơ Hình Transformer
Tổng quan về mơ hình


Kiến trúc của Transformer[15] được tạo nên bằng các lớp self-attention và mạng truyền
thẳng xếp chồng lên nhau, được kết nối tạo thành các liên kết đầy đủ (fully connected
layers) để tạo nên 6 khối encoder và decoder mỗi loại. Hình 2.7 mơ tả kiến trúc của mơ
hình Transformer, với khối bên trái là encoder và bên phải là decoder.

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 17/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Hình 2.7: Kiến trúc Transformer[15]

2.7.2

Cơ chế Self-Attention

Transformer sử dụng cơ chế Self-Attention thay vì cho cơ chế hồi quy, từ đó mơ hình
hiểu được ngữ cảnh của câu đang xét, sự liên quan của các từ trong câu với nhau. Ví dụ
như “đá” trong câu “Tơi đá quả bóng.” sẽ khác với “đá” khi ở trong câu “Tơi uống nước
đá.”.
Dưới đây là một số ví dụ về độ tương quan của các từ trong các attention khác nhau:

Hình 2.8: Ví dụ về attention trong transformer[16]

Cách tính Self-Attention như sau:Self-Attention nhận đầu vào gồm các ma trận


Luận văn tốt nghiệp - Năm học 2021-2022

Trang 18/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

query(q), key (k) của chiều dk và value(v). Từng giá trị trả ra sẽ được tính bằng cách
nhân tích vơ hướng của Q với K, sau đó chia từng giá trị cho căn bậc hai của dk và áp
dụng hàm softmax cho giá trị vừa có được trước khi nhân với ma trận trọng số V. Cơng
thức:
T

)

V
Attention(Q, K, V) = sof tmax( QK
dk

Trong đó:
• Q: ma trận Query.
• K: ma trận Key.
• K T : ma trận hốn vị của Key.
• V: ma trận Value.
• dk : số chiều của vector k.

Hình 2.9: Mơ tả các bước tính ma trận attention[16]

2.7.3


Multi-Head Attention

Multi-Head Attention là sự gộp lại của nhiều cơ chế Self-Attention . Multi-head attention giúp mơ hình nhận biết được thơng tin từ nhiều không gian khác nhau tại từng
thời điểm khác nhau. Các ma trận attention bên trên sẽ nhân với một ma trận W0 để trả
về ma trận output có cùng kích thước với ma trận input. Công thức:
M ultiHead = concat(head1 , head2 , head3 , ..)W0
Trong đó: headi là output của ma trận attention.

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 19/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

2.7.4

Mã hố vị trí (Positional Encoding)

Hình 2.10: Positional Encoding trong kiến trúc Transformer[15]

Trong xử lý ngơn ngữ tự nhiên, vị trí các giá trị trong chuỗi có ý nghĩa quan trọng,
giúp xác định được ngữ cảnh của từ trong chuỗi. Transformer, do không sử dụng kiến
trúc hồi quy để xử lý tuần tự các ký tự trong câu, mà xử lý cả một chuỗi dữ liệu cùng
lúc, nên mơ hình cần một phương pháp giúp xác định được vị trí của các từ trong chuỗi.
Để xác định được vị trí của các từ trong câu, mơ hình thêm vào giá trị embedding một
vector giúp xác định vị trí.
Cơng thức tính giá trị positional encoding của vector vị trí như sau:

P Epos,2i = sin(pos/100002i/dmodel )
P Epos,2i+1 = cos(pos/100002i/dmodel )
Trong đó:
• pos: là vị trí của từ trong chuỗi.
• i: là vị trí của chiều trong khơng gian embedding.

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 20/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Hình 2.11: Mơ tả q trình add vector thể hiện vị trí vào vector Embedding[13]

2.8
2.8.1

Mơ Hình Bert
Tổng quan

BERT (Bidirectional Encoder Representations from Transformers)[2] là mơ hình về
lĩnh vực xử lý ngơn ngữ tự nhiên, được huấn luyện sẵn (pre-trained model) dựa trên cấu
trúc của Transformers,tập dữ liệu được sử dụng cho quá trình huấn luyện lớn và tổng
qt nên hầu như mơ hình có thể hiểu và có thể sử dụng trong nhiều lĩnh vực.

2.8.2

Kiến trúc


BERT có kiến trúc bao gồm nhiều lớp Transformer chồng lên nhau. Gọi L là số lớp
Transformer, H là các lớp ẩn (hidden), A là số heads Attention,tham số của hai phiên
bản BERT là BERTbase và BERTlarge như sau:
-BERTbase : L=12, H=768, A=12, Tổng số tham số (Total Parameters)=110M
-BERTlarge : L=24, H=1024, A=16, Tổng số tham số (Total Parameters)=340M

2.8.3

Huấn luyện BERT

Để học được các tham số, vector biểu diễn cho từng từ mà hiểu được các ngữ cảnh
xung quanh từ đó, mơ hình BERT được huấn luyện thơng qua hay bài toán là dự đoán
từ bị che mất (Mask Language Model) dựa vào các từ lân cận và dự đoán xem hai câu
có phải là liên tiếp nhau hay khơng (Next Sentence Prediction). Dữ liệu huấn luyện là
Wikipedia bằng Tiếng Anh (2500 triệu từ) và BookCorpus (500 triệu từ) với tổng cộng
khoảng 3,3 tỷ từ. BERT được huấn luyện theo phương pháp học không giám sát với hai
tác vụ là che từ bằng lớp mặt nạ (Mask Language Model) và dự đoán câu tiếp theo (Next
Sentence Prediction).
2.8.3.1

Masked Language Model (MLM)

Với MLM thì chúng ta sẽ tiến hành che một số từ từ câu đầu vào và mơ hình sẽ tiến
hành dự đốn ra các từ được che đó dựa vào những từ xung quanh nó.
Trước khi đưa vào BERT, thì 15% số từ trong chuỗi được thay thế bởi token [MASK]
và mơ hình sẽ dự đốn từ được thay thế bởi [MASK] với context là các từ không bị thay
thế bởi [MASK]. Mask LM gồm các bước xử lý sau :
• Thêm một classification layer với input là output của Encoder.


Luận văn tốt nghiệp - Năm học 2021-2022

Trang 21/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
• Nhân các vector đầu ra với ma trận embedding để đưa chúng về không gian từ vựng
(vocabulary dimensional).
• Tính tốn xác suất của mỗi từ trong tập từ vựng sử dụng hàm softmax.
(Trong thực tế, 15% khơng phải là cố định mà có thể thay đổi theo mục đích từng bài
tốn.)

Hình 2.12: Kiến trúc Masked LM[3]

2.8.3.2

Next Sentence Prediction (NSP)

Dùng MLM có thể mã hố ngữ cảnh của từ theo hai chiều, nhưng vẫn không thể biểu
diễn được mối liên hệ giữa các câu một cách tường minh,nên mơ hình đã được huấn luyện
với tác vụ dự đoán câu tiếp theo, sử dụng một cặp câu là dữ liệu đầu vào và dự đoán câu
thứ 2 là câu tiếp theo của câu thứ 1 hay khơng. Trong q trình huấn luyện, 50% lượng
dữ liệu đầu vào là cặp câu trong đó câu thứ 2 thực sự là câu tiếp theo của câu thứ 1, 50%
còn lại thì câu thứ 2 được chọn ngẫu nhiên từ tập dữ liệu. Một số nguyên tắc được đưa
ra khi xử lý dữ liệu như sau:
• Chèn token [CLS] vào trước câu đầu tiên và [SEP] vào cuối mỗi câu.
• Các token trong từng câu được đánh dấu là A hoặc B.
• Chèn thêm vector embedding biểu diễn vị trí của token trong câu (chi tiết về vector
embedding này có thể tìm thấy trong bài báo về Transformer[15]).


Luận văn tốt nghiệp - Năm học 2021-2022

Trang 22/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Hình 2.13: Mơ tả input cho bài toán Next Sentence Prediction[3]

Các bước xử lý trong Next Sentence Prediction:
• Tồn bộ câu đầu vào được đưa vào Transformer.
• Chuyển vector output của [CLS] về kích thước 2x1 bằng một classification layer.
• Tính tốn xác suất IsNextSequence bằng softmax.
2.8.3.3

Phương pháp Fine-tuning BERT

Với mỗi tác vụ, cần thay đổi đầu vào của tập dữ liệu huấn luyện riêng cho phù hợp
với mơ hình BERT, đầu ra của mơ hình mới sẽ cần thêm một lớp đầu ra (output layer)
tương ứng với tác vụ mong muốn, sau đó tiến hành huấn luyện và tinh chỉnh cho mơ
hình mới với bộ trọng số ban đầu là bộ trọng số được huấn luyện trước của mơ hình BERT:
Đối với Classification, cần thêm vào một Classification Layer với input là output của
Transformer cho token [CLS].
Đối với bài toán Question Answering, model nhận dữ liệu input là đoạn văn bản cùng
câu hỏi và được huấn luyện để đánh nhãn cho câu trả lời trong đoạn văn bản đó.
Đối với bài tốn Named Entity Recognition (NER), model được huấn luyện để dự đoán
nhãn cho mỗi token (tên người, tổ chức, địa danh,...).


Luận văn tốt nghiệp - Năm học 2021-2022

Trang 23/60


Trường Đại Học Bách Khoa TP. Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Hình 2.14: BERT trong nhiều loại bài tốn xử lí ngơn ngữ tự nhiên khác nhau[12]

2.8.4

RoBERTa

RoBERTa[4] được giới thiệu bởi Facebook là một phiên bản được huấn luyện lại của
BERT với một phương pháp huấn luyện tốt hơn với dữ liệu được tăng gấp 10 lần.
Để tăng cường q trình huấn luyện, RoBERTa khơng sử dụng cơ chế dự đoán câu
kế tiếp (NSP) từ BERT mà sử dụng kỹ thuật mask động (dynamic masking), theo đó
các token mặt nạ sẽ bị thay đổi trong quá trình huấn luyện. Sử dụng kích thước batch
lớn hơn cho thấy hiệu quả tốt hơn khi huấn luyện.
Dynamic masking: Trong kiến trúc BERT, việc tạo mask được thực hiện một lần
trong quá trình tiền xử lý dữ liệu, dẫn đến một mặt nạ tĩnh duy nhất. Để tránh sử
dụng mask tĩnh duy nhất, dữ liệu huấn luyện được sao chép và tạo mask 10 lần, mỗi
lần với một chiến lược mask khác nhau trên 40 epoch, do đó có 4 epoch với cùng một mask.
Một điều quan trọng nữa, RoBERTa sử dụng 160GB văn bản để huấn luyện. Trong
đó, 16GB là BookCorpus và Wikipedia được sử dụng trong huấn luyện BERT. Phần còn
lại bao gồm CommonCrawl News dataset (63 triệu bản tin, 76 GB), ngữ liệu văn bản
Web (38 GB) và Common Crawl Stories (31 GB). Mơ hình này được huấn luyện với
GPU của Tesala 1024 V100 trong một ngày.
Kết quả là, RoBERTa vượt trội hơn cả BERT trên dữ liệu đánh giá GLUE[17].

Luận văn tốt nghiệp - Năm học 2021-2022

Trang 24/60


×