محول في صور

في مقال سابق ، درسنا آلية الانتباه ، وهي طريقة شائعة للغاية في نماذج التعلم العميق الحديثة التي يمكنها تحسين مؤشرات أداء تطبيقات الترجمة الآلية العصبية. في هذه المقالة ، سنلقي نظرة على Transformer ، وهو نموذج يستخدم آلية الانتباه لزيادة سرعة التعلم. علاوة على ذلك ، بالنسبة لعدد من المهام ، تتفوق المحولات على نموذج الترجمة الآلية العصبية من Google. ومع ذلك ، فإن أكبر ميزة للمحولات هي كفاءتها العالية في ظروف التوازي. حتى Google Cloud توصي باستخدام Transformer كنموذج عند العمل على Cloud TPU . دعونا نحاول معرفة ما يتكون النموذج والوظائف التي يؤديها.


تم اقتراح نموذج Transformer لأول مرة في المقالة الاهتمام هو كل ما تحتاجه . يتوفر تطبيق على TensorFlow كجزء من حزمة Tensor2Tensor ، بالإضافة إلى ذلك ، قامت مجموعة من الباحثين في البرمجة اللغوية العصبية من جامعة هارفارد بإنشاء شرح توضيحي للمقال مع تطبيق على PyTorch . في هذا الدليل نفسه ، سنحاول تحديد الأفكار والمفاهيم الرئيسية ببساطة وبشكل مستمر ، والتي نأمل أن تساعد الأشخاص الذين ليس لديهم معرفة عميقة بمجال الموضوع على فهم هذا النموذج.


مراجعة عالية المستوى


دعونا ننظر إلى النموذج كنوع من الصندوق الأسود. في تطبيقات الترجمة الآلية ، يقبل جملة في لغة واحدة كمدخل ويعرض جملة في لغة أخرى.


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).


self-attention-matrix-calculation


. (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>» (« »).


vocabulary


.


, (, 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»;
  • .. , .

عمليات الإخراج


, :


ناتج_تخطيط_نموذج_إمكانية_التوزيع


, . , , (.: ). , , , – , .


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



, . , :



:



المؤلفون


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


All Articles