Giới thiệu

Trước lúc Google công bố bài báo về Transformers (Attention Is All You Need), đa số các tác vụ xử lý ngôn ngữ tự nhiên, nhất là dịch sản phẩm (Machine Translation) sử dụng bản vẽ xây dựng Recurrent Neural Networks (RNNs). Điểm yếu đuối của phương pháp này là khó bắt được sự dựa vào xa giữa những từ trong câu và vận tốc huấn luyện lừ đừ do yêu cầu xử lý input đầu vào tuần tự. Transformers hình thành để xử lý 2 sự việc này; và các biến thể của chính nó như BERT, GPT-2 tạo ra state-of-the-art mới cho các tác vụ tương quan đến NLP. Các chúng ta cũng có thể tham khao thêm bài viết BERT- bước cải tiến vượt bậc mới trong technology xử lý ngôn ngữ tự nhiên và thoải mái của Google của người sáng tác Phạm Hữu Quang nhằm hiểu thêm về BERT nhé.

*

Mô hình Sequence-to-Sequence dìm input là một sequence với trả lại output cũng là một sequence. Ví dụ câu hỏi Q&A, đầu vào là câu hỏi "how are you ?" cùng output là câu trả lời "I am good". Phương thức truyền thống thực hiện RNNs cho cả encoder (phần mã hóa input) cùng decoder (phần giải thuật input và chỉ dẫn output tương ứng). Điểm yếu đầu tiên của RNNs là thời hạn train hết sức chậm, đến hơn cả người ta phải áp dụng phiên phiên bản Truncated Backpropagation nhằm train nó. Tuy nhiên vậy, vận tốc train vẫn khôn xiết chậm do phải áp dụng CPU, ko tận dụng được tính toán song tuy vậy trên GPU.

Bạn đang xem: Giải mã hình ảnh bằng mô hình mạng chuyển giao (Image decoding using transfer learning models)

*

Điểm yếu thiết bị hai là nó cách xử trí không tốt với những câu nhiều năm do hiện tượng kỳ lạ Gradient Vanishing/Exploding. Khi số lượng units càng lớn, gradient giảm dần ở những units cuối do cách làm Đạo hàm chuỗi, dẫn đến mất thông tin/sự nhờ vào xa giữa những units.

*

Ra đời năm 1991, Long-short Term Memory (LSTM) cell là một trong biến thể của RNNs nhằm giải quyết và xử lý vấn đề Gradient Vanishing trên RNNs. LSTM cell bao gồm thêm một nhánh C được cho phép toàn cỗ thông tin đi qua cell, giúp bảo trì thông tin cho đều câu dài.

*

Có vẻ chúng ta đã giải quyết phần như thế nào vẫn đề Gradient Vanishing, nhưng lại LSTM lại phức tạp hơn RNNs rất nhiều, và hiển nhiên nó cũng train chậm hơn RNN xứng đáng kể

*

Vậy gồm cách như thế nào tận dụng khả năng đo lường và thống kê song song của GPU để tăng vận tốc train cho các quy mô ngôn ngữ, bên cạnh đó khắc phục nhược điểm xử lý câu nhiều năm không? Transformers chính là câu vấn đáp

*

Kiến trúc Transformers cũng áp dụng 2 phần Encoder với Decoder khá như là RNNs. Điểm biệt lập là input được đẩy vào cùng một lúc. Đúng vậy đó, cùng một lúc; cùng sẽ không còn khái niệm timestep vào Transformers nữa. Vậy nguyên tắc nào đã sửa chữa cho sự "recurrent" của RNNs? Đó đó là Self-Attention, và này cũng là nguyên nhân tên paper là "Attention Is All You Need" (fun fact: thương hiệu này để theo bộ phim truyện "Love is all you need"

*

2. Positional Encoding

Word embeddings phần nào mang lại giúp ta biểu diễn ngữ nghĩa của một từ, mặc dù cùng một từ sinh hoạt vị trí khác biệt của câu lại mang chân thành và ý nghĩa khác nhau. Đó là nguyên nhân Transformers có thêm 1 phần Positional Encoding nhằm inject thêm thông tin về vị trí của một từ

PE(pos,2i)=sin⁡(pos/100002i/dmodel)PE(pos,2i+1)=cos⁡(pos/100002i/dmodel)eginalignedP E_(p o s, 2 i) &=sin left(p o s / 10000^2 i / d_mathrmmodel ight) \P E_(p o s, 2 i+1) &=cos left(p o s / 10000^2 i / d_mathrmmodel ight)endalignedPE(pos,2i)​PE(pos,2i+1)​​=sin(pos/100002i/dmodel​)=cos(pos/100002i/dmodel​)​

Trong đó pospospos là địa điểm của từ vào câu, PE là giá trị bộ phận thứ iii trong embeddings bao gồm độ nhiều năm dmodeld_mathrmmodeldmodel​. Sau đó ta cộng PE vector và Embedding vector:

*

3. Self-Attention

Self-Attention là hình thức giúp Transformers "hiểu" được sự tương quan giữa các từ vào một câu. Ví như từ "kicked" vào câu "I kicked the ball" (tôi vẫn đá trái bóng) liên quan ra sao đến những từ khác? ví dụ nó tương quan mật thiết đến từ "I" (chủ ngữ), "kicked" là chính nó lên sẽ luôn luôn "liên quan lại mạnh" và "ball" (vị ngữ). Ngoài ra từ "the" là giới từ đề nghị sự links với từ bỏ "kicked" gần như không có. Vậy Self-Attention trích xuất rất nhiều sự "liên quan" này như thế nào?

*

Quay quay trở lại với kiến trúc toàn diện và tổng thể ở trên, các chúng ta cũng có thể thấy đầu vào của các module Multi-head Attention (bản hóa học là Self-Attention) bao gồm 3 mũi tên, đó đó là 3 vectors Querys (Q), Keys (K) và Values (V). Tự 3 vectors này, ta và tính vector attention Z cho 1 từ theo bí quyết sau:

Z=softmax⁡(Q⋅KTDimension of vector Q,K or V)⋅VZ=operatornamesoftmaxleft(fracQ cdot K^TsqrtD i m e n s i o n ~ o f ~ v e c t o r ~ Q, K ext or V ight) cdot VZ=softmax(Dimension of vector ​Q,K or VQ⋅KT​)⋅V

Công thức này khá đối chọi giản, nó được tiến hành như sau. Đầu tiên, để sở hữu được 3 vectors Q, K, V, đầu vào embeddings được nhân cùng với 3 ma trận trọng số tương ứng (được tune trong quá trình huấn luyện) WQ, WK, WV.

*

Lúc này, vector K vào vai trò như 1 khóa đại diện cho từ, cùng Q sẽ truy vấn đến các vector K của các từ trong câu bằng phương pháp nhân chập với hầu hết vector này. Mục đích của phép nhân chập để đo lường độ liên quan giữa các từ với nhau. Theo đó, 2 từ liên quan đến nhau sẽ sở hữu được "Score" khủng và ngược lại.

Bước thứ hai là cách "Scale", dễ dàng chỉ là phân chia "Score" cho căn bậc nhị của số chiều của Q/K/V (trong hình chia 8 bởi vì Q/K/V là 64-D vectors). Việc này hỗ trợ cho giá trị "Score" không phụ thuộc vào độ dài của vector Q/K/V

Bước đồ vật 3 là softmax các công dụng vừa rồi để đạt được một phân bố phần trăm trên những từ.

Bước sản phẩm công nghệ 4 ta nhân phân bố tỷ lệ đó với vector V để đào thải những trường đoản cú không quan trọng (xác suất nhỏ) cùng giữ lại phần đa từ đặc biệt quan trọng (xác suất lớn).

Ở bước cuối cùng, các vectors V (đã được nhân với softmax output) cùng lại với nhau, tạo thành vector attention Z cho 1 từ. Lặp lại quy trình trên cho toàn bộ các tự ta được ma trận attention cho 1 câu.

*

4. Multi-head Attention

Vấn đề của Self-attention là attention của một từ sẽ luôn luôn "chú ý" vào chính nó. Điều này rất phải chăng thôi vì cụ thể "nó" phải tương quan đến "nó" những nhất

*

Nhưng bọn họ không ước muốn điều này, cái ta muốn là sự tương tác giữa những từ KHÁC NHAU vào câu. Người sáng tác đã ra mắt một phiên phiên bản nâng cấp hơn của Self-attention là Multi-head attention. Ý tưởng rất dễ dàng và đơn giản là thay vì thực hiện 1 Self-attention (1 head) thì ta áp dụng nhiều Attention khác biệt (multi-head) cùng biết đâu từng Attention sẽ chăm chú đến 1 phần khác nhau vào câu

*

5. Residuals

Các bạn cũng có thể thấy trong mô hình tổng quan nghỉ ngơi trên, từng sub-layer đều là một residual block. Tương tự như residual blocks trong Computer Vision, skip connections vào Transformers có thể chấp nhận được thông tin trải qua sub-layer trực tiếp. Thông tin này (x) được cùng với attention (z) của nó và thực hiện Layer Normalization.

*

6. Feed Forward

Sau khi được Normalize, những vectors zzz được gửi qua mạng fully connected trước lúc đẩy qua Decoder. Vì những vectors này không dựa vào vào nhau đề xuất ta rất có thể tận dụng được giám sát song song cho cả câu.

*

Decoder

1. Masked Multi-head Attention

Giả sử bạn muốn Transformers triển khai bài toán English-France translation, thì quá trình của Decoder là giải mã thông tin tự Encoder và hiện ra từng từ giờ đồng hồ Pháp dựa vào NHỮNG TỪ TRƯỚC ĐÓ. Vậy nên, giả dụ ta áp dụng Multi-head attention trên cả câu như sống Encoder, Decoder sẽ "thấy" luôn từ tiếp sau mà nó nên dịch. Để phòng điều đó, lúc Decoder dịch đến từ thứ iii, phần sau của câu tiếng Pháp sẽ bị che lại (masked) cùng Decoder chỉ được phép "nhìn" thấy phần nó đang dịch trước đó.

*

2. Quá trình decode

Quá trình decode về cơ bạn dạng là như thể với encode, chỉ khác là Decoder decode từng xuất phát điểm từ một và input đầu vào của Decoder (câu giờ Pháp) bị masked. Sau khi masked input gửi qua sub-layer #1 của Decoder, nó sẽ không nhân cùng với 3 ma trận trọng số để tạo ra Q, K, V nữa mà lại chỉ nhân với cùng 1 ma trận trọng số WQ. K và V được đem từ Encoder với Q từ Masked multi-head attention chuyển vào sub-layer #2 với #3 tương tự như Encoder. Cuối cùng, các vector được đẩy vào lớp Linear (là 1 mạng Fully Connected) theo sau bới Softmax khiến cho ra tỷ lệ của từ tiếp theo.

Hai hình sau đây mô tả trực quan quy trình Transformers encode với decode

Encoding:

*

Decoding:

*

Kết luận

Trên đây mình đã reviews với các bạn về mô hình Transformers - một quy mô mà bản thân thấy rất hay và xứng đáng để tìm hiểu. Hiện nay Transformers, các biến thể của nó, với pretrained models đã được tích hợp trong tương đối nhiều packages cung cấp tensorflow, keras cùng pytorch. Tuy nhiên nếu bạn có nhu cầu implement từ trên đầu thì có thể tham khảo lý giải rất cụ thể Transformer mã sản phẩm for language understanding của tensorflow.

1. Giới thiệu chung

1.1. Một số khái niệm

Trước khi bước vào bài này, họ cần hiểu rõ một số khái niệm:

Nhiệm vụ phía đằng sau (Downstream task): Là đầy đủ tác vụ supervised-learning được nâng cấp dựa trên số đông pretrained model. VD: họ sử dụng lại các biểu diễn từ học tập được từ hầu hết pretrained mã sản phẩm trên cỗ văn bạn dạng lớn vào một tác vụ phân tích cảm xúc huấn luyện trên bộ văn bản có kích thước bé dại hơn. Áp dụng pretrain-embedding đã giúp nâng cấp mô hình. Do đó tác vụ thực hiện pretrain-embedding được gọi là downstream task.

Quan hệ văn bạn dạng (Textual Entailment): Là tác vụ đánh giá mối quan liêu hệ lý thuyết giữa 2 văn bản? Nhãn output của các cặp câu được tạo thành đối lập (contradiction), trung lập (neutral) hay bao gồm quan hệ đi kèm theo (textual entailment). Ví dụ hơn, họ có những câu:

A: từ bây giờ trời mưa.

B: Tôi có ô cho tới trường.

C: hôm nay trời ko mưa.

D: hôm nay là đồ vật 3.

Khi đó (A, B) có mối quan hệ đi kèm. Những cặp câu (A, C) có mối quan hệ đổi lập cùng (A, D) là trung lập.

Suy luận ngôn từ (Natural Language Inference): Là các tác vụ suy luận ngôn ngữ review mối quan hệ giới tính giữa những cặp câu, cũng như như Textual Entailment.

Phân tích cảm hứng (Sentiment Analysis): Phân loại cảm giác văn bạn dạng thành 2 nhãn tích cực (positive) và xấu đi (negative). Hay được áp dụng trong các hệ thống đánh giá comment của tín đồ dùng.

Ngữ cảnh (Contextual): Là ngữ cảnh của từ. Một từ bỏ được định nghĩa do một phương pháp phát âm cơ mà khi được đặt một trong những câu không giống nhau thì có thể mang ngữ nghĩa khác nhau. Ngữ cảnh rất có thể coi là môi trường thiên nhiên xung xung quanh từ để góp phần định nghĩa từ. VD:

A: Tôi đồng ý với chủ kiến của anh.

B: Lão Hạc bắt buộc kiếm từng đồng để nuôi cậu Vàng.

Thì từ đồng vào câu A và B có ý nghĩa khác nhau. Bọn họ biết vấn đề đó vì dựa vào ngữ cảnh của từ.

Hiện đại độc nhất (SOTA): state-of-art là gần như phương pháp, kỹ thuật tốt nhất mang lại hiệu quả tối đa từ trước đến nay.

Mô hình màn trình diễn mã hóa 2d dựa trên thay đổi (BERT-Bidirectional Encoder Representation from Transformer): mô hình BERT. Đây là lớp mô hình SOTA trong vô số nhiều tác vụ của GLUE score benchmark.

LTR model: là mô hình học bối cảnh theo một chiều tốt nhất từ trái quý phái phải. Ví dụ như lớp các model RNN.

MLM (Masked Language Model): Là quy mô mà toàn cảnh của từ bỏ được học từ cả hai phía phía bên trái và bên bắt buộc cùng một dịp từ đều bộ tài liệu unsupervised text. Dữ liệu input sẽ được masked (tức thay bởi một token MASK) một cách bất chợt với tỷ lệ thấp. Huấn luyện mô hình dự báo từ được masked dựa trên bối cảnh xung quanh là hầu hết từ ko được masked nhằm mục tiêu tìm ra trình diễn của từ.

1.2. Tại sao tại sao mình viết về BERT?

Tại thời gian mình viết về mã sản phẩm BERT thì BERT vẫn được thành lập khá lâu. BERT là model biểu diễn ngôn ngữ được google ra mắt vào năm 2018. Tại thời khắc công bố, BERT đã tạo thành một sự rung rượu cồn trong cộng đồng NLP do những cải tiến chưa từng gồm ở những mã sản phẩm trước đó. Trong bài bác báo BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding những tác giả đang nêu ra những cách tân của model BERT trong những tác vụ:

Tăng GLUE score (General Language Understanding Evaluation score), một chỉ số tổng quát đánh giá mức độ hiểu ngôn từ lên 80.5%.

Ở thời điểm hiện tại, BERT vẫn được áp dụng cho giờ Việt. Chúng ta đọc rất có thể tham khảo dự án Pho
BERT của Vin
AI về đào tạo và huấn luyện trước biểu diễn từ (pre-train word embedding) sử dụng mã sản phẩm BERT. Một vài bạn ứng dụng model Pho
BERT vào các tác vụ như sentiment analysis với đạt được hiệu quả cao như phân loại cảm xúc bình luận - Khôi Nguyễn.

BERT đang được thành lập lâu do đó và cũng sẽ được ứng dụng thoáng rộng thì tại sao mình lại viết về model này? Đó là vì BERT và những biến thể quy mô của nó sẽ là hot trend và sẽ triết lý các thuật toán NLP vào tương lai.

1.3. Văn cảnh (Contextual) cùng vai trò vào NLP

Trước khi tìm hiểu các chuyên môn đã tạo ra ưu thế vượt trội cho quy mô BERT. Chúng ta hãy khám phá vai trò của văn cảnh trong NLP.

Bản hóa học của ngôn từ là music được phát ra để diễn giải dòng lưu ý đến của con người. Trong giao tiếp, những từ thường không đứng độc lập mà chúng sẽ kèm theo với những từ không giống để link mạch lạc thành một câu. Hiệu quả bộc lộ nội dung với truyền đạt ý nghĩa sẽ to hơn so với từng tự đứng độc lập.

Ngữ cảnh trong câu gồm một sự ảnh hưởng rất khủng trong việc giải thích ý nghĩa của từ. Phát âm được vai trò cốt yếu đó, các thuật toán NLP SOTA đều nỗ lực đưa văn cảnh vào mô hình nhằm tạo thành sự bứt phá và cách tân và mô hình BERT tương tự như vậy.

Phân cấp mức độ cải cách và phát triển của các phương thức embedding từ vào NLP có thể bao gồm các nhóm:

Non-context (không bối cảnh): Là những thuật toán ko tồn tại bối cảnh trong trình diễn từ. Đó là các thuật toán NLP đời đầu như ` word2vec, GLo
Ve, fasttext`. Chúng ta chỉ bao gồm duy độc nhất một màn biểu diễn véc tơ cho từng một từ nhưng mà không biến hóa theo bối cảnh. VD:

Câu A: Đơn vị chi phí tệ của nước ta là <đồng>

Câu B: vợ <đồng> ý với ý kiến của chồng là tăng thêm mỗi tháng 500k tiền tiêu vặt

Thì tự đồng sẽ với 2 ý nghĩa sâu sắc khác nhau đề nghị phải có hai biểu diễn từ riêng biệt. Những thuật toán non-context đang không đáp ứng được sự nhiều chủng loại về ngữ nghĩa của từ vào NLP.

Uni-directional (một chiều): Là các thuật toán đã bắt đầu xuất hiện toàn cảnh của từ. Các phương thức nhúng trường đoản cú base trên RNN là những cách thức nhúng xuất phát điểm từ một chiều. Các kết quả biểu diễn từ đã có toàn cảnh nhưng chỉ được lý giải bởi một chiều trường đoản cú trái qua phải hoặc từ bắt buộc qua trái. VD:

Câu C: bây giờ tôi sở hữu 200 tỷ sống ngân hàng.

Câu D: lúc này tôi sở hữu 200 tỷ ….

Như vậy véc tơ màn trình diễn của từ nhờ cất hộ được xác định thông qua những từ tức thì trước cùng với nó. Nếu chỉ phụ thuộc các từ ngay lập tức trước hôm nay tôi với 200 tỷ thì ta hoàn toàn có thể nghĩ từ cân xứng ở vị trí bây giờ là mang đến vay, mua, thanh toán,....

Ví dụ dễ dàng trên đã cho biết các thuật toán trình diễn từ có toàn cảnh tuân theo theo một chiều sẽ chạm mặt hạn chế bự trong màn trình diễn từ hơn so với trình diễn 2 chiều.

ELMo là 1 trong những ví dụ cho phương thức một chiều. Mặc dù ELMo có bản vẽ xây dựng dựa bên trên một mạng Bi
LSTM xem xét bối cảnh theo hai phía từ trái sang buộc phải và từ cần sang trái nhưng số đông chiều này là chủ quyền nhau yêu cầu ta coi như kia là màn biểu diễn một chiều.

Thuật toán ELMo đã đổi mới hơn đối với word2vec cùng fasttext đó là tạo nên nghĩa của tự theo bối cảnh. Trong lấy ví dụ như về tự đồng thì ở mỗi câu A cùng B chúng ta sẽ tất cả một biểu diễn từ khác biệt.

Bi-directional (hai chiều): Ngữ nghĩa của một từ không những được màn biểu diễn bởi hầu hết từ ngay lập tức trước ngoại giả được phân tích và lý giải bởi toàn cục các từ xung quanh. Luồng lý giải tuân theo đồng thời từ trái qua đề xuất và từ đề xuất qua trái cùng một lúc. Đại diện cho các phép màn trình diễn từ này là những mô hình sử dụng chuyên môn transformer mà chúng ta sẽ tìm hiểu bên dưới. Ngay sát đây, đông đảo thuật toán NLP theo phe phái bidirectional như BERT, ULMFit, Open
AI GPT đạt được những công dụng SOTA trên phần nhiều các tác vụ của GLUE benchmark.

1.4. Tiếp cận nông với học sâu trong ứng dụng pre-training NLP

1.4.1. Tiếp cận nông (shallow approach)

Imagenet trong Computer Vision

Trong xử lý ảnh chúng ta đều biết đến những pretrained models khét tiếng trên bộ dữ liệu Imagenet cùng với 1000 classes. Nhờ số lượng classes khủng nên phần lớn các nhãn vào phân loại ảnh thông thường đều xuất hiện thêm trong Imagenet và bạn có thể học chuyển giao lại những tác vụ xử lý hình ảnh rất cấp tốc và một thể lợi. Bọn họ cũng mong muốn NLP tất cả một tợp hợp những pretrained models như vậy, học thức từ model được huấn luyện trên những nguồn khoáng sản văn bạn dạng không nhãn (unlabeled text) cực kỳ dồi dào cùng sẵn có.

Khó khăn học bàn giao trong NLP

Tuy nhiên vào NLP việc học bàn giao là ko hề đơn giản dễ dàng như Computer Vision. Tại sao vậy?

Các phong cách xây dựng mạng deep CNN của Computer Vision được cho phép học chuyển giao trên mặt khác cả low-level và high-level features thông qua việc tận dụng tối đa lại các tham số từ đầy đủ layers của mô hình pretrained.

Nhưng vào NLP, những thuật toán cũ hơn như GLo
Ve, word2vec, fasttext chỉ cho phép sử dụng các biểu diễn véc tơ nhúng của trường đoản cú là những low-level features như là đầu vào cho layer đầu tiên của tế bào hình. Những layers sót lại giúp tạo ra high-level features thì ngoài ra được đào tạo lại trường đoản cú đầu.

Như vậy bọn họ chỉ bàn giao được các đặc trưng tại mức độ khôn xiết nông nên phương pháp này có cách gọi khác là tiếp cận nông (shallow approach). Vấn đề tiếp cận với những layers sâu rộng là không thể. Điều này tạo thành một giảm bớt rất lớn so với NLP so với Computer Vision trong vấn đề học đưa giao. Biện pháp tiếp cận nông vào học chuyển nhượng bàn giao còn được xem như thể feature-based.

Khi vận dụng feature-based, bọn họ sẽ tận dụng tối đa lại những biểu diễn trường đoản cú được đào tạo và huấn luyện trước bên trên những kiến trúc mô hình cố định và thắt chặt và những bộ văn bạn dạng có kích cỡ rất lớn để nâng cấp khả năng trình diễn từ trong không khí đa chiều. Một số trong những pretrained feature-based bạn có thể áp dụng trong giờ đồng hồ anh đã được đào tạo và giảng dạy sẵn chính là Glo
Ve, word2vec, fasttext, ELMo.

1.4.2. Học sâu (deep-learning)

Các quy mô NLP đột phá trong 2 năm trở lại phía trên như BERT, ELMo, ULMFit, Open
AI GPT đã được cho phép việc chuyển giao layers vào NLP khả thi hơn.

Chúng ta không chỉ có học chuyển giao được những đặc trưng nhưng mà còn chuyển nhượng bàn giao được kiến trúc của mô hình nhờ số lượng layers những hơn, chiều sâu của quy mô sâu hơn trươc đó.

Các phong cách xây dựng mới phân cung cấp theo level có tác dụng chuyển giao được phần đông cấp độ khác biệt của đặc trưng từ low-level tới high-level. Trong khi học nông chỉ bàn giao được low-level trên layer đầu tiên. Tất yếu low-level cũng nhập vai trò đặc biệt quan trọng trong các tác vụ NLP. Dẫu vậy high-level là những đặc thù có ý nghĩa sâu sắc hơn vì đó là những đặc thù đã được tinh luyện.

Người ta mong muốn rằng ULMFit, Open
AI GPT, BERT sẽ là những quy mô pretrained giúp tiến ngay sát hơn tới việc xây dựng một lớp những pretrained models Image

Khi học chuyển giao theo cách thức học sâu chúng ta sẽ tận dụng tối đa lại phong cách thiết kế từ quy mô pretrained và bổ sung cập nhật một số layers phía đằng sau để cân xứng với trọng trách huấn luyện. Các tham số của các layers gốc sẽ tiến hành fine-tunning lại. Chỉ một số ít các tham số ở layers bổ sung cập nhật được huấn luyện và đào tạo lại tự đầu. Bạn đọc có thể tham khảo thêm về fine-tuning tại bài bác 33 - cách thức Transfer Learning.

1.2. Phương thức transformer

1.2.1. Encoder với decoder trong BERT

Trước khi hiểu về BERT họ cùng ôn lại về chuyên môn transformer. Mình đã diễn giải kỹ thuật này tại bài 4 - Attention is all you need. Đây có tác dụng một lớp quy mô seq2seq tất cả 2 phrase encoder và decoder. Mô hình trọn vẹn không sử dụng các kiến trúc Recurrent Neural Network của RNN mà chỉ sử dụng các layers attention nhằm embedding các từ trong câu. Con kiến trúc rõ ràng của mô hình như sau:

Hình 1: Sơ đồ phong cách thiết kế transformer kết hợp với attention. Mối cung cấp attention is all you need.

Mô hình sẽ bao gồm 2 phase.

Encoder: bao gồm 6 layers liên tiếp nhau. Từng một layer sẽ bao gồm 1 sub-layer là Multi-Head Attention kết hợp với fully-connected layer như biểu thị ở nhánh encoder phía bên trái của hình vẽ. Hoàn thành quá trình encoder ta thu được một vector embedding output cho mỗi từ.

Decoder: bản vẽ xây dựng cũng bao gồm các layers tiếp tục nhau. Mỗi một layer của Decoder cũng có thể có các sub-layers gần tựa như như layer của Encoder nhưng bổ sung thêm sub-layer thứ nhất là Masked Multi-Head Attention có chức năng loại bỏ các từ về sau khỏi quy trình attention.

1.2.2. Các tiến trình self-attention với encoder-decoder attention

Trong kiến trúc transformer chúng ta áp dụng 2 dạng attention không giống nhau tại từng bước huấn luyện.

self-attention: Được sử dụng trong và một câu input, trên encoder hoặc trên decoder. Đây đó là attention được vận dụng tại những Multi-Head Attention ở đầu vào của cả hai phase encoder và decoder.

*

Hình 2: Sơ đồ vị trí áp dụng self-attention trong bản vẽ xây dựng transformer. Những véc tơ embedding của và một chuỗi encoder hoặc decoder tự links với nhau để đo lường và tính toán attention như hình mặt phải.

Encoder-decoder attention:

*

Hình 3: phía trái là vị trí áp dụng encoder-decoder attention. Bên phải là cách tính trọng số attention khi phối hợp mỗi véc tơ embedding ở decoder với cục bộ các véc tơ embedding làm việc encoder.

Sở dĩ được call là encoder-decoder attention vì đó là kiến trúc attention liên quan giữa các véc tơ embedding của encoder và decoder. Véc tơ context được giám sát trên encoder đã làm được tính tương quan với véc tơ decoder phải sẽ có chân thành và ý nghĩa giải thích toàn cảnh của từ bỏ tại vị trí time step decoder tương ứng. Sau khi phối kết hợp giữa véc tơ context và véc tơ decoder ta vẫn project tiếp qua 1 fully connected layer nhằm tính phân phối xác suất cho output.

Mặc dù cho có kiến trúc chỉ có các đổi khác attention nhưng mà Transformer lại có hiệu quả rất xuất sắc trong các tác vụ NLP như sentiment analysis và dịch máy.

2. Reviews về BERT

BERT là viết tắt của nhiều từ Bidirectional Encoder Representation from Transformer có nghĩa là mô hình màn trình diễn từ theo 2 chiều ứng dụng chuyên môn Transformer. BERT được thiết kế với để đào tạo và giảng dạy trước các biểu diễn tự (pre-train word embedding). Điểm đặc biệt ở BERT chính là nó hoàn toàn có thể điều hòa thăng bằng bối cảnh theo cả 2d trái và phải.

Cơ chế attention của Transformer vẫn truyền toàn cục các từ trong câu văn bên cạnh đó vào mô hình một lúc nhưng mà không cần suy nghĩ chiều của câu. Vì thế Transformer được xem như là huấn luyện hai chiều (bidirectional) tuy vậy trên thực tế chính xác hơn bạn có thể nói rằng đó là huấn luyện không chiều (non-directional). Đặc điểm này có thể chấp nhận được mô hình học được bối cảnh của tự dựa trên toàn thể các từ bao quanh nó bao gồm cả từ phía bên trái và từ bên phải.

2.1. Fine-tuning mã sản phẩm BERT

Một điểm đặc biệt quan trọng ở BERT mà lại các model embedding trước đó chưa từng có đó là tác dụng huấn luyện hoàn toàn có thể fine-tuning được. Họ sẽ chế tạo kiến trúc mã sản phẩm một output layer nhằm tùy biến đổi theo tác vụ huấn luyện.

*

Hình 4: tổng thể tiến trình pre-training với fine-tuning của BERT. Một loài kiến trúc tương tự được sử dụng cho tất cả pretrain-model với fine-tuning model. Họ sử dụng cùng một tham số pretrain nhằm khởi tạo quy mô cho những tác vụ down stream khác nhau. Trong suốt quy trình fine-tuning thì toàn bộ các thông số của layers học chuyển nhượng bàn giao sẽ được fine-tune. Đối với những tác vụ thực hiện input là một trong những cặp sequence (pair-sequence) ví như question và answering thì ta vẫn thêm token khởi tạo nên là sinh sống đầu câu, token trung tâm để ngăn cách 2 câu.

Tiến trình áp dụng fine-tuning sẽ như sau:

Bước 1: Embedding toàn thể các token của cặp câu bằng các véc tơ nhúng từ pretrain model. Các token embedding bao gồm cả 2 token là với để khắc ghi vị trí ban đầu của câu hỏi và vị trí ngăn cách giữa 2 câu. 2 token này sẽ tiến hành dự báo ở output để xác minh các phần Start/End Spand của câu output.

Bước 2: những embedding véc tơ tiếp đến sẽ được truyền vào phong cách xây dựng multi-head attention với rất nhiều block code (thường là 6, 12 hoặc 24 blocks tùy theo kiến trúc BERT). Ta thu được một véc tơ đầu ra ở encoder.

Bước 3: Để dự đoán phân phối phần trăm cho từng vị trí từ nghỉ ngơi decoder, làm việc mỗi time step bọn họ sẽ truyền vào decoder véc tơ output của encoder với véc tơ embedding input đầu vào của decoder nhằm tính encoder-decoder attention (cụ thể về encoder-decoder attention là gì các bạn xem lại mục 2.1.1). Tiếp đến projection qua liner layer cùng softmax nhằm thu được phân phối phần trăm cho output tương ứng ở time step $t$.

Bước 4: Trong hiệu quả trả ra ở output đầu ra của transformer ta sẽ thắt chặt và cố định kết trái của câu Question làm sao để cho trùng cùng với câu Question sinh hoạt input. Các vị trí còn sót lại sẽ là thành phần mở rộng Start/End Span tương ứng với câu trả lời tìm được từ câu input.

Lưu ý quy trình huấn luyện bọn họ sẽ fine-tune lại toàn cục các tham số của mã sản phẩm BERT vẫn cut off đứng top linear layer và đào tạo và giảng dạy lại từ đầu các thông số của linear layer mà họ thêm vào con kiến trúc mã sản phẩm BERT để customize lại tương xứng với bài xích toán.

Như vậy chúng ta đã tưởng tượng được model BERT được fine-tuning trong một tác vụ như thế nào rồi chứ? Tôi cá rằng qua quy trình thực hành ở bài xích sau các bạn sẽ nắm vững vàng hơn cách thức fine-tune BERT model.

2.3. Masked ML (MLM)

Masked ML là 1 tác vụ đến phép họ fine-tuning lại các biểu diễn từ trên những bộ tài liệu unsupervised-text bất kỳ. Bạn có thể áp dụng Masked ML cho đông đảo ngôn ngữ không giống nhau để tạo nên biểu diễn embedding đến chúng. Các bộ dữ liệu của tiếng anh có kích thước lên tới vài vài trăm tới vài nghìn GB được đào tạo trên BERT đã tạo thành những hiệu quả khá ấn tượng.

Bên bên dưới là sơ đồ đào tạo BERT theo tác vụ Masked ML

*

Hình 5: Sơ đồ kiến trúc BERT đến tá vụ Masked ML.

Theo đó:

Khoảng 15 % những token của câu input được sửa chữa thay thế bởi token trước lúc truyền vào model đại diện cho gần như từ bị bịt dấu (masked). Mô hình sẽ dựa trên các từ ko được che (non-masked) dấu xung quanh với đồng thời là bối cảnh của để tham dự báo giá trị cội của từ bỏ được bít dấu. Số lượng từ được đậy dấu được lựa chọn là một vài ít (15%) để xác suất bối cảnh chiếm nhiều hơn nữa (85%).

Bản hóa học của phong cách thiết kế BERT vẫn là một quy mô seq2seq bao gồm 2 phase encoder góp embedding các từ input với decoder giúp tìm ra phân phối xác suất của các từ ngơi nghỉ output. Phong cách thiết kế Transfomer encoder được cất giữ trong tác vụ Masked ML. Sau khi thực hiện self-attention với feed forward ta đang thu được những véc tơ embedding ở đầu ra là $O_1, O_2,…, O_5$

Để giám sát và đo lường phân phối xác suất cho từ bỏ output, họ thêm một Fully connect layer tức thì sau Transformer Encoder. Hàm softmax có chức năng tính toán triển lẵm xác suất. Con số units của fully connected layer phải bằng với kích cỡ của tự điển.

Cuối thuộc ta chiếm được véc tơ nhúng của mỗi một tự tại địa chỉ MASK vẫn là embedding véc tơ bớt chiều của véc tơ $O_i$ sau thời điểm đi qua fully connected layer như trình bày trên hình vẽ bên phải.

Hàm loss function của BERT sẽ bỏ lỡ mất đuối từ đều từ không trở nên che dấu cùng chỉ gửi vào mất mát của không ít từ bị bịt dấu. Vị đó quy mô sẽ hội tụ lâu bền hơn nhưng đấy là đặc tính bù trừ mang đến sự tăng thêm ý thức về bối cảnh. Câu hỏi lựa chọn hốt nhiên 15% số lượng các từ bị đậy dấu cũng tạo thành vô số những kịch phiên bản input cho quy mô huấn luyện nên quy mô sẽ rất cần được huấn luyện rất rất lâu mới học được toàn vẹn các khả năng.

2.4. Next Sentence Prediction (NSP)

Đây là một bài toán phân nhiều loại học có giám sát với 2 nhãn (hay còn gọi là phân một số loại nhị phân). Input nguồn vào của mô hình là một cặp câu (pair-sequence) sao cho 1/2 câu thứ hai được chắt lọc là câu tiếp theo của câu trước tiên và 50% được lựa chọn một cách bất chợt từ cỗ văn bạn dạng mà không tồn tại mối contact gì với câu vật dụng nhất. Nhãn của mô hình sẽ tương xứng với Is
Next lúc cặp câu là liên tục hoặc Not
Next nếu cặp câu ko liên tiếp.

Cũng tương tự như mô hình Question and Answering, họ cần đánh dấu các địa điểm đầu câu trước tiên bằng token và vị trí cuối các câu bởi token . Các token này có tính năng nhận biết những vị trí ban đầu và hoàn thành của từng câu trước tiên và sản phẩm hai.

Hình 6: Sơ đồ vật kiến trúc model BERT cho tác vụ NSP.

Thông tin input được preprocessing trước lúc đưa vào mô hình huấn luyện bao gồm:

Ngữ nghĩa của trường đoản cú (token embeddings): thông qua các embedding véc tơ mang lại từng từ. Các véc tơ được khởi tạo thành từ pretrain model.

Ngoài embedding biểu diễn từ của các từ vào câu, mô hình còn embedding thêm một trong những thông tin:

Loại câu (segment embeddings): bao gồm hai véc tơ là $E_A$ trường hợp từ ở trong câu thứ nhất và $E_B$ giả dụ từ thuộc câu sản phẩm hai.

Vị trí của từ vào câu (position embedding): là những véc tơ $E_0, …, E_10$. Tương tự như positional embedding vào transformer.

Véc tơ input đầu vào sẽ bằng tổng của tất cả ba yếu tố embedding theo từ, câu cùng vị trí.

3. Các kiến trúc mã sản phẩm BERT

Hiện tại có rất nhiều phiên bản khác nhau của mã sản phẩm BERT. Các phiên bản đều dựa vào việc biến đổi kiến trúc của Transformer tập trung ở 3 tham số: $L$: số lượng các block sub-layers vào transformer, $H$: size của embedding véc tơ (hay còn được gọi là hidden size), $A$: con số head vào multi-head layer, mỗi một head sẽ thực hiện một self-attention. Tên thường gọi của 2 bản vẽ xây dựng bao gồm:

$ extbfBERT_ extbfBASE(L=12, H=768, A=12)$: Tổng tham số 110 triệu.

$ extbfBERT_ extbfLARGE(L=24, H=1024, A=16)$: Tổng tham số 340 triệu.

Như vậy ở kiến trúc BERT Large họ tăng gấp hai số layer, tăng kích cỡ hidden form size của embedding véc tơ cấp 1.33 lần và tăng số lượng head trong multi-head layer vội 1.33 lần.

4. Thực hành mã sản phẩm BERT

4.1. Reviews về bài xích toán

Chúng ta đang cùng sản xuất một áp dụng Question & Answering có công dụng hỏi đáp.

Dữ liệu bao gồm:

Input: Một cặp câu , Question là câu hỏi và Paragraph là đoạn văn phiên bản chứa câu vấn đáp cho câu hỏi.

Output: Câu trả lời được trích suất trường đoản cú Paragraph.

Đây là một trong những ứng dụng hơi thú vụ mà lại tôi vẫn compile thành công xuất sắc trên sản phẩm công nghệ android. Các bạn cũng có thể download ứng dụng về và demo nghiệm BERT - Tensorflow Lite - Khanh Blog.

Xem thêm: Top 3 máy công nghệ cao giá tốt, top 3 máy thẩm mỹ công nghệ cao dành cho spa

Để triển khai tác vụ này tôi sẽ thực hiện pretrain model từ package transformer. Bạn có thể cài trải qua câu lệnh bên dưới.