অ্যামাজন সেজমেকার ডেটা সমান্তরাল লাইব্রেরির সাথে দ্রুত প্রশিক্ষণ সক্ষম করুন আমাজন ওয়েব সার্ভিসেস

অ্যামাজন সেজমেকার ডেটা সমান্তরাল লাইব্রেরির সাথে দ্রুত প্রশিক্ষণ সক্ষম করুন আমাজন ওয়েব সার্ভিসেস

Llama2, Falcon, এবং StarCoder-এর মতো প্রকাশ্যভাবে উপলব্ধ বেশ কয়েকটি মডেল প্রকাশের মাধ্যমে গত বছরে বড় ভাষা মডেল (LLM) প্রশিক্ষণ ক্রমশ জনপ্রিয় হয়ে উঠেছে। গ্রাহকরা এখন 1 বিলিয়ন থেকে 175 বিলিয়ন প্যারামিটারের অভূতপূর্ব আকারের এলএলএম প্রশিক্ষণ দিচ্ছেন। এই এলএলএমগুলিকে প্রশিক্ষণের জন্য উল্লেখযোগ্য গণনা সংস্থান এবং সময় প্রয়োজন কারণ আজকের বিশাল প্রশিক্ষণ ডেটাসেট এবং মডেলের আকারগুলি পরিচালনা করতে শত থেকে হাজার হাজার গ্রাফিক্স প্রসেসিং ইউনিট (GPUs) ব্যবহার করা আবশ্যক৷ বিতরণ করা প্রশিক্ষণের একটি বাধা হতে পারে NVIDIA কালেক্টিভ কমিউনিকেশন লাইব্রেরি (NCCL) দ্বারা পরিচালিত GPU যোগাযোগ। কিছু বৃহৎ-বিতরিত প্রশিক্ষণের কাজগুলিতে, প্রকৃত GPU গণনার চেয়ে আন্তঃ-GPU যোগাযোগে বেশি সময় ব্যয় করা যেতে পারে। GPU যোগাযোগের বাধা দূর করতে এবং দ্রুত প্রশিক্ষণ সক্ষম করতে, আমাজন সেজমেকার সেজমেকার ডিস্ট্রিবিউটেড ডেটা প্যারালাল লাইব্রেরির (SMDDP) অংশ হিসেবে একটি অপ্টিমাইজড AllGather যৌথ অপারেশন ঘোষণা করতে পেরে উত্তেজিত৷ AllGather জনপ্রিয় মেমরি-দক্ষ ডেটা সমান্তরাল সমাধানগুলির মধ্যে সর্বাধিক ব্যবহৃত যৌথ অপারেশন ডিপস্পিড জিরো রিডানডেন্সি অপ্টিমাইজার (জিরো) এবং সম্পূর্ণরূপে শার্ডেড ডেটা প্যারালেলিজম (FSDP), এবং এটি GPU যোগাযোগের ওভারহেডের প্রধান অবদানকারী। এই পোস্টে, আমরা SMDDP কীভাবে কাজ করে, কীভাবে আপনি আপনার Amazon SageMaker প্রশিক্ষণ স্ক্রিপ্টগুলিতে SMDDP সক্ষম করতে পারেন এবং আপনি যে কর্মক্ষমতার উন্নতি আশা করতে পারেন তার একটি উচ্চ-স্তরের ওভারভিউ দেখান।

সমাধান ওভারভিউ

ঐতিহ্যগত ডেটা সমান্তরাল প্রশিক্ষণ ডেটাসেট থেকে ডেটার বিভিন্ন শার্ডের উপর প্রতিটি মডেল প্রশিক্ষণ সহ একাধিক GPU জুড়ে একটি সম্পূর্ণ মডেলের প্রতিলিপি করা জড়িত। পশ্চাৎপদ পাসের সময়, GPU কর্মীদের মধ্যে গ্রেডিয়েন্ট গড় করা হয় যাতে প্রতিটি মডেলের প্রতিলিপি একই গ্রেডিয়েন্ট মানগুলির সাথে আপডেট করা হয় যদিও তাদের বিভিন্ন ডেটা শার্ডের সাথে প্রশিক্ষণ দেওয়া হয়। এই কৌশলটি প্রশিক্ষণের ডেটা খরচের সমান্তরাল করে বিশাল ডেটাসেটে অনেক দ্রুত প্রশিক্ষণের অনুমতি দেয়। যাইহোক, আজকের কিছু বড় মডেলের (যেমন, Llama2 70B) GPU মেমরির মধ্যে সম্পূর্ণরূপে ফিট করার জন্য অনেক বড়, যা ঐতিহ্যগত ডেটা সমান্তরালতাকে অকেজো করে তোলে। সীমিত জিপিইউ মেমরি, শার্ডড ডেটা সমান্তরাল সমাধান যেমন ডিপস্পিড জিরো, পাইটর্চ এফএসডিপি এবং অ্যামাজনকে অতিক্রম করার সময় ডেটা সমান্তরালতার সুবিধাগুলি কাটা চালিয়ে যেতে সেজমেকার মডেল সমান্তরাল লাইব্রেরি জনপ্রিয়তা বেড়েছে।

শার্ডেড ডেটা সমান্তরালে, GPU কর্মীদের পুরো মডেলের প্রতিলিপি করার পরিবর্তে, মডেল প্যারামিটার, গ্রেডিয়েন্ট এবং অপ্টিমাইজার স্টেটগুলিকে বিভক্ত করা হয় এবং প্রশিক্ষণের কাজে GPU গুলি জুড়ে বিতরণ করা হয় (অর্থাৎ, শার্ড করা)৷ ফরোয়ার্ড এবং ব্যাকওয়ার্ড পাস কম্পিউটেশন সঞ্চালনের জন্য, অন্যান্য GPU কর্মীদের শার্ড থেকে প্যারামিটারগুলি এক বা একাধিক মডেল স্তর তৈরি করতে সংগ্রহ করা হয়। গণনা সঞ্চালিত হওয়ার পরে, এই স্তরগুলি পরবর্তী স্তরগুলিকে সংগ্রহ করার অনুমতি দেওয়ার জন্য মেমরি থেকে মুক্ত করা হয়। উল্লেখ্য যে শার্ডেড ডেটা সমান্তরালতার বৈকল্পিক রয়েছে যেখানে শুধুমাত্র অপ্টিমাইজার স্টেট এবং গ্রেডিয়েন্ট শার্ড করা হয়েছে, কিন্তু মডেল প্যারামিটার নয়। AllGather এখনও এই ধরনের শার্ডেড ডেটা সমান্তরালে ব্যবহার করা হয়, তবে শুধুমাত্র ফরওয়ার্ড পাস কম্পিউটেশনের আগে মডেল প্যারামিটার সংগ্রহ করার জন্য যা অন্যান্য GPU কর্মীদের থেকে বিভিন্ন গ্রেডিয়েন্ট বা অপ্টিমাইজার স্টেট শার্ড দ্বারা আপডেট করা হয়েছে। বিভিন্ন পড়ুন ডিপস্পিড জিরো ধাপ এবং SHARD_GRAD_OP আরও বিস্তারিত জানার জন্য FSDP শার্ডিং কৌশল।

একটি AllGather যৌথ অপারেশন করা হয় প্রতিবার যখন পরামিতিগুলি আনশার্ড করা হয় — NCCL এই রুটিনের মানক ওপেন-সোর্স বাস্তবায়ন প্রদান করে। নিম্নলিখিত হিসাবে দেখানো হয়েছে, AllGather-এর সাথে জড়িত প্রতিটি GPU কর্মী একটি ইনপুট বাফার দিয়ে শুরু করে এবং অন্যান্য কর্মীদের থেকে সমস্ত ইনপুট বাফার একসাথে সংযুক্ত করে শেষ হয়। যখন AllGather শার্ডড ডেটা সমান্তরালে ব্যবহার করা হয়, ইনপুট বাফারগুলিতে মডেল প্যারামিটার শার্ড থাকে এবং বড় আউটপুট বাফারগুলিতে অন্যান্য শার্ডগুলি থেকে বাস্তবায়িত এক বা একাধিক মডেল স্তর থাকে।

4টি GPU-তে AllGather অপারেশনের আগে এবং পরে

যদিও NCCL সাধারণত বিতরণ করা প্রশিক্ষণে AllGather-এর জন্য ব্যবহার করা হয়, তবে এর অন্তর্নিহিত নিম্ন-স্তরের বাস্তবায়ন অ্যামাজন ইলাস্টিক কম্পিউট ক্লাউডের নেটওয়ার্কিং অবকাঠামোর জন্য উপযুক্ত নয় (আমাজন EC2) দৃষ্টান্ত, এবং এইভাবে এর কর্মক্ষমতা শেষ থেকে শেষ প্রশিক্ষণকে ধীর করে দিতে পারে। SMDDP লাইব্রেরি হল NVIDIA GPU-গুলির জন্য একটি সম্মিলিত যোগাযোগ লাইব্রেরি যা NCCL-এর জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে কাজ করে এবং PyTorch-এর সাথে বিতরণ করা প্রশিক্ষণের কাজগুলির জন্য আরও ভাল কর্মক্ষমতা প্রদান করে। বিশেষত, SMDDP-এর জন্য AllGather-এর একটি অপ্টিমাইজ করা বাস্তবায়ন প্রদান করে p4d/p4de উদাহরণ প্রকার.

যেহেতু AllGather ব্লক ফরওয়ার্ড এবং ব্যাকওয়ার্ড পাস কম্পিউটেশনের মতো সম্মিলিত ক্রিয়াকলাপগুলি, এই অপারেশনগুলির দ্রুত সঞ্চালন সরাসরি সংক্ষিপ্ত এন্ড-টু-এন্ড ট্রেনিং টাইমে রূপান্তরিত করে যাতে কনভারজেন্সের উপর কোন পার্শ্ব প্রতিক্রিয়া নেই। অন্যান্য সম্মিলিত ক্রিয়াকলাপগুলি যা শার্ড ডেটা সমান্তরাল প্রশিক্ষণে কম ঘন ঘন ব্যবহার করা হয় সেগুলি NCCL-এ ফিরে আসার মাধ্যমে পরিচালনা করা হয়।

walkthrough

AWS-অপ্টিমাইজ করা AllGather

AWS-অপ্টিমাইজড AllGather NCCL এর তুলনায় AWS পরিকাঠামোতে আরও ভালো পারফরম্যান্স অর্জন করতে নিম্নলিখিত কৌশলগুলি ব্যবহার করে:

  1. আমরা এর মাধ্যমে উদাহরণগুলির মধ্যে ডেটা স্থানান্তর করি ইলাস্টিক ফ্যাব্রিক অ্যাডাপ্টার (EFA) একটি অল-টু-অল যোগাযোগ প্যাটার্ন সহ নেটওয়ার্ক। EFA হল AWS-এর লো-লেটেন্সি এবং হাই-থ্রুপুট নেটওয়ার্ক সলিউশন, এবং ইন্টার-নোড নেটওয়ার্ক কমিউনিকেশনের জন্য একটি সর্বাত্মক প্যাটার্ন EFA এবং AWS-এর নেটওয়ার্ক অবকাঠামোর বৈশিষ্ট্যগুলির সাথে আরও মানানসই, NCCL এর রিং বা রিং এর তুলনায় কম প্যাকেট হপস প্রয়োজন। গাছ যোগাযোগ প্যাটার্ন।
  2. জিডিআরকপি স্থানীয় NVLink এবং EFA নেটওয়ার্ক ট্রাফিক সমন্বয় করতে। GDRCopy হল একটি লাইব্রেরি যা CPU প্রসেস এবং GPU CUDA কার্নেলের মধ্যে কম লেটেন্সি যোগাযোগ প্রদান করে। এই প্রযুক্তির সাহায্যে, আমরা ইন্ট্রা-নোড এবং ইন্টার-নোড ডেটা মুভমেন্ট পাইপলাইন করতে সক্ষম হয়েছি।
  3. মডেল কার্নেলগুলিতে আরও গণনা শক্তি ফিরিয়ে দিতে GPU স্ট্রিমিং মাল্টিপ্রসেসরের ব্যবহার হ্রাস করা হয়েছে। AWS P4d/P4de দৃষ্টান্তগুলি NVIDIA A100 GPU দিয়ে সজ্জিত যার প্রতিটিতে 108টি স্ট্রিমিং মাল্টিপ্রসেসর রয়েছে। যদিও NCCL 24টি পর্যন্ত স্ট্রিমিং মাল্টিপ্রসেসরকে কালেক্টিভগুলি চালাতে নেয়, SMDDP কালেকটিভগুলি শুধুমাত্র নয়টি পর্যন্ত স্ট্রিমিং মাল্টিপ্রসেসর ব্যবহার করে। সংরক্ষিত স্ট্রিমিং মাল্টিপ্রসেসরগুলি দ্রুত কার্যকর করার জন্য মডেল কম্পিউট কার্নেল দ্বারা বাছাই করা যেতে পারে।

ব্যবহার

SMDDP সমষ্টিগতভাবে PyTorch এর মাধ্যমে সংহত করে প্রক্রিয়া গ্রুপ মধ্যে বিমূর্ততা torch.distributed মডিউল একটি প্রক্রিয়া গোষ্ঠী সাধারণ যৌথ ক্রিয়াকলাপগুলির জন্য ইন্টারফেসগুলিকে সংজ্ঞায়িত করে যেমন AllGather, ReduceScatter, AllReduce ইত্যাদি৷ ব্যবহারকারীরা জেনেরিক বিতরণ করা কোড লিখতে পারে এবং তারপর অন্তর্নিহিত নির্বাচন করতে পারে backend, যা ব্যবহৃত কম্পিউট ডিভাইসের উপর ভিত্তি করে এই অপারেশনগুলির জন্য বাস্তবায়ন প্রদান করে। সিপিইউ প্রশিক্ষণ কাজ প্রায়ই ব্যবহার gloo or mpi ব্যাকএন্ড যখন NVIDIA GPU ব্যবহার করে nccl ব্যাকএন্ড

SMDDP লাইব্রেরি প্রসেস গ্রুপ অ্যাবস্ট্রাকশনে একটি কাস্টম ব্যাকএন্ড হিসাবে নিজেকে নিবন্ধিত করে ছবিতে আসে। এটি আমদানি বিবৃতি দ্বারা করা হয়, যা নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে। তারপর, আপনার GPU-ভিত্তিক বিতরণকৃত প্রশিক্ষণ কাজের জন্য ব্যাকএন্ড নির্বাচন করার সময়, শুধু প্রতিস্থাপন করুন nccl সঙ্গে smddp. দ্য smddp ব্যাকএন্ডের মত একই শব্দার্থবিদ্যা মেনে চলে nccl ব্যাকএন্ড এবং একই প্রশিক্ষণের পরিস্থিতি সমর্থন করে।

ডিপস্পিড

import smdistributed.dataparallel.torch.torch_smddp
deepspeed.init_distributed(dist_backend="smddp") # replacing "nccl"

এফএসডিপি

import smdistributed.dataparallel.torch.torch_smddp
dist.init_process_group(backend="smddp")  # replacing "nccl"

benchmarks

আমরা স্ট্যান্ডএলোন AllGather পারফরম্যান্সকে বেঞ্চমার্ক করেছি যেখানে কোনও মডেল প্রশিক্ষণ ছাড়াই যৌথ অপারেশনটি বিচ্ছিন্নভাবে চালানো হয়। নীচে NCCL এবং SMDDP AllGather এর সাথে তুলনা করে 32 p4d উদাহরণের একটি নমুনা ফলাফল রয়েছে৷ X-অক্ষ AllGather-এর আউটপুট আকারের প্রতিনিধিত্ব করে, এবং Y-অক্ষ p4d-এর 400 Gbps EFA নেটওয়ার্কের নেটওয়ার্ক ব্যবহারের হারকে প্রতিনিধিত্ব করে। 4টি সাব-গ্রাফ সাধারণ যোগাযোগ গোষ্ঠীর নিদর্শনগুলিকে উপস্থাপন করে যেখানে আমাদের প্রতি p1d দৃষ্টান্তে যথাক্রমে 2, 4, 8 এবং 4টি র‍্যাঙ্ক AllGather অপারেশনে অংশগ্রহণ করে।

32টি নোডে SMDDP এবং NCCL AllGather-এর নেটওয়ার্ক ব্যবহার

এই মাইক্রোবেঞ্চমার্কগুলি দেখায় যে SMDDP দুটি মূল বৈশিষ্ট্যের সাথে NCCL-কে ছাড়িয়ে গেছে:

  1. সমস্ত কনফিগারেশনে SMDDP-এর সর্বোচ্চ কর্মক্ষমতা (প্রায় 90% ব্যান্ডউইথ ব্যবহার) NCCL (প্রায় 80% ব্যান্ডউইথ ব্যবহার) থেকে বেশি।
  2. SMDDP NCCL এর তুলনায় অনেক ছোট বাফার আকারে সর্বোচ্চ কর্মক্ষমতায় পৌঁছেছে। এটি বিশেষ করে ছোট মডেলের জন্য প্রশিক্ষণের গতি উন্নত করে বা যখন ব্যবহারকারী ডিপস্পিডে একটি ছোট AllGather বাফার সাইজ সেট করে (যেখানে AllGather সাইজ লেয়ার সাইজের সমান হতে হবে না)।

মডেল প্রশিক্ষণের মানদণ্ড

বড় মাপের প্রশিক্ষণের চাকরিতে যেখানে GPU যোগাযোগ একটি উল্লেখযোগ্য বাধা, SMDDP উল্লেখযোগ্যভাবে প্রশিক্ষণের গতি উন্নত করতে পারে, যেমনটি মডেল TFLOPS/GPU দ্বারা পরিমাপ করা হয়।

কনফিগারেশন সম্পাদন
মডেল/প্রশিক্ষণ গুচ্ছ Sharded Data Parallelism Solution NCCL এর সাথে মডেল TFLOPS/GPU SMDDP সহ মডেল TFLOPS/GPU % গতি
13B Llama2
অনুক্রমের দৈর্ঘ্য: 4096
গ্লোবাল ব্যাচের আকার: 4M টোকেন
64 p4d.24x বড় নোড (512 NVIDIA A100 GPUs) পাইটর্চ এফএসডিপি 97.89 121.85 24.40%
65B GPT-NeoX
অনুক্রমের দৈর্ঘ্য: 2048
গ্লোবাল ব্যাচের আকার: 4M টোকেন
64 p4d.24x বড় নোড (512 NVIDIA A100 GPUs) ডিপস্পিড জিরো স্টেজ 3* 99.23 108.66 9.50%

*EleutherAI এর Megatron-DeepSpeed সংগ্রহস্থল ব্যবহার করা হয়েছিল। টেনসর সমান্তরালতাও আটটি টেনসর-সমান্তরাল ডিগ্রির সাথে সক্ষম করা হয়েছিল।

দ্রষ্টব্য: মডেল TFLOPS/GPU কাগজে সংজ্ঞায়িত মডেল FLOPS ব্যবহার গণনার উপর ভিত্তি করে এখানে এবং বেঞ্চমার্ক পরিসংখ্যান অন্য কোথাও হার্ডওয়্যার TFLOPS/GPU পারফরম্যান্স মেট্রিক হিসাবে উদ্ধৃত করতে পারে। হার্ডওয়্যার TFLOPS/GPU 4/3 x মডেল TFLOPS/GPU হিসাবে আনুমানিক হতে পারে।

উপসংহার

এই পোস্টে, আমরা আপনাকে দেখিয়েছি কিভাবে মাত্র দুটি লাইনের কোড পরিবর্তনের সাথে Amazon SageMaker-এ শার্ড ডেটা সমান্তরাল প্রশিক্ষণের কাজগুলিকে উল্লেখযোগ্যভাবে গতিশীল করা যায়। উত্থান বা এলএলএম-এর সাথে বৃহৎ আকারে বিতরণ করা প্রশিক্ষণ ক্রমশ সর্বব্যাপী হয়ে উঠছে, কিন্তু এই স্কেলটির সাথে উচ্চ খরচও আসে। GPU-এর মধ্যে যোগাযোগের বাধা কমিয়ে SMDDP আপনাকে স্কেলে দ্রুত প্রশিক্ষণ দিতে এবং কম্পিউট রিসোর্স বাঁচাতে সাহায্য করে। আপনি শার্ডেড ডেটা সমান্তরাল প্রশিক্ষণ সহ আরও SMDDP উদাহরণ পেতে পারেন Amazon SageMaker উদাহরণ GitHub সংগ্রহস্থল.


লেখক সম্পর্কে

অ্যামাজন সেজমেকার ডেটা সমান্তরাল লাইব্রেরির সাথে দ্রুত প্রশিক্ষণ সক্ষম করুন আমাজন ওয়েব সার্ভিস প্লেটোব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.অপূর্ব গুপ্তা তিনি AWS-এর একজন সফ্টওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার, AWS অবকাঠামো এবং হার্ডওয়্যারের জন্য সর্বোত্তম ডিপ লার্নিং সিস্টেম তৈরির উপর দৃষ্টি নিবদ্ধ করে৷ তিনি ডিস্ট্রিবিউটেড কম্পিউটিং, ডিপ লার্নিং সিস্টেম এবং এমএল এক্সিলারেটরে আগ্রহী। কাজের বাইরে, অপূর্ব ভ্রমণ, হাইকিং এবং ভিডিও গেম উপভোগ করেন।

অ্যামাজন সেজমেকার ডেটা সমান্তরাল লাইব্রেরির সাথে দ্রুত প্রশিক্ষণ সক্ষম করুন আমাজন ওয়েব সার্ভিস প্লেটোব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.করণ ধীমান কানাডার টরন্টোতে অবস্থিত AWS-এর একজন সফটওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার। তিনি মেশিন লার্নিং স্পেস এবং বিতরণ করা গণনা করা কাজের চাপকে ত্বরান্বিত করার জন্য সমাধানগুলি তৈরি করার বিষয়ে খুব উত্সাহী।

অ্যামাজন সেজমেকার ডেটা সমান্তরাল লাইব্রেরির সাথে দ্রুত প্রশিক্ষণ সক্ষম করুন আমাজন ওয়েব সার্ভিস প্লেটোব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.রুহান প্রসাদ তিনি AWS-এর একজন সফটওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার যিনি SageMaker-এ বিতরণ করা গভীর শিক্ষার প্রশিক্ষণকে দ্রুত, সস্তা এবং সহজে ব্যবহার করার জন্য কাজ করছেন। কাজের বাইরে, রুহান টেনিস খেলা, ভ্রমণ এবং রান্না করা উপভোগ করে।

অ্যামাজন সেজমেকার ডেটা সমান্তরাল লাইব্রেরির সাথে দ্রুত প্রশিক্ষণ সক্ষম করুন আমাজন ওয়েব সার্ভিস প্লেটোব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.ঝাওকি ঝু তিনি AWS-এর একজন সিনিয়র সফ্টওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার, ডিস্ট্রিবিউটেড সিস্টেম এবং নিম্ন স্তরের অপ্টিমাইজেশন সম্পর্কে উত্সাহী৷ তিনি সোডা পান করার সময় ফুটবল ম্যাচ দেখতে উপভোগ করেন।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

অ্যামাজন টেক্সট্র্যাক্টের জন্য স্ব-পরিষেবা কোটা ব্যবস্থাপনা এবং উচ্চতর ডিফল্ট পরিষেবা কোটা প্রবর্তন করা হচ্ছে

উত্স নোড: 1694169
সময় স্ট্যাম্প: সেপ্টেম্বর 26, 2022