![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
2017 সালে, গবেষকদের একটি দল (গুগল এবং টরন্টো বিশ্ববিদ্যালয় থেকে) প্রাকৃতিক ভাষা প্রক্রিয়াকরণ (NLP) কাজগুলি পরিচালনা করার জন্য একটি নতুন উপায় চালু করেছে। তাদের বিপ্লবী কাগজ " অনটেনশন ইজ অল ইউ নিড " ট্রান্সফরমার মডেল উপস্থাপন করেছে, একটি আর্কিটেকচার যা আজ অনেক উন্নত এআই সিস্টেমের ভিত্তি হয়ে উঠেছে। মডেলের কর্মক্ষমতা, স্কেলেবিলিটি এবং বহুমুখিতা এর ব্যাপক গ্রহণের দিকে পরিচালিত করেছে, যা BERT (বাইডাইরেশনাল এনকোডার রিপ্রেজেন্টেশন) এবং GPT (জেনারেটিভ প্রি-ট্রেইনড ট্রান্সফরমার) এর মতো অত্যাধুনিক মডেলগুলির মেরুদণ্ড তৈরি করেছে।
ট্রান্সফরমার মডেলের আগে, বেশিরভাগ AI মডেল যেগুলি ভাষা প্রক্রিয়াকরণ করে সেগুলি রিকারেন্ট নিউরাল নেটওয়ার্ক (RNN) বা এর উন্নত সংস্করণ, লং শর্ট-টার্ম মেমরি নেটওয়ার্ক (LSTM) নামে এক ধরণের নিউরাল নেটওয়ার্কের উপর খুব বেশি নির্ভর করত। বিশেষ করে, ভাষা মডেলিং এবং মেশিন অনুবাদের মতো সমস্যা (যাকে সিকোয়েন্স ট্রান্সডাকশনও বলা হয়)। এই মডেলগুলি বাম থেকে ডানে (বা তদ্বিপরীত) একটি ক্রমানুসারে শব্দগুলিকে প্রক্রিয়াজাত করে৷ যদিও এই পদ্ধতিটি বোধগম্য হয়েছিল কারণ একটি বাক্যে শব্দগুলি প্রায়শই পূর্ববর্তী শব্দগুলির উপর নির্ভর করে, এর কিছু উল্লেখযোগ্য ত্রুটি ছিল:
মূল ধারণা: আর্কিটেকচারের প্রতি মনোযোগ
ট্রান্সফরমার মডেলের পিছনে মূল ধারণাটি "মনোযোগ" নামে পরিচিত। সহজ শর্তে, মনোযোগ একটি শব্দের অর্থ/প্রসঙ্গ বোঝার চেষ্টা করার সময় একটি বাক্যের নির্দিষ্ট অংশগুলিতে ফোকাস করতে মডেলটিকে সাহায্য করে। বাক্যটি বিবেচনা করুন, "গ্যারেজে পার্ক করা গাড়িটি নীল।" আপনি যখন নীল শব্দটি সম্পর্কে চিন্তা করেন, তখন আপনি স্বাভাবিকভাবেই বাক্যটির আগে "কার" শব্দটিতে ফোকাস করেন কারণ এটি আপনাকে নীল কী বলে। মেশিন অনুবাদ মডেলগুলি "নীল" গাড়ি বা গ্যারেজকে নির্দেশ করছে কিনা তা সনাক্ত করতে সমস্যা হবে। স্ব-মনোযোগ এটিই করে - এটি মডেলটিকে প্রাসঙ্গিক শব্দগুলিতে ফোকাস করতে সহায়তা করে, সেগুলি বাক্যে যেখানেই থাকুক না কেন।
লক্ষ্য করুন যে মনোযোগ একটি নতুন ধারণা ছিল না এবং ইতিমধ্যেই RNN-এর সাথে তাল মিলিয়ে ব্যবহার করা হচ্ছে। ট্রান্সফরমার ছিল প্রথম ট্রান্সডাকশন মডেল যা শুধুমাত্র মনোযোগের উপর নির্ভর করে, যার ফলে নিউরাল নেটওয়ার্কের প্রয়োজনীয়তা দূর হয়। এটি নিম্নলিখিত সুবিধা দিয়েছে:
আপনি দেখতে পাচ্ছেন, নতুন মডেলটি শুধুমাত্র নিউরাল নেটওয়ার্কের সমস্ত অসুবিধা দূর করেনি কিন্তু প্রকৃতপক্ষে মেশিন অনুবাদের কার্যকারিতাও উন্নত করেছে!
যেহেতু মূল কাগজটি বোঝা একটু কঠিন হতে পারে, এখানে কাগজে বর্ণিত মডেল আর্কিটেকচারের একটি সহজ ব্যাখ্যা দেওয়া হল।
এনকোডার এবং ডিকোডার স্ট্যাক : ট্রান্সফরমারে একটি এনকোডার স্ট্যাক (বাম দিকে) এবং একটি ডিকোডার স্ট্যাক (ডানদিকে) থাকে। এনকোডার স্ট্যাক ইনপুট সিকোয়েন্সকে (বাক্যের মতো) একটি ধারাবাহিক উপস্থাপনাগুলির একটি সেটে রূপান্তরিত করে, যখন ডিকোডার স্ট্যাক এই উপস্থাপনাগুলিকে একটি আউটপুট অনুক্রমে (অনুবাদের মতো) রূপান্তরিত করে। প্রতিটি স্ট্যাকের জন্য, নীচে থেকে উপরে যাওয়া, এখানে মডেলের মূল উপাদানগুলি একটি উদাহরণ সহ ব্যাখ্যা করা হয়েছে৷
এনকোডারে ইনপুট বাক্য প্রক্রিয়াকরণ
ইনপুট : আপনি যে পাঠ্যটি অনুবাদ করতে চান। যেমন "গ্যারেজে যে গাড়িটি পার্ক করা হয়েছিল সেটি নীল।"
ইনপুট এমবেডিং : শব্দকে স্থির-দৈর্ঘ্যের সংখ্যাসূচক উপস্থাপনায় (ভেক্টর) রূপান্তর করে যা এম্বেডিং বলে। এই এমবেডিংগুলি এমনভাবে শব্দের শব্দার্থিক অর্থ ক্যাপচার করে যাতে মডেলটি বুঝতে পারে। আমাদের উদাহরণ থেকে:
"দ্য" -> [0.9, -0.4, 0.2, ...]
"কার" -> [0.5, 0.1, -0.7, ...]
"যে" -> [-০.৮, ০.২, ০.৮, ...]
এবং একইভাবে উপরের বাক্যে প্রতিটি শব্দের জন্য।
পজিশনাল এনকোডিং : যেহেতু মডেলটি ইনপুট এম্বেডিং প্রক্রিয়া করে, যার কোনো ক্রম নেই, তাই একটি বাক্যে শব্দের ক্রম বোঝার একটি উপায় প্রয়োজন। অবস্থানগত এনকোডিং ক্রমানুসারে প্রতিটি শব্দের অবস্থান সম্পর্কে এই তথ্যটি এর এমবেডিংয়ে যুক্ত করে।
পজিশন 1-এর "The" [0.9 + P1, -0.4 + P1, 0.2 + P1, ...]-এর সাথে সামঞ্জস্য করা যেতে পারে, যেখানে P1 প্রথম অবস্থানের জন্য অবস্থানগত এনকোডিং উপস্থাপন করে, এইভাবে একটি নতুন এমবেডিং তৈরি করে যা P1 অবস্থানের জন্য অনন্য। .
স্ব-মনোযোগ প্রক্রিয়া : পূর্বে বর্ণিত হিসাবে, এটি মডেলটিকে প্রেক্ষাপটের উপর নির্ভর করে একটি বাক্যে বিভিন্ন শব্দের উপর ফোকাস করতে দেয়। প্রতিটি শব্দের জন্য, স্ব-মনোযোগ ব্যবস্থা একটি স্কোর গণনা করে যা বর্তমান শব্দটি এনকোড করার সময় অন্যান্য শব্দগুলিতে কতটা ফোকাস দেওয়া উচিত তা প্রতিনিধিত্ব করে।
"গাড়ি" শব্দের জন্য স্ব-মনোযোগ নির্ধারণ করতে পারে যে "পার্ক করা", "গ্যারেজ", এবং "নীল" এর প্রসঙ্গ বোঝার ক্ষেত্রে বিশেষভাবে প্রাসঙ্গিক।
মাল্টি-হেড মনোযোগ : ট্রান্সফরমার মডেলের অভিনব অংশ। মাল্টি-হেড অ্যাটেনশন হল কেবলমাত্র একাধিক স্ব-মনোযোগ স্তর/অপারেশনগুলি সমান্তরালভাবে এবং রৈখিকভাবে সংযুক্ত।
উদাহরণস্বরূপ, একটি মাথা মূল বিষয় ("গাড়ি") এবং এর বৈশিষ্ট্য ("নীল") এর উপর ফোকাস করতে পারে, যখন অন্য মাথা আপেক্ষিক ধারায় ফোকাস করতে পারে ("যা গ্যারেজে পার্ক করা ছিল")।
মাল্টি হেড অ্যাটেনশন মডিউল মডেলটিকে বোঝার ক্ষমতা দেয় যে গ্যারেজের তুলনায় গাড়ির সাথে "নীল" বেশি প্রাসঙ্গিক।
ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্ক : স্ব-মনোযোগ স্তরের পরে, আউটপুট একটি ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্কের মাধ্যমে পাস করা হয় যা প্রতিটি অবস্থানে আলাদাভাবে এবং অভিন্নভাবে প্রয়োগ করা হয় (আবারও, সমান্তরালভাবে চালানো যেতে পারে!)। এর মধ্যে একটি ReLU অ্যাক্টিভেশন সহ দুটি রৈখিক রূপান্তর রয়েছে।
যোগ এবং আদর্শ : অবশিষ্ট সংযোগ (যোগ) একটি স্তরের ইনপুট এর আউটপুটে যোগ করার জন্য ব্যবহার করা হয়, যা তারপর স্বাভাবিক করা হয় (আদর্শ)। এটি গ্রেডিয়েন্টগুলিকে অদৃশ্য হওয়া বা বিস্ফোরিত হওয়া থেকে রোধ করে গভীর নেটওয়ার্কগুলিকে প্রশিক্ষণ দিতে সহায়তা করে।
ডিকোডারে অনুবাদ তৈরি করা হচ্ছে
NLP-তে, বিশেষ অক্ষর <SOS> দিয়ে স্টার্ট-অফ-সিকোয়েন্স টোকেনের শুরু এবং <EOS> দিয়ে সিকোয়েন্সের শেষ নির্দেশ করা সাধারণ। ডিকোডারটি এনকোডার থেকে প্রক্রিয়াকৃত ইনপুট নেয় এবং ফরাসি অনুবাদ তৈরি করে "La voiture qui était garée dans le garage est bleue।" এই অংশটি কীভাবে কাজ করে তা এখানে:
ডিকোডারে ইনপুট : ডিকোডারটি এনকোডার থেকে ইংরেজি বাক্যের এনকোডেড উপস্থাপনা দিয়ে শুরু হয়। আপনি যদি লক্ষ্য করেন, ডিকোডার ইনপুট হিসাবে তার নিজস্ব আউটপুট নেয়। যেহেতু এটিতে প্রাথমিক শব্দের জন্য একটি ইনপুট থাকবে না, তাই আমরা শুরুতে <SOS> টোকেন সন্নিবেশ করি (অতএব ডানদিকে সরানো হয়েছে) এবং শেষ শব্দটি সরিয়ে ফেলি। এই স্থানান্তরিত ক্রম যা ডিকোডারে খাওয়ানো হয়।
মুখোশযুক্ত স্ব-মনোযোগ : ডিকোডারে, একটি মুখোশযুক্ত স্ব-মনোযোগ প্রক্রিয়া নিশ্চিত করে যে আউটপুট ক্রম-এর প্রতিটি শব্দ শুধুমাত্র তার আগে থাকা শব্দগুলিতে উপস্থিত হতে পারে। এটি মডেলটিকে সামনের দিকে তাকাতে বাধা দেয় এবং এটি নিশ্চিত করে যে এটি বাম থেকে ডানে এক সময়ে অনুবাদ একটি শব্দ তৈরি করে৷
উদাহরণস্বরূপ, যখন ডিকোডারটি "লা" (ফরাসি ভাষায় প্রথম শব্দ) শব্দটি তৈরি করতে চলেছে, তখন এটি শুধুমাত্র <SOS> থেকে প্রসঙ্গ জানে এবং "Voiture" এর মতো ভবিষ্যতের শব্দগুলি নয়।
ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্ক : ডিকোডার এই তথ্যটিকে আরও প্রক্রিয়া করার জন্য অন্য একটি ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্ক প্রয়োগ করে, ধাপে ধাপে অনুবাদ পরিমার্জন করে।
ডিকোডারে, মুখোশযুক্ত স্ব-মনোযোগ, এনকোডার-ডিকোডার মনোযোগ এবং ফিড-ফরোয়ার্ড নেটওয়ার্কগুলির একাধিক স্তরের মাধ্যমে ইনপুট বাক্য প্রক্রিয়াকরণের পরে, আমরা লক্ষ্য বাক্যের প্রতিটি অবস্থানের জন্য ক্রমাগত উপস্থাপনা (ফ্লোটগুলির ভেক্টর) একটি ক্রম পাই (ফরাসি আমাদের ক্ষেত্রে)। এই উপস্থাপনাগুলোকে বাস্তব শব্দে রূপান্তরিত করা দরকার। এখানেই চূড়ান্ত রৈখিক এবং সফটম্যাক্স স্তরটি কার্যকর হয়।
ডিকোডার মূলত এটি করে:
এই ধাপগুলিকে একত্রিত করে, ট্রান্সফরমার পূর্ববর্তী মডেলগুলির তুলনায় সম্পূর্ণ বাক্যের গঠন এবং অর্থ আরও কার্যকরভাবে বুঝতে পারে। স্ব-মনোযোগ ব্যবস্থা এবং সমান্তরাল প্রক্রিয়াকরণ ট্রান্সফরমারকে উত্স এবং লক্ষ্য ভাষা উভয়ের সূক্ষ্মতা এবং কাঠামোকে কার্যকরভাবে ক্যাপচার করতে সক্ষম করে, এটি মেশিন অনুবাদের মতো কাজে অত্যন্ত দক্ষ করে তোলে।