LLM-ইনফারেন্সের জন্য ব্যবহারকারীর কাছাকাছি খুব কমই তৈরি "ভারী" সার্ভার থাকে। সাধারণত এটি Edge-ডিভাইস, গেটওয়ে এবং fog-নোডের মিশ্রণ হয়, যেখানে মেমোরি এবং কম্পিউটেশনাল ক্ষমতা ভিন্ন ভিন্ন হয়। মডেলটিকে এমনভাবে স্থাপন করা যেন এটি সবসময় একটি ডিভাইসে ফিট করে, তা বাস্তবতা উপেক্ষা করার মতো: মডেলটি হয় ফিট হয় না, অথবা অগ্রহণযোগ্য বিলম্বে কাজ করে, অথবা দামি রিসোর্স নিষ্ক্রিয় থাকে। E2LLM ফ্রেমওয়ার্ক এর জন্য আরও বাস্তবসম্মত পথ প্রস্তাব করে।
কেন ক্লাসিক্যাল পরিস্থিতি উপযুক্ত নয়
LLM পরিচালনার ঐতিহ্যবাহী পদ্ধতিগুলো প্রায়ই ধরে নেয় যে পুরো মডেলটি একটি মেশিনে থাকে। ক্লাউডে এটি সাধারণত কাজ করে, কিন্তু Edge/Fog-পরিবেশে নোডগুলো দুর্বল এবং ভিন্নধর্মী। কিছু ডিভাইসে ওজনের জন্য যথেষ্ট মেমোরি থাকতে পারে, কিন্তু গণনা টানতে পারে না; অন্যগুলো দ্রুত, কিন্তু সীমিত মেমোরিসহ। যদি কেবল উপলব্ধ ডিভাইসগুলোর মধ্যে মডেলটি "ছড়িয়ে দেওয়ার" চেষ্টা করা হয়, তাহলে সমন্বয়, যোগাযোগ এবং ব্যবহারের সমস্যা শুরু হয়।
এক্ষেত্রে বাস্তবে একসাথে তিনটি জিনিস প্রয়োজন:
- পূর্বাভাসযোগ্য কম লেটেন্সি,
- সম্পদের সাশ্রয়ী ব্যবহার,
- যুক্তিসঙ্গত স্থাপনার খরচ।
এগুলো পরস্পরবিরোধী, তাই একতরফা অপ্টিমাইজেশনের পরিবর্তে একটি সমঝোতা প্রয়োজন। E2LLM এই সমঝোতার উপর ভিত্তি করে গঠিত।
রেপ্লিকা এবং ভূমিকা: E2LLM কীভাবে সীমাবদ্ধতা এড়ায়
E2LLM-এর মূল ধারণা হলো সব নোডের মধ্যে একটি মডেল ভাগ না করা, বরং ডিভাইসগুলোকে রেপ্লিকায় একত্রিত করা। প্রতিটি রেপ্লিকার ভিতরে মডেলের একটি সম্পূর্ণ কপি সংরক্ষিত থাকে, এবং তারপর এটি মডেল প্যারালালিজমের মাধ্যমে গ্রুপের সদস্যদের মধ্যে বিতরণ করা হয়। এটি মেমোরির অতিরিক্ত খরচের মতো শোনায়, কিন্তু বাস্তবে এই ডুপ্লিকেশন ফল্ট-টলারেন্স বাড়ায় এবং একাধিক অনুরোধ সমান্তরালভাবে পরিচালনা করতে সাহায্য করে।

এরপর LLM-ইনফারেন্স সম্পর্কে জ্ঞান কাজে লাগে। এর দুটি পর্যায় রয়েছে যার লোড প্রোফাইল আলাদা: prefill, যখন মডেল সক্রিয়ভাবে ইনপুট টোকেন প্রসেস করে এবং অ্যাটেনশন ক্যাশ তৈরি করে, এবং decode, যখন এটি আউটপুট টোকেন তৈরি করে। এই পর্যায়গুলোর জন্য আলাদা রিসোর্স প্রয়োজন: prefill পিক কম্পিউটেশনাল পাওয়ারের প্রতি সংবেদনশীল, decode মেমোরি ব্যান্ডউইথ এবং ডেটা ট্রান্সফার লেটেন্সির প্রতি সংবেদনশীল।
প্রতিটি গ্রুপকে উভয় কাজ করাতে বাধ্য করার পরিবর্তে, E2LLM রেপ্লিকাগুলোতে বিশেষায়িত ভূমিকা নির্ধারণ করে। কিছু prefill-রেপ্লিকা হয়ে দ্রুত আগত অনুরোধ প্রসেস করে, অন্যগুলো decoder-রেপ্লিকা হয়ে মসৃণ জেনারেশনের জন্য দায়ী থাকে। এই বিভাজন নির্দিষ্ট হার্ডওয়্যারের জন্য "অস্বস্তিকর" পর্যায়ে সম্পদ নষ্ট না করতে সাহায্য করে।
কীভাবে ডিভাইসের গ্রুপ গঠিত হয়
শুধু প্রথম পাওয়া ডিভাইসগুলো নিয়ে তাদের রেপ্লিকা বলা যায় না। E2LLM প্রথমে সিদ্ধান্ত নেয় কোন নোডগুলো একত্রিত করা উচিত। এর জন্য জেনেটিক অ্যালগরিদম ব্যবহার করা হয়: এটি ক্লাস্টারের বিকল্পগুলো পরীক্ষা করে এবং সিস্টেমের চূড়ান্ত কর্মক্ষমতার ভিত্তিতে ধীরে ধীরে উন্নত করে।
ক্লাস্টার নির্ধারিত হলে, এর ভিতরে বুঝতে হবে কীভাবে অংশগ্রহণকারীদের মধ্যে মডেলটি কাটা যায়। এখানে ডাইনামিক প্রোগ্রামিং কাজ করে: এটি এমন একটি বিভাজন কৌশল খোঁজে যেখানে ডিভাইসগুলোর মধ্যে ডেটা স্থানান্তরের "বottleneck" ন্যূনতম হয়। অন্য কথায়, উপরের স্তর রেপ্লিকার গঠন নির্বাচন করে, আর নীচের স্তর নির্দিষ্ট হার্ডওয়্যার গঠনের জন্য মডেলের সর্বোত্তম কাটিং করে।

বাস্তবে এটি কী দেয়
লেখকরা বেসলাইন সমাধান Splitwise-এর সাথে তুলনা করে পদ্ধতিটি পরীক্ষা করেছেন, যা prefill এবং decode আলাদা করে, কিন্তু ভিন্নধর্মী পরিবেশের সাথে কম নমনীয়ভাবে কাজ করে। পরীক্ষাগুলো দেখিয়েছে যে E2LLM কাজের চাপের পরিবর্তনের সাথে ভালোভাবে খাপ খায়। এটি বিশেষভাবে লক্ষণীয় যখন ইনপুট এবং আউটপুট টোকেনের দৈর্ঘ্য অনেক আলাদা হয়: উদাহরণস্বরূপ, ছোট অনুরোধ আসে, কিন্তু দীর্ঘ উত্তর প্রয়োজন, এবং তারপর লোড হঠাৎ পরিবর্তিত হয়।
উচ্চ লোডে, নতুন পদ্ধতি Splitwise-এর তুলনায় গড় অপেক্ষার সময় 50% এর বেশি কমায়। এর অর্থ হলো ব্যবহারকারীদের জেনারেশনের জন্য সারিতে কম দাঁড়াতে হয়, এবং Edge/Fog-ডিভাইসগুলো আরও অর্থবহভাবে কাজ করে, ইনফারেন্সের উভয় পর্যায়ে একইভাবে সেবা দেওয়ার চেষ্টা না করে।
উপসংহার
E2LLM দেখায় যে পেরিফেরিতে LLM কার্যকরভাবে চালানোর জন্য শুধু একটি ডিভাইসের ক্ষমতা নয়, বরং ডিভাইসগুলো কীভাবে একত্রিত এবং ভূমিকা অনুযায়ী বিতরণ করা হয় তাও গুরুত্বপূর্ণ। রেপ্লিকা স্তরে সম্পূর্ণ মডেলের ডুপ্লিকেশন prefill এবং decode বিভাজনের সাথে মিলিত হয়ে একটি সচেতন trade-off: কোথাও মেমোরি ত্যাগ করতে হয়, কিন্তু বিনিময়ে সিস্টেম স্থিতিশীল কর্মক্ষমতা এবং কম লেটেন্সি পায়।
প্রয়োগমূলক পরিস্থিতির জন্য প্রধান উপসংহার: ভিন্নধর্মী পরিবেশে পুরো মডেলটিকে একটি নোডে ফিট করার বা সব জায়গায় সমানভাবে ছড়িয়ে দেওয়ার চেষ্টা করার দরকার নেই। উপলব্ধ হার্ডওয়্যার থেকে বিশেষায়িত গ্রুপ তৈরি করতে হবে এবং তাদের ভিতরে সিদ্ধান্ত নিতে হবে কীভাবে গণনা বিতরণ করা যায়। এভাবেই LLM-ইনফারেন্স বড় ক্লাউড ক্লাস্টারের বাইরেও সত্যিকারের ব্যবহারিক হয়ে ওঠে।




