𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): 𝗛𝗼𝘄 𝗜𝘁 𝗪𝗼𝗿𝗸𝘀 𝗮𝗻𝗱 𝗪𝗵𝗲𝗻 𝘁𝗼 𝗨𝘀𝗲 𝗜𝘁

আপনি আরও চারটি GPU না কিনে একটি 7B মডেল থেকে 70B মডেলে স্কেল করতে চান।

কেউ একজন Mixture of Experts (MoE)-এর পরামর্শ দেন। তারা দাবি করেন যে আপনি মাত্র 7B compute ব্যবহার করেই 70B-এর মতো পারফরম্যান্স পাবেন।

এটি শুনতে অনেকটা বিনা মূল্যের খাবারের মতো মনে হতে পারে। কিন্তু এখানে একটি সমস্যা আছে।

এটি কীভাবে কাজ করে?

Llama 3.2-এর মতো একটি dense transformer প্রতিটি token-এর জন্য তার ১০০ শতাংশ parameter ব্যবহার করে। আপনি যদি 7B থেকে 70B-তে স্কেল করেন, তবে memory এবং compute উভয়ই ১০ গুণ বৃদ্ধি পাবে।

MoE এই দুটি বিষয়কে আলাদা করে দেয়। মডেলটি আরও বেশি parameter সংরক্ষণ করে (উচ্চতর memory cost), কিন্তু প্রতিটি token-এর জন্য সেগুলোর মাত্র একটি অংশ ব্যবহার করে (নিম্নতর compute cost)।

ট্রেড-অফ (The Trade-off):

• Dense 7B: 7B total params | 7B active | 7B compute | 14 GB memory • Dense 70B: 70B total params | 70B active | 70B compute | 140 GB memory • MoE 45B: 45B total params | ~13B active | ~14B compute | ~90 GB memory

সমস্যাটি হলো: আপনাকে এখনও একটি বড় মডেলের memory cost বহন করতে হবে। আপনি একটি মাত্র 24 GB GPU-তে Mixtral চালাতে পারবেন না। এমনকি যে expert-গুলো ব্যবহৃত হচ্ছে না, সেগুলোকেও ধরে রাখার জন্য আপনার পর্যাপ্ত VRAM প্রয়োজন।

আর্কিটেকচার (The Architecture):

একটি sparse MoE-তে, স্ট্যান্ডার্ড Feed-Forward Network (FFN)-কে একাধিক "expert" FFN এবং একটি learned router দ্বারা প্রতিস্থাপন করা হয়।

১. router একটি token গ্রহণ করে। ২. এটি প্রতিটি expert-কে একটি স্কোর প্রদান করে। ৩. এটি top-k expert-দের নির্বাচন করে (Mixtral-এর জন্য, k=2)। ৪. এটি শুধুমাত্র সেই expert-গুলোর মাধ্যমে token-টিকে প্রসেস করে। ৫. এটি ফলাফলগুলোকে একত্রিত করে।

router কোনো ম্যানুয়াল শিডিউলার নয়। এটি একটি learned layer। এটি শেখে কীভাবে math token-গুলোকে এক expert-এর কাছে এবং code token-গুলোকে অন্য expert-এর কাছে পাঠাতে হয়।

ট্রেনিং চ্যালেঞ্জ (The Training Challenge):

সবচেয়ে বড় ঝুঁকি হলো router collapse। সাহায্য ছাড়া, router প্রতিটি token একই দুটি expert-এর কাছে পাঠিয়ে দিতে পারে। সেই expert-গুলো আরও দক্ষ হয়ে ওঠে, ফলে router তাদের কাছে আরও বেশি traffic পাঠায়। ফলে অন্য expert-গুলো অকেজো হয়ে পড়ে।

ইঞ্জিনিয়াররা এটি ঠিক করার জন্য একটি auxiliary load-balancing loss ব্যবহার করেন। এটি মডেলটিকে তখনই পেনাল্টি দেয় যদি এটি সব expert-কে সমানভাবে ব্যবহার না করে।

কখন MoE এড়িয়ে চলবেন:

• আপনার যদি স্থিতিশীল latency প্রয়োজন হয়: MoE-তে রেসপন্স টাইমে বেশি variance থাকে। • আপনার যদি সীমিত VRAM থাকে: আপনার কাছে যদি ৪৮ GB-এর নিচে মাত্র একটি GPU থাকে, তবে dense মডেল ব্যবহার করাই শ্রেয়। • আপনি যদি খুব ছোট মডেল তৈরি করেন: আপনার মডেল যদি 3B parameter-এর নিচে হয়, তবে এর overhead অনেক বেশি হয়ে যাবে। • আপনার যদি সহজ অবকাঠামো প্রয়োজন হয়: MoE-এর জন্য জটিল expert parallelism এবং custom kernels প্রয়োজন।

MoE তখনই সবচেয়ে ভালো কাজ করে যখন আপনি ৩০B parameter-এর বেশি একটি dense baseline লক্ষ্য করেন এবং সেটি চালানোর মতো পর্যাপ্ত memory আপনার কাছে থাকে।

Mixture of Experts (MoE): এর অভ্যন্তরীণ কার্যপদ্ধতি আসলে কী এবং কখন এটি কার্যকর হয়

লার্জ ল্যাঙ্গুয়েজ মডেলের (LLM) জগতে, স্কেলিং বা মডেলের আকার বাড়ানোই হলো সব। আমরা জানি যে, মডেল যত বড় হয়, তার জ্ঞান এবং বুদ্ধিমত্তা তত বৃদ্ধি পায়। কিন্তু একটি বড় সমস্যা হলো—মডেল যত বড় হয়, সেটি চালাতে তত বেশি কম্পিউটেশনাল শক্তি (compute power) এবং সময়ের প্রয়োজন হয়।

এখানেই Mixture of Experts (MoE) এর ভূমিকা শুরু হয়। MoE এমন একটি আর্কিটেকচার যা মডেলের প্যারামিটার সংখ্যা বহুগুণ বাড়িয়ে দিলেও কম্পিউটেশনাল খরচকে নিয়ন্ত্রণে রাখতে সাহায্য করে।

ডেন্স (Dense) বনাম স্পার্স (Sparse) মডেল

MoE বোঝার জন্য প্রথমে আমাদের ডেন্স এবং স্পার্স মডেলের মধ্যে পার্থক্য বুঝতে হবে।

ডেন্স মডেল (Dense Model)

একটি সাধারণ ডেন্স মডেলে (যেমন GPT-3), প্রতিটি ইনপুট প্রসেস করার জন্য মডেলের সমস্ত প্যারামিটার ব্যবহার করতে হয়। আপনি যদি একটি ছোট প্রশ্নও করেন, মডেলটিকে তার সম্পূর্ণ নেটওয়ার্ক সক্রিয় করতে হয়। এর ফলে মডেল বড় হলে খরচ এবং সময় উভয়ই রৈখিকভাবে (linearly) বৃদ্ধি পায়।

স্পার্স মডেল (Sparse Model)

MoE একটি স্পার্স আর্কিটেকচার। এখানে মডেলের সমস্ত প্যারামিটার প্রতিটি ইনপুটের জন্য ব্যবহৃত হয় না। পরিবর্তে, ইনপুট অনুযায়ী মডেলের শুধুমাত্র একটি নির্দিষ্ট অংশ বা কিছু নির্দিষ্ট "বিশেষজ্ঞ" (experts) সক্রিয় করা হয়। এর ফলে মডেলটি বিশাল আকারের হলেও এটি চালানোর খরচ অনেক কম থাকে।

MoE কীভাবে কাজ করে?

MoE আর্কিটেকচারের মূলত দুটি প্রধান অংশ থাকে:

১. গেটিং নেটওয়ার্ক (The Gating Network / Router)

গেটিং নেটওয়ার্ক হলো MoE-এর "মস্তিষ্ক" বা রাউটার। যখন কোনো ইনপুট (যেমন একটি শব্দ বা টোকেন) মডেলের কাছে আসে, গেটিং নেটওয়ার্ক সিদ্ধান্ত নেয় যে কোন 'এক্সপার্ট' বা সাব-নেটওয়ার্কটি সেই ইনপুটটি প্রসেস করার জন্য সবচেয়ে উপযুক্ত। এটি প্রতিটি ইনপুটের জন্য সেরা কয়েকটি বিশেষজ্ঞ নির্বাচন করে।

২. এক্সপার্টস (The Experts)

এক্সপার্টস হলো ছোট ছোট নিউরাল নেটওয়ার্ক বা সাব-নেটওয়ার্ক। প্রতিটি বিশেষজ্ঞ মূলত নির্দিষ্ট ধরণের প্যাটার্ন বা তথ্য প্রসেস করতে দক্ষ হয়ে ওঠে। গেটিং নেটওয়ার্ক যখন কোনো ইনপুট পাঠায়, তখন শুধুমাত্র নির্বাচিত বিশেষজ্ঞরাই সেই ইনপুট নিয়ে কাজ করে। বাকি বিশেষজ্ঞরা তখন নিষ্ক্রিয় থাকে।

কেন MoE ব্যবহার করা হয়? (সুবিধা)

  • কম্পিউটেশনাল দক্ষতা (Computational Efficiency): আপনি একটি ট্রিলিয়ন প্যারামিটারের মডেল তৈরি করতে পারেন, কিন্তু প্রতিটি টোকেন প্রসেস করার সময় মাত্র কয়েকশ মিলিয়ন প্যারামিটার ব্যবহার করে কাজ শেষ করতে পারেন। এতে দ্রুত এবং কম খরচে মডেল চালানো সম্ভব।
  • স্কেলিং (Scaling): MoE ব্যবহার করে খুব সহজেই মডেলের প্যারামিটার সংখ্যা বাড়ানো যায়, যা মডেলের বুদ্ধিমত্তা বৃদ্ধিতে সহায়তা করে।
  • বিশেষজ্ঞতা (Specialization): যেহেতু প্রতিটি সাব-নেটওয়ার্ক নির্দিষ্ট ধরণের ডেটা নিয়ে কাজ করার সুযোগ পায়, তাই মডেলটি আরও সূক্ষ্ম বিষয়গুলো শিখতে পারে।

চ্যালেঞ্জ বা অসুবিধা

MoE যতটা শক্তিশালী, এর কিছু চ্যালেঞ্জও রয়েছে:

  • মেমরি বা VRAM ব্যবহার: যদিও কম্পিউটেশনাল খরচ কম, কিন্তু মডেলের সমস্ত প্যারামিটার মেমরিতে লোড রাখতে হয়। তাই এটি চালানোর জন্য প্রচুর পরিমাণে VRAM প্রয়োজন।
  • প্রশিক্ষণের জটিলতা (Training Complexity): গেটিং নেটওয়ার্ককে সঠিকভাবে প্রশিক্ষণ দেওয়া বেশ কঠিন। যদি গেটিং নেটওয়ার্ক ভুল বিশেষজ্ঞ নির্বাচন করে, তবে মডেলের পারফরম্যান্স খারাপ হতে পারে।

উপসংহার

Mixture of Experts (MoE) হলো আধুনিক AI মডেলের একটি বৈপ্লবিক পদ্ধতি। এটি আমাদের এমন একটি পথ দেখায় যেখানে আমরা বিশাল আকারের মডেল তৈরি করতে পারি কিন্তু কম্পিউটেশনাল খরচের বোঝা বহন করতে হয় না। GPT-4 এর মতো বড় মডেলগুলোর সাফল্যের পেছনে এই MoE আর্কিটেকচারের একটি বড় ভূমিকা রয়েছে বলে ধারণা করা হয়।


আরও শিখতে চান? ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi