Transformer dalam gambar

Dalam artikel sebelumnya, kami meneliti mekanisme perhatian, metode yang sangat umum dalam model pembelajaran mendalam modern yang dapat meningkatkan indikator kinerja aplikasi terjemahan mesin saraf. Pada artikel ini, kita akan melihat Transformer, model yang menggunakan mekanisme perhatian untuk meningkatkan kecepatan belajar. Selain itu, untuk sejumlah tugas, Transformers mengungguli model terjemahan mesin saraf Google. Namun, keuntungan terbesar Transformers adalah efisiensi tinggi dalam kondisi paralelisasi. Bahkan Google Cloud merekomendasikan menggunakan Transformer sebagai model ketika bekerja di Cloud TPU . Mari kita coba mencari tahu apa model terdiri dan apa fungsinya.


Model Transformer pertama kali diusulkan dalam artikel Attention is All You Need . Implementasi pada TensorFlow tersedia sebagai bagian dari paket Tensor2Tensor , di samping itu, sekelompok peneliti NLP dari Harvard membuat anotasi panduan artikel dengan implementasi pada PyTorch . Dalam panduan yang sama ini, kami akan mencoba menguraikan ide dan konsep utama secara paling sederhana dan konsisten, yang kami harap akan membantu orang-orang yang tidak memiliki pengetahuan mendalam tentang bidang subjek untuk memahami model ini.


Tinjauan Tingkat Tinggi


Mari kita lihat modelnya sebagai semacam kotak hitam. Dalam aplikasi terjemahan mesin, ia menerima kalimat dalam satu bahasa sebagai input dan menampilkan kalimat dalam bahasa lain.


the_transformer_3


, , , .


The_transformer_encoders_decoders


ā€“ ; 6 , ( 6 , ). ā€“ , .


The_transformer_encoder_decoder_stack


, . :


Transformer_encoder


, , (self-attention), . .


(feed-forward neural network). .


, , ( , seq2seq).


Transformer_decoder



, , /, , .


NLP-, , , (word embeddings).


embeddings


512. .


. , , : 512 ( , ā€“ ). , , , , .


, .


encoder_with_tensors


: . , , , .


, .


!


, , ā€“ , , , .


encoder_with_tensors_2


. , .



, Ā« Ā» -, . , Ā«Attention is All You NeedĀ». , .


ā€“ , :


ā€The animal didn't cross the street because it was too tiredā€

Ā«itĀ» ? (street) (animal)? .


Ā«itĀ», , Ā«itĀ» Ā«animalĀ».


( ), , .


(RNN), , RNN /, , . ā€“ , , Ā«Ā» .


transformer_self-attention_visualization


Ā«itĀ» #5 ( ), Ā«The animalĀ» Ā«itĀ».


Tensor2Tensor, , .



, , , .


ā€“ ( ā€“ ): (Query vector), (Key vector) (Value vector). , .


, , . 64, / 512. , (multi-head attention) .


transformer_self_attention_vectors


x1 WQ q1, Ā«Ā», . Ā«Ā», Ā«Ā» Ā«Ā» .


Ā«Ā», Ā«Ā» Ā«Ā»?


, . , , , .


ā€“ (score). , ā€“ Ā«ThinkingĀ». . , .


. , #1, q1 k1, ā€” q1 k2.


transformer_self_attention_score


ā€“ 8 ( , ā€“ 64; , ), (softmax). , 1.


self-attention_softmax


- (softmax score) , . , -, , .


ā€“ - ( ). : , , ( , , 0.001).


ā€“ . ( ).


self-attention-output


. , . , , . , , .



ā€“ , . X , (WQ, WK, WV).


perhitungan matriks perhatian-diri


. (512, 4 ) q/k/v (64, 3 ).


, , 2-6 .


self-attention-matrix-calculation-2


.



, (multi-head attention). :


  1. . , , z1 , . Ā«The animal didnā€™t cross the street because it was too tiredĀ», , Ā«itĀ».
  2. Ā« Ā» (representation subspaces). , , // ( 8 Ā«Ā» , 8 /). . ( /) .

transformer_attention_heads_qkv


, WQ/WK/WV Ā«Ā», Q/K/V . , WQ/WK/WV Q/K/V .


, , 8 , 8 Z .


transformer_attention_heads_z


. , 8 ā€“ ( ), Z .


? WO.


transformer_attention_heads_weight_matrix_o


, , . , . , .


transformer_multi-headed_self-attention-recap


, Ā«Ā» , , , Ā«Ā» Ā«itĀ» :


transformer_self-attention_visualization_2


Ā«itĀ», Ā«Ā» Ā«the animalĀ», ā€” Ā«tiredĀ». , Ā«itĀ» Ā«animalĀ» Ā«tiredĀ».


Ā«Ā» , , .


transformer_self-attention_visualization_3



ā€” .


. , . , Q/K/V .


transformer_positional_encoding_vectors


, , , .


, 4, :


transformer_positional_encoding_example


?


: , , , ā€” .. 512 -1 1. , .


transformer_positional_encoding_large_example


20 () 512 (). , : ( ), ā€“ ( ). .


( 3.5). get_timing_signal_1d(). , , (, , , ).



, , , , ( , ) , (layer-normalization step).


transformer_resideual_layer_norm


, , :


transformer_resideual_layer_norm_2


. , :


transformer_resideual_layer_norm_3



, , , . , .


. K V. Ā«-Ā» , :


transformer_decoding_1


. ( ā€“ ).


, , . , , . , , , .


transformer_decoding_2


.


. ( ā€“inf) .


Ā«-Ā» , , , , .



. ? .


ā€“ , , , , (logits vector).


10 (Ā« Ā» ), . , 10 000 ā€“ . .


( , 1). .


transformer_decoder_output_softmax


, , .



, , , , .


, . .. , .


, 6 (Ā«aĀ», Ā«amĀ», Ā«iĀ», Ā«thanksĀ», Ā«studentĀ» Ā«<eos>Ā» (Ā« Ā»).


kosa kata


.


, (, one-hot-). , Ā«amĀ», :


one-hot-vocabulary-example


: one-hot- .


(loss function) ā€“ , , , .



, . ā€“ Ā«merciĀ» Ā«thanksĀ».


, , , Ā«thanksĀ». .. , .


transformer_logits_output_and_label


() , /. , , , .


? . , . -.


, . . , Ā«je suis Ć©tudiantĀ» ā€“ Ā«I am a studentĀ». , , , :


  • (6 , ā€“ 3000 10000);
  • , Ā«iĀ»;
  • , Ā«amĀ»;
  • .. , .

output_target_probability_distributions


, :


output_trained_model_probability_distributions


, . , , (.: ). , , , ā€“ , .


, , , , . , (greedy decoding). ā€“ , , 2 ( , Ā«IĀ» Ā«aĀ») , , : , Ā«IĀ», , , Ā«aĀ». , , . #2 #3 .. Ā« Ā» (beam search). (beam_size) (.. #1 #2), - (top_beams) ( ). .



, . , :



:



Penulis


Source: https://habr.com/ru/post/undefined/


All Articles