Kiến trúc mơ hình Transformer

Một phần của tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng (Trang 34 - 36)

CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 22

2.5.2.2 Encoder và Decoder

Encoder:Encoder là một khối gồm 6 layer giống nhau được xếp chồng lên nhau. Mỗi layer bao gồm hai sub-layer. Sub-layer thứ nhất là cơ chế Multi-Head Attention và sub-layer thứ hai là một lớp Fully Connected Feed-Forward theo từng vị trí. Xung quanh mỗi sub-layer có sử dụng một đường Residual Connection [18] và một Layer Normalization [19] tại ouput của mỗi sub-layer.

Decoder:Decoder có cấu trúc tương tự như Encoder, tuy nhiên ở phần Decoder có thêm một sub-layer thứ ba ở giữa hai sub-layer đó là layer Multi-Head Attention, layer này sẽ thực hiện tính tốn Attention của Decoder dựa vào output của Encoder. Layer Multi-Head Attention đầu tiên được sửa đổi lại với với cơ chế Masking (mặt nạ) để khi tính tốn output tại bước thứi, mơ hình chỉ có thể được biết thơng tin tại các bước nhỏ hơni, do đó được gọi là Masked Multi-Head Attention. Cả Encoder và Decoder sẽ có số chiều cho input và output chung làdmodel.

2.5.2.3 Attention

Scaled Dot-Product Attention Một cách tổng quát, cơ chế Attention có thể phát biểu dưới dạng công thức: Attention(Q,K,V) =so f tmax QK⊤ √ dk V

vớiQ,K,V là các vector hoặc ma trận input,dk là số chiều của input. Thông thườngQ,K,V là các ma trận và sẽ chính là output của Encoder hoặc Decoder. VớiQ=K=V =Out putEncoder ta có Self-Attention trong Encoder, vớiQ=K =V =Out putDecoder ta có Self-Attention trong Decoder, vớiQ=Out putDecodervàK=V =Out putEncoder ta có Intra-Attention trong Decoder.

Multi-Head Attention Tác giả Vaswani nhận thấy rằng, thay vì thực hiện một lần hàm Atten- tion trên Queries, Keys, Values của toàn bộ output của Encoder và Decoder với số chiềudmodel, ta có thể chiếu tuyến tính Queries, Keys, Valueshlần xuống chiều khơng gian dq,dk,dv tương ứng, với mỗi phiên bản của Queries, Keys, Values, ta thực hiện hàm Attention một cách song song, thu đượchoutput có số chiều làdv. Các output này sẽ được concat (nối) với nhau, sau đó được chiếu tuyến tính về chiều khơng gian gốc làdmodel.

Multi-Head Attention cho phép model cùng lúc học được cách chú ý vào nhiều thông tin khác nhau, tại các vị trí khác nhau. Nếu chỉ dùng Single-Head thì model chỉ có thể học được duy nhất một thơng tin mà thôi.

MultiHead(Q,K,V) =Concat(head1, ...,headh)WO vớiheadi=Attention

QWiQ,KWIK,VWiV

WiQ,WK i ,WV

i ,WOlà các ma trận chiếu và cũng là các ma trận tham số sẽ được học cùng model: WiQ∈Rdmodel×dk,WK

i ∈Rdmodel×dk,WV

i ∈Rdmodel×dv,WO∈Rhdv×dmodel.

Position-wise Feed-Forward Networks Theo sau mỗi lớp Attention là một lớp Fully Con- nected Feed-Forward network, lớp này sẽ được áp dùng cho mỗi vị trí của output của lớp Atten- tion một cách phân biệt và giống nhau. Lớp này gồm hai phép biến đổi tuyến tính và sử dụng hàm ReLU ở cuối.

CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 23

FFN(x) =max(0,xW1+b1)W2+b2

Các phép biến đổi này có cùng ma trận tham số ở các vị trí khác nhau trong cùng một layer, nhưng chúng khác nhau ở mỗi layer.

Positional Encoding Vì model khơng chứa các lớp RNN nên cần phải có cơ chế để model phân biệt được vị trí của các từ trong input, nếu khơng việc tính tốn các hàm Attention sẽ cho ra kết quả giống nhau ở bất kì vị trí nào. Để làm được việc này, ta cần thêm thơng tin về vị trí tương đối hoặc tuyệt đối của mỗi từ trong chuỗi input. Lớp Positional Encoding sẽ thêm thơng tin về vị trí tương đối của mỗi từ bằng cách cộng các giá trị Position Embedding vào các giá trị của Word Embedding của mỗi từ trong chuỗi input.

PE(pos,2i)=sinpos/10002i/d‘model

PE(pos,2i+1)=cos

pos/10002i/d‘model

với poslà vị trí cần encode vàilà chiều thứitrong vector encode.

2.6 Mơ hình Generative Pre-trained Transformer

GPT-2 là mơ hình được nhóm nghiên cứu OpenAI cơng bố vào năm 2019 [20]. Đây là một mơ hình ngơn ngữ có khả năng sinh các đoạn văn bản. Mơ hình được huấn luyện trên tập BookCorpus với hơn 7000 quyển sách thuộc nhiều thể loại khác nhau. Kiến trúc mơ hình GPT- 2 được thiết kế giống như GPT nhưng có nhiều tham số hơn và cả hai đều được thiết kế dựa trên phần decoder của mơ hình Transformer. Vì thiết kế dựa trên decoder của Transformer cho phép GPT có thể sinh liên tục từ tiếp theo. Tuy nhiên điều này làm mất đi khả năng hiểu được ngữ cảnh từ hai phía của câu.

Một phần của tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng (Trang 34 - 36)