LSTM, বা লং শর্ট-টার্ম মেমরি নেটওয়ার্ক, দীর্ঘকাল ধরে চলে আসছে। এগুলি বেশ কয়েকটি ক্রম-সম্পর্কিত কাজের জন্য প্রয়োগ করা হয়েছে, যেমন পাঠ্য তৈরি এবং অনুবাদ বা এমনকি চিত্রের ক্যাপশন তৈরি করা।
তাদের ত্রুটি হল যে তারা শক্তিশালী আধুনিক দিনের GPU ব্যবহার করার জন্য সমান্তরাল করা যায়নি। এই সীমাবদ্ধতা ট্রান্সফরমারগুলির উত্থানের পথ প্রশস্ত করেছে যা প্রশিক্ষণ এবং অনুমানের ব্যাপক সমান্তরালকরণের জন্য GPU গুলিকে ব্যবহার করে।
আমরা যদি এখন LSTM গুলিকে পুনর্গঠন এবং সমান্তরাল করার চেষ্টা করি, তাহলে তারা কি পরবর্তী প্রজন্মের LLM তৈরির হাতিয়ার হতে পারে?
এটি হল সঠিক প্রশ্নের উত্তর " XLSM — এক্সটেন্ডেড লং শর্ট-টার্ম মেমরি নেটওয়ার্কস, " যা " বর্ধিত " দীর্ঘ স্বল্পমেয়াদী মেমরির জন্য দাঁড়িয়েছে৷ তারা স্থাপত্যে দুটি অভিনব ব্লকের প্রস্তাব করে, যথা, sLSTM এবং mLSTM।
সুতরাং, আসুন এই কাগজে প্রস্তাবিত প্রস্তাবিত sLSTM এবং mLSTM ব্লকগুলির গভীরে ডুব দেওয়া যাক এবং XLSTM আর্কিটেকচারের বিকাশের জন্য আমরা কীভাবে সেগুলিকে একত্রে স্ট্যাক করতে পারি তা দেখি।
আপনি যদি আমার মতো কেউ হন এবং XLSTM গুলি দৃশ্যত ব্যাখ্যা করতে চান, তাহলে অনুগ্রহ করে এই নিবন্ধে YouTube ভিডিওটি দেখুন:
ক্রমিক ডেটা মোকাবেলা করার জন্য ডিজাইন করা প্রাচীনতম নেটওয়ার্কগুলির মধ্যে একটি হল পুনরাবৃত্ত নিউরাল নেটওয়ার্ক।
এটি তার আর্কিটেকচারে ইনপুট হিসাবে x এবং আউটপুট হিসাবে o সহ পুনরাবৃত্ত সংযোগ ব্যবহার করে। যদি আমরা এটি প্রকাশ করি, আমরা এটিকে টাইম স্ট্যাম্প, t-1, t, এবং t+1 এ ঘটতে থাকা ক্রিয়াকলাপের একটি ক্রম হিসাবে কল্পনা করতে পারি। RNN-এর একটি বড় অপূর্ণতা ছিল অদৃশ্য হয়ে যাওয়া গ্রেডিয়েন্ট সমস্যা, যেখানে গ্রেডিয়েন্ট শূন্য হয়ে যায় কারণ আমরা অনেকগুলি ব্লককে একসাথে স্ট্যাক করি।
LSTMs, বা দীর্ঘ স্বল্পমেয়াদী মেমরি নেটওয়ার্ক, সেল স্টেট এবং নেটওয়ার্কে গেটিং মেকানিজম প্রবর্তন করে অদৃশ্য গ্রেডিয়েন্টগুলি কাটিয়ে উঠতে প্রস্তাব করা হয়েছিল।
সেল স্টেট, c , দীর্ঘমেয়াদী স্মৃতি যা বেশ কয়েকটি টাইম স্ট্যাম্প জুড়ে থাকে। লুকানো অবস্থা, h , স্বল্পমেয়াদী স্মৃতি যা এক সময় থেকে অন্য ধাপে চলে যায়। এবং, অবশ্যই, আমাদের ইনপুট আছে, z , ইনপুট ক্রম থেকে।
তিনটি গেটের এস-আকৃতির ফাংশন রয়েছে। দীর্ঘমেয়াদী স্মৃতিতে কোন তথ্য ভুলে যেতে হবে তা সিদ্ধান্ত নিতে ভুলে যাওয়া গেটটি একটি সিগমায়েড ফাংশন ব্যবহার করে। ইনপুট গেট ইনপুট প্রক্রিয়া করার জন্য একটি সিগমায়েড ফাংশন ব্যবহার করে এবং এটি ভুলে গেটের আউটপুটে যোগ করে। এই সংযোজন ক্রিয়াকলাপের একটি অভিনব শব্দ রয়েছে যাকে XLSTM কাগজ এবং একাডেমিক সাহিত্যে ধ্রুবক ত্রুটি ক্যারোসাল বলা হয়। এই সংযোজন ক্রিয়াটি RNN-এ পাওয়া অদৃশ্য গ্রেডিয়েন্ট সমস্যাকে মোকাবেলা করে। আউটপুট c_t তারপর আউটপুট গেট দ্বারা প্রক্রিয়া করা হয়, যা সাধারণত একটি tanh ফাংশন যা হিডেন স্টেট আউটপুট h_t যা পরবর্তী ধাপে চলে যায়।
এই ক্রিয়াকলাপগুলির সাথে, আমরা LSTM এর দুটি প্রধান সমীকরণকে বিচ্ছিন্ন করেছি যা হল c_t এবং h_t ।
LSTM-এর প্রধান ত্রুটিগুলির মধ্যে একটি হল স্টোরেজ সিদ্ধান্তগুলি সংশোধন করতে তাদের অক্ষমতা। এর অর্থ হ'ল ক্রম দৈর্ঘ্য বাড়ার সাথে সাথে মডেলটি মেমরিতে অতীতের তথ্য রাখে কিনা তা সিদ্ধান্ত নিতে সক্ষম হওয়া উচিত।
উদাহরণস্বরূপ, যদি আমরা এই বাক্যটি গ্রহণ করি, "টম দোকানে গিয়েছিল। তিনি কিছু পানীয় কিনেছিলেন," এবং এটির সাথে তুলনা করুন "টম দোকানে গিয়ে কিছু মুদি কিনতে গিয়েছিলেন যার মধ্যে গাজর, পেঁয়াজ, কলা, আপেল, কমলা, কফি এবং রুটি ছিল৷ সে কিছু পানীয়ও কিনেছে।” প্রতিটি নতুন শব্দের জন্য, যেমন কলা বা আপেল, মডেলটিকে ক্রমাগত সংশোধন করতে হবে যে এটি তার স্মৃতিতে অতীত শব্দ "টম" ধরে রাখবে কিনা। এটি এলএসটিএম-এর জন্য একটি বড় চ্যালেঞ্জ, এবং এটি তার ভুলে যাওয়ার গেটের সিগমায়েড ফাংশন থেকে উদ্ভূত হয়।
সিগময়েড ফাংশন বনাম সূচকীয় ফাংশন। সিগমায়েড প্রান্তের দিকে চ্যাপ্টা হয়, কিন্তু সূচকটি কেবল বাড়তে থাকে।
সুতরাং, যদি আমরা একটি ভুলে গেট গ্রহণ করি, এটি একটি সিগমায়েড ফাংশন দ্বারা গঠিত, যার একটি S-আকৃতির বক্ররেখা রয়েছে যা শেষের দিকে সমতল হয়। এটি ইঙ্গিত দেয় যে আমরা যখন ইনপুটের উচ্চ মানের দিকে এগিয়ে যাচ্ছি, তখন কী ভুলে যেতে হবে এবং কী মেমরিতে রাখতে হবে সেই সিদ্ধান্তটি বেশ চ্যালেঞ্জিং হয়ে ওঠে। কিন্তু যদি আমরা তার জায়গায় একটি সূচকীয় ফাংশন ব্যবহার করি, তাহলে গেমটি পরিবর্তিত হয় এবং আমরা ইনপুটের উচ্চতর মানগুলিতে যাই, আমরা আউটপুটগুলির জন্য একটি বিস্তৃত পরিসর পাই। এটি, ঘুরে, ইঙ্গিত করে যে LSTMগুলি স্টোরেজ সিদ্ধান্তগুলি সংশোধন করার ক্ষেত্রে আরও ভাল হতে পারে।
সুতরাং, এই কাগজে প্রস্তাবিত সমাধান হল সিস্টেম ব্লক। যদি আমরা ক্লাসিক LSTM সমীকরণে ফিরে যাই যা কোষের অবস্থার প্রতিনিধিত্ব করে, যেমনটি আমরা আগে দেখেছি, এটি ভুলে গেট এবং ইনপুট গেটগুলির একটি ফাংশন।
এই গেটগুলি, ঘুরে, সিগমায়েড ফাংশন দ্বারা গঠিত। তাহলে, যদি আমরা এই সিগমায়েড ফাংশনগুলিকে সূচকীয় ফাংশন দিয়ে প্রতিস্থাপন করি? নতুন গেট f_t এবং i_t এখন exp(f_t) এবং exp(i_t) হয়ে গেছে, এবং এটি sLSTM ব্লক তৈরির প্রধান পরিবর্তন।
সিগময়েড ফাংশনের বিপরীতে, যা ইনপুটগুলিকে একটি নির্দিষ্ট সীমার মধ্যে চাপিয়ে দেয়, সূচকীয় ফাংশনগুলি ইনপুট বৃদ্ধির সাথে সাথে মান বৃদ্ধি পায় এবং এটি স্বাভাবিকভাবেই আউটপুটকে স্বাভাবিক করে না, বলুন, সিগময়েডের মতো 0 এবং 1 এর মধ্যে থাকে। ফাংশন
সুতরাং, আমাদের একটি নতুন নর্মালাইজার স্টেট প্রবর্তন করতে হবে, যা ভুলে যাওয়া এবং ইনপুট গেটের একটি ফাংশন। আমরা এটিকে স্বাভাবিকীকরণ মানের একটি চলমান গড় হিসাবে ভাবতে পারি।
আমরা আউটপুট বা নতুন লুকানো অবস্থা স্বাভাবিক করার জন্য গণনা করা স্বাভাবিককরণ মান ব্যবহার করি।
যদিও স্বাভাবিককরণ লুকানো অবস্থার যত্ন নেয়, ভুলে যাওয়া এবং ইনপুট গেটগুলিকে উড়িয়ে দেওয়া থেকে সূচককে নিয়ন্ত্রণ করতে, আমাদের একটি স্টেবিলাইজার প্রবর্তন করতে হবে। এটি সূচকের প্রভাব মোকাবেলা করতে এবং স্থিতিশীলতার পরিচয় দিতে লগ ফাংশন আকারে আসে। সুতরাং, স্টেবিলাইজার স্টেট হল ভুলে গেট এবং ইনপুট গেট আউটপুটের লগের সর্বোচ্চ। আমরা ইনপুট থেকে এই স্ট্যাবিলাইজার মানগুলি বিয়োগ করি এবং তাদের স্থিতিশীল করতে গেটগুলি ভুলে যাই।
LSTM-এর দ্বিতীয় ত্রুটি হল সমান্তরালকরণের অভাব। এলএসটিএমগুলিকে ক্রমিক ডেটা পরিচালনা করার জন্য ডিজাইন করা হয়েছিল, যার অর্থ ক্রমানুসারে বর্তমান ইনপুট প্রক্রিয়া করার জন্য ক্রমানুসারে পূর্ববর্তী ইনপুট প্রক্রিয়াকরণের আউটপুট প্রয়োজন। এই বিশেষ ত্রুটিটি সমান্তরালকরণকে বাধা দেয় এবং অপরাধী ছিল যা ট্রান্সফরমার যুগের ভোরের দিকে পরিচালিত করেছিল।
এই কাগজে প্রস্তাবিত সমাধান হল উপন্যাস এমএলএসটিএম ব্লক। সুতরাং, আসুন পরবর্তী তাদের তাকান.
XLSTM-এর পরবর্তী বিল্ডিং ব্লক হল mLSTM ব্লক, যেখানে m মানে মেমরি। এর অপূর্ণতা কি তা দেখতে আবার ক্লাসিক LSTM সমীকরণে ফিরে যাই। আমরা দেখতে পাচ্ছি যে কোষের অবস্থা c_t একটি স্কেলার। এর মানে হল আমরা একটি সময়ে শুধুমাত্র 1 নম্বরের সাথে লেনদেন করি যখন আমাদের কাছে কমপক্ষে 12 গিগ মেমরি সহ আধুনিক দিনের GPU-এর বিলাসিতা থাকে।
mLSTM ব্লক কোষের অবস্থার জন্য স্কেলারের জায়গায় ম্যাট্রিক্স প্রবর্তন করে। LSTM-এর আমাদের ক্লাসিক সমীকরণে ফিরে যাওয়া, আমরা যদি c_t-কে একটি ম্যাট্রিক্স C *_t* দিয়ে প্রতিস্থাপন করি, তাহলে কি হবে তাই ম্যাট্রিক্স নির্দেশ করার জন্য কোষের অবস্থা এখন ক্যাপিটাল C *_t* হয়ে যায় এবং সেল স্টেটগুলি শুধুমাত্র একটি গেট i_t দ্বারা নয় বরং পুনরুদ্ধার করা যেতে পারে কী-মানের জোড়া সংরক্ষণ করে যা ভেক্টর। যার মান একই মাত্রার ভেক্টর কোয়েরি দ্বারা পুনরুদ্ধার করা যেতে পারে।
এটিকে ট্রান্সফরমারের পরিভাষার সাথে পরিচিত করার জন্য, তারা এই ম্যাট্রিক্স গঠনের জন্য এখানে কী এবং মান প্রবর্তন করেছে।
এসএলএসটিএম এবং এমএলএসটিএম-এর তথ্য সহ, আসুন এক্সএলএসটিএম-এর বিস্তারিত আর্কিটেকচারে ডুব দেওয়া যাক।
যখন এসএলএসটিএম আসে, আমরা পোস্ট-আপ প্রজেকশন ব্যবহার করি। সুতরাং, ইনপুটটি প্রথমে একটি সুইশ অ্যাক্টিভেশন ফাংশন সহ কার্যকারণ কনভোলিউশন স্তরগুলির মধ্য দিয়ে পাস করা হয়। এই স্তরগুলি থেকে আউটপুট তারপর চারটি তির্যক ব্লক বা "হেড" সহ একটি ব্লক-তির্যক রৈখিক স্তরের মাধ্যমে খাওয়ানো হয়। এগুলি থেকে আউটপুট চারটি মাথা সহ sLSTM ব্লকের মাধ্যমে খাওয়ানো হয়। অবশেষে, GeLU অ্যাক্টিভেশন সহ একটি গেটেড MLP স্তর ব্যবহার করে আউটপুট আপ-প্রজেক্ট করা হয় এবং একটি গেটেড MLP ফাংশন ব্যবহার করে ডাউন-প্রজেক্ট করা হয়।
এমএলএসটিএম ব্লকের বিশদ বিবরণে এগিয়ে গিয়ে, আমরা প্রি-আপ প্রজেকশন ব্যবহার করি। এর মানে হল যে ইনপুটটি প্রথমে 2 এর প্রজেকশন ফ্যাক্টর দিয়ে আপ-প্রজেক্ট করা হয়। প্রজেকশন আউটপুটগুলির একটি mLSTM-এ যায় এবং অন্যটি আউটপুট গেটে যায়। এমএলএসটিএম ব্লকের ইনপুট কার্যকারণ কনভল্যুশনের মধ্য দিয়ে যায় এবং তারপরে ব্লক সাইজ 4 এর ব্লক ডায়াগোনাল প্রজেকশন ম্যাট্রিক্সের মাধ্যমে যায়, যা এমএলএসটিএম ব্লক দ্বারা সহজেই ব্যবহৃত প্রশ্ন, কী এবং মান আউটপুট করে।
অবশেষে, আমরা বর্ধিত LSTM আর্কিটেকচার গঠনের জন্য দুটি ধরণের ব্লককে স্ট্যাক করতে পারি। তাই গাঢ় ধূসর ব্লক হল mLSTM ব্লক এবং হালকা ধূসর হল sLSTM ব্লক।
সুবিধার পরিপ্রেক্ষিতে, কাগজটি উল্লেখ করেছে যে XLSTM নেটওয়ার্কগুলির একটি রৈখিক গণনাগত জটিলতা এবং ক্রম দৈর্ঘ্য সম্পর্কিত একটি ধ্রুবক মেমরি জটিলতা রয়েছে।
লেখকরা স্লিমপাজামা ডেটাসেটের উপর প্রশিক্ষণ দিয়েছেন LLAMA এর মতো অন্যান্য ট্রান্সফরমার-ভিত্তিক পদ্ধতি এবং MAMBA-এর মতো রাজ্য-স্পেস-ভিত্তিক পদ্ধতির সাথে তুলনা করার জন্য। তারা xLSTM a:b-এর এই স্বরলিপি ব্যবহার করেছে, যেখানে a হল mLSTM ব্লকের সংখ্যা এবং b হল স্ট্যাকের sLSTM ব্লকের সংখ্যা।
নির্ভুলতার পরিপ্রেক্ষিতে, তারা 0 এবং 1 এর মধ্যে নির্ভুলতা স্কেলিং করে আপেক্ষিক নির্ভুলতা রিপোর্ট করে যেখানে 0 এলোমেলো এবং 1 নিখুঁত।
মূল্যায়নগুলি ইঙ্গিত দেয় যে XLSTM প্যারিটির মতো কাজগুলিতে আরও ভাল পারফর্ম করে, যেখানে লামা এবং মাম্বা খারাপ পারফর্ম করে।
ফলাফলগুলি থেকে, বিশেষ আগ্রহের বিষয় হল প্যারিটি টাস্ক, যেখানে ট্রান্সফরমার বা স্টেট-স্পেস মডেলগুলি মেমরি মিক্সিং বা স্টেট ট্র্যাকিং ছাড়াই সংগ্রাম করে। আমরা দেখতে পাচ্ছি যে এই ধরনের টাস্কে, যখন আমরা sLSTM এবং mLSTM উভয় ব্লক একসাথে ব্যবহার করি তখন xLSTM 1 এর নির্ভুলতাকে আঘাত করে।
তারা XLSTM এর দৃঢ়তা দেখানোর জন্য কিছু অ্যাবেশন স্টাডিও করেছে। তারা কাগজ থেকে বোঝা সহজ. তাছাড়া, এই নিবন্ধটি XLSTM-এর স্থাপত্যের নতুনত্ব সম্পর্কে আরও বেশি, তাই আমি এখানে পরীক্ষামূলক ফলাফলগুলিতে যাচ্ছি না।
আপনি যদি এই নিবন্ধটি পছন্দ করেন তবে কেন আমাকে অনুসরণ করবেন না
এছাড়াও আমার সাবস্ক্রাইব করুন
আশা করি এই নিবন্ধটি XLSTM আর্কিটেকচার, কেন আমাদের সেগুলি প্রয়োজন এবং কীভাবে তারা অদূর ভবিষ্যতে ট্রান্সফরমারগুলিকে সম্ভাব্যভাবে ছাড়িয়ে যেতে পারে তা বোঝাকে সহজ এবং সহজ করেছে৷
আসুন অপেক্ষা করুন এবং দেখুন তাদের দোকানে কি আছে। আমার পরবর্তীতে দেখা হবে...