Phác họa bài post:
Đề dẫn.
ⓐ Natural
Language Understanding.
ⓑ Mô hình NLU.
ⓒ Benchmarks
(GLUE, SuperGLUE).
ⓓ Follow-up.
ⓔ Suy ngẫm chậm.
-
Để giúp anh/chị
quyết định có đọc tiếp hay không, tôi xin phép cung cấp các thông tin liên quan
đến bài post này như sau:
·
Chủ
đề: Machine Learning.
·
Tính
thời sự: Tháng 12/2021.
·
Thời
gian đọc: Đọc hết: 15
phút, đọc ý chính: 7 phút.
~
Hôm nay xin
phép anh/chị chúng ta đàm luận về chủ đề “máy hiểu ngôn ngữ tự nhiên”. Chủ đề
này có vẻ quá tham vọng, đúng không ạ? Ngay như bản thân chúng ta, mấy ai dám tự
tin nói rằng mình hiểu ngôn ngữ tiếng Việt. Tất nhiên, “hiểu ngôn ngữ” có mức độ
của nó. Các nhà văn, nhà văn hóa họ hiểu ngôn ngữ một cách sâu sắc. Người thường
như tôi thì mức độ hiểu ngôn ngữ hạn chế hơn nhiều. Như vậy, cụm từ “hiểu ngôn
ngữ” hàm chứa mức độ: hiểu đến mức nào. Đến cuối bài đàm luận này, anh/chị sẽ
thấy là trong một số tác vụ, con người chưa hẳn là hiểu ngôn ngữ hơn máy đâu!
-
Đề dẫn.
Nhưng trước hết,
dựa trên cơ sở nào để máy có thể hiểu được ngôn ngữ? Trong một lần nhàn đàm trước,
tôi có đề cập đến tính chất autoregressive (tự động tiếp diễn) của dữ liệu
như văn bản, phát âm, nét chữ viết tay. Con người suy luận dựa trên hiểu biết về
quá khứ. Khi anh/chị đọc bài post này, anh/chị hiểu từng từ dựa trên sự hiểu biết
của anh/chị về những từ trước đó. Rõ ràng là như vậy. Anh/chị không vứt bỏ mọi
thứ và bắt đầu suy nghĩ lại từ đầu. Dòng suy nghĩ của anh/chị có tính phát sinh
liên tục: cái sau dựa vào chuỗi của những cái trước đó. Để hiểu từ đang đọc, bằng
một cách nào đó, chúng ta “liên kết” với các từ đứng đằng trước, thậm chí là
các từ đứng ở đầu bài post. Nói một cách khác, dữ liệu là chuỗi mà phần tử thứ n+1
là một hàm (xác suất) của n phần tử trước đó: xn+1 = FP(x1,
x2, …, xn) – trong đó FP(.) là hàm xác suất xuất
hiện phần tử xn+1 từ chuỗi x1, x2, …, xn.
Nếu bằng một cách nào đó, máy có thể lưu giữ một số lượng cực lớn các quy tắc
suy luận như trên, thì chúng ta có thể coi như “máy hiểu” các văn bản mà nó đọc.
-
⧛
ⓐ Natural
Language Understanding
Vào tháng
6/2018, OpenAI đăng bài báo
về một mô hình liên quan đến NLU (Natural Language Understanding). Hướng
tiếp cận của họ vào thời điểm đó được cho là khá mới mẻ và khác biệt.
Hệ thống của họ
hoạt động theo 2 giai đoạn. Đầu tiên mô hình được huấn luyện không giám sát (unsupervised)
với tập dữ liệu cực lớn – dữ liệu Autoregressive không dán nhãn. Sau đó,
họ điều chỉnh mô hình theo từng tác vụ (Task) dựa vào tập dữ liệu có dán
nhãn:
·
Giai
đoạn 1 được đặt tên là Generative Pre-Training. Dữ liệu đầu vào của giai
đoạn này có tính chất Autoregressive. Kỳ vọng của họ là, với tập dữ liệu
khổng lồ, mô hình có thể “nắm bắt” gần hết các quy tắc suy diễn!
·
Giai
đoạn 2 có tên là Fine-tuning, tinh chỉnh các tham số đã được tạo ra ở giai
đoạn 1. Dữ liệu của giai đoạn 2 là dữ liệu có dán nhãn. Logic của vấn đề là ở
chỗ: sau giai đoạn 1, mô hình về cơ bản đã nắm bắt các quy tắc suy diễn tổng
quát; ở giai đoạn 2, mô hình chỉ cần chỉnh các hiểu biết tổng quát đó “nắn
theo” các quy tắc suy diễn cục bộ của tác vụ là được.
Mô hình theo
quy tắc Pre-training – Fine-tuning cho kết quả tốt hơn mô hình
chuyên biệt cho từng tác vụ. Phát hiện này gây ngạc nhiên thú vị cho cộng đồng Machine
Learning.
Một điểm khác,
xin đàm luận cùng anh/chị: dữ liệu dán nhãn và không dán nhãn. Chúng ta chứng
kiến nhiều mô hình mạng nơ-ron thành công với dữ liệu dán nhãn. Điển hình về loại
mô hình này: dịch máy (Neural Machine Translation), nhận dạng giọng nói
(Speech Recognition), thị giác máy tính (Computer Vision). Tuy
nhiên, việc tổ chức dán nhãn thường dày công và cần nhiều nguồn lực, nhiều lúc
là không khả thi khi số lượng nhãn quá lớn.
Chúng ta cũng biết
rằng, trong NLP (Natural Language Processing), nguồn dữ liệu ngôn ngữ có
rất nhiều và đa dạng: tập hợp các tác phẩm văn học, lịch sử, báo chí, tạp chí,
blog, … Đặc biệt, nguồn ngữ liệu trực tuyến (online) nhiều “vô kể”, lại
phát sinh liên tục không ngừng. Nguồn này do người dùng Internet post lên mạng.
Nguồn dữ liệu ngôn ngữ này, tuyệt đại đa số, là không dán nhãn. Vì vậy, vào khoảng
thời gian năm 2018, cộng đồng Machine Learning “đổ xô” vào nghiên cứu
các mô hình không giám sát, sử dụng dữ liệu ngôn ngữ không dán nhãn.
-
⧛
ⓑ Mô
hình NLU
Tiếp theo, tôi
xin phép lược điểm một số mô hình NLU (Natural Language Understanding)
theo cách tiếp cận 2 giai đoạn: Pre-training với tập dữ liệu văn bản
không dán nhãn và Fine-tuning với dữ liệu dán nhãn. Khi theo dõi diễn tiến
của cộng đồng nghiên cứu, chúng ta thấy lĩnh vực này có sự tham gia của hầu hết
các đại gia công nghệ: OpenAI, Google, Facebook, Microsoft, NVIDIA, IBM, Baidu,
Huawei, Alibaba, Infosys, Tencent, … Thông thường, các công ty họ có mô hình
NLU của riêng họ. Tuy nhiên, theo quan sát của cá nhân tôi, thì 2 mô hình GPT
(của OpenAI) và BERT (của Google) có tính đột phá và là mô hình mở đường cho
các mô hình khác. Vì vậy, mời anh/chị tham khảo chi tiết 2 mô hình này.
① GPT (Generative Pre-trained Transformer)-OpenAI.
Đầu tiên chúng
ta cùng bàn đến dòng GPT của OpenAI. Tôi dùng từ “dòng GPT” vì GPT (đến thời điểm
của bài post này) có 3 phiên bản: GPT-1, GPT-2 và GPT-3. Có thể diễn đạt một
cách cô đọng thuật toán của dòng GPT: đoán từ (word) tiếp theo của đoạn
văn bản trước đó gồm n từ: xn+1 = FP(x1, x2,
…, xn).
·
Mô
hình nền. Thông thường,
với dữ liệu sắp xếp theo chuỗi thì người ta hay nghĩ đến mạng RNN (hoặc LSTM –
là biến thể của RNN). Tuy nhiên, đó chỉ là cách tiếp cận trước năm 2017. Kể từ
khi mô hình Transformer ra đời (tháng 6/2017), cách tiếp cận
trước đây theo RNN hầu hết được thay thế bằng Transformer. Vì sao vậy?
Cái cơ bản nhất: RNN chậm. Trong RNN, dữ liệu đầu vào/đầu ra được nhập/xuất một
cách tuần tự từ 1 đến n và mô hình RNN phải cần đến n nhịp để thực thi chuỗi n
phần tử. Mô hình Transformer khắc phục được nhược điểm này của RNN. Trong
Transformer, toàn bộ n phần tử của chuỗi được xử lý đồng thời. Có thể
anh/chị sẽ đặt câu hỏi: thế thứ tự các phần tử (x1, x2,
…, xn) có được lưu giữ đúng không? Câu trả lời là: Có, Transformer
lưu giữ toàn bộ các phần tử theo đúng thứ tự của chúng. Bằng cách nào? Trả lời:
Transformer mã hóa vị trí toàn bộ n phần tử. Một đặc tính nổi bật, hơn hẳn
RNN của Transformer là mô hình này cho phép tính toán song song. Vì vậy,
Transformer tận dụng được phần cứng của hệ thống có nhiều GPU.
-
Thế GPT sử dụng Transformer như thế nào? Mô hình Transformer có 2
phần là phần mã hóa (Transformer Encoder) và phần giải mã (Transformer
Decoder). GPT chỉ sử dụng phần giải mã (Transformer Decoder).
-
·
Các
phiên bản. Dòng GPT có
3 phiên bản: GPT-1, GPT-2 và GPT-3. Để tiện so sánh, đối với mỗi phiên bản, tôi
sẽ tóm lược ý tưởng chính, tập mẫu dữ liệu mà họ dùng để huấn luyện,
số tham số của mô hình và chất lượng nổi bật của mô hình đó.
o
GPT-1
(tháng 6/2018).
💡
Ý
tưởng chính của phiên bản
này là huấn luyện dữ liệu không dán nhãn (văn bản) cho Pre-training và
huấn luyện tinh chỉnh có dán nhãn (Fine-tuning) đối với tập mẫu dữ liệu
của từng tác vụ cụ thể.
▓ Tập
mẫu dữ liệu cho Pre-training
là kho ngữ liệu BooksCorpus gồm 7,000 cuốn sách chưa xuất bản.
Σ Số tham số
của mô hình: 117 triệu.
✔ Chất
lượng nổi bật: Trong số
12 tác vụ cụ thể mà họ thử nghiệm thì GPT-1 đạt được 9 kết quả tốt hơn các mô
hình khác với cùng tác vụ. Mô hình này chứng minh rằng cách tiếp cận Pre-training
với dữ liệu văn bản (không dán nhãn) cho kết quả rất hứa hẹn, mở đường cho các
mô hình khác tiếp cận theo cùng phương thức nhưng với số tham số lớn hơn nhiều.
-
o
GPT-2
(tháng 2/2019).
💡
GPT-2
thừa kế ý tưởng của GPT-1. Nghĩa là: Pre-training huấn luyện dữ liệu
không dán nhãn, còn fine-tuning huấn luyện dữ liệu có dán nhãn. Tuy
nhiên, ở giai đoạn Pre-training, GPT-2 đưa vào ý tưởng mới: Task
Conditioning (tạm dịch là Chỉ định tác vụ). Theo ý kiến cá nhân tôi,
đây là một ý tưởng đột phá.
-
Task Conditioning là gì vậy? Bình thường, chúng ta có thể xem mô hình
ngôn ngữ như hàm xác suất P(Output | Input). Nghĩa là đầu ra (Output)
được tính toán (một cách xác suất) của đầu vào (Input). Trong GPT-2, mô
hình ngôn ngữ được chuyển thành P(Output | Input, Task).
Nghĩa là cùng một đầu vào (Input), tùy theo tác vụ (Task), đầu ra
(Output) sẽ khác nhau. Theo đó, khi dung lượng tập dữ liệu không dán
nhãn đủ phong phú thì một cách vô tình mô hình đã “lồng” dữ liệu dán nhãn ở giai
đoạn Pre-training. Một vài ví dụ về mẫu huấn luyện Task Conditioning:
* Huấn luyện dịch máy (Machine Translation): đưa vào chuỗi văn bản theo
format như sau:
[Dịch tiếng Anh ra tiếng Pháp, Câu tiếng Anh, Câu tiếng Pháp]
* Huấn luyện đọc hiểu (Reading Comprehension): đưa vào chuỗi văn bản
theo format như sau:
[Trả lời câu hỏi, Tài liệu, Hỏi, Trả lời]
⚠ Chú ý:
Trong các ví dụ trên, phân chữ in nghiêng là Chỉ định tác vụ (Task
Conditioning).
-
Với cách tiếp cận này, khi tinh chỉnh (Fine-tuning), GPT-2 cần rất ít
nhãn (trong bài báo họ gọi là Few-shot learning), thậm chí là không sử dụng
một nhãn nào (Zero-shot learning)! Họ làm được như vậy là nhờ sau giai
đoạn Pre-training, mô hình ít nhiều đã chứa nhãn của giai đoạn Fine-tuning.
▓ Để
đảm bảo chất lượng, mô hình lấy dữ liệu từ trang Reddit và các đường link ngoài xuất phát từ
trang này. Kết quả được họ đặt tên là WebText với dung lượng lên đến 40
GB, lấy từ hơn 8 triệu tài liệu.
Σ GPT-2 có 4 loại
kích cỡ, với số lượng tham số tương ứng như sau:
• 117 M (triệu)
• 345 M
• 762 M
• 1,542 M
✔ Chất
lượng nổi bật: Sau giai
đoạn Pre-training, không cần Fine-tuning, trong số 8 tác vụ,
GPT-2 cho 7 kết quả tốt hơn các mô hình khác.
-
⚠ Bài báo
nhận định: chất lượng mô hình tỷ lệ theo hàm log tuyến tính (log-linear)
của dung lượng dữ liệu và số tham số của mô hình.
-
o
GPT-3 (tháng 5/2020).
💡
Như
nhận định từ GPT-2, mục tiêu của GPT-3 là tăng dữ liệu huấn luyện và
tăng tham số của mô hình (đồng nghĩa với tăng chất lượng mô hình). Tham
vọng của GPT-3 là mô hình này không cần Fine-tuning hoặc chỉ cần 1 hoặc
rất ít nhãn thì đã suy diễn được đầu ra từ đầu vào. GPT-3 đưa vào một ý tưởng mới
mang tính đột phá mà họ đặt tên là In-context learning (tạm dịch là Học
theo ngữ cảnh).
-
In-context learning là gì? Đối với con người, chúng ta thu nhận kiến thức
gần giống với giai đoạn Pre-training. Khi suy diễn một vấn đề nào đó (gần
giống với mô hình suy diễn), chúng ta trước hết nhận diện tác vụ. Máy cũng vậy.
Nhưng máy chỉ có khả năng nhận diện tác vụ qua đoạn văn bản đầu vào. Kỹ năng
này có tên gọi là pattern recognition (nhận dạng mẫu): “mẫu” văn bản như
vậy tương ứng với “tác vụ” nào. Các tác giả bài báo gọi là In-context
learning. Họ chia thành 4 mẫu ngữ cảnh tiêu biểu của GPT-3 gồm:
• Fine-Tuning (FT): Trường hợp này mô hình cần hàng nghìn đến hàng trăm
nghìn mẫu dữ liệu có dán nhãn để điều chỉnh trọng số (weight) trước khi
đi vào thực tế sử dụng.
• Few-Shot (FS): Trường hợp này mô hình cần K mẫu demo nhưng không được
phép điều chỉnh trọng số. K nằm trong khoảng 10-100. K mẫu này dùng để làm
gì? Chỉ là để cho máy “nhận dạng tác vụ”!
• One-Shot (1S): Tương tự như Few-Shot nhưng trong trường hợp này, máy
chỉ cần 1 mẫu để “nhận dạng tác vụ”.
• Zero-Shot (0S): Không cần mẫu demo mà vẫn biết được tác vụ! Trường hợp
này dễ bị hiểu nhầm là “máy tự động hiểu”. Không phải vậy, thưa anh/chị. Thực
chất, mô hình vẫn cần một mẫu nhưng mẫu này được ẩn đi bằng một câu lệnh. Ví dụ
về câu lệnh: “Dịch tiếng Anh ra tiếng Pháp:”. Sau đó nếu chúng ta đưa vào từ “cheese”
thì máy sẽ cho kết quả là “du fromage”.
▓ GPT-3
huấn luyện với 5 kho ngữ liệu là Common Crawl, WebText2, Books1,
Books2 và Wikipedia (trong Wikipedia họ chỉ lấy phần tiếng Anh). Mỗi
kho ngữ liệu được gắn với một trọng số tương ứng với chất lượng của kho ngữ liệu
đó. Kho ngữ liệu có chất lượng cao thì mô hình sẽ lấy mẫu nhiều lần hơn kho ngữ
liệu có chất lượng thấp.
Σ Số tham số
của mô hình: 175 tỷ (gấp hơn 100 lần số tham số của GPT-2). Khi huấn luyện, người
ta chia nhỏ thành 8 kích cỡ khác nhau như trong bảng dưới đây:
|
Tên mô hình |
Số tham số |
|
GPT-3 Small |
125 M (triệu) |
|
GPT-3 Medium |
350 M |
|
GPT-3 Large |
760 M |
|
GPT-3 XL |
1.3 B (tỷ) |
|
GPT-3 2.7B |
2.7 B |
|
GPT-3 6.7B |
6.7 B |
|
GPT-3 13B |
13 B |
|
GPT-3 175B (GPT-3) |
175 B |
✔ Chất
lượng nổi bật: Ngoài
các kết quả với các chất lượng cao hơn các mô hình khác (ví dụ: đọc hiểu, dịch
máy) GPT-3 có một số tính năng đặc biệt. Ví dụ: có thể thực hiện các phép cộng
trừ số học 2 chữ số, biết sắp xếp lại các ký tự của một từ đã bị xáo trộn sao
cho đúng chính tả, biết viết các bản tin gần bằng chất lượng của các nhà báo,
biết học và sử dụng từ mới.
-
-
② BERT (Bidirectional Encoder Representations from Transformers)-Google.
Tiếp theo,
chúng ta cùng bàn đến mô hình BERT của Google. Cũng giống như GPT, BERT gồm 2
giai đoạn là Pre-training và Fine-tuning. Pre-training được
huấn luyện với dữ liệu không dán nhãn và Fine-tuning sử dụng dữ liệu có
dán nhãn tùy theo từng tác vụ (Task) cụ thể. BERT cũng sử dụng mô hình Transformer, nhưng họ chỉ sử dụng phần mã hóa (Transformer
Encoder).
-
💡 Ý
tưởng chính. BERT có một điểm khác cơ bản trong cách tiếp cận so với GPT.
Mô hình như GPT được gọi là mô hình từ-trái-sang-phải. Vì sao vậy? Vì
GPT xác định phần tử thứ n+1 (xn+1) từ n phần tử trước đó (x1,
x2, …, xn). Ngược lại, một mô hình được gọi là từ-phải-sang-trái
nếu mô hình đó xác định phần tử bên trái cùng (x1) từ n phần tử bên
phải ngay sau phần tử đó (x2, …, xn, xn+1).
BERT
là mô hình 2 chiều (bidirectional) bao gồm cả từ-trái-sang-phải
và từ-phải-sang-trái. Khi huấn luyện, theo cách truyền thống (đoán phần
tử tiếp theo từ n phần tử trước đó) thì chuỗi các phần tử sẽ dự đoán “chính
nó”. Nếu để nguyên như vậy thì mô hình sẽ bị “chập” vì kết quả đúng 100% dẫn đến
là mô hình sẽ không điều chỉnh được các trọng số (weight).
Làm
thế nào để xử lý trường hợp này? Họ xử lý bằng cách “che” (mask) một số
phần tử trong n phần tử của chuỗi và việc huấn luyện là dự đoán các từ đã bị “che”
đó. Về mặt nghiên cứu văn học, phương pháp này có tên gọi là “Cloze
Procedure” do Wilson L. Taylor đề xướng vào năm 1953 (tham khảo bài
báo ở đây).
Để
cho dễ hiểu, tôi lấy một ví dụ trong tiếng Việt. Việc của BERT là phải điền vào
chỗ trống (…) từ thích hợp trong câu: “ông nói … bà nói vịt”. Đối với người Việt chúng ta
thì rất dễ nhận biết từ cần điền là từ “gà”.
Nhưng “máy” không biết đâu, nó phải quét qua hàng nghìn, hàng triệu văn bản để
tìm từ thích hợp. Khi máy quét (huấn luyện) là lúc mô hình điều chỉnh các trọng
số sao cho mô hình có thể “hiểu” các văn bản mà nó đọc!
-
▓ Tập
mẫu dữ liệu. Kho ngữ liệu
về sách BooksCorpus (800 triệu từ) và Wikipedia phần tiếng
Anh (loại bỏ danh mục, bảng biểu, đầu đề) với dung lượng là 2.5 tỷ từ. Tổng
dung lượng của 2 kho ngữ liệu này là 16GB.
-
Σ Số tham số.
BERT có 2 kích cỡ: BERTBASE và BERTLARGE.
BERTBASE có 110 triệu tham số và BERTLARGE có 340 triệu
tham số.
-
✔
Chất lượng nổi bật.
BERT đạt kết quả tốt hơn các mô hình khác: 8/9 tác vụ (Task) của GLUE, +
3 tác vụ khác gồm: Stanford Question Answering Dataset (SquAD): SquAD v1.1,
SquAD v2.0, Situations With Adversarial Generations (SWAG).
-
⧛
ⓒ Benchmarks (GLUE, SuperGLUE).
Tiếp theo,
chúng ta bàn đến việc đo chất lượng các mô hình đã lược kể ở trên. Anh/chị có
thể đặt câu hỏi: làm thế nào để đánh giá, hoặc chấm điểm mô hình “máy hiểu ngôn
ngữ tự nhiên”? Trả lời: cũng giống như thời chúng ta còn đi học phổ thông, thầy
cô đánh giá năng lực học tập của chúng ta qua bảng điểm. Giới nghiên cứu Machine
Learning cũng làm như vậy để chấm điểm các mô hình. Vào tháng 4/2018, người
ta đưa ra thước đo GLUE [ bài báo ]. Rất nhanh sau đó, nhiều mô hình đã đạt
điểm “tối đa” (giống như chúng ta ra đề thi dễ quá, nhiều học sinh đạt điểm tối
đa, rất khó phân hạng để tuyển chọn vào đại học 😊).
Vì lý do này, khoảng một năm sau, vào tháng 5/2019, người ta đưa ra một thước
đo khác, tương tự như GLUE nhưng khó hơn, có tên gọi là SuperGLUE [ bài
báo ]. Trong phần tiếp
theo, tôi xin phép đề cập đến hai thước đo này. Qua đó, có thể chúng ta ít nhiều
học được cách làm của họ trong việc thúc đẩy nghiên cứu “máy hiểu được ngôn ngữ
tiếng Việt”!?
① GLUE (General Language Understanding Evaluation).
Trước năm 2018,
các mô hình NLU (Natural Language Understanding) thường chỉ tập trung
vào một tác vụ (Task). Mô hình cho một tác vụ nào đó không thể đem áp dụng
sang tác vụ khác được.
Tuy nhiên, để
đánh giá mô hình “máy hiểu ngôn ngữ”, rõ ràng là chúng ta cần đánh giá mô hình
với rất nhiều các tác vụ. Những tác vụ nào cần được đánh giá để coi như “máy hiểu
ngôn ngữ”? Có thể không bao giờ có câu trả lời đúng cho câu hỏi này, vì đơn giản
là số tác vụ nhiều “vô kể”. Nhưng nghiên cứu khoa học là “dùng cái hữu hạn để
tiếp cận cái vô hạn” mà 😊!?
Mục tiêu của
GLUE là đánh giá mô hình NLU đa tác vụ, tương tự như GPT hoặc BERT. (Anh/chị
chú ý các bài báo về Machine Learning thường dùng từ Model-Agnostic,
tôi dịch là mô hình đa tác vụ.) GLUE chỉ đánh giá thông qua 9 tác vụ. Mỗi một
tác vụ được chọn là một công trình nghiên cứu về NLP (Natural Language
Processing) đã đăng trước đây, ít nhiều đã được giới nghiên cứu “thừa nhận”.
➡ Tiếp
theo, tôi xin liệt kê danh mục các tác vụ (xem chi
tiết trên trang GLUE). (Đối với các anh/chị không thích đi sâu vào chi tiết, xin
vui lòng bỏ qua.)
1.
CoLA
(Corpus of Linguistic Acceptability - 2018). Kho ngữ liệu này gồm tập hợp câu tiếng
Anh đã được dán nhãn là đúng ngữ pháp hoặc không đúng ngữ pháp. Việc của tác vụ
là dự đoán xem câu đầu vào (input) có đúng ngữ pháp hay không.
2.
SST-2
(Stanford Sentiment Treebank - 2013). Gồm tập hợp các câu về bình luận phim
(movie reviews) được dán nhãn là cảm nhận của độc giả: thích / chê (positive
/ negative). Việc của tác vụ là đưa ra dự đoán về cảm nhận của độc giả đối
với câu đầu vào (input).
3.
MRPC
(Microsoft Research Paraphrase Corpus – 2005). Gồm các cặp câu trích ra từ các bản
tin. Các cặp này được dán nhãn là đồng nghĩa / không đồng nghĩa. Việc của tác vụ
là phải dự đoán được nhãn (đồng nghĩa / không đồng nghĩa).
4.
QQP
(Quora Question Pairs). Tuyển chọn các cặp câu hỏi trên trang
Quora, được dán nhãn đồng nghĩa / không đồng nghĩa. Việc của tác vụ là phải dự
đoán được nhãn (đồng nghĩa / không đồng nghĩa).
5.
STS-B
(Semantic Textual Similarity Benchmark – 2017). Tuyển chọn cặp câu từ tiêu đề các bản
tin, video, chú thích hình ảnh. Các cặp câu này được dán nhãn mức đồng nghĩa từ
1-5. Việc của tác vụ là dự đoán mức đồng nghĩa.
6.
MNLI
(Multi-Genre Natural Language Inference Corpus – 2018). Tuyển chọn cặp câu hàm chứa lẫn nhau
(entailment). {Hàm chứa (entailment) được hiểu là “câu này có thể
suy ra câu kia”.} Cấu trúc cặp câu này gồm một câu tiền đề (premise) và
một câu giả thuyết (hypothesis). Việc của tác vụ là xác định xem câu tiền
đề hàm chứa (entailment) giả thuyết, mâu thuẫn (contradiction) với
giả thuyết hoặc 2 câu này bất liên quan (neutral). Chú ý rằng MNLI có 3
loại nhãn: entailment, contradiction và neutral.
7.
QNLI
(Stanford Question Answering Dataset – 2016). Tuyển chọn tập dữ liệu gồm (“câu hỏi”
– “mục văn bản”). Người ta trích một câu trong “mục văn bản” cô đọng nhất để
“trả lời” cho “câu hỏi”. Việc của tác vụ là xác định xem có đúng câu trích ra
là thực sự trả lời cho câu hỏi hay không.
8.
RTE
(Recognizing Textual Entailment - 2006). Tác vụ nhận dạng tính hàm chứa (entailment)
của văn bản. Tập mẫu dữ liệu này tương tự như MNLI nhưng người ta chập contradiction
& neutral thành not_entailment. Nghĩa là RTE chỉ phân thành 2 loại
nhãn là entailment và not_entailment. Việc của tác vụ là phải chọn
đúng nhãn [tức là tiền đề (premise) có hàm chứa giả thuyết (hypothesis)
hay không].
9.
WNLI
(Winograd Schema Challenge – 2011). Tác vụ đọc – hiểu văn bản. Hệ thống
cho câu có chứa một đại từ (pronoun). Đại từ này tham chiếu đến một từ
hoặc cụm từ trong câu đó. Người ta liệt kê tất cả các tùy chọn mà đại từ đó có
thể tham chiếu đến. Việc của tác vụ là phải chọn đúng đại từ thay thế vào câu gốc.
➡ Phương
pháp đánh giá và xếp hạng. (Đối với các anh/chị
không thích đi sâu vào chi tiết, xin vui lòng bỏ qua.)
Cách
tính điểm. Mô hình được
đánh giá theo từng tác vụ, sau đó tính điểm tổng theo phương pháp trung bình cộng,
hệ số 100.
Cách
tham gia. Truy cập
trang GLUE, vào mục Tasks, tải dữ liệu của từng tác vụ về máy (file zip). Unzip vào
từng thư mục tương ứng với tác vụ, sẽ được 3 file lần lượt có tên là dev.tsv, train.tsv và
test.tsv. (File tsv (tab-separated value)
là loại file văn bản thuần (text) chứa bảng dữ liệu mà các cột được phân
cách bằng ký tự tab – mã 09.) File train.tsv (có
dán nhãn) dùng để huấn luyện, file dev.tsv (có
dán nhãn) dùng để thẩm định (validate) mô hình và file test.tsv (không dán nhãn) dùng để kiểm tra kết
quả mô hình và nộp (upload) cho “ban giám khảo” GLUE. Căn cứ vào kết quả
tải lên, người ta chấm điểm từng tác vụ, tính điểm trung bình, sau đó xếp
hạng.
Phân
tích hiệu năng. Ngoài 9
tác vụ dùng để chấm điểm, GLUE còn bổ sung một tập dữ liệu dùng để phân tích,
chẩn đoán hiệu năng mô hình, có tên gọi là tập dữ liệu chẩn đoán (Diagnostic
Dataset) (không dán nhãn) gồm các cặp câu hàm chứa lẫn nhau (entailment)
- cấu trúc giống tác vụ MNLI.
❔ Mục tiêu của Diagnostic Dataset
là gì? Có thể anh/chị sẽ đặt câu hỏi như vậy. Thông thường, mô hình mạng nơ-ron
tích lũy kiến thức thông qua việc huấn luyện với tập dữ liệu mẫu được dán nhãn.
So sánh với con người, ngoài việc chúng ta đọc dữ liệu mẫu, để hiểu ngôn ngữ,
chúng ta thường vận dụng kiến thức đã được tích hợp đâu đó từ trước. Ý tưởng của
GLUE khi đưa Diagnostic Dataset vào là kiểm tra xem mô hình có khả năng
“tích hợp kiến thức đâu đó từ trước” hay không, khi cố tình không cung cấp tập
dữ liệu mẫu.
⚠ Chú
ý rằng việc chẩn đoán này không đưa vào tính điểm xếp hạng, chỉ có tác dụng
giúp cho nhóm thiết kế phân tích hiệu năng của mô hình.
-
② SuperGLUE
Một cách trực
quan: SuperGLUE tương tự như GLUE nhưng khó hơn. Ngoài yêu cầu mô hình cần “hiểu”
(understand), SuperGLUE còn đưa vào chấm điểm kỹ năng “suy luận” (reason)
đối với ngôn ngữ tiếng Anh!
SuperGLUE gồm 8
tác vụ, trong đó 6 tác vụ được thiết kế mới và 2 tác vụ được chuyển từ GLUE
sang.
➡ Tôi
xin liệt kê các tác vụ của SuperGLUE trong phần tiếp theo. (Đối với các anh/chị không thích đi sâu vào chi tiết, xin
vui lòng bỏ qua.)
1.
BoolQ
(Boolean Questions – 2019).
Đây là tác vụ Hỏi – Đáp (Question Answering). Mẫu dữ liệu gồm (đoạn văn,
câu hỏi liên quan đến đoạn văn). Câu hỏi dạng Yes/No. Việc của tác vụ là
chọn Yes hoặc No.
2.
CB
(CommitmentBank – 2019). Đây là tác vụ đoán cam kết của diễn
ngôn. Mẫu của dữ liệu là đoạn văn bản ngắn (diễn ngôn) có chứa ít nhất một mệnh
đề nhúng (embedded clause). Từ “ngữ nghĩa” của đoạn văn và mệnh đề
nhúng, người ta lập thành một tiền đề (premise) hàm chứa mệnh đề nhúng
và một giả thuyết (hypothesis) tương ứng. Việc của tác vụ là xác định
xem câu tiền đề hàm chứa (entailment) giả thuyết, mâu thuẫn (contradiction)
với giả thuyết hoặc 2 câu này bất liên quan (neutral).
3.
COPA
(Choice of Plausible Alternatives - 2011). Đây là tác vụ suy luận Nhân – Quả. Hệ
thống cho một câu tiền đề và việc của tác vụ là phải xác định nguyên nhân (cause)
hoặc kết quả (effect) của tiền đề từ danh mục hai lựa chọn.
4.
MultiRC
(Multi-Sentence Reading Comprehension - 2018). Đây là tác vụ Hỏi – Đáp (Question
Answering). Mẫu dữ liệu gồm một văn bản ngữ cảnh (Context Paragraph),
một câu hỏi về nội dung văn bản này và liệt kê các câu trả lời theo hình thức
đa lựa chọn (Multiple Choice). Việc của tác vụ là đánh dấu True/False
vào từng lựa chọn.
5.
ReCoRD
(Reading Comprehension with Commonsense Reasoning Dataset - 2018). Đây là tác vụ Đọc – Hiểu (Reading
Comprehension). Mẫu dữ liệu gồm bản tin ngắn và một câu hỏi dạng “điền từ
vào chỗ trống”. Từ cần điền vào chỗ trống được lấy từ các cụm từ thuộc bản tin.
6.
RTE
(Recognizing Textual Entailment - 2006). Tác vụ nhận dạng tính hàm chứa (entailment)
của văn bản. Hệ thống cho một văn bản tiền đề (premise) và một câu giả
thuyết (hypothesis). Việc của tác vụ là xác định xem văn bản tiền đề có hàm
chứa (entailment) giả thuyết hay không.
⚠ Tác vụ
này được chuyển từ GLUE sang. Chú ý: người ta gộp contradiction và neutral
thành not_entailment. Như vậy, RTE trong SuperGLUE chỉ có 2 loại nhãn là
entailment và not_entailment.
7.
WiC
(Word-in-Context - 2019).
Đây là tác vụ phân biệt nghĩa của từ đa nghĩa (polysemous). Hệ thống cho
2 đoạn văn bản có chứa cùng một từ đa nghĩa. Việc của tác vụ là xác định xem từ
đó ở 2 đoạn văn bản đó có cùng nghĩa hay không.
8.
WSC
(Winograd Schema Challenge - 2012). Đây là tác vụ giải tham chiếu của đại
từ (pronoun) trong câu văn. Hệ thống cho câu có chứa một đại từ. Đại từ
này tham chiếu đến một từ (hoặc cụm từ) trong câu đó. Người ta liệt kê tất cả
các tùy chọn mà đại từ đó có thể tham chiếu đến. Việc của tác vụ là phải chọn
đúng tùy chọn để thay thế vào đại từ trong câu gốc.
⚠ Chú ý:
tác vụ này được chuyển từ GLUE sang. (Tên cũ ở GLUE là WNLI.)
➡ Phương
pháp đánh giá và xếp hạng. (Đối với các anh/chị
không thích đi sâu vào chi tiết, xin vui lòng bỏ qua.)
SuperGLUE
có cách tính điểm, cách xếp hạng hoàn toàn tương tự như GLUE. Tuy nhiên, có 2
điểm khác biệt nhỏ.
1.
File
dữ liệu có dạng thức là .jsonl (JSON
Lines). JSON: JavaScript Object Notation.
2.
Phần
phân tích hiệu năng có 2 công cụ.
·
Công
cụ kiểm tra “hiểu biết thường thức” (Common Sense) tương tự như công cụ Diagnostics
của GLUE. Trên bảng tác vụ (Tasks), công cụ này có tên là “Broadcoverage
Diagnostics” với mã hiệu là “Ax-b”.
·
Công
cụ kiểm tra “định kiến giới tính” (Gender Bias), chỉ có ở SuperGLUE.
Trên bảng tác vụ (Tasks), công cụ này có tên là “Winogender Schema Diagnostics”
với mã hiệu là “Ax-g”.
-
Một vài nhận
xét chung về GLUE và SuperGLUE. (Đối với các anh/chị
không thích đi sâu vào chi tiết, xin vui lòng bỏ qua.)
Nhận xét
1. Khi quan sát 2 bảng
xếp hạng (xếp hạng GLUE, xếp hạng SuperGLUE),
anh/chị sẽ thấy có “mô hình” với tên lần lượt là “GLUE Human Baselines” (ở bảng
xếp hạng của GLUE) và “SuperGLUE Human Baselines” (ở bảng xếp hạng của
SuperGLUE). Đây là các “mô hình” người thật, chứ không phải là mô hình máy. Vào
thời điểm bài viết này, trong bảng xếp hạng của GLUE, nhóm “người thật” chỉ xếp
thứ 16, còn trong bảng SuperGLUE, nhóm này xếp thứ 4.
Rất thú vị, đúng
không ạ, vì có nhiều mô hình máy xếp hạng cao hơn người! (Tuy nhiên, chú ý rằng
đây chỉ là xếp hạng theo các tác vụ rất đặc trưng. Hơn nữa, với các mô hình
tham gia xếp hạng thì đội ngũ nghiên cứu của mô hình đó đã “nghiền ngẫm” dữ liệu
rất kỹ trước khi “nộp bài”.)
Nhận xét
2. Chúng ta thấy cả
2 thước đo GLUE và SuperGLUE đều có mô hình Baselines (GLUE Baselines
và SuperGLUE Baselines) – tạm dịch là điểm sàn. Hiểu theo nghĩa này, điểm
của các mô hình Baselines là điểm chuẩn, thường đứng ở cuối bảng xếp hạng.
Tuy nhiên, khá thú vị là chúng ta thấy có một số mô hình có điểm thấp hơn điểm
sàn.
-
⧛
ⓓ Follow-up.
Có thể nói GPT-3 gây “chấn động” trong cộng đồng Machine
Learning. GPT-3 có thể lập trình, làm thơ, chơi game, viết báo, viết văn,
làm toán (các phép tính số học dưới 100), … gần giống với “người thật” 😊! Sau GPT-3, theo quan sát của cá nhân,
tôi thấy có một số mô hình khác tương tự về cách tiếp cận:
➡ Wu
Dao 2.0 (BAAI [Beijing
Academy of Artificial Intelligence] – tháng 6/2021). Tôi không có thông tin
về cấu trúc của Wu Dao 2.0 nhưng có lẽ mô hình này cũng theo hướng tiếp cận của
GPT. Căn cứ theo các bài post trên Internet, mô hình này có thể mô phỏng lời
nói đàm thoại, làm thơ, hiểu được hình ảnh, thậm chí tạo công thức chế biến món
ăn. Số tham số của mô hình: 1.750 tỷ (gấp 10 lần số tham số của GPT-3).
➡ Jurassic-1 (AI21 Labs – tháng 8/2021). Cách tiếp cận
của mô hình này hoàn toàn giống với cách tiếp cận của GPT (sử dụng Transformer
Decoder). Chỉ có một vài điểm khác biệt: tập dữ liệu huấn luyện đa dạng
hơn, từ điển có số từ vựng lớn hơn. Số tham số của mô hình: 178 tỷ (nhiều hơn 3
tỷ so với tham số của GPT-3).
➡ Megatron-Turing NLG (NVIDIA & Microsoft – tháng 8/2021).
Cách tiếp cận của mô hình cũng giống với cách tiếp cận của GPT (sử dụng Transformer
Decoder). Theo bài báo thì họ có hạ tầng huấn luyện tốt hơn (NVIDIA là công
ty sản xuất ra GPU). Số tham số của mô hình: 530 tỷ (hơn gấp 3 lần số tham số của
GPT-3).
➡ Gopher (DeepMind – 08/12/2021). Mặc dù là một
công ty trực thuộc Google, tuy nhiên DeepMind lại không theo cấu trúc của BERT
mà xây dựng Gopher theo hướng tiếp cận của GPT: lấy dữ liệu dạng Autoregressive,
sử dụng cấu trúc Transformer Decoder. Số tham số của mô hình: 280 tỷ
(khoảng 1.5 lần số tham số của GPT-3).
➡ ERNIE
3.0 Titan (Baidu – 23/12/2021).
Cách tiếp cận của mô hình này bắt chước cách tiếp cận của GPT-3. Mô hình này
đưa thêm vào cấu trúc phần huấn luyện dữ liệu đồ thị tri thức (Knowledge
Graph) nhằm bổ sung phần hiểu biết thường thức (Common Sense). Số
tham số của mô hình: 260 tỷ (khoảng dưới 1.5 lần số tham số của GPT-3).
-
⧛
ⓔ Suy ngẫm chậm
(là ‘System
2’ trong “Thinking, Fast and Slow”).
➡ Chúng
ta thấy các mô hình mạng nơ-ron thời gian gần đây càng ngày càng trở nên khổng
lồ. Cùng với nhận xét của bài báo GPT-2,
“chất lượng mô hình tỷ lệ với hàm log tuyến tính dung lượng dữ liệu
và số tham số của mô hình”, với trào lưu các đại gia công nghệ đua
nhau cho xuất xưởng các mô hình có hàng trăm, hàng nghìn tỷ tham số, cảm giác
chung là mọi việc thoát ra ngoài tầm tay với của những người/tổ chức/doanh nghiệp
có nguồn lực hạn chế. Thêm nữa, GPT-3 và một số mô hình khác lại đóng mã nguồn
(closed source). Vì vậy, làm thế nào để tiếp cận các mô hình “khủng” này
là một câu hỏi để ngỏ.
➡ Khi
phát triển mô hình theo phương thức Pre-training – Fine Tuning, cộng đồng
Machine Learning nhận ra rằng, hóa ra từ trước đến nay các mô hình quá tập
trung vào việc giải quyết tác vụ (Task) đơn lẻ, quên mất rằng cần phải
xây dựng mô hình có khả năng giải quyết cùng lúc đa tác vụ và phải biết cách học
“tác vụ mới” một cách nhanh chóng trên nền hiểu biết tập hợp các “tác vụ cũ”. Từ
đó, mô hình sẽ có năng lực xử lý hàng nghìn, hàng triệu tác vụ. Tôi đoán mò rằng,
có lẽ đây là xu thế trong thời gian sắp tới của cộng đồng nghiên cứu Machine
Learning.
(\_/)
(
•_•)
/
>☕
Không có nhận xét nào:
Đăng nhận xét