বৃহৎ ভাষার মডেলের বিকাশের জন্য সময় এবং GPU সংস্থানগুলিতে যথেষ্ট বিনিয়োগ প্রয়োজন, সরাসরি উচ্চ খরচে অনুবাদ করা। মডেল যত বড় হবে, এই চ্যালেঞ্জগুলি ততই স্পষ্ট হবে।
সম্প্রতি, Yandex একটি নতুন সমাধান চালু করেছে: YaFSDP , একটি ওপেন-সোর্স টুল যা উল্লেখযোগ্যভাবে GPU রিসোর্স খরচ এবং প্রশিক্ষণের সময় কমিয়ে LLM প্রশিক্ষণে বিপ্লব ঘটানোর প্রতিশ্রুতি দেয়। 70 বিলিয়ন প্যারামিটার সহ একটি মডেল জড়িত একটি প্রাক-প্রশিক্ষণ পরিস্থিতিতে, YaFSDP ব্যবহার করে প্রায় 150 GPU-এর সংস্থান সংরক্ষণ করা যায়। এটি ভার্চুয়াল GPU প্রদানকারী বা প্ল্যাটফর্মের উপর নির্ভর করে প্রায় $0.5 থেকে $1.5 মিলিয়নের সম্ভাব্য মাসিক সঞ্চয়কে অনুবাদ করে।
Yandex YaFSDP সর্বজনীনভাবে উপলব্ধ করেছে
বিতরণ করা এলএলএম প্রশিক্ষণের চ্যালেঞ্জ
একাধিক জিপিইউ জুড়ে এলএলএম প্রশিক্ষণে জটিল ক্রিয়াকলাপ জড়িত যা অদক্ষতা এবং উচ্চ মেমরি খরচের দিকে পরিচালিত করে। প্রধান সমস্যাগুলির মধ্যে একটি হল জিপিইউগুলির মধ্যে প্রচুর পরিমাণে ডেটা পাঠানো এবং গ্রহণ করার প্রয়োজন। উদাহরণস্বরূপ, একটি সাধারণ all_reduce অপারেশনে, নেটওয়ার্ক প্যারামিটারের হিসাবে গ্রেডিয়েন্ট ডেটার দ্বিগুণ পরিমাণে যোগাযোগ করতে হবে। একটি Llama 70B মডেলের ক্ষেত্রে, এর অর্থ প্রতি পুনরাবৃত্তিতে 280 GB ডেটা স্থানান্তর করা।
তদুপরি, ওজন, গ্রেডিয়েন্ট এবং অপ্টিমাইজার স্টেটগুলি GPU জুড়ে ডুপ্লিকেট করা হয়, যা একটি বিশাল মেমরি লোডের দিকে পরিচালিত করে। Llama 70B মডেল এবং অ্যাডাম অপ্টিমাইজারের জন্য 1 TB-এর বেশি মেমরি প্রয়োজন, যা বেশিরভাগ GPU-এর সাধারণ 80 GB মেমরির ক্ষমতাকে ছাড়িয়ে যায়। এই অপ্রয়োজনীয়তা প্রশিক্ষণ প্রক্রিয়াকে মারাত্মকভাবে ধীর করে দেয় এবং প্রায়শই GPU মেমরিতে এমনকি মাঝারি আকারের মডেলগুলিকে ফিট করা অব্যবহারিক করে তোলে।
ইয়াএফএসডিপি উপস্থাপন করা হচ্ছে
ইয়ানডেক্সের ইয়াএফএসডিপি এই চ্যালেঞ্জগুলির একটি অত্যন্ত কার্যকর সমাধান প্রদান করে। মেমরি খরচ অপ্টিমাইজ করা এবং যোগাযোগের বাধা দূর করার উপর দৃষ্টি নিবদ্ধ করে, YaFSDP LLM প্রশিক্ষণের দক্ষতা বাড়ায়। এটি পৃথক পরামিতিগুলির পরিবর্তে স্তরগুলি শার্ড করে, দক্ষ যোগাযোগ বজায় রেখে এবং অপ্রয়োজনীয় ক্রিয়াকলাপ এড়িয়ে কাজ করে। অতিরিক্তভাবে, YaFSDP সমস্ত প্রয়োজনীয় ডেটার জন্য বাফারগুলিকে প্রাক-বরাদ্দ করে, নিশ্চিত করে যে টর্চ বরাদ্দকারী অদক্ষতার পরিচয় দেয় না।
ইয়াএফএসডিপি মধ্যবর্তী ওজন এবং গ্রেডিয়েন্টের জন্য দুটি বাফার ব্যবহার করে কাজ করে, একটি বাফার ব্যবহার করে বিজোড় স্তর এবং অন্যটি ব্যবহার করে জোড় স্তর।
বিভিন্ন স্তর থেকে ওজন একই স্মৃতিতে সংরক্ষণ করা হয়। যদি স্তরগুলির গঠন একই থাকে তবে তারা সর্বদা অভিন্ন হবে। এটি নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ যে আপনার যখন স্তর X প্রয়োজন, বাফারে স্তর X-এর ওজন রয়েছে। সমস্ত পরামিতি বাফারের মধ্যে সংশ্লিষ্ট মেমরি অংশে সংরক্ষণ করা হবে।
মেমরি খরচ
প্রশিক্ষণের সময়, প্রাথমিক মেমরি গ্রাহকরা ওজন, গ্রেডিয়েন্ট, অপ্টিমাইজার স্টেট, বাফার এবং অ্যাক্টিভেশন। ইয়াএফএসডিপি উল্লেখযোগ্যভাবে এই উপাদানগুলি কীভাবে সংরক্ষণ এবং অ্যাক্সেস করা হয় তা অপ্টিমাইজ করে মেমরি খরচ কমিয়ে দেয়।
- ওজন, গ্রেডিয়েন্ট এবং অপ্টিমাইজার স্টেটস : এগুলি প্রক্রিয়ার সংখ্যার উপর নির্ভর করে এবং প্রসেসের সংখ্যা বৃদ্ধির সাথে সাথে তাদের মেমরি খরচ শূন্যের কাছাকাছি চলে যায়। GPU গুলি জুড়ে এই উপাদানগুলিকে শার্ড করার মাধ্যমে, YaFSDP নকল কমিয়ে দেয় এবং এইভাবে মেমরির ব্যবহার হ্রাস করে৷
- বাফারগুলি একটি ধ্রুবক পরিমাণ মেমরি গ্রহণ করে এবং গণনার সময় মধ্যবর্তী মান সঞ্চয় করে।
- অ্যাক্টিভেশনগুলি মডেলের আকার এবং GPU প্রতি প্রক্রিয়াকৃত টোকেনের সংখ্যার উপর নির্ভর করে।
সক্রিয়করণ চেকপয়েন্টিং
অ্যাক্টিভেশন চেকপয়েন্টিং হল একটি কৌশল যা ফরোয়ার্ড পাসের সময় শুধুমাত্র প্রয়োজনীয় অ্যাক্টিভেশন সঞ্চয় করে এবং ব্যাকওয়ার্ড পাসের সময় সেগুলি পুনরায় গণনা করে। এটি মেমরির পদচিহ্ন উল্লেখযোগ্যভাবে হ্রাস করে, কারণ শুধুমাত্র প্রয়োজনীয় তথ্য সংরক্ষণ করা হয়। উদাহরণস্বরূপ, 8192 টোকেনের ব্যাচ সাইজ সহ একটি Llama 2 70B মডেলের প্রশিক্ষণে, অ্যাক্টিভেশন স্টোরেজ 110 GB থেকে কমিয়ে মাত্র 5 GB করা যেতে পারে।
যাইহোক, এই পদ্ধতিটি অতিরিক্ত কম্পিউটেশনাল ওভারহেড প্রবর্তন করে, যা YaFSDP কিছু স্তরের জন্য অ্যাক্টিভেশন চেকপয়েন্টিং ব্যবহার না করে এড়াতে দেয় যা মেমরি অপ্টিমাইজেশনের কারণে সম্ভব।
যোগাযোগ অপ্টিমাইজেশান
YaFSDP GPU কমিউনিকেশন দক্ষতার উন্নতি করে তা নিশ্চিত করে যে শুধুমাত্র প্রয়োজন হলেই ডেটা স্থানান্তর করা হয় এবং কম্পিউটেশনের সাথে ওভারল্যাপ করা হয়। এটি কার্যকরভাবে সমসাময়িক গণনা এবং যোগাযোগগুলি পরিচালনা করতে CUDA স্ট্রিমগুলি ব্যবহার করে।
টুল দুটি স্ট্রীম ব্যবহার করে: একটি গণনা স্ট্রীম এবং একটি যোগাযোগ স্ট্রীম। ইভেন্টগুলি এই স্ট্রীমগুলিকে সিঙ্ক্রোনাইজ করে, যাতে অচলাবস্থা প্রবর্তন না করেই অপারেশনগুলি সঠিক ক্রমে সম্পাদিত হয় তা নিশ্চিত করে৷
all_gather অপারেশন সম্পূর্ণ না হওয়া পর্যন্ত তৃতীয় স্তরের ফরোয়ার্ড পাসটি শুরু হয় না (শর্ত 1)। একইভাবে, তৃতীয় স্তরে all_gather অপারেশন শুরু হবে না যতক্ষণ না একই বাফার ব্যবহার করে প্রথম স্তরের ফরোয়ার্ড পাস সম্পূর্ণ না হয় (শর্ত 2)। যেহেতু এই স্কিমে কোন চক্র নেই, তাই অচলাবস্থা অসম্ভব।
পরীক্ষামূলক ফলাফল এবং কর্মক্ষমতা লাভ
ইয়াএফএসডিপি বাস্তবায়ন প্রশিক্ষণের দক্ষতায় উল্লেখযোগ্য উন্নতি দেখিয়েছে। 70 বিলিয়ন প্যারামিটার সহ একটি মডেলের প্রাক-প্রশিক্ষণের পরিস্থিতিতে, YaFSDP প্রায় 150 GPU-এর সংস্থান সংরক্ষণ করতে সক্ষম হয়েছিল। এটি ভার্চুয়াল GPU প্রদানকারী বা প্ল্যাটফর্মের উপর নির্ভর করে $0.5 থেকে $1.5 মিলিয়নের মধ্যে উল্লেখযোগ্য মাসিক খরচ সঞ্চয় করে।
ইয়াএফএসডিপি এফএসডিপি-এর মতো বিদ্যমান পদ্ধতির তুলনায় প্রশিক্ষণের সময় 26% পর্যন্ত কমিয়ে দেয় এবং মেমরি ব্যবহারকে অপ্টিমাইজ করে, যার ফলে বড় মডেলকে আরও দক্ষতার সাথে প্রশিক্ষণ দেওয়া সম্ভব হয়।
Yandex YaFSDP কে সর্বজনীনভাবে উপলব্ধ করেছে
ইয়াএফএসডিপি এলএলএম প্রশিক্ষণে একটি উল্লেখযোগ্য অগ্রগতির প্রতিনিধিত্ব করে। মেমরি খরচ এবং যোগাযোগের অদক্ষতার সমালোচনামূলক চ্যালেঞ্জ মোকাবেলা করা বড় ভাষা মডেলগুলির দ্রুত এবং আরও দক্ষ প্রশিক্ষণ সক্ষম করে।