{"id":18302,"date":"2024-07-20T18:16:24","date_gmt":"2024-07-20T13:46:24","guid":{"rendered":"https:\/\/cafetadris.com\/blog\/?p=18302"},"modified":"2024-08-02T11:50:09","modified_gmt":"2024-08-02T07:20:09","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%af%d8%a7%d9%85%d8%a8%d9%87%da%af%d8%a7%d9%85-%d9%be%db%8c%d8%a7%d8%af%d9%87%d8%b3%d8%a7%d8%b2%db%8c-%d9%85%d8%af%d9%84%d9%87","status":"publish","type":"post","link":"https:\/\/cafetadris.com\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%af%d8%a7%d9%85%d8%a8%d9%87%da%af%d8%a7%d9%85-%d9%be%db%8c%d8%a7%d8%af%d9%87%d8%b3%d8%a7%d8%b2%db%8c-%d9%85%d8%af%d9%84%d9%87\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch"},"content":{"rendered":"\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Transformer_(deep_learning_architecture)\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Transformer_(deep_learning_architecture)\" target=\"_blank\" rel=\"noreferrer noopener\">Transformers<\/a>)\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642\u060c \u0646\u0642\u0634 \u0645\u0647\u0645\u06cc \u062f\u0631 \u062a\u062d\u0648\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0627\u06cc\u0641\u0627 \u06a9\u0631\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0627 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u062e\u0648\u062f \u0642\u0627\u0628\u0644\u06cc\u062a \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u0648\u0627\u0632\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u0631\u0627 \u062f\u0627\u0631\u0646\u062f. PyTorch\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0646\u062d\u0648\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062a\u0646\u0648\u0639 \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0648 \u062a\u0634\u062e\u06cc\u0635 \u06af\u0641\u062a\u0627\u0631 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645 \u062a\u0627 \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627 \u0648 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0622\u0634\u0646\u0627 \u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0686\u06cc\u0633\u062a\u061f<\/h2>\n\n\n\n<p>\u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u062f\u0631 \u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f7 \u062a\u0648\u0633\u0637 \u062a\u06cc\u0645 \u062a\u062d\u0642\u06cc\u0642\u0627\u062a\u06cc \u06af\u0648\u06af\u0644 \u0645\u0639\u0631\u0641\u06cc \u0634\u062f. \u0645\u0642\u0627\u0644\u0647 \u0645\u0639\u0631\u0648\u0641 <a rel=\"noreferrer noopener\" href=\"https:\/\/arxiv.org\/abs\/1706.03762\" data-type=\"URL\" data-id=\"https:\/\/arxiv.org\/abs\/1706.03762\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Attention is All You Need<\/mark><\/a> &nbsp;\u0627\u06cc\u0646 \u0645\u062f\u0644 \u0631\u0627 \u0628\u0647 \u062c\u0647\u0627\u0646 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f \u0648 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 (Attention Mechanism)\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0647 \u062f\u0642\u062a\u200c\u0647\u0627\u06cc \u0628\u06cc\u200c\u0633\u0627\u0628\u0642\u0647\u200c\u0627\u06cc \u062f\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u062f\u0633\u062a \u06cc\u0627\u0641\u062a. \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0646\u062d\u0635\u0631\u0628\u0647\u200c\u0641\u0631\u062f \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u0648\u0627\u0632\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0647\u0631\u0647 \u0645\u06cc\u200c\u0628\u0631\u0646\u062f \u0648 \u0628\u0631\u062e\u0644\u0627\u0641 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u0645\u0627\u0646\u0646\u062fRNN \u0647\u0627 \u06a9\u0647 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0642\u0627\u062f\u0631\u0627\u0646\u062f \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0628\u0627\u0639\u062b \u0634\u062f\u0647 \u062a\u0627 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u062f\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u062a\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0646\u062f \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0644\u0627\u062a\u0631\u06cc \u062f\u0631 \u0648\u0638\u0627\u06cc\u0641 \u0645\u062e\u062a\u0644\u0641 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n\n\n\n<p>\u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 <a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=8NJ0xEcHICU&amp;feature=youtu.be\" data-type=\"URL\" data-id=\"https:\/\/www.youtube.com\/watch?v=8NJ0xEcHICU&amp;feature=youtu.be\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\u0627\u06cc\u0646 \u0648\u06cc\u062f\u0626\u0648\u06cc \u06cc\u0648\u062a\u06cc\u0648\u0628<\/mark><\/a> \u0631\u0627 \u06a9\u0647 \u0631\u0636\u0627 \u0634\u06a9\u0631\u0632\u0627\u062f \u062f\u0631 \u0622\u0646 \u0628\u0647\u200c\u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0645\u0642\u0627\u0644\u0647 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0646\u06cc\u0632 \u062a\u0645\u0627\u0634\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u0627\u062c\u0632\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627\u060c \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u06cc\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0627\u0635\u060c \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062e\u0648\u062f-\u062a\u0648\u062c\u0647 (Self-Attention) \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u062a\u0645\u0627\u0645 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0646\u06af\u0627\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0647\u0645\u06cc\u062a \u0647\u0631 \u0628\u062e\u0634 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0645\u062d\u0627\u0633\u0628\u0647 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u06cc\u06a9 \u0637\u0631\u062d \u0648\u0632\u0646\u200c\u062f\u0647\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0644\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648\u0631\u0648\u062f\u06cc \u062a\u0648\u062c\u0647 \u06a9\u0646\u062f. \u062f\u0631\u0648\u0627\u0642\u0639\u060c \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062e\u0648\u062f-\u062a\u0648\u062c\u0647 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u06a9\u0644\u0645\u0627\u062a \u06cc\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u062a\u0648\u0627\u0644\u06cc \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u062f \u0648 \u0628\u0647 \u0647\u0631 \u06cc\u06a9 \u0648\u0632\u0646\u06cc \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u0627\u0647\u0645\u06cc\u062a \u0622\u0646 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06cc\u06a9 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u062e\u0635 \u0627\u0633\u062a.<\/p>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u062a\u0631\u062c\u0645\u0647 \u06cc\u06a9 \u062c\u0645\u0644\u0647\u060c \u0647\u0646\u06af\u0627\u0645 \u062a\u0631\u062c\u0645\u0647 \u06cc\u06a9 \u06a9\u0644\u0645\u0647 \u062e\u0627\u0635\u060c \u0645\u062f\u0644 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0647 \u06a9\u0644\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u0648\u0631\u06cc \u06cc\u0627 \u0645\u0639\u0646\u0627\u06cc\u06cc \u0628\u0627 \u06a9\u0644\u0645\u0647 \u0647\u062f\u0641 \u0645\u0631\u062a\u0628\u0637 \u0647\u0633\u062a\u0646\u062f\u060c \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u062f. \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u0628\u06cc\u0646 \u06a9\u0644\u0645\u0627\u062a \u06cc\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0641\u0627\u0635\u0644\u0647 \u0622\u0646\u200c\u0647\u0627 \u0627\u0632 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u062f\u0631 \u062a\u0648\u0627\u0644\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0627\u0632 \u0686\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u061f<\/h3>\n\n\n\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0627\u0632 \u062f\u0648 \u0628\u062e\u0634 \u0627\u0635\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u0627\u0646\u06a9\u0648\u062f\u0631 (Encoder) \u0648 \u062f\u06a9\u0648\u062f\u0631 (Decoder) \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u0646\u06a9\u0648\u062f\u0631 \u0648\u0638\u06cc\u0641\u0647 \u062f\u0627\u0631\u062f \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062e\u0644\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062f\u06a9\u0648\u062f\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062e\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0631 \u062f\u0648 \u0628\u062e\u0634 \u0627\u0632 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0628\u0647\u0631\u0647 \u0645\u06cc\u200c\u0628\u0631\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0645\u0631\u06a9\u0632 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u0647\u0645\u200c\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc \u06cc\u0627 \u062e\u0631\u0648\u062c\u06cc \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u062f.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-139.png\" alt=\"\" class=\"wp-image-18310\" width=\"431\" height=\"672\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-139.png 477w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-139-192x300.png 192w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/figure><\/div>\n\n\n<p>\u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0645\u0642\u0627\u0644\u0647 <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><a rel=\"noreferrer noopener\" href=\"https:\/\/cafetadris.com\/blog\/%D9%85%D8%AF%D9%84-%D8%AA%D8%B1%D9%86%D8%B3%D9%81%D9%88%D8%B1%D9%85%D8%B1\/\" target=\"_blank\">\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0686\u06cc\u0633\u062a\u061f<\/a> <\/mark>\u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n\n\n\n<p>\u067e\u0633 \u0627\u0632 \u0645\u0639\u0631\u0641\u06cc\u060c \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u0647\u200c\u0633\u0631\u0639\u062a \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc\u200c\u062a\u0631 \u0645\u0627\u0646\u0646\u062f RNN \u0634\u062f\u0647 \u0648 \u0628\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u062c\u062f\u06cc\u062f\u06cc \u062f\u0631 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0648 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u062f\u0631 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0645\u0627\u0646\u0646\u062f \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc\u060c \u062a\u0648\u0644\u06cc\u062f \u0645\u062a\u0646\u060c \u062e\u0644\u0627\u0635\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u067e\u0627\u0633\u062e \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0628\u0647 \u06a9\u0627\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u0648 \u0646\u062a\u0627\u06cc\u062c \u0628\u0633\u06cc\u0627\u0631 \u0628\u0647\u062a\u0631\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u06cc\u0646 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u200c\u0647\u200c\u0627\u0646\u062f. \u0627\u0632 \u0632\u0645\u0627\u0646 \u0645\u0639\u0631\u0641\u06cc\u200c\u0634\u0627\u0646 \u062a\u0627\u06a9\u0646\u0648\u0646\u060c \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0648 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631\u06cc \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0645\u0627\u0646\u0646\u062f BERT \u0648 GPT \u0646\u06cc\u0632 \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u06a9\u0647 \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627 \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0622\u0648\u0631\u062f\u0647\u200c\u0627\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">&nbsp;PyTorch \u0648 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627<\/h2>\n\n\n\n<p>PyTorch \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0628\u0631\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0641\u06cc\u0633\u0628\u0648\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0633\u0627\u062f\u06af\u06cc \u062f\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u06cc \u0628\u0627\u0644\u0627 \u0648 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0642\u0648\u06cc \u0627\u0632 GPU \u0647\u0627\u060c \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u062d\u0628\u0648\u0628\u200c\u062a\u0631\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u062f\u0631 \u0645\u06cc\u0627\u0646 \u067e\u0698\u0648\u0647\u0634\u06af\u0631\u0627\u0646 \u0648 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0627\u0645\u06a9\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641\u060c \u0622\u0645\u0648\u0632\u0634 \u0648 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0627\u0632 \u062c\u0645\u0644\u0647 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u062f\u0631\u062f\u0633\u0631 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0645\u0642\u0627\u0644\u0647 <a rel=\"noreferrer noopener\" href=\"https:\/\/cafetadris.com\/blog\/%d8%a2%d8%b4%d9%86%d8%a7%db%8c%db%8c-%da%a9%d8%a7%d9%85%d9%84-%d8%a8%d8%a7-%da%a9%d8%aa%d8%a7%d8%a8%d8%ae%d8%a7%d9%86%d9%87-pytorch-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1%db%8c-%d9%82%d8%af%d8%b1%d8%aa%d9%85\/\" data-type=\"URL\" data-id=\"https:\/\/cafetadris.com\/blog\/%d8%a2%d8%b4%d9%86%d8%a7%db%8c%db%8c-%da%a9%d8%a7%d9%85%d9%84-%d8%a8%d8%a7-%da%a9%d8%aa%d8%a7%d8%a8%d8%ae%d8%a7%d9%86%d9%87-pytorch-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1%db%8c-%d9%82%d8%af%d8%b1%d8%aa%d9%85\/\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\u0622\u0634\u0646\u0627\u06cc\u06cc \u06a9\u0627\u0645\u0644 \u0628\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 PyTorch<\/mark><\/a> \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627&nbsp;PyTorch<\/h3>\n\n\n\n<p>\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0634\u0627\u0631\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u062f\u0631 \u062d\u0648\u0632\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0632 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0628\u0647 \u06a9\u0627\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642\u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc<\/h4>\n\n\n\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0631\u062c\u0633\u062a\u0647\u200c\u062a\u0631\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u060c \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc \u0627\u0633\u062a. \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0628\u0627\u0644\u0627 \u062f\u0631 \u062f\u0631\u06a9 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u062c\u0645\u0644\u0627\u062a\u060c \u062f\u0631 \u062a\u0631\u062c\u0645\u0647 \u0645\u062a\u0648\u0646 \u0627\u0632 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0647 \u0632\u0628\u0627\u0646 \u062f\u06cc\u06af\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0624\u062b\u0631 \u0647\u0633\u062a\u0646\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0631\u0686\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0633\u0627\u062e\u062a \u06a9\u0647 \u062f\u0642\u062a \u0648 \u0633\u0631\u0639\u062a \u0628\u0627\u0644\u0627\u06cc\u06cc \u062f\u0627\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0642\u0627\u062f\u0631\u0646\u062f \u062a\u0631\u062c\u0645\u0647\u200c\u0647\u0627\u06cc \u0637\u0628\u06cc\u0639\u06cc \u0648 \u062f\u0642\u06cc\u0642\u200c\u062a\u0631\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc<\/h4>\n\n\n\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u062f\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc (NLP) \u0646\u06cc\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u06af\u0633\u062a\u0631\u062f\u0647\u200c\u0627\u06cc \u062f\u0627\u0631\u0646\u062f. \u0627\u0632 \u062c\u0645\u0644\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0647 \u062a\u062d\u0644\u06cc\u0644 \u0645\u062a\u0648\u0646\u060c \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u0641\u0627\u0647\u06cc\u0645 \u0648 \u0645\u0639\u0627\u0646\u06cc\u060c \u062e\u0644\u0627\u0635\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062a\u0648\u0646\u060c \u067e\u0627\u0633\u062e \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0648 \u062a\u0648\u0644\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062a\u0648\u0646 \u0627\u0634\u0627\u0631\u0647 \u06a9\u0631\u062f. \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628\u060c \u0628\u0647 \u067e\u0698\u0648\u0647\u0634\u06af\u0631\u0627\u0646 \u0648 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 NLP \u0631\u0627 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0634\u062e\u06cc\u0635 \u06af\u0641\u062a\u0627\u0631<\/h4>\n\n\n\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u062a\u0634\u062e\u06cc\u0635 \u06af\u0641\u062a\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0641\u0631\u0627\u0648\u0627\u0646\u06cc \u062f\u0627\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u06af\u0641\u062a\u0627\u0631 \u0627\u0646\u0633\u0627\u0646 \u0631\u0627 \u0628\u0647 \u0645\u062a\u0646 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u0646\u062f \u0648 \u062f\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0645\u0627\u0646\u0646\u062f \u062f\u0633\u062a\u06cc\u0627\u0631\u0647\u0627\u06cc \u0635\u0648\u062a\u06cc\u060c \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u067e\u0627\u0633\u062e\u06af\u0648\u06cc\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u062a\u0628\u062f\u06cc\u0644 \u06af\u0641\u062a\u0627\u0631 \u0628\u0647 \u0645\u062a\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u0646\u062f. \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627\u060c \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0634\u062e\u06cc\u0635 \u06af\u0641\u062a\u0627\u0631 \u0628\u0627 \u062f\u0642\u062a \u0628\u0627\u0644\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0648\u0644\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062a\u0646<\/h4>\n\n\n\n<p>\u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627\u060c \u062a\u0648\u0644\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062a\u0646 \u0627\u0633\u062a. \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0645\u0627\u0646\u0646\u062f GPT \u0642\u0627\u062f\u0631 \u0647\u0633\u062a\u0646\u062f \u0645\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f\u06cc \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u0646\u062f \u06a9\u0647 \u0627\u0632 \u0646\u0638\u0631 \u0632\u0628\u0627\u0646 \u0648 \u0633\u0628\u06a9 \u0628\u0647 \u0645\u062a\u0648\u0646 \u0627\u0646\u0633\u0627\u0646\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0646\u0632\u062f\u06cc\u06a9 \u0647\u0633\u062a\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u062a\u0646\u06cc\u060c \u0646\u0648\u0634\u062a\u0646 \u0645\u0642\u0627\u0644\u0627\u062a\u060c \u062f\u0627\u0633\u062a\u0627\u0646\u200c\u0633\u0631\u0627\u06cc\u06cc \u0648 \u062d\u062a\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06a9\u0627\u0644\u0645\u0627\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631 \u0686\u062a\u200c\u0628\u0627\u062a\u200c\u0647\u0627 \u0628\u0647 \u06a9\u0627\u0631 \u0631\u0648\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u062d\u0644\u06cc\u0644 \u0627\u062d\u0633\u0627\u0633\u0627\u062a<\/h4>\n\n\n\n<p>\u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0645\u062a\u0648\u0646 \u0631\u0627 \u062a\u062d\u0644\u06cc\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0634\u062e\u06cc\u0635 \u062f\u0647\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u062d\u0644\u06cc\u0644 \u0646\u0638\u0631\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u060c \u0628\u0631\u0631\u0633\u06cc \u0628\u0627\u0632\u062e\u0648\u0631\u062f\u0647\u0627 \u0648 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0645\u062b\u0628\u062a\u060c \u0645\u0646\u0641\u06cc \u0648 \u062e\u0646\u062b\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a. \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u062d\u0644\u06cc\u0644 \u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0642\u062a \u0628\u0627\u0644\u0627\u06cc\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0632\u0645\u06cc\u0646\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u067e\u0627\u0633\u062e \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a<\/h4>\n\n\n\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u067e\u0627\u0633\u062e \u062f\u0647\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u060c \u0686\u062a\u200c\u0628\u0627\u062a\u200c\u0647\u0627 \u0648 \u062f\u0633\u062a\u06cc\u0627\u0631\u0647\u0627\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u0645\u0624\u062b\u0631 \u0627\u0633\u062a. \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 \u062f\u0631\u06a9 \u0633\u0648\u0627\u0644\u0627\u062a \u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u0627\u0632 \u0645\u062a\u0648\u0646 \u0645\u0648\u062c\u0648\u062f\u060c \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch<\/h2>\n\n\n\n<p>\u0633\u0627\u062e\u062a \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0631\u0686 \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u0631\u06cc\u0641 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631<\/h3>\n\n\n\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (Multi-Head Attention)\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0645\u0648\u0636\u0639\u06cc (Position-Wise Feed-Forward Networks) \u0648 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0645\u0648\u0636\u0639\u06cc &nbsp;(Positional Encoding) &nbsp;\u0645\u06cc\u200c\u0628\u0627\u0634\u062f. \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u0644 \u062a\u0639\u0631\u06cc\u0641 \u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0630\u0627\u0631<\/h3>\n\n\n\n<p>\u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 (Encoder Block) \u0645\u0633\u0626\u0648\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0648 \u062a\u0648\u0644\u06cc\u062f \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u0634\u0627\u0645\u0644 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0648 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0645\u0648\u0636\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062a\u0631\u06a9\u06cc\u0628 \u0628\u0647 \u0645\u062f\u0644 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u0627\u06cc \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0631\u062a\u06cc\u0628 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0634\u0627<\/h3>\n\n\n\n<p>\u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0634\u0627 (Decoder Block) \u0645\u0633\u0626\u0648\u0644 \u062a\u0648\u0644\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u0646\u06cc\u0632 \u0634\u0627\u0645\u0644 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0648 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0645\u0648\u0636\u0639\u06cc \u0627\u0633\u062a. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0634\u0627 \u0628\u0647 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0646\u06cc\u0632 \u062a\u0648\u062c\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647 \u062e\u0631\u0648\u062c\u06cc \u0645\u0631\u062a\u0628\u0637 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0631\u06a9\u06cc\u0628 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0648 \u0631\u0645\u0632\u06af\u0634\u0627<\/h3>\n\n\n\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0648 \u0631\u0645\u0632\u06af\u0634\u0627 \u0628\u0627 \u0647\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u062a\u0627 \u0634\u0628\u06a9\u0647 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u06a9\u0627\u0645\u0644 \u0633\u0627\u062e\u062a\u0647 \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0634\u0628\u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0645\u062e\u062a\u0644\u0641\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f. \u062a\u0631\u06a9\u06cc\u0628 \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0648 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0648\u0627\u0644\u06cc\u060c \u0631\u0648\u0627\u0628\u0637 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u06cc\u0646 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0648 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627 \u0631\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0647\u062a\u0631\u06cc \u062f\u0631 \u0627\u0646\u062c\u0627\u0645 \u0648\u0638\u0627\u06cc\u0641 \u0645\u062e\u062a\u0644\u0641 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch<\/h2>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0627\u0628\u062a\u062f\u0627 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>import torch<\/code><br \/>\n<code>import torch.nn as nn<\/code><br \/>\n<code>import torch.optim as optim<\/code><br \/>\n<code>import torch.utils.data as data<\/code><br \/>\n<code>import math<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u0631\u06cc\u0641 \u0628\u0644\u0648\u06a9\u200c \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631<\/h3>\n\n\n\n<p>\u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (Multi-Head Attention) \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0647\u0631 \u062c\u0641\u062a \u0627\u0632 \u0645\u0648\u0642\u0639\u06cc\u062a\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u062f\u0646\u0628\u0627\u0644\u0647 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0633\u0631 \u062a\u0648\u062c\u0647 \u06cc\u0627 attention head \u0627\u0633\u062a \u06a9\u0647 \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631\u06a9 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 MultiHeadAttention \u06a9\u0647 \u0627\u0632 nn.Module \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class MultiHeadAttention(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, d_model, num_heads):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(MultiHeadAttention, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Ensure that the model dimension (d_model) is divisible by the number of heads<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert d_model % num_heads == 0, \"d_model must be divisible by num_heads\"<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Initialize dimensions<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.d_model = d_model <span style=\"color:green\"># Model's dimension<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.num_heads = num_heads <span style=\"color:green\"># Number of attention heads<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.d_k = d_model \/\/ num_heads <span style=\"color:green\"># Dimension of each head's key, query, and value<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Linear layers for transforming inputs<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.W_q = nn.Linear(d_model, d_model) <span style=\"color:green\"># Query transformation<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.W_k = nn.Linear(d_model, d_model) <span style=\"color:green\"># Key transformation<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.W_v = nn.Linear(d_model, d_model) <span style=\"color:green\"># Value transformation<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.W_o = nn.Linear(d_model, d_model) <span style=\"color:green\"># Output transformation<\/span><\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d_model \u0627\u0628\u0639\u0627\u062f \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_heads \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0628\u0631\u0627\u06cc \u062a\u0642\u0633\u06cc\u0645 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0622\u0646\u200c\u0647\u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p>\u062a\u0627\u0628\u0639 __init__ \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0627\u0628\u062a\u062f\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0627\u0628\u0639\u0627\u062f \u0648\u0631\u0648\u062f\u06cc \u0645\u062f\u0644 \u0642\u0627\u0628\u0644 \u062a\u0642\u0633\u06cc\u0645 \u0628\u0631 \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0628\u0627\u0634\u062f. \u0633\u067e\u0633 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0635\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u0627\u062a\u0631\u06cc\u0633\u200c\u0647\u0627\u06cc \u06a9\u0648\u0626\u0631\u06cc (Query)\u060c \u06a9\u0644\u06cc\u062f (Key)\u060c \u0645\u0642\u062f\u0627\u0631 (Value) \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc (Output) \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0635\u0644 \u0647\u0645\u0627\u0646 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc Linear \u062f\u0631 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0642\u0633\u0645\u062a\u06cc \u0627\u0632 \u062c\u0632\u0648\u0647 \u062a\u062f\u0631\u06cc\u0633 \u0645\u0628\u062d\u062b \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u0631\u0636\u0627 \u0634\u06a9\u0631\u0632\u0627\u062f \u0627\u0633\u062a:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-140.png\" alt=\"\" class=\"wp-image-18311\" width=\"652\" height=\"213\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-140.png 937w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-140-300x98.png 300w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-140-768x251.png 768w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-140-585x191.png 585w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><\/figure><\/div>\n\n\n<h4 class=\"wp-block-heading\">\u0686\u0631\u0627 \u062a\u0639\u062f\u0627\u062f \u0646\u0648\u0631\u0648\u0646\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062e\u0637\u06cc \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 d_model \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f\u061f<\/h4>\n\n\n\n<p>\u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645 \u0628\u0627\u0639\u062b \u062d\u0641\u0638 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0627\u0628\u0639\u0627\u062f\u06cc \u062f\u0631 \u0637\u0648\u0644 \u0645\u062f\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0647\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0648\u0631\u0648\u062f\u06cc \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0628\u0627\u0634\u062f. \u062f\u0631\u0648\u0627\u0642\u0639\u060c \u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647\u060c \u0647\u0631 \u0633\u0631 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0637\u0648\u0631 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc Key\u060c Query \u0648 Value \u0631\u0627 \u0628\u0627 \u0627\u0628\u0639\u0627\u062f d_k \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0633\u067e\u0633 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0647\u0645\u0647 \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u062a\u0631\u06a9\u06cc\u0628 \u0634\u062f\u0647 \u062a\u0627 \u06cc\u06a9 \u062e\u0631\u0648\u062c\u06cc \u0646\u0647\u0627\u06cc\u06cc \u0648\u0627\u062d\u062f \u0628\u0627 \u0628\u0639\u062f d_model \u062a\u0648\u0644\u06cc\u062f \u0634\u0648\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u0628\u0639\u0627\u062f d_model \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0645\u0627\u06cc\u0646\u062f\u0647 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0639\u0646\u0627\u06cc\u06cc \u0645\u0647\u0645 \u062f\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0627\u0634\u062f \u0648 \u0628\u0627 \u062d\u0641\u0638 \u0627\u06cc\u0646 \u0627\u0628\u0639\u0627\u062f \u062f\u0631 \u0648\u0631\u0648\u062f\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062e\u0637\u06cc\u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0639\u0646\u0627\u06cc\u06cc \u0645\u0647\u0645 \u062d\u0641\u0638 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0645\u062f\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-141.png\" alt=\"\" class=\"wp-image-18312\" width=\"404\" height=\"523\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-141.png 548w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-141-232x300.png 232w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/figure><\/div>\n\n\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 d_model \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u06f5\u06f1\u06f2 \u0648 \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 num_heads \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u06f8 \u0628\u0627\u0634\u062f\u060c d_k \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u06f6\u06f4 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f \u0648 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062e\u0637\u06cc \u0628\u0627\u06cc\u062f \u062a\u0628\u062f\u06cc\u0644\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627 \u0628\u0639\u062f \u06f5\u06f1\u06f2 \u0631\u0627 \u0628\u0647 \u0628\u0639\u062f \u06f5\u06f1\u06f2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u0646\u062f\u060c \u0633\u067e\u0633 \u0628\u0647 \u06f8 \u0633\u0631 \u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u0647 \u0648 \u0647\u0631 \u0633\u0631 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0628\u0639\u062f \u06f6\u06f4 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f \u0648 \u067e\u0633 \u0627\u0632 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0648\u0633\u0637 \u0633\u0631\u0647\u0627\u060c \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627 \u0628\u0627 \u0647\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u0634\u062f\u0647 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u0628\u0639\u062f \u06f5\u06f1\u06f2 \u0628\u0631\u06af\u0631\u062f\u0646\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u062a\u0646\u0638\u06cc\u0645 \u0648\u0631\u0648\u062f\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062e\u0637\u06cc \u0628\u0627 d_model \u0627\u06cc\u0646 \u0641\u0631\u0627\u06cc\u0646\u062f \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0627\u0628\u0639\u0627\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0645\u062f\u0644 \u062d\u0641\u0638 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0645\u062d\u0627\u0633\u0628\u0647 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647<\/h4>\n\n\n\n<p>\u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u062a\u0627\u0628\u0639 scaled_dot_product_attention \u0627\u0633\u062a:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def scaled_dot_product_attention(self, Q, K, V, mask=None):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Calculate attention scores<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attn_scores = torch.matmul(Q, K.transpose(-2, -1)) \/ math.sqrt(self.d_k)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Apply mask if provided (useful for preventing attention to certain parts like padding)<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if mask is not None:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attn_scores = attn_scores.masked_fill(mask == 0, -1e9)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Softmax is applied to obtain attention probabilities<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attn_probs = torch.softmax(attn_scores, dim=-1)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Multiply by values to obtain the final output<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output = torch.matmul(attn_probs, V)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return output<\/code><\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0627\u0628\u062a\u062f\u0627 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 (Attention Scores) \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0635\u0644 \u0636\u0631\u0628 \u0646\u0642\u0637\u0647\u200c\u0627\u06cc \u0628\u06cc\u0646 \u0645\u0627\u062a\u0631\u06cc\u0633 \u06a9\u0648\u0626\u0631\u06cc\u200c\u0647\u0627 (Q) \u0648 \u062a\u0631\u0627\u0646\u0647\u0627\u062f\u0647\u200c\u06cc \u0645\u0627\u062a\u0631\u06cc\u0633 \u06a9\u0644\u06cc\u062f\u0647\u0627 (K) \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u062d\u0627\u0635\u0644 \u0636\u0631\u0628 \u0646\u0642\u0637\u0647\u200c\u0627\u06cc (torch.matmul) \u0645\u0646\u062c\u0631 \u0628\u0647 \u062a\u0648\u0644\u06cc\u062f \u06cc\u06a9 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0647\u0631 \u0639\u0646\u0635\u0631 \u0622\u0646 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u0647\u0645\u0628\u0633\u062a\u06af\u06cc \u06cc\u0627 \u062a\u0634\u0627\u0628\u0647 \u0628\u06cc\u0646 \u06cc\u06a9 \u06a9\u0648\u0626\u0631\u06cc \u062e\u0627\u0635 \u0648 \u06cc\u06a9 \u06a9\u0644\u06cc\u062f \u062e\u0627\u0635 \u0627\u0633\u062a. \u0633\u067e\u0633\u060c \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u0632\u0631\u06af \u0634\u062f\u0646 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0642\u062f\u0627\u0631 \u0622\u0646\u200c\u0647\u0627\u060c \u0627\u06cc\u0646 \u0646\u0645\u0631\u0627\u062a \u0631\u0627 \u0628\u0631 \u062c\u0630\u0631 \u0628\u064f\u0639\u062f \u06a9\u0644\u06cc\u062f (d_k) \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062a\u0639\u0627\u062f\u0644 \u0648 \u0642\u0627\u0628\u0644 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627\u0642\u06cc \u0628\u0645\u0627\u0646\u0646\u062f.<\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0646\u06cc\u0632 \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u0631\u0636\u0627 \u0634\u06a9\u0631\u0632\u0627\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u062a\u062f\u0631\u06cc\u0633 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-143.png\" alt=\"\" class=\"wp-image-18314\" width=\"703\" height=\"344\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-143.png 817w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-143-300x147.png 300w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-143-768x376.png 768w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-143-585x286.png 585w\" sizes=\"(max-width: 703px) 100vw, 703px\" \/><\/figure><\/div>\n\n\n<h5 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u0645\u0627\u0633\u06a9<\/h5>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631\u0635\u0648\u0631\u062a \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0634\u0631\u0637 None \u0646\u0628\u0648\u062f\u0646 \u0645\u062a\u063a\u06cc\u0631 mask\u060c \u0628\u0631\u062e\u06cc \u0627\u0632 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc\u200c\u0628\u0631\u06cc\u0645. \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0632\u0628\u0627\u0646\u06cc\u060c \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0645\u06a9\u0627\u0646\u200c\u0647\u0627\u06cc \u067e\u062f\u0634\u062f\u0647 \u06cc\u0627 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0622\u06cc\u0646\u062f\u0647 \u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0645\u0627\u062a\u0631\u06cc\u0633 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 (Q.KT) \u0631\u0627 \u0628\u0627 \u0645\u0627\u062a\u0631\u06cc\u0633 mask \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u062a\u0645\u0627\u0645 \u062f\u0631\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0635\u0641\u0631 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0647 \u0628\u0647\u200c\u062c\u0632 \u062f\u0631\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0631\u0627\u06cc\u0647 \u0645\u062a\u0646\u0627\u0638\u0631\u0634\u0627\u0646 \u062f\u0631 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647\u060c \u062d\u0630\u0641 \u06af\u0631\u062f\u0646\u062f. \u062f\u0631 \u0622\u0646 \u062f\u0631\u0627\u06cc\u0647\u200c\u0647\u0627 \u0627\u0632 \u0645\u0627\u062a\u0631\u06cc\u0633 mask\u060c \u0628\u0647\u200c\u062c\u0627\u06cc \u0635\u0641\u0631 \u06cc\u06a9 \u0639\u062f\u062f \u0645\u0646\u0641\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0628\u0632\u0631\u06af \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0648 \u0628\u0647\u200c\u0627\u06cc\u0646\u200c\u062a\u0631\u062a\u06cc\u0628 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc\u060c \u0645\u0627\u062a\u0631\u06cc\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a \u06a9\u0647 \u0628\u0631\u062e\u06cc \u062f\u0631\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0628\u0647\u200c\u0639\u0644\u062a \u062c\u0645\u0639 \u0634\u062f\u0646 \u0628\u0627 \u0635\u0641\u0631 \u0628\u06cc\u200c\u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f \u0648 \u0628\u0631\u062e\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0647\u200c\u0639\u0644\u062a \u062c\u0645\u0639 \u0634\u062f\u0646 \u0628\u0627 \u06cc\u06a9 \u0639\u062f\u062f \u0628\u0633\u06cc\u0627\u0631 \u0645\u0646\u0641\u06cc\u060c \u0628\u0647 \u0645\u0646\u0641\u06cc \u0628\u06cc\u200c\u0646\u0647\u0627\u06cc\u062a \u0645\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u0645\u062d\u0627\u0633\u0628\u0647 \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647<\/h5>\n\n\n\n<p>\u062f\u0631\u0627\u062f\u0627\u0645\u0647\u060c \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u062a\u0627\u0628\u0639 softmax \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062a\u0627\u0628\u0639 softmax \u0646\u0645\u0631\u0627\u062a \u062a\u0648\u062c\u0647 \u0631\u0627 \u0628\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u06cc\u0646 \u06f0 \u0648 \u06f1 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0645\u062c\u0645\u0648\u0639 \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631 \u0637\u0648\u0644 \u06cc\u06a9 \u0628\u064f\u0639\u062f \u0645\u0634\u062e\u0635 (\u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0639\u062f \u0622\u062e\u0631) \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u06f1 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u062a \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 (Attention weights) \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u0645\u06cc\u0632\u0627\u0646 \u062a\u0648\u062c\u0647 \u0647\u0631 \u06a9\u0648\u0626\u0631\u06cc \u0628\u0647 \u0647\u0631 \u06a9\u0644\u06cc\u062f \u0647\u0633\u062a\u0646\u062f. \u0631\u0636\u0627 \u0634\u06a9\u0631\u0632\u0627\u062f \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u062f\u0631\u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0646\u06cc\u0632 \u0635\u062d\u0628\u062a \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-144.png\" alt=\"\" class=\"wp-image-18317\" width=\"646\" height=\"438\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-144.png 868w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-144-300x204.png 300w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-144-768x522.png 768w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-144-585x398.png 585w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/figure><\/div>\n\n\n<h5 class=\"wp-block-heading\">\u0645\u062d\u0627\u0633\u0628\u0647 \u062e\u0631\u0648\u062c\u06cc<\/h5>\n\n\n\n<p>\u062f\u0631\u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u062e\u0631\u0648\u062c\u06cc \u0646\u0647\u0627\u06cc\u06cc \u062a\u0648\u062c\u0647 \u0631\u0627 \u0628\u0627 \u0636\u0631\u0628 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u062f\u0631 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0645\u0642\u0627\u062f\u06cc\u0631 (V) \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u062a\u0648\u0644\u06cc\u062f \u06cc\u06a9 \u0645\u0627\u062a\u0631\u06cc\u0633 \u062e\u0631\u0648\u062c\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062e\u062a\u0644\u0641 \u0628\u0627 \u0648\u0632\u0646\u200c\u062f\u0647\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u0648\u062c\u0647\u200c\u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647 \u0639\u0628\u0627\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0647\u0631 \u0639\u0646\u0635\u0631 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u062a\u0648\u062c\u0647 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0647 \u0634\u062f\u0647 \u0627\u0632 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644\u060c \u0648\u0632\u0646\u200c\u062f\u0647\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0642\u0633\u06cc\u0645 \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647<\/h4>\n\n\n\n<p>\u062f\u0631\u0627\u062f\u0627\u0645\u0647 \u062a\u0627\u0628\u0639 split_heads \u0631\u0627 \u062f\u0631 \u06a9\u0644\u0627\u0633 MultiHeadAttentions \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def split_heads(self, x):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Reshape the input to have num_heads for multi-head attention<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;batch_size, seq_length, d_model = x.size()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x.view(batch_size, seq_length, self.num_heads, self.d_k).transpose(1, 2)<\/code><\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u0645\u062a\u062f \u062f\u0631 \u0645\u062f\u0644 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (Multi-Head Attention) \u0627\u0628\u0639\u0627\u062f \u0648\u0631\u0648\u062f\u06cc x \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0645\u062f\u0644 \u0628\u062a\u0648\u0627\u0646\u062f \u0686\u0646\u062f\u06cc\u0646 \u0633\u0631 \u062a\u0648\u062c\u0647 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f \u0648 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0645\u0648\u0627\u0632\u06cc \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0633\u0627\u0632\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631\u060c \u0627\u0628\u062a\u062f\u0627 \u0627\u0628\u0639\u0627\u062f \u0648\u0631\u0648\u062f\u06cc \u0634\u0627\u0645\u0644 batch_size (\u062a\u0639\u062f\u0627\u062f \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627 \u062f\u0631 \u0647\u0631 \u062f\u0633\u062a\u0647)\u060c seq_length (\u0637\u0648\u0644 \u062f\u0646\u0628\u0627\u0644\u0647) \u0648 d_model (\u0628\u0639\u062f \u0645\u062f\u0644) \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc\u200c\u0634\u0648\u062f. \u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 view\u060c \u0634\u06a9\u0644 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 (batch_size, seq_length, num_heads, d_k) \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0642\u0628\u0644\u0627 \u06af\u0641\u062a\u06cc\u0645\u060c d_k \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 \u0635\u062d\u06cc\u062d \u062a\u0642\u0633\u06cc\u0645 d_model \u0628\u0631 num_heads \u0627\u0633\u062a. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 transpose\u060c \u0627\u0628\u0639\u0627\u062f \u062f\u0648\u0645 \u0648 \u0633\u0648\u0645 \u062c\u0627\u0628\u062c\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u062a\u0627 \u0634\u06a9\u0644 \u0646\u0647\u0627\u06cc\u06cc \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0635\u0648\u0631\u062a (batch_size, num_heads, seq_length, d_k) \u062f\u0631\u0622\u06cc\u062f. \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0634\u06a9\u0644 \u0648 \u062c\u0627\u0628\u062c\u0627\u06cc\u06cc \u0627\u0628\u0639\u0627\u062f \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0648 \u0645\u0648\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u0631 \u062a\u0648\u062c\u0647 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f\u060c \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0648 \u062f\u0642\u062a \u0645\u062f\u0644 \u062f\u0631 \u062f\u0631\u06a9 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0631\u06a9\u06cc\u0628 \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647<\/h4>\n\n\n\n<p>\u062a\u0627\u0628\u0639 \u06cc\u0627 \u0645\u062a\u062f \u0628\u0639\u062f\u06cc \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633\u060c combined_heads \u0627\u0633\u062a:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def combine_heads(self, x):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Combine the multiple heads back to original shape<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;batch_size, _, seq_length, d_k = x.size()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x.transpose(1, 2).contiguous().view(batch_size, seq_length, self.d_model)<\/code><\/p>\n\n\n\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u0645\u062a\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0647\u0631 \u0633\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u062f\u0627\u06af\u0627\u0646\u0647\u060c \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0627\u0647\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 \u0648\u0627\u062d\u062f \u0628\u0627 \u0627\u0628\u0639\u0627\u062f (batch_size, seq_length, d_model) \u0628\u0631\u0633\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0627\u0628\u0639 forward<\/h4>\n\n\n\n<p>\u0622\u062e\u0631\u06cc\u0646 \u062a\u0627\u0628\u0639 \u06a9\u0644\u0627\u0633 MultiHeadAttention \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0645\u0631\u0627\u062d\u0644 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0686\u0646\u062f\u0633\u0631 \u062a\u0648\u062c\u0647 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0648 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u0645\u0646\u0627\u0633\u0628\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, Q, K, V, mask=None):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Apply linear transformations and split heads<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Q = self.split_heads(self.W_q(Q))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;K = self.split_heads(self.W_k(K))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V = self.split_heads(self.W_v(V))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Perform scaled dot-product attention<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attn_output = self.scaled_dot_product_attention(Q, K, V, mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Combine heads and apply output transformation<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output = self.W_o(self.combine_heads(attn_output))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return output<\/code><\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0627\u0628\u062a\u062f\u0627 \u0645\u0627\u062a\u0631\u06cc\u0633\u200c\u0647\u0627\u06cc \u06a9\u0648\u0626\u0631\u06cc\u200c (Q)\u060c \u06a9\u0644\u06cc\u062f (K) \u0648 \u0645\u0642\u062f\u0627\u0631 (V) \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062e\u0637\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627 \u062a\u0639\u0631\u06cc\u0641\u0634\u0627\u0646 \u06a9\u0631\u062f\u06cc\u0645\u060c \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u0627\u0628\u0639\u0627\u062f \u0645\u0646\u0627\u0633\u0628 \u062a\u0628\u062f\u06cc\u0644 \u0634\u0648\u0646\u062f. \u0633\u067e\u0633\u060c \u0627\u06cc\u0646 \u062a\u0646\u0633\u0648\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u062f split_heads \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0633\u0631 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u062a\u0648\u062c\u0647 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u062a\u062f scaled_dot_product_attention \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0645\u062d\u0627\u0633\u0628\u0647 \u0648 \u062f\u0631 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0645\u0642\u0627\u062f\u06cc\u0631 (V) \u0636\u0631\u0628 \u062f\u0627\u062e\u0644\u06cc \u0634\u0648\u0646\u062f. \u0628\u0639\u062f \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647\u060c \u0646\u062a\u0627\u06cc\u062c \u0647\u0631 \u0633\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u062f combine_heads \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 \u0648\u0627\u062d\u062f \u062a\u0628\u062f\u0644\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0627\u06cc\u0646 \u062a\u0646\u0633\u0648\u0631 \u062a\u0631\u06a9\u06cc\u0628\u200c\u0634\u062f\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc \u062e\u0631\u0648\u062c\u06cc \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0646\u062a\u06cc\u062c\u0647 \u0646\u0647\u0627\u06cc\u06cc \u0622\u0645\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u0645\u062a\u062f \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0631\u0648\u0627\u0628\u0637 \u0645\u062e\u062a\u0644\u0641 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06a9\u0634\u0641 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u0631\u06cc\u0641 \u0628\u0644\u0648\u06a9\u200c \u067e\u06cc\u0634\u200c\u062e\u0648\u0631<\/h3>\n\n\n\n<p>\u0628\u0644\u0648\u06a9\u200c \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (FeedForward) \u06a9\u0644\u0627\u0633 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645. \u0646\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0631\u0627 PositionWiseFeedForward \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0622\u0646 \u0647\u0645 \u0627\u0632 nn.Module \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class PositionWiseFeedForward(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, d_model, d_ff):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(PositionWiseFeedForward, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.fc1 = nn.Linear(d_model, d_ff)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.fc2 = nn.Linear(d_ff, d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.relu = nn.ReLU()<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d_model \u0628\u0639\u062f \u0648\u0631\u0648\u062f\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u0645\u062f\u0644 \u0648 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u062a\u0639\u062f\u0627\u062f \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u062f\u0644 \u062f\u0631 \u0647\u0631 \u0644\u062d\u0638\u0647 \u0627\u0632 \u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li>d_ff \u0628\u0639\u062f \u0644\u0627\u06cc\u0647 \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0648 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u062a\u0639\u062f\u0627\u062f \u0648\u0627\u062d\u062f\u0647\u0627\u06cc \u0646\u0648\u0631\u0648\u0646\u06cc \u062f\u0631 \u0644\u0627\u06cc\u0647 \u0645\u062e\u0641\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.fc1 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u062a\u0635\u0644 (\u062e\u0637\u06cc) \u0627\u0633\u062a \u06a9\u0647 \u0627\u0628\u0639\u0627\u062f \u0648\u0631\u0648\u062f\u06cc \u0622\u0646 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 d_model \u0648 \u0627\u0628\u0639\u0627\u062f \u062e\u0631\u0648\u062c\u06cc \u0622\u0646 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 d_ff \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.fc2 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc \u06a9\u0647 \u0627\u0628\u0639\u0627\u062f \u0648\u0631\u0648\u062f\u06cc \u0622\u0646 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 d_ff \u0648 \u0627\u0628\u0639\u0627\u062f \u062e\u0631\u0648\u062c\u06cc \u0622\u0646 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 d_model \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.relu \u062a\u0627\u0628\u0639 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632 ReLU (\u0648\u0627\u062d\u062f \u062e\u0637\u06cc \u0627\u0635\u0644\u0627\u062d\u200c\u0634\u062f\u0647) \u0627\u0633\u062a\u060c \u06a9\u0647 \u063a\u06cc\u0631\u062e\u0637\u06cc \u0628\u0648\u062f\u0646 \u0631\u0627 \u0628\u06cc\u0646 \u062f\u0648 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0628\u0647 \u0645\u062f\u0644 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0631\u0648\u0627\u0628\u0637 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0631\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u062f.<\/li>\n<\/ul>\n\n\n\n<p>\u0645\u062a\u062f forward \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, x):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.fc1(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.relu(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.fc2(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x<\/code><\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u0645\u062a\u062f \u062f\u0631 \u06a9\u0644\u0627\u0633 PositionWiseFeedForward \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0639\u0645\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0627\u0628\u062a\u062f\u0627 \u0648\u0631\u0648\u062f\u06cc x \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0648\u0644\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc (fc1) \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u0641\u0636\u0627\u06cc \u0648\u06cc\u0698\u06af\u06cc \u0628\u0627 \u0627\u0628\u0639\u0627\u062f d_ff \u062a\u0628\u062f\u06cc\u0644 \u0634\u0648\u062f. \u0633\u067e\u0633 \u062e\u0631\u0648\u062c\u06cc fc1 \u0631\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc ReLU \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u062e\u0631\u0648\u062c\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062f\u0648\u0645\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc (fc2) \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0627\u0628\u0639\u0627\u062f \u0627\u0635\u0644\u06cc d_model \u0628\u0627\u0632\u06af\u0631\u062f\u062f. \u0633\u067e\u0633 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062e\u0631\u0648\u062c\u06cc \u0646\u0647\u0627\u06cc\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u0631\u06cc\u0641 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0648\u0636\u0639\u06cc<\/h3>\n\n\n\n<p>\u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0648\u0636\u0639\u06cc (Positional Embedding) \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0642\u0639\u06cc\u062a \u0631\u0627 \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0645\u062f\u0644 \u0628\u062a\u0648\u0627\u0646\u062f \u062a\u0631\u062a\u06cc\u0628 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u062f\u0631\u06a9 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0646\u06cc\u0632 \u0627\u0632 nn.Module \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class PositionalEncoding(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, d_model, max_seq_length):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(PositionalEncoding, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pe = torch.zeros(max_seq_length, d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;position = torch.arange(0, max_seq_length, dtype=torch.float).unsqueeze(1)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div_term = torch.exp(torch.arange(0, d_model, 2).float() * -(math.log(10000.0) \/ d_model))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pe[:, 0::2] = torch.sin(position * div_term)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pe[:, 1::2] = torch.cos(position * div_term)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.register_buffer('pe', pe.unsqueeze(0))<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d_model \u0628\u0639\u062f \u0648\u0631\u0648\u062f\u06cc \u0645\u062f\u0644 \u0627\u0633\u062a \u0648 \u062a\u0639\u062f\u0627\u062f \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u062f\u0644 \u062f\u0631 \u0647\u0631 \u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n\n\n\n<li>max_seq_length \u062d\u062f\u0627\u06a9\u062b\u0631 \u0637\u0648\u0644 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u200c\u0647\u0627\u06cc \u0645\u0648\u0636\u0639\u06cc \u0627\u0632 \u067e\u06cc\u0634 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>pe \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 \u062a\u0645\u0627\u0645 \u0635\u0641\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u200c\u0647\u0627\u06cc \u0645\u0648\u0636\u0639\u06cc \u067e\u0631 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/li>\n\n\n\n<li>position \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 \u062d\u0627\u0648\u06cc \u0627\u0646\u062f\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0642\u0639\u06cc\u062a \u0628\u0631\u0627\u06cc \u0647\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>div_term \u06cc\u06a9 \u0639\u0628\u0627\u0631\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc \u0627\u0646\u062f\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0642\u0639\u06cc\u062a \u0628\u0647 \u0631\u0648\u0634 \u062e\u0627\u0635\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u062a\u0627\u0628\u0639 \u0633\u06cc\u0646\u0648\u0633 \u0628\u0631 \u0631\u0648\u06cc \u0627\u0646\u062f\u06cc\u0633\u200c\u0647\u0627\u06cc \u0632\u0648\u062c \u0648 \u062a\u0627\u0628\u0639 \u06a9\u0633\u06cc\u0646\u0648\u0633 \u0628\u0631 \u0631\u0648\u06cc \u0627\u0646\u062f\u06cc\u0633\u200c\u0647\u0627\u06cc \u0641\u0631\u062f \u062a\u0646\u0633\u0648\u0631 pe \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>pe \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0628\u0627\u0641\u0631 \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u0645\u0627\u0698\u0648\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f \u0627\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0642\u0627\u0628\u0644 \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<\/ul>\n\n\n\n<p>\u0645\u062a\u062f forward \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, x):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x + self.pe[:, :x.size(1)]<\/code><\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u200c\u0647\u0627\u06cc \u0645\u0648\u0636\u0639\u06cc \u0631\u0627 \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc x \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0645\u062f\u0644 \u0628\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0642\u0639\u06cc\u062a \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0632\u06cc\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062c\u0632\u0648\u0647 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062a\u062f\u0631\u06cc\u0633 \u0627\u06cc\u0646 \u0645\u0628\u062d\u062b \u0631\u0627 \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u0631\u0636\u0627 \u0634\u06a9\u0631\u0632\u0627\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u0648 \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631\u06cc \u0627\u0632 \u0622\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-145.png\" alt=\"\" class=\"wp-image-18318\" width=\"478\" height=\"431\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-145.png 616w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-145-300x270.png 300w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-145-585x527.png 585w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0630\u0627\u0631<\/h3>\n\n\n\n<p>\u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0628\u062e\u0634 \u0646\u062e\u0633\u062a \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0627\u0633\u062a. \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627 \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0647\u0633\u062a\u0646\u062f \u0648 \u0634\u0627\u0645\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (Multi-Head Attention) \u0648 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0639\u0635\u0628\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (Feed-Forward Neural Network) \u0645\u06cc\u200c\u0628\u0627\u0634\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u062f\u0631 PyTorch \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 nn.Module \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class EncoderLayer(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, d_model, num_heads, d_ff, dropout):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(EncoderLayer, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.self_attn = MultiHeadAttention(d_model, num_heads)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.feed_forward = PositionWiseFeedForward(d_model, d_ff)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.norm1 = nn.LayerNorm(d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.norm2 = nn.LayerNorm(d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.dropout = nn.Dropout(dropout)<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d_model \u0628\u0639\u062f \u0648\u0631\u0648\u062f\u06cc \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_heads \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u062f\u0631 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>d_ff \u0628\u0639\u062f \u0644\u0627\u06cc\u0647 \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0639\u0635\u0628\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>dropout \u0646\u0631\u062e \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p>\u0628\u0627 \u062a\u0627\u0628\u0639 __init__ \u06a9\u0644\u0627\u0633 EncoderBlock \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0634\u0627\u0645\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631\u060c \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0645\u0648\u0636\u0639\u06cc\u060c \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0648 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0647\u0645\u06af\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0639\u0646\u0627\u062f\u0627\u0631 \u0627\u0632 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0647 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631\u06cc \u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0642\u0639\u06cc\u062a \u0648 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0645\u062a\u062f forward \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0647\u200c\u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, x, mask):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Self-attention + Residual Connection + Layer Norm<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attn_output = self.self_attn(x, x, x, mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.norm1(x + self.dropout(attn_output))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Feed Forward + Residual Connection + Layer Norm<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ff_output = self.feed_forward(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.norm2(x + self.dropout(ff_output))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>x \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>mask \u0645\u0627\u0633\u06a9 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p>\u0645\u062a\u062f forward \u062f\u0631 \u06a9\u0644\u0627\u0633 EncoderBlock \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0622\u0646 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u062a\u062f \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631<\/h4>\n\n\n\n<p>\u062f\u0631 \u062e\u0637 \u0627\u0648\u0644 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u0648\u0631\u0648\u062f\u06cc x \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0647\u0631 \u0633\u0647 \u0645\u0627\u062a\u0631\u06cc\u0633\u200c \u06a9\u0648\u0626\u0631\u06cc\u200c\u060c \u06a9\u0644\u06cc\u062f \u0648 \u0645\u0642\u062f\u0627\u0631 \u0628\u0647 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (self.self_attn) \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0645\u062a\u063a\u06cc\u0631 \u0645\u0627\u0633\u06a9 (mask) \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u200c\u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u0645\u060c \u062f\u0631\u0635\u0648\u0631\u062a \u062a\u0645\u0627\u06cc\u0644\u060c \u062a\u0648\u062c\u0647 \u0645\u062f\u0644 \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0645\u06a9\u0627\u0646\u200c\u0647\u0627 \u0645\u062d\u062f\u0648\u062f \u0634\u0648\u062f. \u0627\u0644\u0628\u062a\u0647 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0627\u0635\u0644\u06cc\u060c \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0628\u062f\u0648\u0646 \u0645\u0627\u0633\u06a9 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 (attn_output) \u0627\u0633\u062a \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0644\u0627\u06cc\u0647\u200c \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0627\u0648\u0644<\/h4>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (attn_output) \u0631\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f\u06cc \u0627\u0635\u0644\u06cc (x) \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 (Residual Connection) \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a (self.dropout) \u0628\u0631 \u0631\u0648\u06cc \u062d\u0627\u0635\u0644 \u0627\u06cc\u0646 \u062c\u0645\u0639 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f. \u0646\u062a\u06cc\u062c\u0647 \u062d\u0627\u0635\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u0627 \u062a\u0648\u0633\u0637 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc (self.norm1) \u0646\u0631\u0645\u0627\u0644\u200c \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0647\u0645\u0648\u0627\u0631\u06cc \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0631 \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u062f\u0642\u06cc\u0642\u200c\u062a\u0631 \u0627\u062a\u0641\u0627\u0642\u06cc \u06a9\u0647 \u062f\u0631 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u0627\u0641\u062a\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0639\u06a9\u0633 \u0632\u06cc\u0631 \u06a9\u0647 \u0628\u062e\u0634\u06cc \u0627\u0632 \u062c\u0632\u0648\u0647 \u06a9\u0644\u0627\u0633 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u0631\u0636\u0627 \u0634\u06a9\u0631\u0632\u0627\u062f \u062f\u0631 \u062a\u062f\u0631\u06cc\u0633 \u0627\u06cc\u0646 \u0645\u0628\u062d\u062b \u0627\u0633\u062a\u060c \u0645\u0631\u0627\u062c\u0639\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631<\/h4>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0648\u0631\u0648\u062f\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 (x) \u0631\u0627 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (self.feed_forward) \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0634\u0648\u062f. \u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 (ff_output) \u0627\u0633\u062a \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u062f\u0648\u0645<\/h4>\n\n\n\n<p>\u062f\u0631\u0627\u062f\u0627\u0645\u0647\u060c \u062e\u0631\u0648\u062c\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (ff_output) \u0631\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0642\u0628\u0644\u06cc (x) \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u062f\u06cc\u06af\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u062f\u06cc\u06af\u0631 \u0628\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u062c\u0645\u0639 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0646\u062a\u06cc\u062c\u0647 \u062d\u0627\u0635\u0644 \u062a\u0648\u0633\u0637 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0628\u0639\u062f\u06cc (self.norm2) \u0646\u0631\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0634\u0627<\/h3>\n\n\n\n<p>\u0631\u0645\u0632\u06af\u0634\u0627 \u0628\u062e\u0634 \u062f\u0648\u0645 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0627\u0633\u062a. \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0634\u0627 \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627 \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0647\u0633\u062a\u0646\u062f \u0648 \u0634\u0627\u0645\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (Multi-Head Attention) \u0648 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0639\u0635\u0628\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (Feed-Forward Neural Network)&nbsp; \u0645\u06cc\u200c\u0628\u0627\u0634\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0631\u0645\u0632\u06af\u0634\u0627 \u0631\u0627 \u062f\u0631 PyTorch \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 nn.Module \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class DecoderLayer(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, d_model, num_heads, d_ff, dropout=0.1):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(DecoderLayer, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.self_attn = MultiHeadAttention(d_model, num_heads)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.enc_dec_attn = MultiHeadAttention(d_model, num_heads)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.feed_forward = PositionWiseFeedForward(d_model, d_ff)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.norm1 = nn.LayerNorm(d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.norm2 = nn.LayerNorm(d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.norm3 = nn.LayerNorm(d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.dropout = nn.Dropout(dropout)<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d_model \u0628\u0639\u062f \u0648\u0631\u0648\u062f\u06cc \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_heads \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u062f\u0631 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>d_ff \u0628\u0639\u062f \u0644\u0627\u06cc\u0647 \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0639\u0635\u0628\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>dropout \u0646\u0631\u062e \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p>\u0628\u0627 \u062a\u0627\u0628\u0639 __init__ \u06a9\u0644\u0627\u0633 DecoderBlock \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0634\u0627\u0645\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631\u060c \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u060c \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0645\u0648\u0636\u0639\u06cc\u060c \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0648 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0647\u0645\u06af\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0639\u0646\u0627\u062f\u0627\u0631 \u0627\u0632 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0647 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631\u06cc \u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0642\u0639\u06cc\u062a \u0648 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0645\u062a\u062f forward \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0647\u200c\u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, x, enc_output, src_mask, tgt_mask):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Self-attention + Residual Connection + Layer Norm<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attn_output = self.self_attn(x, x, x, tgt_mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.norm1(x + self.dropout(attn_output))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Encoder-Decoder attention + Residual Connection + Layer Norm<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enc_dec_attn_output = self.enc_dec_attn(x, enc_output, enc_output, src_mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.norm2(x + self.dropout(enc_dec_attn_output))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Feed Forward + Residual Connection + Layer Norm<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ff_output = self.feed_forward(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.norm3(x + self.dropout(ff_output))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>x \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0631\u0645\u0632\u06af\u0634\u0627 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>enc_output \u062e\u0631\u0648\u062c\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0645\u0631\u0628\u0648\u0637\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>src_mask \u0645\u0627\u0633\u06a9 \u0645\u0646\u0628\u0639 \u0628\u0631\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u062e\u0631\u0648\u062c\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>tgt_mask \u0645\u0627\u0633\u06a9 \u0647\u062f\u0641 \u0628\u0631\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u0631\u0645\u0632\u06af\u0634\u0627 \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p>\u0645\u062a\u062f forward \u062f\u0631 \u06a9\u0644\u0627\u0633 DecoderBlock \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u062a\u062f \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631<\/h4>\n\n\n\n<p>\u062f\u0631 \u062e\u0637 \u0627\u0648\u0644 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u0648\u0631\u0648\u062f\u06cc x \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0647\u0631 \u0633\u0647 \u0645\u0627\u062a\u0631\u06cc\u0633 \u06a9\u0648\u0626\u0631\u06cc\u200c\u060c \u06a9\u0644\u06cc\u062f \u0648 \u0645\u0642\u062f\u0627\u0631 \u0628\u0647 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (self.self_attn) \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0645\u0627\u0633\u06a9 \u0647\u062f\u0641 (tgt_mask) \u0646\u06cc\u0632 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u062a\u0648\u062c\u0647 \u0645\u062f\u0644 \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0645\u06a9\u0627\u0646\u200c\u0647\u0627 \u0645\u062d\u062f\u0648\u062f \u0634\u0648\u062f. \u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 (attn_output) \u0627\u0633\u062a \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0627\u0648\u0644<\/h4>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (attn_output) \u0631\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f\u06cc \u0627\u0635\u0644\u06cc (x) \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a (self.dropout) \u0628\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u062c\u0645\u0639 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f. \u0646\u062a\u06cc\u062c\u0647 \u062d\u0627\u0635\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u0627 \u062a\u0648\u0633\u0637 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc (self.norm1) \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0628\u0647 \u062e\u0631\u0648\u062c\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631<\/h4>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0648\u0631\u0648\u062f\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 (x) \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u0627\u062a\u0631\u06cc\u0633 \u06a9\u0648\u0626\u0631\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u0644\u0627\u06cc\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 (enc_output) \u0631\u0627 \u0647\u0645 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u0627\u062a\u0631\u06cc\u0633 \u06a9\u0644\u06cc\u062f \u0648 \u0647\u0645 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0645\u0642\u062f\u0627\u0631 \u0628\u0647 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0631\u0645\u0632\u06af\u0630\u0627\u0631-\u0631\u0645\u0632\u06af\u0634\u0627 (self.enc_dec_attn) \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062f\u0631\u0627\u06cc\u0646\u062c\u0627 \u0645\u0627\u0633\u06a9 \u0648\u0631\u0648\u062f\u06cc (src_mask) \u0646\u06cc\u0632 \u062f\u0631\u0635\u0648\u0631\u062a \u062a\u0645\u0627\u06cc\u0644 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0644\u0628\u062a\u0647 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0627\u0635\u0644\u06cc\u060c \u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0632 \u0645\u0627\u0633\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a. \u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 (enc_dec_attn_output) &nbsp;\u0627\u0633\u062a \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u062a\u0648\u062c\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631-\u0631\u0645\u0632\u06af\u0634\u0627 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u062f\u0648\u0645<\/h4>\n\n\n\n<p>\u062f\u0631\u0627\u062f\u0627\u0645\u0647\u060c \u062e\u0631\u0648\u062c\u06cc \u062a\u0648\u062c\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631-\u0631\u0645\u0632\u06af\u0634\u0627 (enc_dec_attn_output) \u0631\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644\u06cc (x) \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u062f\u06cc\u06af\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0628\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u062d\u0627\u0635\u0644 \u062c\u0645\u0639 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0646\u062a\u06cc\u062c\u0647 \u062d\u0627\u0635\u0644 \u062a\u0648\u0633\u0637 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0628\u0639\u062f\u06cc (self.norm2) \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631<\/h4>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0648\u0631\u0648\u062f\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (self.feed_forward) \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0646\u062f. \u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u062a\u0646\u0633\u0648\u0631 (ff_output) \u0627\u0633\u062a \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0633\u0648\u0645<\/h4>\n\n\n\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062e\u0631\u0648\u062c\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 (ff_output) \u0631\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f\u06cc \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0642\u0628\u0644\u06cc (x) \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u062f\u06cc\u06af\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0646\u06cc\u0632 \u0628\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u062d\u0627\u0635\u0644 \u062c\u0645\u0639 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0646\u062a\u06cc\u062c\u0647 \u062a\u0648\u0633\u0637 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0628\u0639\u062f\u06cc (self.norm3) \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u0628\u0644\u0648\u06a9 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631<\/h3>\n\n\n\n<p>\u0628\u0639\u062f \u0627\u0632 \u0633\u0627\u062e\u062a \u062a\u0645\u0627\u0645\u06cc \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u0647 \u06a9\u0647 \u062f\u0631 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0642\u0628\u0644 \u0628\u0647 \u0622\u0646 \u0627\u0634\u0627\u0631\u0647 \u0634\u062f\u060c \u062d\u0627\u0644 \u0646\u0648\u0628\u062a \u0628\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0645\u06cc\u200c\u0631\u0633\u062f. \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0634\u0627\u0645\u0644 \u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0648 \u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0634\u0627 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0647\u0645 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631\u0627\u062f\u0627\u0645\u0647\u060c \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f. \u0645\u0627\u0646\u0646\u062f \u0633\u0627\u06cc\u0631 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u060c \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u0646\u06cc\u0632 \u0627\u0632 \u06a9\u0644\u0627\u0633 nn.Module \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class Transformer(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, src_vocab_size, tgt_vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(Transformer, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.encoder_embedding = nn.Embedding(src_vocab_size, d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.decoder_embedding = nn.Embedding(tgt_vocab_size, d_model)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.positional_encoding = PositionalEncoding(d_model, max_seq_length)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.encoder_layers = nn.ModuleList([EncoderLayer(d_model, num_heads, d_ff, dropout) for _ in range(num_layers)])<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.decoder_layers = nn.ModuleList([DecoderLayer(d_model, num_heads, d_ff, dropout) for _ in range(num_layers)])<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.fc = nn.Linear(d_model, tgt_vocab_size)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.dropout = nn.Dropout(dropout)<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>src_vocab_size \u0627\u0646\u062f\u0627\u0632\u0647 \u0648\u0627\u0698\u06af\u0627\u0646 \u0645\u062a\u0646 \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>tgt_vocab_size \u0627\u0646\u062f\u0627\u0632\u0647 \u0648\u0627\u0698\u06af\u0627\u0646 \u0645\u062a\u0646 \u0647\u062f\u0641 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>d_model \u0628\u0639\u062f \u0648\u0631\u0648\u062f\u06cc \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_heads \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u062f\u0631 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_layers \u062a\u0639\u062f\u0627\u062f \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0648 \u0631\u0645\u0632\u06af\u0634\u0627 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>d_ff \u0628\u0639\u062f \u0644\u0627\u06cc\u0647 \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0639\u0635\u0628\u06cc \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>max_seq_length \u062d\u062f\u0627\u06a9\u062b\u0631 \u0637\u0648\u0644 \u062f\u0646\u0628\u0627\u0644\u0647 \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u200c\u0647\u0627\u06cc \u0645\u0648\u0636\u0639\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>dropout \u0646\u0631\u062e \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u06cc\u062c\u0627\u062f \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc<\/h4>\n\n\n\n<p>\u0628\u0627 \u062a\u0627\u0628\u0639 \u200c__init__ \u06a9\u0644\u0627\u0633 Transformer \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631 \u062f\u0648 \u062e\u0637 \u0627\u0648\u0644 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u062f\u0648 \u0644\u0627\u06cc\u0647 \u062a\u0639\u0628\u06cc\u0647 (Embedding) \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0648 \u0631\u0645\u0632\u06af\u0634\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0631 \u06a9\u0644\u0645\u0647 \u06cc\u0627 \u062a\u0648\u06a9\u0646 \u0628\u0647 \u06cc\u06a9 \u0628\u0631\u062f\u0627\u0631 \u0639\u062f\u062f\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0646\u0645\u0627\u06cc\u0627\u0646\u06af\u0631 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0639\u0646\u0627\u06cc\u06cc \u0648 \u0646\u062d\u0648\u06cc \u06a9\u0644\u0645\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0648\u0636\u0639\u06cc<\/h4>\n\n\n\n<p>\u062f\u0631 \u062e\u0637 \u0628\u0639\u062f\u06cc \u0627\u0632 \u06a9\u0644\u0627\u0633 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0648\u0636\u0639\u06cc (Positional Encoding) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u06af\u0641\u062a\u06cc\u0645\u060c \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0630\u0627\u062a\u06cc \u062a\u0631\u062a\u06cc\u0628 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631\u06a9 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u06cc\u0646 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0628\u0647 \u0645\u062f\u0644 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u062a\u0631\u062a\u06cc\u0628 \u0648 \u0645\u0648\u0642\u0639\u06cc\u062a \u0647\u0631 \u062a\u0648\u06a9\u0646 \u0631\u0627 \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u0628\u0641\u0647\u0645\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u06cc\u062c\u0627\u062f \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f\u06af\u0630\u0627\u0631 \u0648 \u06a9\u062f\u06af\u0634\u0627<\/h4>\n\n\n\n<p>\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u0639\u0645\u0627\u0631\u06cc \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u060c \u0628\u0639\u062f \u0627\u0632 \u0645\u062d\u0627\u0633\u0628\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647\u060c \u0646\u0648\u0628\u062a \u0628\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f\u06af\u0630\u0627\u0631 (Encoder Layers) \u0645\u06cc\u200c\u0631\u0633\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0645\u062c\u0632\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062a\u0648\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. ModuleList \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u062f\u0631 PyTorch \u0627\u0633\u062a \u06a9\u0647 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627 (\u0644\u0627\u06cc\u0647\u200c\u0647\u0627) \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f. \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633\u060c \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0647\u200c\u062a\u0639\u062f\u0627\u062f num_layers \u0644\u0627\u06cc\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645. \u0628\u0647\u200c\u0627\u06cc\u0646\u200c\u062a\u0631\u062a\u06cc\u0628 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0627\u0632 \u062a\u0627\u0628\u0639\u060c \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u0627\u0632 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u062d\u0644\u0642\u0647 for \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062c\u062f\u06cc\u062f \u0627\u0632 EncoderLayer \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc d_model (\u0628\u0639\u062f \u0645\u062f\u0644)\u060c num_heads (\u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647)\u060c d_ff (\u0628\u0639\u062f \u0644\u0627\u06cc\u0647 \u062f\u0627\u062e\u0644\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631)\u060c \u0648 dropout (\u0646\u0631\u062e \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a) \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u062d\u0644\u0642\u0647 \u0628\u0647 \u062a\u0639\u062f\u0627\u062f num_layers \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 EncoderLayer\u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u0647\u0645\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0644\u0627\u06cc\u0647\u200c\u0647\u0627 \u0631\u0645\u0632\u06af\u0634\u0627 \u0646\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0633\u067e\u0633 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc \u0646\u0647\u0627\u06cc\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0648\u0638\u06cc\u0641\u0647 \u062a\u0628\u062f\u06cc\u0644 \u062e\u0631\u0648\u062c\u06cc \u0631\u0645\u0632\u06af\u0634\u0627 \u0628\u0647 \u0641\u0636\u0627\u06cc \u0648\u0627\u0698\u06af\u0627\u0646 \u0647\u062f\u0641 \u0631\u0627 \u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0627\u0628\u0639 \u062a\u0648\u0644\u06cc\u062f \u0645\u0627\u0633\u06a9<\/h4>\n\n\n\n<p>\u0628\u0627 \u062a\u0627\u0628\u0639 generate_mask \u0645\u0627\u0633\u06a9\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0648 \u0647\u062f\u0641 \u0631\u0627 \u062f\u0631 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def generate_mask(self, src, tgt):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_mask = (src != 0).unsqueeze(1).unsqueeze(2)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tgt_mask = (tgt != 0).unsqueeze(1).unsqueeze(3)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seq_length = tgt.size(1)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nopeak_mask = (1 - torch.triu(torch.ones(1, seq_length, seq_length), diagonal=1)).bool()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tgt_mask = tgt_mask &amp; nopeak_mask<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return src_mask, tgt_mask<\/code><\/p>\n\n\n\n<p>\u0645\u0627\u0633\u06a9 \u0645\u0646\u0628\u0639 (src_mask) \u0628\u0647 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u067e\u062f\u06cc\u0646\u06af\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0628\u0639 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0628\u06af\u06cc\u0631\u062f \u0648 \u0645\u0627\u0633\u06a9 \u0647\u062f\u0641 (tgt_mask) \u0628\u0647 \u0645\u062f\u0644 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0647\u0645 \u067e\u062f\u06cc\u0646\u06af\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0648\u0631\u0648\u062f\u06cc \u0647\u062f\u0641 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0628\u06af\u06cc\u0631\u062f \u0648 \u0647\u0645 \u0627\u0632 \u0646\u06af\u0627\u0647 \u0628\u0647 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0627\u0633\u06a9\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u062c\u0647 \u0648 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u0646\u062f<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0627\u0628\u0639 forward<\/h4>\n\n\n\n<p>\u0645\u062a\u062f forward \u062f\u0631 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0648 \u0647\u062f\u0641 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u062a\u0648\u0644\u06cc\u062f \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u062a\u062f \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, src, tgt):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: green;\"># Generate masks for the source and target sequences<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_mask, tgt_mask = self.generate_mask(src, tgt)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: green;\"># Embed the source sequence and apply dropout and positional encoding<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_embedded = self.dropout(self.positional_encoding(self.encoder_embedding(src)))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: green;\"># Embed the target sequence and apply dropout and positional encoding<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tgt_embedded = self.dropout(self.positional_encoding(self.decoder_embedding(tgt)))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: green;\"># Pass the embedded source sequence through the encoder layers<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enc_output = src_embedded<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for enc_layer in self.encoder_layers:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enc_output = enc_layer(enc_output, src_mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: green;\"># Pass the embedded target sequence through the decoder layers using encoder output<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dec_output = tgt_embedded<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for dec_layer in self.decoder_layers:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dec_output = dec_layer(dec_output, enc_output, src_mask, tgt_mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: green;\"># Apply the final fully connected layer to the decoder output to get the final output<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output = self.fc(dec_output)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return output<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>src \u06cc\u0627 \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0628\u0639 (Source Input) \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0648\u0631\u0648\u062f\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06cc\u06a9 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u0632 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f \u06a9\u0644\u0645\u0627\u062a) \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062a\u0648\u0633\u0637 \u0645\u062f\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0634\u0648\u062f.<\/li>\n\n\n\n<li>trg \u06cc\u0627 \u0648\u0631\u0648\u062f\u06cc \u0647\u062f\u0641 (Target Input) \u0646\u06cc\u0632 \u062f\u0646\u0628\u0627\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0634\u0627 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0648\u0631\u0648\u062f\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0646\u0628\u0627\u0644\u0647\u200c\u0627\u06cc \u0627\u0632 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u0633\u062a \u06a9\u0647 \u0645\u062f\u0644 \u0628\u0627\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062a\u06a9\u0645\u06cc\u0644 \u06a9\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\u062a\u0648\u0644\u06cc\u062f \u0645\u0627\u0633\u06a9<\/h5>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0645\u0627\u0633\u06a9\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0648 \u0647\u062f\u0641 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u0647\u0645 \u06cc\u0627 \u067e\u062f \u0634\u062f\u0647 \u0648\u0631\u0648\u062f\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0634\u0648\u0646\u062f. \u0645\u0646\u0638\u0648\u0631 \u0627\u0632 \u062e\u0631\u0648\u062c\u06cc\u060c \u062e\u0631\u0648\u062c\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 (Encoder Output) \u06cc\u0627 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0628\u0639 \u067e\u0633 \u0627\u0632 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0648\u0633\u0637 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0631\u0645\u0632\u06af\u0634\u0627 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u062a\u0648\u062c\u0647 \u06a9\u0646\u06cc\u062f mask \u06a9\u0631\u062f\u0646 \u062f\u0631 \u0627\u062f\u0628\u06cc\u0627\u062a \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0645\u0639\u0646\u06cc \u062f\u0627\u0631\u062f. \u06cc\u0639\u0646\u06cc \u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0647\u0631 \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0648\u0627\u0631\u062f \u0645\u06cc\u200c\u0634\u0648\u062f \u0631\u0627 mask \u06a9\u0646\u06cc\u0645. \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0634\u06a9\u0644 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627\u060c \u062f\u0631\u0645\u06cc\u200c\u06cc\u0627\u0628\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0633\u0647 \u0642\u0633\u0645\u062a\u060c \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0628\u0647\u200c\u06a9\u0627\u0631\u0631\u0641\u062a\u0647\u200c \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u0646\u200c\u0647\u0627\u060c \u062e\u0631\u0648\u062c\u06cc \u0644\u0627\u06cc\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631 \u0627\u0633\u062a.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0628\u0639<\/h5>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0627 self.encoder_embedding(src) \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0628\u0639 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0648 \u0628\u0627 self.positional_encoding \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0642\u0639\u06cc\u062a \u0647\u0631 \u06a9\u0644\u0645\u0647 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631\u0646\u0647\u0627\u06cc\u062a \u0631\u0648\u06cc \u062e\u0631\u0648\u062c\u06cc\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0645\u06cc\u200c\u0632\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u062f\u0641<\/h5>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0627 self.decoder_embedding(tgt) \u0648\u0631\u0648\u062f\u06cc \u0647\u062f\u0641 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0648 \u0628\u0627 self.positional_encoding \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0642\u0639\u06cc\u062a \u0647\u0631 \u06a9\u0644\u0645\u0647 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631\u0646\u0647\u0627\u06cc\u062a \u0631\u0648\u06cc \u062e\u0631\u0648\u062c\u06cc\u060c \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0645\u06cc\u200c\u0632\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u0639\u0628\u0648\u0631 \u0627\u0632 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631<\/h5>\n\n\n\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0648\u0631\u0648\u062f\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0645\u0646\u0628\u0639 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. self.encoder_layers \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062a\u0627\u0628\u0639 __init__ \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 ModuleList \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u0645. \u0627\u06cc\u0646 \u0644\u06cc\u0633\u062a \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 EncoderLayer \u0627\u0633\u062a. \u0628\u0627 \u06cc\u06a9 \u062d\u0644\u0642\u0647 for\u060c \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0631\u0627 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u0631\u0648\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0627\u0628\u062a\u062f\u0627 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0628\u0639 \u0647\u0633\u062a\u0646\u062f \u0648 \u0628\u0639\u062f \u0627\u0632 \u0647\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0644\u0627\u06cc\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631\u060c \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u0639\u0628\u0648\u0631 \u0627\u0632 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0634\u0627<\/h5>\n\n\n\n<p>\u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0627 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f\u06af\u0630\u0627\u0631 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645\u060c \u062f\u0631\u0627\u062f\u0627\u0645\u0647 \u0628\u0627 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f\u06af\u0634\u0627 \u0646\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0628\u0647\u200c\u0627\u06cc\u0646\u200c\u062a\u0631\u062a\u06cc\u0628 \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0647\u062f\u0641 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0634\u0627 \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0648 \u0628\u0639\u062f \u0627\u0632 \u0647\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0631\u0645\u0632\u06af\u0634\u0627\u060c \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc \u0646\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc<\/h5>\n\n\n\n<p>\u062e\u0631\u0648\u062c\u06cc \u0646\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062e\u0637\u06cc (\u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0635\u0644) \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0627\u062d\u062a\u0645\u0627\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0647\u0631 \u06a9\u0644\u0645\u0647 \u062f\u0631 \u0648\u0627\u0698\u06af\u0627\u0646 \u0647\u062f\u0641 \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u06a9\u0644\u0645\u0647 \u0628\u0639\u062f\u06cc \u0631\u0627 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u067e\u06cc\u0634\u200c\u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627<\/h3>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0645\u0627 \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u062f\u0627\u062f\u0647 \u0633\u0627\u062e\u062a\u06af\u06cc \u0648 \u0639\u062f\u062f\u06cc \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u06a9\u0647 \u0633\u0627\u062e\u062a\u06cc\u0645\u060c \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u062f\u0631 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0648\u0627\u0642\u0639\u06cc\u060c \u0627\u0632 \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u062f\u0627\u062f\u0647 \u0645\u062a\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f \u067e\u06cc\u0634\u200c\u067e\u0631\u062f\u0627\u0632\u0634\u060c \u067e\u0627\u06a9\u200c\u0633\u0627\u0632\u06cc \u0648 &#8230; \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0648 \u0632\u0628\u0627\u0646 \u0645\u0646\u0628\u0639 \u0648 \u0647\u062f\u0641 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n\n\n\n<p>\u067e\u06cc\u0634 \u0627\u0632 \u0633\u0627\u062e\u062a \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0645\u0635\u0646\u0648\u0639\u06cc\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u062a\u0639\u062f\u0627\u062f\u06cc \u0627\u0632 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u062f\u0644 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0627\u0639\u062f\u0627\u062f \u0645\u0639\u0645\u0627\u0631\u06cc \u0648 \u0631\u0641\u062a\u0627\u0631 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Initialize parameters<\/span><\/code><br \/>\n<code>src_vocab_size = 5000<\/code><br \/>\n<code>tgt_vocab_size = 5000<\/code><br \/>\n<code>d_model = 512<\/code><br \/>\n<code>num_heads = 8<\/code><br \/>\n<code>num_layers = 6<\/code><br \/>\n<code>d_ff = 2048<\/code><br \/>\n<code>max_seq_length = 100<\/code><br \/>\n<code>dropout = 0.1<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>src_vocab_size \u0627\u0646\u062f\u0627\u0632\u0647 \u0648\u0627\u0698\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>tgt_vocab_size \u0627\u0646\u062f\u0627\u0632\u0647 \u0648\u0627\u0698\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0647\u062f\u0641 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>d_model \u0627\u0628\u0639\u0627\u062f \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0645\u062f\u0644 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_heads \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0647\u0627\u06cc \u062a\u0648\u062c\u0647 \u062f\u0631 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>num_layers \u062a\u0639\u062f\u0627\u062f \u0644\u0627\u06cc\u0647\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0648 \u0628\u062e\u0634 \u0631\u0645\u0632\u06af\u0630\u0627\u0631 \u0648 \u0631\u0645\u0632\u06af\u0634\u0627 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>d_ff \u0627\u0628\u0639\u0627\u062f \u0644\u0627\u06cc\u0647 \u062f\u0631\u0648\u0646\u06cc \u062f\u0631 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>max_seq_length \u062d\u062f\u0627\u06a9\u062b\u0631 \u0637\u0648\u0644 \u062f\u0646\u0628\u0627\u0644\u0647 \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0648\u0642\u0639\u06cc\u062a\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>dropout \u0646\u0631\u062e \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0648\u0644\u06cc\u062f \u062f\u0627\u062f\u0647<\/h4>\n\n\n\n<p>\u0628\u0627 \u06a9\u062f \u0632\u06cc\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062f\u0627\u062f\u0647 \u0633\u0627\u062e\u062a\u06af\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062a\u0635\u0627\u062f\u0641\u06cc \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Generate random sample data<\/span><\/code><br \/>\n<code>src_data = torch.randint(1, src_vocab_size, (64, max_seq_length))  <span style=\"color:green\"># (batch_size, seq_length)<\/span><\/code><br \/>\n<code>tgt_data = torch.randint(1, tgt_vocab_size, (64, max_seq_length))  <span style=\"color:green\"># (batch_size, seq_length)<\/span><\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>src_data \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u062a\u0635\u0627\u062f\u0641\u06cc \u0628\u06cc\u0646 \u06f1 \u0648 src_vocab_size \u0648 \u0646\u0645\u0627\u06cc\u0627\u0646\u06af\u0631 \u06cc\u06a9 \u0628\u0633\u062a\u0647 (Batch) \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0628\u0627 \u0633\u0627\u06cc\u0632 (64, max_seq_length) \u0647\u0633\u062a\u0646\u062f.<\/li>\n\n\n\n<li>tgt_data \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u062a\u0635\u0627\u062f\u0641\u06cc \u0628\u06cc\u0646 \u06f1 \u0648 tgt_vocab_size \u0648 \u0646\u0645\u0627\u06cc\u0627\u0646\u06af\u0631 \u06cc\u06a9 \u0628\u0633\u062a\u0647 (Batch) \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0647\u062f\u0641 \u0628\u0627 \u0633\u0627\u06cc\u0632 (64, max_seq_length) \u0647\u0633\u062a\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<p>\u0627\u06cc\u0646 \u0627\u0639\u062f\u0627\u062f \u062a\u0635\u0627\u062f\u0641\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u0646\u062f \u0648 \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u06cc\u06a9 \u0628\u0633\u062a\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u06f6\u06f4 \u0646\u0645\u0648\u0646\u0647 \u0648 \u062f\u0646\u0628\u0627\u0644\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0637\u0648\u0644 \u06f1\u06f0\u06f0 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644<\/h4>\n\n\n\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f\u0634\u062f\u0647 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0628\u062a\u062f\u0627 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 (Instance) \u0627\u0632 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0645\u0627\u0646 \u0628\u0633\u0627\u0632\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>transformer = Transformer(src_vocab_size, tgt_vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout)<\/code><\/p>\n\n\n\n<p>\u062d\u0627\u0644 \u0646\u0648\u0628\u062a \u0628\u0647 \u062a\u0639\u0631\u06cc\u0641 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647 \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632 \u0645\u06cc\u200c\u0631\u0633\u062f \u06a9\u0647 \u0645\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647 \u06a9\u0631\u0627\u0633 \u0627\u0646\u062a\u0631\u0648\u067e\u06cc \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632 Adam \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>criterion = nn.CrossEntropyLoss(ignore_index=0)<\/code><br \/>\n<code>optimizer = optim.Adam(transformer.parameters(), lr=0.0001, betas=(0.9, 0.98), eps=1e-9)<\/code><\/p>\n\n\n\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a \u062a\u0627 \u0645\u062f\u0644 \u0631\u0627 \u0622\u0645\u0648\u0632\u0634 \u062f\u0647\u06cc\u0645. \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0645\u062f\u0644 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0622\u0645\u0648\u0632\u0634 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645. \u0633\u067e\u0633 \u062f\u0631 \u0647\u0631 epoch\u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06af\u0631\u0627\u062f\u06cc\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0635\u0641\u0631 \u06a9\u0646\u06cc\u0645\u060c \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0647\u062f\u0641 (\u0628\u0647 \u062c\u0632 \u0622\u062e\u0631\u06cc\u0646 \u062a\u0648\u06a9\u0646 \u062f\u0631 \u0647\u0631 \u062f\u0646\u0628\u0627\u0644\u0647) \u0631\u0627 \u0628\u0647 \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u200c\u0628\u062f\u0647\u06cc\u0645 \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647\u060c \u0627\u062e\u062a\u0644\u0627\u0641 \u0628\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0647\u062f\u0641 (\u0628\u0647 \u062c\u0632 \u0627\u0648\u0644\u06cc\u0646 \u062a\u0648\u06a9\u0646 \u062f\u0631 \u0647\u0631 \u062f\u0646\u0628\u0627\u0644\u0647) \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0628\u0627 \u062a\u0627\u0628\u0639 loss.backward \u06af\u0631\u0627\u062f\u06cc\u0627\u0646\u200c\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647 \u0631\u0627 \u0646\u0633\u0628\u062a \u0628\u0647 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u062f\u0644 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0627 optimizer.step \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u062f\u0644 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06af\u0631\u0627\u062f\u06cc\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0647\u200c\u0634\u062f\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>transformer.train()<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>for epoch in range(100):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;optimizer.zero_grad()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;output = transformer(src_data, tgt_data[:, :-1])<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;loss = criterion(output.contiguous().view(-1, tgt_vocab_size), tgt_data[:, 1:].contiguous().view(-1))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;loss.backward()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;optimizer.step()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;print(f\"Epoch: {epoch+1}, Loss: {loss.item()}\")<\/code><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062f\u0644<\/h4>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0646\u06cc\u0632 \u0628\u0647 \u0647\u0645\u0627\u0646 \u062a\u0631\u062a\u06cc\u0628\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0631\u062f\u06cc\u0645\u060c \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0633\u0627\u062e\u062a\u06af\u06cc \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645. \u0628\u0639\u062f \u0645\u062f\u0644 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0633\u067e\u0633 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0647\u062f\u0641 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc (\u0628\u0647 \u062c\u0632 \u0622\u062e\u0631\u06cc\u0646 \u062a\u0648\u06a9\u0646 \u062f\u0631 \u0647\u0631 \u062f\u0646\u0628\u0627\u0644\u0647) \u0631\u0627 \u0628\u0647 \u0645\u062f\u0644 \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647\u060c \u0627\u062e\u062a\u0644\u0627\u0641 \u0628\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0647\u062f\u0641 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc (\u0628\u0647 \u062c\u0632 \u0627\u0648\u0644\u06cc\u0646 \u062a\u0648\u06a9\u0646 \u062f\u0631 \u0647\u0631 \u062f\u0646\u0628\u0627\u0644\u0647) \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0637\u0648\u0644 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0645\u062d\u0627\u0633\u0628\u0647 \u06af\u0631\u0627\u062f\u06cc\u0627\u0646\u200c\u0647\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u0645\u0635\u0631\u0641 \u062d\u0627\u0641\u0638\u0647 \u06a9\u0627\u0647\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f. \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646\u060c \u0645\u0642\u062f\u0627\u0631 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0686\u0627\u067e \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Generate validation data<\/span><\/code><br \/>\n<code>val_src_data = torch.randint(1, src_vocab_size, (64, max_seq_length))  <span style=\"color:green\"># (batch_size, seq_length)<\/span><\/code><br \/>\n<code>val_tgt_data = torch.randint(1, tgt_vocab_size, (64, max_seq_length))  <span style=\"color:green\"># (batch_size, seq_length)<\/span><\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Evaluation mode<\/span><\/code><br \/>\n<code>transformer.eval()<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>with torch.no_grad():<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;val_output = transformer(val_src_data, val_tgt_data[:, :-1])<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;val_loss = criterion(val_output.contiguous().view(-1, tgt_vocab_size), val_tgt_data[:, 1:].contiguous().view(-1))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;print(f\"Validation Loss: {val_loss.item()}\")<\/code><\/p>\n\n\n\n<p>\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u0627\u06cc \u062f\u0627\u0631\u0646\u062f \u0648 \u0628\u0647\u200c\u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0648 \u0622\u0645\u0648\u0632\u0634 \u0622\u0646\u200c\u0647\u0627 \u0646\u06cc\u0632 \u06a9\u0627\u0631 \u062f\u0634\u0648\u0627\u0631\u06cc \u0627\u0633\u062a. \u0627\u06cc\u0646 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0646\u0627\u0634\u06cc \u0627\u0632 \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0648 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u0646\u062f. \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0627\u06cc\u0646 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627 \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0642\u06cc\u0642 \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u0631\u0646\u062f \u062a\u0627 \u0645\u062f\u0644 \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0648\u0628\u06cc \u0627\u0632 \u0639\u0647\u062f\u0647 \u0648\u0638\u0627\u06cc\u0641\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0633\u067e\u0631\u062f\u0647 \u0634\u062f\u0647\u060c \u0628\u0631\u0622\u06cc\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0646\u062a\u06cc\u062c\u0647\u060c \u0628\u0631\u0627\u06cc \u06a9\u0633\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0647\u0633\u062a\u0646\u062f\u060c \u0628\u0647\u0631\u0647\u200c\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u0645\u0646\u0627\u0628\u0639 \u0645\u0646\u0627\u0633\u0628 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. Hugging Face \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0627\u0633\u062a. Hugging Face \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u0646\u0628\u0639\u200c\u0628\u0627\u0632 \u067e\u06cc\u0634\u0631\u0648 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646\u06cc \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u0628\u0627 \u062a\u0648\u0633\u0639\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 Transformers \u0648 \u0627\u0631\u0627\u0626\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0627\u0632 \u067e\u06cc\u0634 \u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647\u060c \u0641\u0631\u0622\u06cc\u0646\u062f \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0627\u0631\u0627\u0626\u0647\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Hugging Face\u060c \u0645\u062d\u0642\u0642\u0627\u0646 \u0648 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u0648 \u0628\u0627 \u0633\u0647\u0648\u0644\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u0627\u06cc\u0646 \u067e\u0644\u062a\u0641\u0631\u0645 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0645\u0642\u0627\u0644\u0647 <a rel=\"noreferrer noopener\" href=\"https:\/\/cafetadris.com\/blog\/%D9%BE%D9%84%D8%AA%D9%81%D8%B1%D9%85-hugging-face-%DA%86%DB%8C%D8%B3%D8%AA\/\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\u067e\u0644\u062a\u0641\u0631\u0645 Hugging Face \u0686\u06cc\u0633\u062a \u0648 \u0686\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc\u06cc \u062f\u0627\u0631\u062f\u061f<\/mark><\/a><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> <\/mark>\u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u067e\u06cc\u0634\u200c\u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 \u0628\u0627 Hugging Face<\/h2>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0631\u0627 \u0628\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 Transformers \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u0648 \u0645\u0631\u0627\u062d\u0644 \u0645\u062e\u062a\u0644\u0641 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f. \u062f\u0631\u0648\u0627\u0642\u0639 \u0645\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0627 \u06a9\u0645\u06a9 \u0645\u062f\u0644 \u0627\u0632 \u067e\u06cc\u0634\u200c\u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 BERT \u0646\u0638\u0631\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0633\u0627\u06cc\u062a IMDB \u0631\u0627 \u0637\u0628\u0642\u0647\u200c\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u067e\u0644\u062a\u0641\u0631\u0645 Hugging Face \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.<\/p>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631 \u0627\u0628\u062a\u062f\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># nlp<\/span><\/code><br \/>\n<code>import nltk<\/code><br \/>\n<code>nltk.download('stopwords')<\/code><br \/>\n<code>from nltk.corpus import stopwords<\/code><br \/>\n<code>nltk.download(\"wordnet\")<\/code><br \/>\n<code>nltk.download('omw-1.4')<\/code><br \/>\n<code>from nltk.corpus import wordnet as wn<\/code><br \/>\n<code>nltk.download('punkt')<\/code><br \/>\n<code>from nltk.tokenize import word_tokenize<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># pytorch<\/span><\/code><br \/>\n<code>import torch<\/code><br \/>\n<code>import torch.nn as nn<\/code><br \/>\n<code>import torch.optim as optim<\/code><br \/>\n<code>from torchvision import datasets, transforms<\/code><br \/>\n<code>from torch.utils.data import DataLoader, Dataset<\/code><br \/>\n<code>from transformers import BertTokenizer, BertModel<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># others<\/span><\/code><br \/>\n<code>import os<\/code><br \/>\n<code>import re<\/code><br \/>\n<code>import requests<\/code><br \/>\n<code>import numpy as np<\/code><br \/>\n<code>import matplotlib.pyplot as plt<\/code><br \/>\n<code>from sklearn.manifold import TSNE<\/code><br \/>\n<code>from sklearn.model_selection import train_test_split<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc IMDB<\/h3>\n\n\n\n<p>\u062f\u0631 \u0642\u0633\u0645\u062a \u0628\u0639\u062f \u0628\u0627\u06cc\u062f \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647\u200c \u0646\u0642\u062f \u0648 \u0628\u0631\u0631\u0633\u06cc \u0641\u06cc\u0644\u0645\u200c\u0647\u0627\u06cc \u0633\u0627\u06cc\u062a IMDB \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0627\u0645\u0644 \u0646\u0638\u0631\u0627\u062a \u0645\u062b\u0628\u062a \u0648 \u0645\u0646\u0641\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u062f\u0648 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0646\u06cc \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f. \u062a\u0627\u0628\u0639 download_imdb_data \u0646\u0642\u062f\u0647\u0627\u06cc \u0645\u062b\u0628\u062a \u0648 \u0645\u0646\u0641\u06cc \u0631\u0627 \u0627\u0632 URL \u0647\u0627\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0646\u0642\u062f\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u0628\u0647 \u0646\u0627\u0645 reviews \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627\u06cc \u0645\u062a\u0646\u0627\u0638\u0631 (\u06f1 \u0628\u0631\u0627\u06cc \u0646\u0642\u062f\u0647\u0627\u06cc \u0645\u062b\u0628\u062a \u0648 \u06f0 \u0628\u0631\u0627\u06cc \u0646\u0642\u062f\u0647\u0627\u06cc \u0645\u0646\u0641\u06cc) \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0648 \u062f\u0631 \u0644\u06cc\u0633\u062a labels \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u062f\u0648 \u0644\u06cc\u0633\u062a reviews \u0648 labels \u0631\u0627 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Load IMDB dataset<\/span><\/code><br \/>\n<code>def download_imdb_data():<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;pos_url = 'https:\/\/raw.githubusercontent.com\/dennybritz\/cnn-text-classification-tf\/master\/data\/rt-polaritydata\/rt-polarity.pos'<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;neg_url = 'https:\/\/raw.githubusercontent.com\/dennybritz\/cnn-text-classification-tf\/master\/data\/rt-polaritydata\/rt-polarity.neg'<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;pos_reviews = requests.get(pos_url).text.split('\\n')<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;neg_reviews = requests.get(neg_url).text.split('\\n')<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;reviews = pos_reviews + neg_reviews<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;labels = [1] * len(pos_reviews) + [0] * len(neg_reviews)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;return reviews, labels<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>reviews, labels = download_imdb_data()<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u067e\u06cc\u0634\u200c\u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u062a\u0648\u0646<\/h3>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u067e\u0627\u06a9\u200c\u0633\u0627\u0632\u06cc \u0648 \u067e\u06cc\u0634\u200c\u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c nltk \u062c\u0645\u0644\u0647 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>stop_words = stopwords.words('english')<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>def clean_text(sentence):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;sentence = str(sentence).lower()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;sentence = re.sub('[^a-z]',' ',sentence)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;sentence = word_tokenize(sentence)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;sentence = [i for i in sentence if i not in stop_words]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;sentence = [i for i in sentence if len(i)&gt;2]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;sentence = ' '.join(sentence)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;return sentence<\/code><\/p>\n\n\n\n<p>\u06a9\u0647 \u062f\u0631 \u0622\u0646:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u062c\u0645\u0644\u0647 \u0628\u0647 \u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u062a\u0641\u0627\u0648\u062a \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af \u0648 \u06a9\u0648\u0686\u06a9 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0631\u0648\u062f.<\/li>\n\n\n\n<li>\u062a\u0645\u0627\u0645\u06cc \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631 \u062d\u0631\u0641\u06cc (\u0645\u0627\u0646\u0646\u062f \u0627\u0639\u062f\u0627\u062f \u0648 \u0646\u0634\u0627\u0646\u0647\u200c\u0647\u0627) \u0628\u0627 \u06cc\u06a9 \u0641\u0636\u0627\u06cc \u062e\u0627\u0644\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>\u062c\u0645\u0644\u0647 \u0628\u0647 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u06a9\u0644\u0645\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0644\u06cc\u0633\u062a \u06a9\u0644\u0645\u0627\u062a \u062a\u0648\u0642\u0641 (stopwords) \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f\u060c \u062d\u0630\u0641 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>\u06a9\u0644\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0637\u0648\u0644 \u0622\u0646\u200c\u0647\u0627 \u06a9\u0645\u062a\u0631 \u0627\u0632 \u06f3 \u062d\u0631\u0641 \u0627\u0633\u062a\u060c \u062d\u0630\u0641 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>\u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u06cc \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u06cc\u06a9 \u062c\u0645\u0644\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062c\u0645\u0644\u0647 \u067e\u0627\u06a9\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u062a\u0627\u0628\u0639 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<\/ul>\n\n\n\n<p>\u067e\u06cc\u0634 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0648\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u0638\u0631\u0627\u062a\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u062f\u0648 \u0628\u062e\u0634 \u0622\u0645\u0648\u0632\u0634\u06cc \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Train Test Split<\/span><\/code><br \/>\n<code>X_train, X_val, y_train, y_val = train_test_split(reviews, labels, test_size=0.2, random_state=42)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Apply clean text on the reviews<\/span><\/code><br \/>\n<code>for i in range(len(X_train)):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;X_train[i] = clean_text(X_train[i])<\/code><\/p>\n\n\n\n<p>&nbsp;\u062d\u0627\u0644 \u062a\u0627\u0628\u0639 clean_text \u0631\u0627 \u0631\u0648\u06cc \u0646\u0638\u0631\u0627\u062a \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>for i in range(len(X_val)):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;X_val[i] = clean_text(X_val[i])<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633 MyDataset<\/h3>\n\n\n\n<p>\u06a9\u062f \u0632\u06cc\u0631 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0628\u0647 \u0646\u0627\u0645 MyDataset \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 Dataset \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 torch.utils.data \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class MyDataset(Dataset):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, encoded, label):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.input_ids = encoded['input_ids']<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.attention_mask = encoded['attention_mask']<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.label = label<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __getitem__(self, index):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ids = self.input_ids[index]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;masks = self.attention_mask[index]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lbls = self.label[index]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ids, masks, lbls<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __len__(self):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return len(self.input_ids)<\/code><\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u06f3 \u0645\u062a\u062f \u0627\u0635\u0644\u06cc \u062f\u0627\u0631\u062f \u06a9\u0647 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>__init__: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0633\u0627\u0632\u0646\u062f\u0647 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a \u0648 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062c\u062f\u06cc\u062f \u0627\u0632 MyDataset \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 \u0645\u062a\u062f encoded (\u06cc\u06a9 \u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u062d\u0627\u0648\u06cc input_ids \u0648 attention_mask) \u0648 label (\u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627) \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>__getitem__: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0648\u0631\u0648\u062f\u06cc \u0622\u0646 \u06cc\u06a9 \u0634\u0627\u062e\u0635 (index) \u0627\u0633\u062a \u06a9\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u062f\u0627\u0645 \u0646\u0645\u0648\u0646\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0634\u0648\u062f.<\/li>\n\n\n\n<li>__len__: \u0627\u06cc\u0646 \u0645\u062a\u062f \u062a\u0639\u062f\u0627\u062f \u06a9\u0644 \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u062f\u06cc\u062a\u0627\u0633\u062a \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0637\u0648\u0644 input_ids \u0628\u0627\u0632\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tokenize \u06a9\u0631\u062f\u0646 \u0645\u062a\u0646 \u067e\u0627\u06a9\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647<\/h3>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 transformers\u060c \u062a\u0648\u06a9\u0646\u0627\u06cc\u0632\u0631 BERT \u0631\u0627 \u06a9\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0639\u0631\u0648\u0641\u200c\u062a\u0631\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0627\u0633\u062a\u060c \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')<\/code><\/p>\n\n\n\n<p>\u06a9\u062f \u0628\u0627\u0644\u0627 \u06cc\u06a9 \u062a\u0648\u06a9\u0646\u0627\u06cc\u0632\u0631 BERT \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0627\u0632 \u0645\u062f\u0644 bert-base-uncased \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u062a\u0648\u06a9\u0646\u0627\u06cc\u0632\u0631 \u0645\u0633\u0626\u0648\u0644 \u062a\u0628\u062f\u06cc\u0644 \u0645\u062a\u0646 \u062e\u0627\u0645 \u0628\u0647 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u062f\u0644 BERT \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0622\u0646\u200c\u0647\u0627 \u06a9\u0627\u0631 \u06a9\u0646\u062f. \u0628\u062e\u0634 uncased \u062f\u0631 \u0627\u0633\u0645 \u0622\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u062a\u0641\u0627\u0648\u062a \u0628\u06cc\u0646 \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af \u0648 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p>\u0633\u067e\u0633 \u062e\u0648\u062f \u0645\u062f\u0644 BERT \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u0646 \u0646\u06cc\u0632 \u0627\u0632 \u0645\u062f\u0644 bert-base-uncased \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>embedder = BertModel.from_pretrained('bert-base-uncased', output_hidden_states=True)<\/code><\/p>\n\n\n\n<p>\u067e\u0627\u0631\u0627\u0645\u062a\u0631 output_hidden_states=True \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062f \u0628\u0647 \u0645\u062f\u0644 \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u06a9\u0647 \u0648\u0636\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u067e\u0646\u0647\u0627\u0646 (hidden states) \u0631\u0627 \u062f\u0631 \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0648\u0636\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u067e\u0646\u0647\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c \u06a9\u0644\u0645\u0627\u062a \u0645\u062a\u0646 \u0646\u0638\u0631\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0645\u062f\u0644 BERT \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0642\u0631\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u062f\u0644 \u06a9\u0647 \u0645\u062e\u0635\u0648\u0635 \u0622\u0645\u0648\u0632\u0634 \u0647\u0633\u062a\u0646\u062f\u060c \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0645\u062f\u0644 \u062f\u0631 \u062d\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f\u062a\u0631 \u0628\u0627\u0634\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>embedder.eval()<\/code><\/p>\n\n\n\n<p>\u062d\u0627\u0644 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0648\u06a9\u0646\u0627\u06cc\u0632\u0631 \u062a\u0639\u0631\u06cc\u0641\u200c\u0634\u062f\u0647\u060c \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc \u0631\u0627 \u062a\u0648\u06a9\u0646\u0627\u06cc\u0632 \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Make Train dataset<\/span><\/code><br \/>\n<code>train_encoded = tokenizer(X_train, padding=True, truncation=True, max_length=100, return_tensors='pt')<\/code><\/p>\n\n\n\n<p>\u062f\u0644\u06cc\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u062a\u0648\u0636\u06cc\u062d \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>padding=True \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06cc\u06a9\u0646\u0648\u0627\u062e\u062a \u0628\u0648\u062f\u0646 \u0637\u0648\u0644 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>max_length=100 \u062d\u062f\u0627\u06a9\u062b\u0631 \u0637\u0648\u0644 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>truncation=True \u0628\u0631\u0627\u06cc \u0642\u0637\u0639 \u06a9\u0631\u062f\u0646 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0627\u0633\u062a (\u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0637\u0648\u0644 \u0622\u0646\u200c\u0647\u0627 \u0628\u06cc\u0634 \u0627\u0632 \u06f1\u06f0\u06f0 \u0628\u0627\u0634\u062f).<\/li>\n\n\n\n<li>&#8216;return_tensors=&#8217;pt \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0635\u0648\u0631\u062a tensor\u0647\u0627\u06cc PyTorch \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p>\u0633\u067e\u0633 \u0628\u0627\u06cc\u062f \u0628\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u06a9\u0646\u0627\u06cc\u0632 \u0634\u062f\u0647 (train_encoded) \u0648 \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627 (y_train) \u062f\u06cc\u062a\u0627\u0633\u062a \u0622\u0645\u0648\u0632\u0634\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 MyDataset \u0628\u0633\u0627\u0632\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>trainset = MyDataset(train_encoded, y_train)<\/code><\/p>\n\n\n\n<p>\u062f\u0631\u0646\u0647\u0627\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 DataLoader \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0645\u0633\u0626\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u0647\u200c\u0647\u0627\u06cc (batch) \u062f\u0627\u062f\u0647\u200c \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644 \u0627\u0633\u062a:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>train_loader = DataLoader(trainset, batch_size=16)<\/code><\/p>\n\n\n\n<p>\u0647\u0645\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0646\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Make validation dataset<\/span><\/code><br \/>\n<code>val_encoded = tokenizer(X_val, padding=True, truncation=True, max_length=100, return_tensors='pt')<\/code><br \/>\n<code>valset = MyDataset(val_encoded, y_val)<\/code><br \/>\n<code>val_loader = DataLoader(valset, batch_size=16)<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u0631\u06cc\u0641 \u0645\u062f\u0644<\/h3>\n\n\n\n<p>\u062f\u0631\u0627\u062f\u0627\u0645\u0647 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0628\u0647 \u0646\u0627\u0645 Classifier \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 nn.Module \u062f\u0631 PyTorch \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u06cc\u06a9 \u0645\u062f\u0644 \u0634\u0628\u06a9\u0647 \u0639\u0635\u0628\u06cc \u0628\u0631\u0627\u06cc \u0637\u0628\u0642\u0647\u200c\u0628\u0646\u062f\u06cc \u0645\u062a\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0645\u062f\u0644 BERT \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u062e\u0634 \u062a\u0639\u0628\u06cc\u0647\u200c\u06a9\u0646\u0646\u062f\u0647 (embedder) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>class Classifier(nn.Module):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, embedder):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(Classifier, self).__init__()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bert = embedder<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.drop1 = nn.Dropout()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.fc1 = nn.Linear(768, 8)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.drop2 = nn.Dropout(0.8)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.batch1 = nn.BatchNorm1d(8)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.fc2 = nn.Linear(8, 1)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.batch2 = nn.BatchNorm1d(1)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.sigmoid = nn.Sigmoid()<\/code><\/p>\n\n\n\n<p>\u0645\u062a\u062f __init__ \u0633\u0627\u0632\u0646\u062f\u0647 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062c\u062f\u06cc\u062f \u0627\u0632 Classifier \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0648\u0631\u0648\u062f\u06cc \u0622\u0646embedder &nbsp;\u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>self.bert \u0645\u062f\u0644 BERT \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.drop1 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 \u0628\u0627 \u0646\u0631\u062e \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06f0.\u06f5 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.fc1 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0635\u0644 \u0628\u0627 \u06f7\u06f6\u06f8 \u0646\u0648\u0631\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc (\u0627\u0628\u0639\u0627\u062f \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 BERT) \u0648 \u06f8 \u0646\u0648\u0631\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.drop2 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u062f\u0631\u0627\u067e\u200c\u0627\u0648\u062a \u062f\u06cc\u06af\u0631 \u0628\u0627 \u0646\u0631\u062e \u06f0.\u06f8 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.batch1 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u062f\u0633\u062a\u0647\u200c\u0627\u06cc \u06cc\u0627 Batch Normalization \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.fc2 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0635\u0644 \u062f\u06cc\u06af\u0631 \u0628\u0627 \u06f8 \u0646\u0648\u0631\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0648 \u06f1 \u0646\u0648\u0631\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.batch2 \u0644\u0627\u06cc\u0647 \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u062f\u0633\u062a\u0647\u200c\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>self.sigmoid \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0633\u06cc\u06af\u0645\u0648\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0628\u06cc\u0646 \u06f0 \u0648 \u06f1<\/li>\n<\/ul>\n\n\n\n<p>\u062d\u0627\u0644 \u0628\u0627\u06cc\u062f \u0645\u062a\u062f forward \u0631\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u062a\u062f \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0686\u06af\u0648\u0646\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0645\u062f\u0644 \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def forward(self, input_ids, attention_mask):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.bert(input_ids, attention_mask)[1]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.drop1(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.fc1(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.drop2(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.batch1(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.fc2(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.batch2(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = self.sigmoid(x)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x<\/code><\/p>\n\n\n\n<p>\u0645\u062a\u062f \u0622\u062e\u0631\u060c get_embeddings \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u062a\u0639\u0628\u06cc\u0647\u200c\u0647\u0627 (embeddings) \u0627\u0632 \u0645\u062f\u0644 BERT \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0639\u062f\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c\u0647\u0627\u06cc \u0628\u0631\u062a \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 \u062f\u0648 \u0628\u0639\u062f \u0628\u0647\u200c\u0648\u0627\u0633\u0637\u0647 t-SNE \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;def get_embeddings(self, input_ids, attention_mask):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Extract embeddings from BERT<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with torch.no_grad():<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;embeddings = self.bert(input_ids, attention_mask=attention_mask)[1]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return embeddings<\/code><\/p>\n\n\n\n<p>\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633 \u0645\u062f\u0644 \u062e\u0648\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0645\u062a\u063a\u06cc\u0631 model \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>model = Classifier(embedder)<\/code><\/p>\n\n\n\n<p>\u062d\u0627\u0644 \u0628\u0627 \u06a9\u062f \u0632\u06cc\u0631 \u0645\u062f\u0644 \u0631\u0627 \u0628\u0647 GPU (\u062f\u0631\u0635\u0648\u0631\u062a \u0645\u0648\u062c\u0648\u062f\u0628\u0648\u062f\u0646) \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Transport model to GPU<\/span><\/code><br \/>\n<code>device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')<\/code><br \/>\n<code>model = model.to(device)<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0646\u0638\u06cc\u0645 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647\u060c \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632 \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634<\/h3>\n\n\n\n<p>\u062d\u0627\u0644 \u0646\u0648\u0628\u062a \u0628\u0647 \u062a\u0639\u06cc\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647 \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632 \u0645\u06cc\u200c\u0631\u0633\u062f. \u0628\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0647\u0632\u06cc\u0646\u0647 \u0627\u0632 \u0628\u0627\u06cc\u0646\u0631\u06cc \u06a9\u0631\u0627\u0633\u200c\u0627\u0646\u062a\u0631\u0648\u067e\u06cc (Binary Cross-Entropy Loss) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u0633\u0627\u0626\u0644 \u0637\u0628\u0642\u0647\u200c\u0628\u0646\u062f\u06cc \u062f\u0648\u062f\u0648\u06cc\u06cc \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632 AdamW \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0628\u0627 \u0646\u0631\u062e \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0634\u062e\u0635 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Loss function and Optimizer<\/span><\/code><br \/>\n<code>criterion = nn.BCELoss().to(device)<\/code><br \/>\n<code>optimizer = optim.AdamW(model.parameters(), lr=27e-6)<\/code><\/p>\n\n\n\n<p>\u0633\u067e\u0633 \u0686\u0646\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0628\u0627 num_epochs \u062a\u0639\u062f\u0627\u062f \u06a9\u0644 \u062f\u0648\u0631\u0647\u200c\u0647\u0627\u06cc (epochs) \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644 \u0631\u0627 \u0628\u0647 \u06f2\u06f0 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0628\u0627 patience \u062a\u0639\u062f\u0627\u062f \u062f\u0648\u0631\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u062f\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u062f\u0648\u0646 \u0628\u0647\u0628\u0648\u062f \u062f\u0631 \u062e\u0637\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0628\u0647 \u06a9\u0627\u0631 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u06cc\u0639\u0646\u06cc \u0627\u06af\u0631 \u0628\u0647 \u0645\u062f\u062a \u06f5 \u062f\u0648\u0631\u0647 \u0645\u062a\u0648\u0627\u0644\u06cc \u0628\u0647\u0628\u0648\u062f\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u0634\u0648\u062f\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u0622\u0645\u0648\u0632\u0634 \u0645\u062a\u0648\u0642\u0641 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 best_val_loss \u0628\u0647\u062a\u0631\u06cc\u0646 \u0645\u0642\u062f\u0627\u0631 \u062e\u0637\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0648 \u0628\u0627 best_epoch \u0628\u0647\u062a\u0631\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0647\u0645\u0647 \u0627\u06cc\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u062f\u0631 \u0627\u062c\u0631\u0627\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u0642\u0641 \u0632\u0648\u062f\u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>num_epochs = 20<\/code><br \/>\n<code>patience = 5  <span style=\"color:green\"># Number of epochs to wait before stopping training<\/span><\/code><br \/>\n<code>best_val_loss = float('inf')<\/code><br \/>\n<code>best_epoch = 0<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644<\/h3>\n\n\n\n<p> \u062f\u0631\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0627\u0628\u062a\u062f\u0627 \u0645\u062f\u0644 \u0631\u0627 \u0628\u0647\u200c\u062d\u0627\u0644\u062a \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc\u200c\u0628\u0631\u06cc\u0645 (model.train). \u0633\u067e\u0633 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0631\u0627 \u0628\u0647 GPU \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0639\u062f \u0627\u0632 \u0635\u0641\u0631 \u06a9\u0631\u062f\u0646 \u06af\u0631\u0627\u062f\u06cc\u0627\u0646\u200c\u0647\u0627 \u062f\u0631 \u0647\u0631 \u0645\u0631\u062d\u0644\u0647\u060c \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0645\u062f\u0644 \u0631\u0627 \u062f\u0631 \u0645\u062a\u063a\u06cc\u0631 outputs \u0645\u06cc\u200c\u0631\u06cc\u0632\u06cc\u0645. \u062f\u0631\u0627\u062f\u0627\u0645\u0647 \u0628\u0627\u06cc\u062f \u062e\u0637\u0627\u06cc \u0628\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0645\u062f\u0644 \u0648 \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627 \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0633\u200c\u0627\u0646\u062a\u0634\u0627\u0631 (backpropagation) \u06af\u0631\u0627\u062f\u06cc\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0648 \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645. \u062f\u0631\u067e\u0627\u06cc\u0627\u0646\u060c \u0645\u062c\u0645\u0648\u0639 \u062e\u0637\u0627\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0637\u0648\u0644 \u0647\u0631 \u062f\u0648\u0631\u0647 \u0631\u0627 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0648 \u0645\u06cc\u0627\u0646\u06af\u06cc\u0646\u200c\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u06cc\u0627\u0646\u06af\u06cc\u0646 \u062e\u0637\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0645\u062d\u0627\u0633\u0628\u0647 \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0648\u0631\u0647 \u062a\u06a9\u0631\u0627\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u0645\u062f\u0644 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Lists to store loss values<\/span><\/code><br \/>\n<code>train_losses = []<\/code><br \/>\n<code>val_losses = []<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>for epoch in range(num_epochs):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Train phase<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;model.train()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Initialize the epoch loss<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;epoch_train_loss = 0<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Iterate over train dataset batches<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;for train_input_ids, train_attention_mask, train_labels in train_loader:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Transfer data to cuda<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;train_input_ids = train_input_ids.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;train_attention_mask = train_attention_mask.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;train_labels = train_labels.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Clear the gradients<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optimizer.zero_grad()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Prediction of the model<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputs = torch.flatten(model(train_input_ids, train_attention_mask))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Calculate loss between labels and model predictions<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loss = criterion(outputs, train_labels.float())<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Backpropagation<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loss.backward()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Update weights<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optimizer.step()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;epoch_train_loss += loss.item()<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;epoch_train_loss \/= len(train_loader)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;train_losses.append(epoch_train_loss)<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062f\u0644<\/h3>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0646\u06cc\u0632\u060c \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0647\u0631 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc\u060c \u0645\u062f\u0644 \u0631\u0627 \u0628\u0647 \u062d\u0627\u0644\u062a \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0628\u0631\u062f\u0647 (model.eval) \u0648 \u0645\u062c\u062f\u062f\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647 GPU \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0633\u067e\u0633 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u062a\u0648\u0644\u06cc\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 torch.no_grad\u060c \u06a9\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u06af\u0631\u0627\u062f\u06cc\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u0646\u0634\u0648\u062f\u060c \u06a9\u0647 \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0628\u0627\u0639\u062b \u06a9\u0627\u0647\u0634 \u0645\u0635\u0631\u0641 \u062d\u0627\u0641\u0638\u0647 \u0648 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0633\u0631\u0639\u062a \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0631\u067e\u0627\u06cc\u0627\u0646 \u062e\u0637\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0633\u062a\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062d\u0627\u0633\u0628\u0647 \u0648 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u06cc\u0627\u0646\u06af\u06cc\u0646 \u062e\u0637\u0627\u06cc \u0622\u0646 \u0628\u0631\u0627\u06cc \u06a9\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Validation phase<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;model.eval()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;epoch_val_loss = 0<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;with torch.no_grad():<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for val_input_ids, val_attention_mask, val_labels in val_loader:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_input_ids = val_input_ids.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_attention_mask = val_attention_mask.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_labels = val_labels.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_outputs = torch.flatten(model(val_input_ids, val_attention_mask))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loss = criterion(val_outputs, val_labels.float())<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;epoch_val_loss += loss.item()<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;epoch_val_loss \/= len(val_loader)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;val_losses.append(epoch_val_loss)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;print(f'Epoch [{epoch + 1}\/{num_epochs}], Training Loss: {epoch_train_loss:.4f}, Validation Loss: {epoch_val_loss:.4f}')<\/code><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062a\u0648\u0642\u0641 \u0632\u0648\u062f\u0647\u0646\u06af\u0627\u0645<\/h4>\n\n\n\n<p>\u0628\u0639\u062f \u0627\u0632 \u0642\u0633\u0645\u062a \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc\u060c \u0628\u0647\u200c\u06a9\u0645\u06a9 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u0642\u0641 \u0632\u0648\u062f\u0647\u0646\u06af\u0627\u0645 (Early Stopping) \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0628\u06cc\u0634\u200c\u0628\u0631\u0627\u0632\u0634 (Overfitting) \u0645\u062f\u0644 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645. \u0628\u0647\u200c\u0627\u06cc\u0646\u200c\u0635\u0648\u0631\u062a \u06a9\u0647 \u062f\u0631 \u0647\u0631 \u062f\u0648\u0631\u0647 \u0648\u0632\u0646\u200c\u0647\u0627\u06cc \u0645\u062f\u0644\u06cc \u06a9\u0647 \u062a\u0627 \u0622\u0646 \u0644\u062d\u0638\u0647 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u062e\u0637\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u062f\u0631 \u0645\u0633\u06cc\u0631 \u0645\u0634\u062e\u0635\u200c\u0634\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u06af\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u062f\u0644 (\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u062e\u0637\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0645\u0644\u0627\u06a9 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u06cc\u0645) \u0628\u0631\u0627\u06cc \u0686\u0646\u062f \u062f\u0648\u0631\u0647 \u0645\u062a\u0648\u0627\u0644\u06cc \u0628\u0647\u0628\u0648\u062f \u0646\u06cc\u0627\u0641\u062a\u060c \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Check if the validation loss improved for Early stopping<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;if epoch_val_loss &lt; best_val_loss:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;best_val_loss = epoch_val_loss<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;best_epoch = epoch<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Save the best model<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;torch.save(model.state_dict(), os.path.join(model_dir, 'best_model.pth'))<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(f'Best model saved at epoch {epoch + 1}')<\/code><\/p>\n\n\n\n<p>\u062f\u0631\u0648\u0627\u0642\u0639 \u0628\u0627 \u0634\u0631\u0637 epoch &#8211; best_epoch &gt; patience \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u06af\u0631 \u062a\u0639\u062f\u0627\u062f \u062f\u0648\u0631\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u062f\u0644 \u0628\u062f\u0648\u0646 \u0628\u0647\u0628\u0648\u062f \u062f\u0631 \u062e\u0637\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0622\u0645\u0648\u0632\u0634 \u062f\u06cc\u062f\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0645\u0642\u062f\u0627\u0631 patience \u0634\u062f\u060c \u062d\u0644\u0642\u0647 \u0622\u0645\u0648\u0632\u0634 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 break \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green\"># Check early stopping condition<\/span><\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;if epoch - best_epoch &gt; patience:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(f'Early stopping at epoch {epoch + 1}')<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u062d\u0627\u0633\u0628\u0647 \u062f\u0642\u062a \u0645\u062f\u0644<\/h3>\n\n\n\n<p>\u062d\u0627\u0644 \u0628\u0631\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0647 \u062f\u0642\u062a \u0645\u062f\u0644\u200c\u0645\u0627\u0646\u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0645\u062f\u0644 \u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Load the best model<\/span><\/code><br \/>\n<code>model.load_state_dict(torch.load(os.path.join(model_dir, 'best_model.pth')))<\/code><br \/>\n<code>print('Best model loaded.')<\/code><\/p>\n\n\n\n<p>\u0633\u067e\u0633 \u0645\u062f\u0644 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u060c \u062f\u0648 \u0644\u06cc\u0633\u062a \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0647\u0627 \u0648 \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0633\u067e\u0633 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u06af\u0631\u0627\u062f\u06cc\u0627\u0646 \u0631\u0627 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 GPU \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0645\u062f\u0644 \u0631\u0627 \u062f\u0631 \u0645\u062a\u063a\u06cc\u0631 outputs \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631\u0627\u062f\u0627\u0645\u0647 \u0646\u06cc\u0632 \u0628\u0627 \u06a9\u062f predicted_classes = (outputs &gt; 0.5).float \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0628\u0627\u06cc\u0646\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0628\u0647\u200c\u0627\u06cc\u0646\u200c\u0635\u0648\u0631\u062a \u06a9\u0647 \u0627\u06af\u0631 \u062e\u0631\u0648\u062c\u06cc \u0645\u062f\u0644 \u0628\u0632\u0631\u06af\u062a\u0631 \u0627\u0632 \u06f0.\u06f5 \u0634\u062f\u060c \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0645\u062b\u0628\u062a \u0648 \u062f\u0631 \u063a\u06cc\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0628\u0647 \u06a9\u0644\u0627\u0633 \u0645\u0646\u0641\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0644\u06cc\u0633\u062a \u0645\u0631\u0628\u0648\u0637\u0647\u200c\u0627\u0634 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0631\u067e\u0627\u06cc\u0627\u0646 \u0646\u06cc\u0632 \u0628\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u062a\u0639\u062f\u0627\u062f \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0647\u0627\u06cc \u062f\u0631\u0633\u062a \u0645\u062f\u0644 \u0648 \u062a\u0642\u0633\u06cc\u0645 \u0622\u0646 \u0628\u0631 \u06a9\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc\u060c \u062f\u0642\u062a \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u062f\u0633\u062a \u0645\u06cc\u200c\u0622\u0648\u0631\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Prediction phase<\/span><\/code><br \/>\n<code>model.eval()<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>all_predictions = []<\/code><br \/>\n<code>all_labels = []<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>with torch.no_grad():<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;for test_input_ids, test_attention_mask, test_labels in val_loader:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test_input_ids = test_input_ids.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test_attention_mask = test_attention_mask.to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test_labels = test_labels.to(device)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputs = model(test_input_ids, test_attention_mask)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;predicted_classes = (outputs &gt; 0.5).float()<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_predictions.extend(predicted_classes.cpu().numpy())<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_labels.extend(test_labels.cpu().numpy())<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>correct_predictions = (np.array(all_predictions).flatten() == np.array(all_labels)).sum()<\/code><br \/>\n<code>accuracy = correct_predictions \/ len(all_labels)<\/code><br \/>\n<code>print(f'Accuracy: {accuracy:.4f}')<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\nAccuracy: 0.8425<br \/>\n<\/p>\n\n\n\n<p>\u062f\u0631\u0646\u0647\u0627\u06cc\u062a \u0645\u062f\u0644 \u0645\u0627 \u062a\u0648\u0627\u0646\u0633\u062a \u0628\u0627 \u062f\u0642\u062a \u06f8\u06f4 \u062f\u0631\u0635\u062f \u0646\u0638\u0631\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0633\u0627\u06cc\u062a IMDB \u0631\u0627 \u0637\u0628\u0642\u0647\u200c\u0628\u0646\u062f\u06cc \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0631\u0633\u06cc\u0645 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 BERT \u062f\u0631 \u062f\u0648 \u0628\u064f\u0639\u062f<\/h3>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0641\u0647\u0645 \u0628\u0647\u062a\u0631 \u0627\u0644\u06af\u0648\u0647\u0627 \u0648 \u062a\u0648\u0632\u06cc\u0639 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062f\u0631 \u0641\u0636\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc\u200c\u0627\u06cc \u06a9\u0647 BERT \u0633\u0627\u062e\u062a\u0647 \u0627\u0633\u062a\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062f \u0632\u06cc\u0631 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0631\u0627 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u0647\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 t-SNE \u0627\u0628\u0639\u0627\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0627\u062f\u0647 \u0648 \u062f\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u062f\u0627\u0631 \u062f\u0648 \u0628\u0639\u062f\u06cc \u0631\u0633\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n<p style=\"direction:ltr;text-align:left!important\">\n<code>embeddings = []<\/code><br \/>\n<code>labels = []<\/code><br \/>\n<code>for text, label in zip(X_train, y_train):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;encoded = tokenizer(text, padding=True, truncation=True, max_length=100, return_tensors='pt')<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;ids = encoded['input_ids'].to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;mask = encoded['attention_mask'].to(device)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;embedding = model.get_embeddings(ids, mask)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;if isinstance(embedding, torch.Tensor):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;embedding = embedding.detach().cpu().numpy()<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;embeddings.append(embedding)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;labels.append(label)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Combine embeddings<\/span><\/code><br \/>\n<code>embeddings = np.vstack(embeddings)<\/code><br \/>\n<code>labels = np.array(labels)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code><span style=\"color:green\"># Reduce dimensions using t-SNE with lower perplexity<\/span><\/code><br \/>\n<code>perplexity = min(5, len(embeddings) - 1)<\/code><br \/>\n<code>tsne = TSNE(n_components=2, perplexity=perplexity, random_state=42)<\/code><br \/>\n<code>embeddings_2d = tsne.fit_transform(embeddings)<\/code>\n<\/p>\n<p style=\"direction:ltr;text-align:left!important\">\n<code>plt.figure(figsize=(10, 8))<\/code><br \/>\n<code>for label in np.unique(labels):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;indices = np.where(labels == label)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;plt.scatter(embeddings_2d[indices, 0], embeddings_2d[indices, 1], label=f'Class {label}', marker='^' if label == 0 else 'o')<\/code><br \/>\n<code>plt.title('t-SNE visualization of embeddings')<\/code><br \/>\n<code>plt.xlabel('t-SNE dimension 1')<\/code><br \/>\n<code>plt.ylabel('t-SNE dimension 2')<\/code><br \/>\n<code>plt.legend()<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n\n\n\n<p>\u062e\u0631\u0648\u062c\u06cc \u06a9\u062f \u0628\u0627\u0644\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-146.png\" alt=\"\" class=\"wp-image-18326\" width=\"646\" height=\"525\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-146.png 862w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-146-300x244.png 300w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-146-768x625.png 768w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/07\/image-146-585x476.png 585w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/figure><\/div>\n\n\n<p>\u0627\u06cc\u0646 \u0646\u0645\u0648\u062f\u0627\u0631 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0645\u062b\u0628\u062a \u0648 \u0645\u0646\u0641\u06cc \u062f\u0631 \u0641\u0636\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0628\u0647\u200c\u062e\u0648\u0628\u06cc \u0627\u0632\u0647\u0645 \u062c\u062f\u0627 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u06cc\u0639\u0646\u06cc \u0645\u062f\u0644 \u0628\u0631\u062a \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0627\u0633\u062a\u062e\u0631\u0627\u062c\u200c\u06a9\u0646\u0646\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 (embedder) \u0627\u0632 \u0645\u062a\u0646\u060c \u0628\u0647\u200c\u062e\u0648\u0628\u06cc \u062a\u0648\u0627\u0646\u0633\u062a\u0647\u200c\u200c \u062a\u0641\u0627\u0648\u062a\u200c\u0647\u0627\u06cc \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u06a9\u0644\u0627\u0633 \u0631\u0627 \u0645\u0646\u0639\u06a9\u0633 \u06a9\u0646\u062f \u0648 \u0646\u0647\u0627\u06cc\u062a\u0627 \u06a9\u0627\u0631 \u0645\u062f\u0644 \u0637\u0628\u0642\u0647\u200c\u0628\u0646\u062f\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647 (Classifier) \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0641\u06a9\u06cc\u06a9 \u0627\u06cc\u0646 \u062f\u0648 \u06a9\u0644\u0627\u0633 \u0622\u0633\u0627\u0646 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u062f\u0633\u062a\u0647\u200c\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0628\u06cc \u0631\u0646\u06af (\u06a9\u0644\u0627\u0633 \u06f0 \u06cc\u0627 \u0645\u0646\u0641\u06cc) \u0639\u0645\u062f\u062a\u0627\u064b \u062f\u0631 \u0633\u0645\u062a \u0686\u067e \u0646\u0645\u0648\u062f\u0627\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u0648 \u062f\u0633\u062a\u0647\u200c\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0646\u0627\u0631\u0646\u062c\u06cc \u0631\u0646\u06af (\u06a9\u0644\u0627\u0633 \u06cc\u06a9 \u06cc\u0627 \u0645\u062b\u0628\u062a) \u0639\u0645\u062f\u062a\u0627\u064b \u062f\u0631 \u0633\u0645\u062a \u0631\u0627\u0633\u062a \u0646\u0645\u0648\u062f\u0627\u0631 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0647\u200c\u0627\u0646\u062f. \u062c\u062f\u0627 \u0628\u0648\u062f\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u06a9\u0644\u0627\u0633 \u062f\u0631 \u0646\u0645\u0648\u062f\u0627\u0631 t-SNE \u0628\u06cc\u0627\u0646\u06af\u0631 \u0642\u062f\u0631\u062a \u0645\u062f\u0644 \u062f\u0631 \u062a\u0645\u0627\u06cc\u0632 \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u062f\u0633\u062a\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p>\u0645\u062c\u0645\u0648\u0639\u0647 \u06a9\u0627\u0645\u0644 \u06a9\u062f\u0647\u0627\u06cc\u06cc \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> <\/mark><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/MobinaPoulaei\/PyTorch\/tree\/main\/Transformer%20with%20PyTorch\" data-type=\"URL\" data-id=\"https:\/\/github.com\/MobinaPoulaei\/PyTorch\/tree\/main\/Transformer%20with%20PyTorch\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\u0627\u06cc\u0646 \u0631\u06cc\u067e\u0627\u0632\u06cc\u062a\u0648\u0631\u06cc<\/mark><\/a><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> <\/mark>\u0627\u0632 \u06af\u06cc\u062a\u200c\u0647\u0627\u0628 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch<\/h2>\n\n\n\n<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u0627 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0648 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u0648\u0627\u0632\u06cc\u060c \u062a\u0648\u0627\u0646\u0633\u062a\u0647\u200c\u0627\u0646\u062f \u0627\u0646\u0642\u0644\u0627\u0628\u06cc \u062f\u0631 \u062d\u0648\u0632\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0627 \u062f\u0642\u062a \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0644\u0627\u06cc \u062e\u0648\u062f\u060c \u062f\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0632 \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc \u06af\u0631\u0641\u062a\u0647 \u062a\u0627 \u062a\u0648\u0644\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062a\u0646 \u0648 \u062a\u0634\u062e\u06cc\u0635 \u06af\u0641\u062a\u0627\u0631\u060c \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u06cc\u200c\u0646\u0638\u06cc\u0631\u06cc \u0631\u0627 \u0628\u0647 \u0646\u0645\u0627\u06cc\u0634 \u06af\u0630\u0627\u0634\u062a\u0647\u200c\u0627\u0646\u062f. \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 PyTorch \u0646\u06cc\u0632 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0627\u0628\u0632\u0627\u0631\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0648 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0698\u0648\u0647\u0634\u06af\u0631\u0627\u0646 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p>\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0633\u0627\u062e\u062a\u0627\u0631 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0622\u0646\u200c\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 PyTorch \u067e\u0631\u062f\u0627\u062e\u062a\u06cc\u0645. \u0628\u0627 \u062a\u062d\u0644\u06cc\u0644 \u0648 \u0628\u0631\u0631\u0633\u06cc \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0645\u0631\u0627\u062d\u0644 \u0648 \u0627\u062c\u0632\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u060c \u0646\u062d\u0648\u0647\u200c\u06cc \u0627\u0639\u0645\u0627\u0644 \u062a\u0648\u062c\u0647\u060c \u0646\u0631\u0645\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0648 \u067e\u06cc\u0634\u200c\u062e\u0648\u0631 \u06a9\u0631\u062f\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u0645. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u062f\u0631 \u0648\u0638\u0627\u06cc\u0641 \u0645\u062e\u062a\u0644\u0641 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f. \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062a\u0648\u0627\u0646\u0633\u062a\u0647 \u0628\u0627\u0634\u062f \u0628\u0647 \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631 \u0648 \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u0634\u0645\u0627 \u0627\u0632 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0648 \u0646\u062d\u0648\u0647\u200c\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0622\u0646\u200c\u0647\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"307\" src=\"http:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2-1024x307.jpg\" alt=\"\u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644\" class=\"wp-image-15747\" srcset=\"https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2-1024x307.jpg 1024w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2-300x90.jpg 300w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2-768x230.jpg 768w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2-1536x461.jpg 1536w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2-585x176.jpg 585w, https:\/\/cafetadris.com\/blog\/wp-content\/uploads\/2024\/05\/FAQs-2-2.jpg 2000w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">\u0633\u0648\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f<\/h3>\n\n\n\n<p>\u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u062f\u0631\u06a9 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u062f\u0631 \u062c\u0645\u0644\u0627\u062a \u0631\u0627 \u062f\u0627\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0631\u062c\u0645\u0647\u200c\u0647\u0627\u06cc \u062f\u0642\u06cc\u0642\u200c\u062a\u0631\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u0645\u0627\u0646\u0646\u062f RNN\u0647\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f. \u062f\u0631 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 PyTorch\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0648 \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 \u0686\u06af\u0648\u0646\u0647 \u062f\u0631 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f<\/h3>\n\n\n\n<p>\u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u0686\u0646\u062f\u0633\u0631 (Multi-Head Attention) \u0628\u0647 \u0645\u062f\u0644 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u062c\u0646\u0628\u0647 \u0645\u062e\u062a\u0644\u0641 \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062a\u0648\u062c\u0647 \u06a9\u0646\u062f. \u0647\u0631 \u0633\u0631 \u062a\u0648\u062c\u0647 (Attention Head) \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u0646\u06af\u0627\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0633\u067e\u0633 \u0646\u062a\u0627\u06cc\u062c \u0627\u06cc\u0646 \u062a\u0648\u062c\u0647\u200c\u0647\u0627 \u0628\u0627 \u0647\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u062a\u0627 \u06cc\u06a9 \u062e\u0631\u0648\u062c\u06cc \u062c\u0627\u0645\u0639 \u062a\u0648\u0644\u06cc\u062f \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u062f\u0644 \u0628\u062a\u0648\u0627\u0646\u062f \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u06cc\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u062a\u0631 \u062f\u0631\u06a9 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0627 PyTorch \u0686\u0647 \u0645\u0632\u0627\u06cc\u0627\u06cc\u06cc \u062f\u0627\u0631\u062f\u061f<\/h3>\n\n\n\n<p>PyTorch \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0648 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0641\u06cc\u0633\u0628\u0648\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0642\u0648\u06cc \u0627\u0632 GPU\u0647\u0627 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u06cc\u0628\u0627\u06af \u0622\u0633\u0627\u0646\u060c \u0641\u0631\u0622\u06cc\u0646\u062f \u0622\u0645\u0648\u0632\u0634 \u0648 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0645\u0627\u0646\u0646\u062f \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u062c\u0627\u0645\u0639 \u0648 \u062c\u0627\u0645\u0639\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0641\u0639\u0627\u0644 PyTorch \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0633\u0631\u0639\u062a \u0628\u0647 \u0645\u0634\u06a9\u0644\u0627\u062a \u062e\u0648\u062f \u067e\u0627\u0633\u062e \u062f\u0647\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0686\u0631\u0627 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u062f\u0631 \u062a\u062d\u0644\u06cc\u0644 \u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0645\u0648\u062b\u0631 \u0647\u0633\u062a\u0646\u062f\u061f<\/h3>\n\n\n\n<p>\u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc\u200c\u0634\u0627\u0646 \u062f\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc\u200c\u0645\u062f\u062a \u0648 \u062a\u0648\u062c\u0647 \u0628\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u062e\u062a\u0644\u0641 \u0645\u062a\u0646\u060c \u062f\u0631 \u062a\u062d\u0644\u06cc\u0644 \u0627\u062d\u0633\u0627\u0633\u0627\u062a (Sentiment Analysis) \u0628\u0633\u06cc\u0627\u0631 \u0645\u0648\u062b\u0631 \u0647\u0633\u062a\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u06a9\u0644\u0645\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc \u0648 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u0627\u062d\u0633\u0627\u0633\u0627\u062a \u0645\u062b\u0628\u062a\u060c \u0645\u0646\u0641\u06cc \u0648 \u062e\u0646\u062b\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0642\u062a \u062a\u0634\u062e\u06cc\u0635 \u062f\u0647\u0646\u062f. PyTorch \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062a\u0646 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u061f<\/h3>\n\n\n\n<p>\u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0645\u0627\u0646\u0646\u062f GPT \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0648 \u0645\u062a\u0646\u0648\u0639\u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u062a\u0648\u0646\u06cc \u0628\u0627 \u0633\u0628\u06a9 \u0648 \u0633\u06cc\u0627\u0642 \u0627\u0646\u0633\u0627\u0646\u06cc \u0631\u0627 \u062f\u0627\u0631\u0646\u062f. \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u060c \u0627\u0628\u062a\u062f\u0627 \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u0645\u0646\u0627\u0633\u0628 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0648 \u067e\u06cc\u0634\u200c\u067e\u0631\u062f\u0627\u0632\u0634 \u0634\u0648\u0646\u062f. \u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0645\u0627\u0646\u0646\u062f PyTorch\u060c \u0645\u062f\u0644 \u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u062f \u0645\u062a\u0648\u0646\u06cc \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627 \u0648 \u0637\u0628\u06cc\u0639\u06cc \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0644\u0631\u0646\u06cc\u0646\u06af \u0631\u0627 \u0627\u0632 \u0627\u0645\u0631\u0648\u0632 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f!<\/h2>\n\n\n\n<p>\u062f\u0646\u06cc\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062c\u0630\u0627\u0628 \u0627\u0633\u062a \u0648 \u062f\u0627\u0646\u0633\u062a\u0646 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647\u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u062a\u062d\u0644\u06cc\u0644 \u062f\u0627\u062f\u0647\u200c\u060c \u06cc\u0627 \u0628\u0627\u0632\u0627\u0631\u06cc\u0627\u0628\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062f\u0627\u062f\u0647\u060c \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0641\u0631\u0635\u062a\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0645\u0646\u0627\u0633\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0641\u0627\u0631\u063a \u0627\u0632 \u0631\u0634\u062a\u0647\u200c \u0648 \u067e\u06cc\u0634\u200c\u0632\u0645\u06cc\u0646\u0647\u200c\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062d\u0627\u0644\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0633\u0637\u062d \u0645\u0642\u062f\u0645\u0627\u062a\u06cc \u062a\u0627 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0628\u06cc\u0627\u0645\u0648\u0632\u06cc\u062f. \u0627\u06af\u0631 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u06cc\u062f \u0628\u0647 \u0627\u06cc\u0646 \u062d\u0648\u0632\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f\u060c \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u0644\u06cc\u0646\u06a9 \u0642\u062f\u0645 \u0627\u0648\u0644 \u0631\u0627 \u0647\u0645\u06cc\u0646 \u062d\u0627\u0644\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f.<\/p>\n\n\n\n<p>\u0645\u0634\u0627\u0648\u0631\u0627\u0646 \u06a9\u0627\u0641\u0647\u200c\u062a\u062f\u0631\u06cc\u0633 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0645\u0633\u06cc\u0631 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0627\u06cc\u0646 \u062d\u0648\u0632\u0647 \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n<p><a class=\"call-to-btn\" href=\"https:\/\/cafetadris.com\/datascience\" target=\"_blank\" rel=\"noopener noreferrer\" data-wplink-edit=\"true\">\u062f\u0648\u0631\u0647 \u062c\u0627\u0645\u0639 \u062f\u06cc\u062a\u0627 \u0633\u0627\u06cc\u0646\u0633 \u0648 \u0645\u0627\u0634\u06cc\u0646 \u0644\u0631\u0646\u06cc\u0646\u06af<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\u062a\u0631\u0646\u0633\u0641\u0648\u0631\u0645\u0631\u0647\u0627 (Transformers)\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642\u060c \u0646\u0642\u0634 \u0645\u0647\u0645\u06cc \u062f\u0631 \u062a\u062d\u0648\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u0627\u06cc\u0641\u0627 \u06a9\u0631\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0627 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u062a\u0648\u062c\u0647 \u062e\u0648\u062f \u0642\u0627\u0628\u0644\u06cc\u062a \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u0648\u0627\u0632\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u0631\u0627 \u062f\u0627\u0631\u0646\u062f. PyTorch\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc&#8230;<\/p>\n","protected":false},"author":11,"featured_media":18304,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[558],"tags":[572,1235,754],"yst_prominent_words":[],"class_list":["post-18302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-558","tag-572","tag---pytorch","tag---transformer-model"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/posts\/18302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/comments?post=18302"}],"version-history":[{"count":33,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/posts\/18302\/revisions"}],"predecessor-version":[{"id":19536,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/posts\/18302\/revisions\/19536"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/media\/18304"}],"wp:attachment":[{"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/media?parent=18302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/categories?post=18302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/tags?post=18302"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/cafetadris.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=18302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}