GPU সহ Amazon SageMaker মাল্টি-মডেল এন্ডপয়েন্ট ব্যবহার করে মডেল পরিবেশনের জন্য স্কেলে উচ্চ কর্মক্ষমতা অর্জন করুন

GPU সহ Amazon SageMaker মাল্টি-মডেল এন্ডপয়েন্ট ব্যবহার করে মডেল পরিবেশনের জন্য স্কেলে উচ্চ কর্মক্ষমতা অর্জন করুন

আমাজন সেজমেকার বহু মডেল শেষ পয়েন্ট (MMEs) বিপুল সংখ্যক মেশিন লার্নিং (ML) মডেল স্থাপন করার জন্য একটি পরিমাপযোগ্য এবং সাশ্রয়ী উপায় প্রদান করে। এটি আপনাকে একটি একক এন্ডপয়েন্টের পিছনে একটি একক পরিবেশনকারী পাত্রে একাধিক এমএল মডেল স্থাপন করার ক্ষমতা দেয়। সেখান থেকে, SageMaker আপনার ট্র্যাফিক প্যাটার্নের উপর ভিত্তি করে আপনার পক্ষে মডেলগুলি লোড করা এবং আনলোড করা এবং রিসোর্স স্কেলিং পরিচালনা করে৷ হোস্টিং রিসোর্স শেয়ারিং এবং পুনঃব্যবহার করে আপনি উপকৃত হবেন এবং প্রচুর পরিমাণে মডেল পরিচালনার একটি কম অপারেশনাল ভার পাবেন।

নভেম্বর 2022 সালে, MMEs GPU-এর জন্য সমর্থন যোগ করেছেs, যা আপনাকে একটি একক GPU ডিভাইসে একাধিক মডেল চালানোর অনুমতি দেয় এবং একটি একক শেষ পয়েন্টের পিছনে GPU দৃষ্টান্তগুলি স্কেল করতে দেয়। এটি ডিপ নিউরাল নেটওয়ার্ক (DNN) মডেলগুলির জন্য শক্তিশালী MME চাহিদাকে সন্তুষ্ট করে যা GPU-এর সাথে ত্বরিত গণনা থেকে উপকৃত হয়। এর মধ্যে রয়েছে কম্পিউটার ভিশন (সিভি), প্রাকৃতিক ভাষা প্রক্রিয়াকরণ (এনএলপি), এবং জেনারেটিভ এআই মডেল। চাহিদার কারণগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

  • DNN মডেলগুলি সাধারণত আকার এবং জটিলতায় বড় হয় এবং দ্রুত গতিতে বৃদ্ধি পেতে থাকে। NLP মডেলগুলিকে উদাহরণ হিসাবে নিলে, তাদের মধ্যে অনেকগুলিই বিলিয়ন প্যারামিটার অতিক্রম করে, যার জন্য কম লেটেন্সি এবং উচ্চ থ্রুপুট প্রয়োজনীয়তাগুলি পূরণ করতে GPU-এর প্রয়োজন হয়৷
  • আমরা স্বতন্ত্র ব্যবহারকারীদের কাছে হাইপার-ব্যক্তিগত অভিজ্ঞতা প্রদানের জন্য এই মডেলগুলিকে কাস্টমাইজ করার একটি বর্ধিত প্রয়োজনীয়তা লক্ষ্য করেছি। এই মডেলগুলির পরিমাণ বৃদ্ধির সাথে সাথে অনেকগুলি মডেলকে স্কেলে স্থাপন এবং কার্যকর করার জন্য একটি সহজ সমাধানের প্রয়োজন রয়েছে।
  • GPU দৃষ্টান্তগুলি ব্যয়বহুল এবং আপনি GPU ব্যবহার সর্বাধিক করতে এবং অপারেটিং খরচ কমাতে যতটা সম্ভব এই দৃষ্টান্তগুলি পুনরায় ব্যবহার করতে চান৷

যদিও এই সমস্ত কারণগুলি DNN মডেলগুলির জন্য একটি আদর্শ বিকল্প হিসাবে GPU সহ MME গুলিকে নির্দেশ করে, তবে সঠিক এন্ডপয়েন্ট কনফিগারেশন খুঁজে পেতে লোড টেস্টিং করার পরামর্শ দেওয়া হয় যা আপনার ব্যবহারের ক্ষেত্রে প্রয়োজনীয়তাগুলিকে সন্তুষ্ট করে৷ অনেক কারণ লোড পরীক্ষার ফলাফলকে প্রভাবিত করতে পারে, যেমন উদাহরণের ধরন, উদাহরণের সংখ্যা, মডেলের আকার এবং মডেল আর্কিটেকচার। উপরন্তু, লোড পরীক্ষা পুনরাবৃত্তিমূলক ট্রায়াল এবং ত্রুটি পদ্ধতির পরিবর্তে সঠিক মেট্রিক্স ব্যবহার করে স্বয়ংক্রিয় স্কেলিং কৌশলগুলিকে গাইড করতে সহায়তা করতে পারে।

এই কারণে, আমরা এই পোস্টটি একসাথে রেখেছি যাতে আপনি GPU-এর সাথে MME-এ সঠিক লোড টেস্টিং করতে পারেন এবং আপনার ML ব্যবহারের ক্ষেত্রে সেরা কনফিগারেশন খুঁজে পেতে পারেন। আমরা আমাদের লোড পরীক্ষার ফলাফল শেয়ার করি এনএলপি এবং সিভি-তে সবচেয়ে জনপ্রিয় কিছু DNN মডেলের জন্য বিভিন্ন ধরনের উদাহরণে MME ব্যবহার করে হোস্ট করা। আমরা আমাদের পরীক্ষার ফলাফল থেকে অন্তর্দৃষ্টি এবং উপসংহার সংক্ষিপ্ত করি যাতে আপনাকে আপনার নিজস্ব স্থাপনার কনফিগার করার বিষয়ে একটি জ্ঞাত সিদ্ধান্ত নিতে সহায়তা করে। সেই সাথে, আমরা GPU-তে MME-এর জন্য লোড টেস্টিং করার জন্য আমাদের প্রস্তাবিত পদ্ধতিও শেয়ার করি। প্রস্তাবিত সরঞ্জাম এবং কৌশলগুলি মডেলগুলির সর্বোত্তম সংখ্যা নির্ধারণ করে যা প্রতি দৃষ্টান্তের ধরণ অনুসারে লোড করা যেতে পারে এবং আপনাকে সর্বোত্তম মূল্য-কর্মক্ষমতা অর্জনে সহায়তা করে।

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

GPU সহ MMEs এবং MME এর পরিচিতির জন্য, পড়ুন একটি মাল্টি-মডেল এন্ডপয়েন্ট তৈরি করুন এবং Amazon SageMaker মাল্টি-মডেল এন্ডপয়েন্টের সাথে GPU-তে একাধিক ডিপ লার্নিং মডেল চালান. এই পোস্টে লোড পরীক্ষার প্রসঙ্গে, আপনি আমাদের নমুনা কোড থেকে ডাউনলোড করতে পারেন গিটহুব রেপো ফলাফলগুলি পুনরুত্পাদন করতে বা আপনার নিজের মডেলগুলিকে বেঞ্চমার্ক করতে একটি টেমপ্লেট হিসাবে ব্যবহার করতে৷ রেপোতে দুটি নোটবুক দেওয়া আছে: একটি লোড টেস্টিং সিভি মডেলের জন্য এবং আরেকটি NLP-এর জন্য। বিভিন্ন আকার এবং আর্কিটেকচারের বেশ কয়েকটি মডেল বিভিন্ন ধরণের GPU দৃষ্টান্তে বেঞ্চমার্ক করা হয়েছিল: ml.g4dn.2xlarge, ml.g5.2xlarge, এবং ml.p3.2xlarge। এটি প্রতিটি উদাহরণ এবং মডেলের জন্য নিম্নলিখিত মেট্রিক্স জুড়ে কর্মক্ষমতার একটি যুক্তিসঙ্গত ক্রস বিভাগ প্রদান করবে:

  • GPU মেমরিতে লোড করা যেতে পারে এমন মডেলের সর্বাধিক সংখ্যা৷
  • প্রতিটি অনুমান প্রশ্নের জন্য ক্লায়েন্ট সাইডে এন্ড-টু-এন্ড রেসপন্স লেটেন্সি পরিলক্ষিত হয়
  • প্রতি সেকেন্ডে প্রশ্নের সর্বোচ্চ থ্রুপুট যা শেষবিন্দু ত্রুটি ছাড়াই প্রক্রিয়া করতে পারে
  • একটি ব্যর্থ অনুরোধ পরিলক্ষিত হওয়ার আগে প্রতি দৃষ্টান্তে সর্বাধিক বর্তমান ব্যবহারকারী

নিম্নলিখিত সারণীতে পরীক্ষিত মডেলের তালিকা রয়েছে।

ব্যবহারের ক্ষেত্রে ণশড ডিস্কের স্থানের পরিমান প্যারামিটারের সংখ্যা
CV resnet50 100Mb 25M
CV convnext_base 352Mb 88M
CV vit_large_patch16_224 1.2Gb 304M
NLP bert-base-uncased 436Mb 109M
NLP roberta-large 1.3Gb 335M

নিম্নলিখিত সারণীতে পরীক্ষা করা GPU দৃষ্টান্তগুলি তালিকাভুক্ত করা হয়েছে৷

ইনস্ট্যান্স টাইপ জিপিইউ টাইপ GPU-এর সংখ্যা GPU মেমরি (GiB)
ml.g4dn.2x বড় NVIDIA T4 GPUs 1 16
ml.g5.2x বড় NVIDIA A10G টেনসর কোর GPU 1 24
ml.p3.2x বড় NVIDIA® V100 টেনসর কোর GPU 1 16

পূর্বে উল্লিখিত হিসাবে, কোড উদাহরণ অন্যান্য মডেল এবং উদাহরণ প্রকারে গ্রহণ করা যেতে পারে।

মনে রাখবেন যে MME বর্তমানে শুধুমাত্র একক GPU দৃষ্টান্ত সমর্থন করে। সমর্থিত উদাহরণ প্রকারের তালিকার জন্য, পড়ুন সমর্থিত অ্যালগরিদম, ফ্রেমওয়ার্ক এবং দৃষ্টান্ত.

বেঞ্চমার্কিং পদ্ধতি নিম্নলিখিত পদক্ষেপগুলি নিয়ে গঠিত:

  1. একটি মডেল হাব থেকে একটি প্রাক-প্রশিক্ষিত মডেল পুনরুদ্ধার করুন।
  2. SageMaker MME-এ পরিবেশনের জন্য মডেল আর্টিফ্যাক্ট প্রস্তুত করুন (দেখুন Amazon SageMaker মাল্টি-মডেল এন্ডপয়েন্টের সাথে GPU-তে একাধিক ডিপ লার্নিং মডেল চালান আরো বিস্তারিত জানার জন্য).
  3. একটি GPU উদাহরণে একটি SageMaker MME স্থাপন করুন।
  4. একটি নির্দিষ্ট থ্রেশহোল্ডের মধ্যে GPU মেমরিতে লোড করা যেতে পারে এমন মডেলের সর্বাধিক সংখ্যা নির্ধারণ করুন।
  5. ট্রাফিক অনুকরণ করতে পঙ্গপাল লোড টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করুন যা দৃষ্টান্তে লোড হওয়া মডেলগুলিকে এলোমেলোভাবে আহ্বান করে।
  6. তথ্য সংগ্রহ এবং ফলাফল বিশ্লেষণ.
  7. ঐচ্ছিকভাবে, TensorRT-তে মডেল কম্পাইল করার পর ধাপ 2-6 পুনরাবৃত্তি করুন।

ধাপ 4 এবং 5 একটি গভীর চেহারা নিশ্চিত করে। একটি SageMaker GPU MME-এর মধ্যে মডেলগুলি একটি গতিশীল ফ্যাশনে মেমরিতে লোড করা হয়৷ অতএব, ধাপ 4-এ, আমরা একটি প্রাথমিক মডেল আর্টিফ্যাক্ট আপলোড করি আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) এবং মডেলটিকে মেমরিতে লোড করার জন্য আহ্বান করুন। প্রাথমিক আহ্বানের পরে, আমরা গ্রাস করা GPU মেমরির পরিমাণ পরিমাপ করি, প্রাথমিক মডেলের একটি অনুলিপি তৈরি করি, মেমরিতে লোড করার জন্য মডেলটির অনুলিপি আহ্বান করি এবং আবার মোট GPU মেমরির পরিমাণ পরিমাপ করি। GPU মেমরি ব্যবহারের একটি নির্দিষ্ট শতাংশ থ্রেশহোল্ডে না পৌঁছানো পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি করা হয়। বেঞ্চমার্কের জন্য, বৃহত্তর ব্যাচগুলিতে অনুমান করার জন্য বা অন্যান্য কম ব্যবহৃত মডেলগুলি লোড করার জন্য কিছু স্থান ছেড়ে দেওয়ার জন্য আমরা থ্রেশহোল্ডকে 90% এ সেট করেছি।

ব্যবহারকারী ট্রাফিক অনুকরণ

আমরা মডেলের সংখ্যা নির্ধারণ করার পরে, আমরা ব্যবহার করে একটি লোড পরীক্ষা চালাতে পারি পঙ্গপাল লোড টেস্টিং ফ্রেমওয়ার্ক. লোড পরীক্ষা এলোমেলো মডেলগুলিতে ব্যবহারকারীর অনুরোধগুলিকে অনুকরণ করে এবং স্বয়ংক্রিয়ভাবে মেট্রিক্স যেমন প্রতিক্রিয়া লেটেন্সি এবং থ্রুপুট পরিমাপ করে।

পঙ্গপাল কাস্টম লোড পরীক্ষার আকারগুলিকে সমর্থন করে যা আপনাকে কাস্টম ট্র্যাফিক নিদর্শনগুলি সংজ্ঞায়িত করতে দেয়৷ এই বেঞ্চমার্কে ব্যবহৃত আকৃতিটি নিম্নলিখিত চার্টে দেখানো হয়েছে। প্রথম 30 সেকেন্ডে, শেষ পয়েন্টটি 10 ​​জন সমসাময়িক ব্যবহারকারীর সাথে উষ্ণ হয়। 30 সেকেন্ডের পরে, নতুন ব্যবহারকারী প্রতি সেকেন্ডে দুই হারে তৈরি হয়, 20-সেকেন্ডের চিহ্নে 40 সমসাময়িক ব্যবহারকারীদের কাছে পৌঁছায়। শেষ পয়েন্টটি 20-সেকেন্ডের চিহ্ন পর্যন্ত 60 জন সমসাময়িক ব্যবহারকারীর সাথে অবিচ্ছিন্নভাবে বেঞ্চমার্ক করা হয়, যে বিন্দুতে পঙ্গপাল আবার 40 জন সমসাময়িক ব্যবহারকারী না হওয়া পর্যন্ত প্রতি সেকেন্ডে দুইজন ব্যবহারকারীদের র‌্যাম্প করতে শুরু করে। র‌্যাম্পিং আপ এবং স্থির পরীক্ষার এই প্যাটার্নটি পুনরাবৃত্তি করা হয় যতক্ষণ না শেষ পয়েন্টটি 200 সমবর্তী ব্যবহারকারী পর্যন্ত র‌্যাম্প করা হয়। আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে, আপনি আপনার প্রত্যাশিত ট্র্যাফিক প্যাটার্নগুলিকে আরও সঠিকভাবে প্রতিফলিত করতে locust_benchmark_sm.py-এ লোড পরীক্ষার আকার সামঞ্জস্য করতে চাইতে পারেন। উদাহরণ স্বরূপ, আপনি যদি বড় ভাষার মডেল হোস্ট করতে চান, তাহলে 200 জন সমসাময়িক ব্যবহারকারীর সাথে একটি লোড পরীক্ষা একটি একক উদাহরণে হোস্ট করা মডেলের জন্য সম্ভব নাও হতে পারে, এবং তাই আপনি ব্যবহারকারীর সংখ্যা কমাতে বা দৃষ্টান্তের সংখ্যা বাড়াতে চাইতে পারেন। আপনি লোড পরীক্ষার সময়কাল আরও সঠিকভাবে দীর্ঘ সময়ের জন্য শেষ পয়েন্টের স্থায়িত্ব পরিমাপ করতে চাইতে পারেন।

stages = [
{"duration": 30, "users": 10, "spawn_rate": 5},
{"duration": 60, "users": 20, "spawn_rate": 1},
{"duration": 90, "users": 40, "spawn_rate": 2},
…
]

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.

মনে রাখবেন যে আমরা PyTorch বা TensorRT ব্যবহার করে সামঞ্জস্যপূর্ণ পরিবেশন ঘাঁটিতে চলমান সমজাতীয় মডেলগুলির সাথে শুধুমাত্র শেষ পয়েন্টটিকে বেঞ্চমার্ক করেছি। এর কারণ হল MME গুলি অনুরূপ বৈশিষ্ট্য সহ অনেক মডেল হোস্ট করার জন্য সবচেয়ে উপযুক্ত, যেমন মেমরি খরচ এবং প্রতিক্রিয়া সময়। বেঞ্চমার্কিং টেমপ্লেট প্রদান করা হয়েছে গিটহুব রেপো MMEs-এ ভিন্ন ভিন্ন মডেল পরিবেশন করলে কাঙ্খিত কর্মক্ষমতা এবং স্থিতিশীলতা পাওয়া যাবে কিনা তা নির্ধারণ করতে এখনও ব্যবহার করা যেতে পারে।

সিভি মডেলের জন্য বেঞ্চমার্ক ফলাফল

কম্পিউটার ভিশন মডেলের জন্য লোড টেস্টিং চালানোর জন্য cv-benchmark.ipynb নোটবুক ব্যবহার করুন। আপনি বিভিন্ন মডেল এবং ইন্সট্যান্স টাইপ কম্বিনেশনে পারফরম্যান্স লোড টেস্টিং-এ প্রাক-প্রশিক্ষিত মডেলের নাম এবং ইনস্ট্যান্স টাইপ প্যারামিটারগুলি সামঞ্জস্য করতে পারেন। আমরা ইচ্ছাকৃতভাবে তিনটি সিভি মডেলকে ছোট থেকে বড় পর্যন্ত বিভিন্ন আকারের পরিসরে পরীক্ষা করেছি: resnet50 (25 মি), convnext_base (88M), এবং vit_large_patch16_224 (304M)। আপনি যদি এই তালিকার বাইরে একটি মডেল বাছাই করেন তবে আপনাকে কোডের সাথে সামঞ্জস্য করতে হতে পারে। উপরন্তু, নোটবুক একটি 224x224x3 ইমেজ টেনসরে ইনপুট ইমেজ আকৃতি ডিফল্ট করে। যদি আপনি একটি ভিন্ন আকারের চিত্র গ্রহণকারী মডেলগুলিকে বেঞ্চমার্ক করতে চান তবে সেই অনুযায়ী ইনপুট আকৃতি সামঞ্জস্য করতে ভুলবেন না৷

পুরো নোটবুকটি চালানোর পরে, আপনি বেশ কয়েকটি কর্মক্ষমতা বিশ্লেষণ ভিজ্যুয়ালাইজেশন পাবেন। প্রথম দুইটি সমসাময়িক ব্যবহারকারীদের ক্রমবর্ধমান সাপেক্ষে মডেলের পারফরম্যান্সের বিশদ বিবরণ। নিম্নলিখিত পরিসংখ্যান হল উদাহরণ ভিজ্যুয়ালাইজেশনের জন্য উত্পন্ন ResNet50 ml.g4dn.2xlarge-এ চলমান মডেল, PyTorch (বাম) বনাম TensorRT (ডানে) তুলনা করে। শীর্ষ লাইনের গ্রাফগুলি x-অক্ষে প্রতিফলিত সমসাময়িক ক্লায়েন্ট কর্মীদের ক্রমবর্ধমান সংখ্যার সাথে y-অক্ষে মডেল লেটেন্সি এবং থ্রুপুট দেখায়। নীচের বার চার্টগুলি সফল এবং ব্যর্থ অনুরোধগুলির গণনা দেখায়৷

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.

আমরা পরীক্ষিত সমস্ত কম্পিউটার ভিশন মডেল জুড়ে খুঁজছি, আমরা নিম্নলিখিতগুলি পর্যবেক্ষণ করেছি:

  • লেটেন্সি (মিলিসেকেন্ডে) বেশি, এবং থ্রুপুট (প্রতি সেকেন্ডে অনুরোধ) বড় মডেলের জন্য কম (resnet50 > convnext_base > vit_large_patch16_224).
  • অনুমান সার্ভারে আরও অনুরোধ সারিবদ্ধ হওয়ার কারণে লেটেন্সি বৃদ্ধি ব্যবহারকারীর সংখ্যার সাথে সমানুপাতিক।
  • বড় মডেলগুলি আরও গণনা সংস্থানগুলি ব্যবহার করে এবং একটি ছোট মডেলের তুলনায় কম ব্যবহারকারীদের সাথে তাদের সর্বাধিক থ্রুপুট সীমাতে পৌঁছতে পারে। এই সঙ্গে পালন করা হয় vit_large_patch16_224 মডেল, যা 140 সমবর্তী ব্যবহারকারীদের প্রথম ব্যর্থ অনুরোধ রেকর্ড করেছে। পরীক্ষিত অন্য দুটি মডেলের তুলনায় উল্লেখযোগ্যভাবে বড় হওয়ায়, এটি উচ্চতর একযোগে সবচেয়ে সামগ্রিকভাবে ব্যর্থ অনুরোধ ছিল। এটি একটি সুস্পষ্ট সংকেত যে যদি উদ্দেশ্যটি 140 জনের বেশি সমসাময়িক ব্যবহারকারীদের সমর্থন করা হয় তবে শেষ পয়েন্টটিকে একটি একক উদাহরণের বাইরে স্কেল করতে হবে।

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.

নোটবুক চালানোর শেষে, আপনি চারটি মূল মেট্রিকের প্রতিটির জন্য PyTorch বনাম TensorRT মডেলের একটি সংক্ষিপ্ত তুলনাও পাবেন। আমাদের বেঞ্চমার্ক টেস্টিং থেকে, CV মডেলের সকলেই TensorRT সংকলনের পরে মডেলের কার্যক্ষমতা বৃদ্ধি পেয়েছে। আমাদের গ্রহণ ResNet50 আবার উদাহরণ হিসাবে মডেল, লেটেন্সি 32% কমেছে যখন থ্রুপুট 18% বেড়েছে। যদিও সমসাময়িক ব্যবহারকারীদের সর্বোচ্চ সংখ্যা একই ছিল ResNet50, অন্য দুটি মডেল উভয়ই সমকালীন ব্যবহারকারীদের সংখ্যায় 14% উন্নতি দেখেছে যা তারা সমর্থন করতে পারে। TensorRT পারফরম্যান্সের উন্নতি, তবে, উচ্চ মেমরি ব্যবহারের খরচে এসেছে, যার ফলে MMEs দ্বারা কম মডেল লোড হয়েছে। কনভোলিউশনাল নিউরাল নেটওয়ার্ক (সিএনএন) ব্যবহার করে মডেলগুলির জন্য প্রভাব বেশি। প্রকৃতপক্ষে, আমাদের ResNet50 মডেল PyTorch থেকে TensorRT-এ যাওয়া GPU মেমরির প্রায় দ্বিগুণ ব্যবহার করেছে, যার ফলে 50% কম মডেল লোড হয়েছে (46 বনাম 23)। আমরা নিম্নলিখিত বিভাগে এই আচরণটি আরও নির্ণয় করি।

NLP মডেলের জন্য বেঞ্চমার্ক ফলাফল

NLP মডেলের জন্য, লোড পরীক্ষা চালানোর জন্য nlp-benchmark.ipynb নোটবুক ব্যবহার করুন। নোটবুকের সেটআপটি খুব অনুরূপ হওয়া উচিত। আমরা দুটি NLP মডেল পরীক্ষা করেছি: bert-base-uncased (109M) এবং roberta-large (335M)। প্রাক-প্রশিক্ষিত মডেল এবং টোকেনাইজার উভয়ই হাগিং ফেস হাব থেকে ডাউনলোড করা হয় এবং একটি নমুনা স্ট্রিং ব্যবহার করে টোকেনাইজার থেকে টেস্ট পেলোড তৈরি করা হয়। সর্বোচ্চ সিকোয়েন্স দৈর্ঘ্য 128 এ ডিফল্ট করা হয়েছে। আপনি যদি দীর্ঘ স্ট্রিং পরীক্ষা করতে চান, তাহলে সেই প্যারামিটার সামঞ্জস্য করতে ভুলবেন না। এনএলপি নোটবুকের মাধ্যমে চলমান ভিজ্যুয়ালাইজেশনের একই সেট তৈরি করে: পাইটর্চ (বাম) বনাম টেনসরআরটি (ডান)।

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.
Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.

এগুলি থেকে, আমরা NLP মডেলগুলির জন্য TensorRT-এর আরও বেশি কর্মক্ষমতা সুবিধা পর্যবেক্ষণ করেছি। গ্রহণ roberta-large একটি ml.g4dn.2x বৃহৎ উদাহরণে মডেল, উদাহরণস্বরূপ, অনুমান লেটেন্সি 180 মিলিসেকেন্ড থেকে 56 মিলিসেকেন্ডে (একটি 70% উন্নতি) নাটকীয়ভাবে হ্রাস পেয়েছে, যখন থ্রুপুট প্রতি সেকেন্ডে 406টি অনুরোধ থেকে 33-এ 167% দ্বারা উন্নত হয়েছে। অতিরিক্তভাবে, সমবর্তী সর্বাধিক সংখ্যা ব্যবহারকারীরা 50% বৃদ্ধি পেয়েছে; আসল পাইটর্চ মডেলের জন্য 180 এর তুলনায় আমরা 120 সমবর্তী ব্যবহারকারীদের কাছে না পৌঁছানো পর্যন্ত ব্যর্থ অনুরোধগুলি পর্যবেক্ষণ করা হয়নি। মেমরি ব্যবহারের পরিপ্রেক্ষিতে, আমরা TensorRT (নয়টি মডেল থেকে আটটি) এর জন্য একটি কম মডেল লোড করা দেখেছি। যাইহোক, সিএনএন-ভিত্তিক মডেলগুলির সাথে আমরা যা পর্যবেক্ষণ করেছি তার তুলনায় নেতিবাচক প্রভাব অনেক কম।

মেমরি ব্যবহার বিশ্লেষণ

নিম্নলিখিত টেবিলটি PyTorch থেকে TensorRT পর্যন্ত মেমরি ব্যবহারের প্রভাবের সম্পূর্ণ বিশ্লেষণ দেখায়। আমরা আগে উল্লেখ করেছি যে সিএনএন-ভিত্তিক মডেলগুলি আরও নেতিবাচকভাবে প্রভাবিত হয়। দ্য ResNet50 মডেলটিতে তিনটি জিপিইউ ইন্সট্যান্স ধরনের লোড হওয়া মডেলের সংখ্যা 50% এর বেশি হ্রাস পেয়েছে। Convnext_base বোর্ড জুড়ে আনুমানিক 70% এ আরও বড় হ্রাস ছিল। অন্যদিকে, ট্রান্সফরমার মডেলগুলির প্রভাব ছোট বা মিশ্র। vit_large_patch16_224 এবং roberta-large প্রায় 20% এবং 3% গড় হ্রাস ছিল, যথাক্রমে, যখন bert-base-uncased একটি আনুমানিক 40% উন্নতি ছিল.

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

এমএল ব্যবহার কেস স্থাপত্য ণশড ইনস্ট্যান্স টাইপ ফ্রেমওয়ার্ক সর্বোচ্চ মডেল লোড হয়েছে পার্থক্য (%) গড় পার্থক্য (%)
CV সিএনএন Resnet50 ml.g4dn.2x বড় পাইটর্চ 46 -50% -50%
টেনসরআরটি 23
ml.g5.2x বড় পাইটর্চ 70 -51%
টেনসরআরটি 34
ml.p3.2x বড় পাইটর্চ 49 -51%
টেনসরআরটি 24
Convnext_base ml.g4dn.2x বড় পাইটর্চ 33 -50% -70%
টেনসরআরটি 10
ml.g5.2x বড় পাইটর্চ 50 -70%
টেনসরআরটি 16
ml.p3.2x বড় পাইটর্চ 35 -69%
টেনসরআরটি 11
ট্রান্সফরমার vit_large_patch16_224 ml.g4dn.2x বড় পাইটর্চ 10 -30% -20%
টেনসরআরটি 7
ml.g5.2x বড় পাইটর্চ 15 -13%
টেনসরআরটি 13
ml.p3.2x বড় পাইটর্চ 11 -18%
টেনসরআরটি 9
NLP Roberta-large ml.g4dn.2x বড় পাইটর্চ 9 -11% -3%
টেনসরআরটি 8
ml.g5.2x বড় পাইটর্চ 13 0%
টেনসরআরটি 13
ml.p3.2x বড় পাইটর্চ 9 0%
টেনসরআরটি 9
Bert-base-uncased ml.g4dn.2x বড় পাইটর্চ 26 62% 40%
টেনসরআরটি 42
ml.g5.2x বড় পাইটর্চ 39 28%
টেনসরআরটি 50
ml.p3.2x বড় পাইটর্চ 28 29%
টেনসরআরটি 36

নিম্নলিখিত সারণীগুলি তিনটি GPU দৃষ্টান্তের ধরন জুড়ে সমস্ত মেট্রিকের জন্য আমাদের সম্পূর্ণ বেঞ্চমার্ক ফলাফলগুলি তালিকাভুক্ত করে৷

ml.g4dn.2x বড়

ব্যবহারের ক্ষেত্রে স্থাপত্য ণশড প্যারামিটারের সংখ্যা ফ্রেমওয়ার্ক সর্বোচ্চ মডেল লোড হয়েছে পার্থক্য (%) Latency (ms) পার্থক্য (%) থ্রুপুট (qps) পার্থক্য (%) সর্বোচ্চ সমসাময়িক ব্যবহারকারী পার্থক্য (%)
CV সিএনএন resnet50 25M পাইটর্চ 46 -50% 164 -32% 120 18% 180 NA
টেনসরআরটি 23 . 111 . 142 . 180 .
convnext_base 88M পাইটর্চ 33 -70% 154 -22% 64 102% 140 14%
টেনসরআরটি 10 . 120 . 129 . 160 .
ট্রান্সফরমার vit_large_patch16_224 304M পাইটর্চ 10 -30% 425 -69% 26 304% 140 14%
টেনসরআরটি 7 . 131 . 105 . 160 .
NLP bert-base-uncased 109M পাইটর্চ 26 62% 70 -39% 105 142% 140 29%
টেনসরআরটি 42 . 43 . 254 . 180 .
roberta-large 335M পাইটর্চ 9 -11% 187 -70% 33 406% 120 50%
টেনসরআরটি 8 . 56 . 167 . 180 .

ml.g5.2x বড়

ব্যবহারের ক্ষেত্রে স্থাপত্য ণশড প্যারামিটারের সংখ্যা ফ্রেমওয়ার্ক সর্বোচ্চ মডেল লোড হয়েছে পার্থক্য (%) Latency (ms) পার্থক্য (%) থ্রুপুট (qps) পার্থক্য (%) সর্বোচ্চ সমসাময়িক ব্যবহারকারী পার্থক্য (%)
CV সিএনএন resnet50 25M পাইটর্চ 70 -51% 159 -31% 146 14% 180 11%
টেনসরআরটি 34 . 110 . 166 . 200 .
convnext_base 88M পাইটর্চ 50 -68% 149 -23% 134 13% 180 0%
টেনসরআরটি 16 . 115 . 152 . 180 .
ট্রান্সফরমার vit_large_patch16_224 304M পাইটর্চ 15 -13% 149 -22% 105 35% 160 25%
টেনসরআরটি 13 . 116 . 142 . 200 .
NLP bert-base-uncased 109M পাইটর্চ 39 28% 65 -29% 183 38% 180 11%
টেনসরআরটি 50 . 46 . 253 . 200 .
roberta-large 335M পাইটর্চ 13 0% 97 -38% 121 46% 140 14%
টেনসরআরটি 13 . 60 . 177 . 160 .

ml.p3.2x বড়

ব্যবহারের ক্ষেত্রে স্থাপত্য ণশড প্যারামিটারের সংখ্যা ফ্রেমওয়ার্ক সর্বোচ্চ মডেল লোড হয়েছে পার্থক্য (%) Latency (ms) পার্থক্য (%) থ্রুপুট (qps) পার্থক্য (%) সর্বোচ্চ সমসাময়িক ব্যবহারকারী পার্থক্য (%)
CV সিএনএন resnet50 25M পাইটর্চ 49 -51% 197 -41% 94 18% 160 -12%
টেনসরআরটি 24 . 117 . 111 . 140 .
convnext_base 88M পাইটর্চ 35 -69% 178 -23% 89 11% 140 14%
টেনসরআরটি 11 .137 137 . 99 . 160 .
ট্রান্সফরমার vit_large_patch16_224 304M পাইটর্চ 11 -18% 186 -28% 83 23% 140 29%
টেনসরআরটি 9 . 134 . 102 . 180 .
NLP bert-base-uncased 109M পাইটর্চ 28 29% 77 -40% 133 59% 140 43%
টেনসরআরটি 36 . 46 . 212 . 200 .
roberta-large 335M পাইটর্চ 9 0% 108 -44% 88 60% 160 0%
টেনসরআরটি 9 . 61 . 141 . 160 .

নিম্নলিখিত সারণী সমস্ত উদাহরণের ধরন জুড়ে ফলাফলগুলিকে সংক্ষিপ্ত করে৷ ml.g5.2xlarge ইন্সট্যান্স সেরা পারফরম্যান্স প্রদান করে, যেখানে ml.p3.2xlarge ইন্সট্যান্স তিনটির মধ্যে সবচেয়ে দামী হওয়া সত্ত্বেও সাধারণত কম পারফর্ম করে। g5 এবং g4dn দৃষ্টান্তগুলি অনুমান কাজের চাপের জন্য সর্বোত্তম মান প্রদর্শন করে।

ব্যবহারের ক্ষেত্রে স্থাপত্য ণশড প্যারামিটারের সংখ্যা ফ্রেমওয়ার্ক ইনস্ট্যান্স টাইপ সর্বোচ্চ মডেল লোড হয়েছে পার্থক্য (%) Latency (ms) পার্থক্য (%) থ্রুপুট (qps) পার্থক্য (%) সর্বোচ্চ সমসাময়িক ব্যবহারকারী
CV সিএনএন resnet50 25M পাইটর্চ ml.g5.2x বড় 70 . 159 . 146 . 180
. . . . . ml.p3.2x বড় 49 . 197 . 94 . 160
. . . . . ml.g4dn.2x বড় 46 . 164 . 120 . 180
CV CN resnet50 25M টেনসরআরটি ml.g5.2x বড় 34 -51% 110 -31% 166 14% 200
. . . . . ml.p3.2x বড় 24 -51% 117 -41% 111 18% 200
. . . . . ml.g4dn.2x বড় 23 -50% 111 -32% 142 18% 180
NLP ট্রান্সফরমার bert-base-uncased 109M পাইটোর্চ ml.g5.2x বড় 39 . 65 . 183 . 180
. . . . . ml.p3.2x বড় 28 . 77 . 133 . 140
. . . . . ml.g4dn.2x বড় 26 . 70 . 105 . 140
NLP ট্রান্সফরমার bert-base-uncased 109M টেনসরআরটি ml.g5.2x বড় 50 28% 46 -29% 253 38% 200
. . . . . ml.p3.2x বড় 36 29% 46 -40% 212 59% 200
. . . . . ml.g4dn.2x বড় 42 62% 43 -39% 254 142% 180

পরিষ্কার কর

আপনি আপনার লোড পরীক্ষা সম্পূর্ণ করার পরে, অতিরিক্ত চার্জ এড়াতে উত্পন্ন সংস্থানগুলি পরিষ্কার করুন৷ প্রধান সম্পদ হল সেজমেকার এন্ডপয়েন্ট এবং আমাজন S3 এর মডেল আর্টিফ্যাক্ট ফাইল। এটিকে আপনার জন্য সহজ করার জন্য, নোটবুকের ফাইলগুলিতে আপনাকে সেগুলি মুছতে সাহায্য করার জন্য নিম্নলিখিত ক্লিনআপ কোড রয়েছে:

delete_endpoint(sm_client, sm_model_name, endpoint_config_name, endpoint_name) ! aws s3 rm --recursive {trt_mme_path}

উপসংহার

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


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

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.জেমস উ AWS-এর একজন সিনিয়র AI/ML স্পেশালিস্ট সলিউশন আর্কিটেক্ট। গ্রাহকদের এআই/এমএল সলিউশন ডিজাইন এবং তৈরি করতে সাহায্য করা। জেমসের কাজ এমএল ব্যবহারের ক্ষেত্রের একটি বিস্তৃত পরিসর কভার করে, যার মধ্যে প্রাথমিক আগ্রহ কম্পিউটার ভিশন, গভীর শিক্ষা, এবং এন্টারপ্রাইজ জুড়ে এমএল স্কেলিং। AWS-এ যোগদানের আগে, জেমস 10 বছরেরও বেশি সময় ধরে একজন স্থপতি, বিকাশকারী এবং প্রযুক্তি নেতা ছিলেন, যার মধ্যে 6 বছর ইঞ্জিনিয়ারিং এবং 4 বছর মার্কেটিং এবং বিজ্ঞাপন শিল্পে ছিল।

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.বিক্রম এলাঙ্গো ভার্জিনিয়া মার্কিন যুক্তরাষ্ট্রে অবস্থিত অ্যামাজন ওয়েব সার্ভিসেস-এর একজন AI/ML বিশেষজ্ঞ সমাধান স্থপতি৷ বিক্রম আর্থিক এবং বীমা শিল্পের গ্রাহকদের ডিজাইন, চিন্তার নেতৃত্ব দিয়ে মেশিন লার্নিং অ্যাপ্লিকেশন তৈরি এবং স্থাপনে সাহায্য করে। তিনি বর্তমানে এন্টারপ্রাইজ জুড়ে প্রাকৃতিক ভাষা প্রক্রিয়াকরণ, দায়িত্বশীল এআই, ইনফারেন্স অপ্টিমাইজেশান এবং এমএল স্কেলিং এর উপর দৃষ্টি নিবদ্ধ করছেন। তার অবসর সময়ে, তিনি তার পরিবারের সাথে ভ্রমণ, হাইকিং, রান্না এবং ক্যাম্পিং উপভোগ করেন।

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai.সাইমন জামারিন একজন AI/ML সলিউশন আর্কিটেক্ট যার মূল ফোকাস গ্রাহকদের তাদের ডেটা সম্পদ থেকে মূল্য বের করতে সাহায্য করে। তার অবসর সময়ে, সাইমন পরিবারের সাথে সময় কাটানো, সাই-ফাই পড়া এবং বিভিন্ন DIY হাউস প্রকল্পে কাজ করা উপভোগ করে।

Achieve high performance at scale for model serving using Amazon SageMaker multi-model endpoints with GPU PlatoBlockchain Data Intelligence. Vertical Search. Ai. সৌরভ ত্রিকন্দে অ্যামাজন সেজমেকার ইনফারেন্সের একজন সিনিয়র প্রোডাক্ট ম্যানেজার। তিনি গ্রাহকদের সাথে কাজ করার জন্য উত্সাহী এবং মেশিন লার্নিংকে গণতান্ত্রিক করার লক্ষ্য দ্বারা অনুপ্রাণিত৷ তিনি জটিল এমএল অ্যাপ্লিকেশন স্থাপন, মাল্টি-টেন্যান্ট এমএল মডেল, খরচ অপ্টিমাইজেশান, এবং গভীর শিক্ষার মডেলগুলিকে আরও অ্যাক্সেসযোগ্য করে তোলার সাথে সম্পর্কিত মূল চ্যালেঞ্জগুলিতে মনোনিবেশ করেন। অবসর সময়ে, সৌরভ হাইকিং উপভোগ করেন, উদ্ভাবনী প্রযুক্তি সম্পর্কে শেখেন, টেকক্রাঞ্চ অনুসরণ করেন এবং তার পরিবারের সাথে সময় কাটান।

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

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