মেশিন লার্নিং (এমএল) মডেল স্থাপনে আজ ব্যবসার জন্য অত্যন্ত চাহিদাপূর্ণ কর্মক্ষমতা এবং লেটেন্সি প্রয়োজনীয়তা থাকতে পারে। প্রতারণা শনাক্তকরণ এবং বিজ্ঞাপন স্থাপনের মতো ক্ষেত্রে ব্যবহার করা হল উদাহরণ যেখানে মিলিসেকেন্ড গুরুত্বপূর্ণ এবং ব্যবসায়িক সাফল্যের জন্য গুরুত্বপূর্ণ। কঠোর পরিষেবা স্তরের চুক্তিগুলি (এসএলএ) পূরণ করতে হবে এবং একটি সাধারণ অনুরোধের জন্য একাধিক পদক্ষেপের প্রয়োজন হতে পারে যেমন প্রিপ্রসেসিং, ডেটা ট্রান্সফরমেশন, মডেল নির্বাচন লজিক, মডেল অ্যাগ্রিগেশন এবং পোস্টপ্রসেসিং। স্কেলে, এর অর্থ প্রায়ই কম লেটেন্সি বজায় রেখে প্রচুর পরিমাণে ট্রাফিক বজায় রাখা। সাধারণ ডিজাইনের প্যাটার্নগুলির মধ্যে রয়েছে সিরিয়াল ইনফারেন্স পাইপলাইন, এনসেম্বল (স্ক্যাটার-গেদার) এবং ব্যবসায়িক লজিক ওয়ার্কফ্লো, যার ফলে অনুরোধের সম্পূর্ণ ওয়ার্কফ্লোকে নির্দেশিত অ্যাসাইক্লিক গ্রাফ (DAG) হিসাবে উপলব্ধি করা হয়। যাইহোক, কর্মপ্রবাহ আরও জটিল হওয়ার ফলে, এটি সামগ্রিক প্রতিক্রিয়ার সময় বৃদ্ধির দিকে নিয়ে যেতে পারে, যা ফলস্বরূপ ব্যবহারকারীর শেষ-ব্যবহারকারীর অভিজ্ঞতাকে নেতিবাচকভাবে প্রভাবিত করতে পারে এবং ব্যবসায়িক লক্ষ্যগুলিকে বিপদে ফেলতে পারে। ট্রাইটন এই ব্যবহারের ক্ষেত্রে মোকাবেলা করতে পারে যেখানে একাধিক মডেল একটি পাইপলাইনে তাদের মধ্যে সংযুক্ত ইনপুট এবং আউটপুট টেনসরগুলির সাথে তৈরি করা হয়, যা আপনাকে এই কাজের চাপগুলি মোকাবেলায় সহায়তা করে।
আপনি ML মডেল অনুমানের সাথে আপনার লক্ষ্যগুলিকে মূল্যায়ন করার সময়, অনেকগুলি বিকল্প বিবেচনা করা যেতে পারে, তবে কয়েকটি যতটা সক্ষম এবং প্রমাণিত আমাজন সেজমেকার সঙ্গে ট্রাইটন ইনফারেন্স সার্ভার. ট্রাইটন ইনফারেন্স সার্ভার সহ সেজমেকার অনেক গ্রাহকের কাছে একটি জনপ্রিয় পছন্দ কারণ এটি অতি-লো (একক-ডিজিট মিলিসেকেন্ড) ইনফারেন্স লেটেন্সি সহ থ্রুপুট এবং হার্ডওয়্যার ব্যবহার সর্বাধিক করার উদ্দেশ্যে তৈরি করা হয়েছে। এটিতে সমর্থিত ML ফ্রেমওয়ার্কের বিস্তৃত পরিসর রয়েছে (টেনসরফ্লো, পাইটর্চ, ONNX, XGBoost, এবং NVIDIA TensorRT সহ) এবং NVIDIA GPUs, CPUs সহ অবকাঠামো ব্যাকএন্ড এবং এডাব্লুএস ইনফেরেন্টিয়া. অতিরিক্তভাবে, ট্রাইটন ইনফারেন্স সার্ভার সেজমেকারের সাথে একীভূত, একটি সম্পূর্ণরূপে পরিচালিত এন্ড-টু-এন্ড এমএল পরিষেবা, যা মডেল হোস্টিংয়ের জন্য রিয়েল-টাইম ইনফারেন্স বিকল্পগুলি প্রদান করে।
এই পোস্টে, আমরা ট্রাইটন ইনফারেন্স সার্ভারের সাথে সেজমেকারে একটি জালিয়াতি সনাক্তকরণ এনসেম্বল ওয়ার্কলোড স্থাপনের মধ্য দিয়ে চলেছি।
সমাধান ওভারভিউ
প্রকল্পের মোট খরচ আনুমানিক করার জন্য যে কোনো প্রকল্পের জন্য প্রয়োজনীয়তার একটি তালিকা এবং প্রচেষ্টার অনুমান থাকা অপরিহার্য। একটি প্রতিষ্ঠানের সিদ্ধান্তকে সমর্থন করে এমন বিনিয়োগের উপর রিটার্ন (ROI) অনুমান করা গুরুত্বপূর্ণ। ট্রাইটনে কাজের চাপ সরানোর সময় বিবেচনা করার জন্য কিছু বিবেচনার মধ্যে রয়েছে:
সফ্টওয়্যার ডেভেলপমেন্টে প্রচেষ্টার অনুমান চাবিকাঠি, এবং এটির পরিমাপ প্রায়শই অসম্পূর্ণ, অনিশ্চিত এবং গোলমাল ইনপুটগুলির উপর ভিত্তি করে। এমএল কাজের চাপ আলাদা নয়। একাধিক কারণ ML অনুমানের জন্য একটি আর্কিটেকচারকে প্রভাবিত করবে, যার মধ্যে কয়েকটি অন্তর্ভুক্ত:
- ক্লায়েন্ট-সাইড লেটেন্সি বাজেট - এটি একটি অনুমান প্রতিক্রিয়ার জন্য ক্লায়েন্ট-সাইড রাউন্ড-ট্রিপ সর্বাধিক গ্রহণযোগ্য অপেক্ষার সময় নির্দিষ্ট করে, সাধারণত শতাংশে প্রকাশ করা হয়। যে কাজের চাপের জন্য দশ মিলিসেকেন্ডের কাছাকাছি একটি বিলম্বিত বাজেট প্রয়োজন, নেটওয়ার্ক স্থানান্তর ব্যয়বহুল হতে পারে, তাই প্রান্তে মডেলগুলি ব্যবহার করা আরও উপযুক্ত হবে৷
- ডেটা পেলোড বিতরণের আকার - পেলোড, প্রায়ই হিসাবে উল্লেখ করা হয় বার্তাংশ, ক্লায়েন্ট থেকে মডেলে প্রেরণ করা অনুরোধের ডেটা, সেইসাথে মডেল থেকে ক্লায়েন্টে প্রেরণ করা প্রতিক্রিয়া ডেটা। পেলোডের আকার প্রায়ই বিলম্বিততার উপর একটি বড় প্রভাব ফেলে এবং বিবেচনায় নেওয়া উচিত।
- উপাত্ত বিন্যাস - এটি উল্লেখ করে কিভাবে পেলোড ML মডেলে পাঠানো হয়। বিন্যাস মানব-পাঠযোগ্য হতে পারে, যেমন JSON এবং CSV, তবে বাইনারি ফর্ম্যাটগুলিও রয়েছে, যা প্রায়শই সংকুচিত এবং আকারে ছোট হয়। এটি কম্প্রেশন ওভারহেড এবং ট্রান্সফার সাইজের মধ্যে একটি ট্রেড-অফ, যার অর্থ হল নেটওয়ার্কে স্থানান্তরিত বাইটগুলিকে সংরক্ষণ করার জন্য কম্প্রেস বা ডিকম্প্রেস করতে CPU চক্র এবং লেটেন্সি যোগ করা হয়। এই পোস্টটি দেখায় কিভাবে JSON এবং বাইনারি ফর্ম্যাট উভয়ই ব্যবহার করতে হয়।
- সফ্টওয়্যার স্ট্যাক এবং উপাদান প্রয়োজন - একটি স্ট্যাক হল উপাদানগুলির একটি সংগ্রহ যা অপারেটিং সিস্টেম, রানটাইম এবং সফ্টওয়্যার স্তর সহ একটি ML অ্যাপ্লিকেশনকে সমর্থন করার জন্য একসাথে কাজ করে৷ Triton বিল্ট-ইন জনপ্রিয় ML ফ্রেমওয়ার্ক সহ আসে, যাকে বলা হয় পিছনে, যেমন ONNX, TensorFlow, FIL, OpenVINO, নেটিভ পাইথন এবং অন্যান্য। আপনি একটি লেখকও করতে পারেন কাস্টম ব্যাকএন্ড আপনার নিজের দেশীয় উপাদানগুলির জন্য। এই পোস্টটি একটি XGBoost মডেল এবং ডেটা প্রিপ্রসেসিং-এর উপরে যায়, যা আমরা NVIDIA প্রদত্ত FIL এবং Python Triton ব্যাকএন্ডে স্থানান্তরিত করি।
আপনার কাজের চাপগুলি কীভাবে কাজ করে তা মূল্যায়নে এই সমস্ত কারণগুলির একটি গুরুত্বপূর্ণ ভূমিকা পালন করা উচিত, তবে এই ব্যবহারের ক্ষেত্রে আমরা আপনার এমএল মডেলগুলিকে ট্রাইটন ইনফারেন্স সার্ভারের সাথে সেজমেকারে হোস্ট করার জন্য প্রয়োজনীয় কাজের উপর ফোকাস করি। বিশেষত, আমরা পাইথনে লিখিত প্রিপ্রসেসিং লজিক সহ একটি XGBoost মডেলের তৈরি একটি জালিয়াতি সনাক্তকরণের একটি উদাহরণ ব্যবহার করি।
এনভিআইডিএ ট্রাইটন ইনফারেন্স সার্ভার
ট্রাইটন ইনফারেন্স সার্ভারটি গ্রাউন্ড আপ থেকে ডিজাইন করা হয়েছে যাতে দলগুলিকে GPU বা CPU ভিত্তিক পরিকাঠামোর যেকোন ফ্রেমওয়ার্ক থেকে প্রশিক্ষিত AI মডেলগুলি স্থাপন, চালাতে এবং স্কেল করতে সক্ষম করে। উপরন্তু, গতিশীল ব্যাচিং, সমসাময়িক রান, সর্বোত্তম মডেল কনফিগারেশন, মডেল এনসেম্বল এবং স্ট্রিমিং ইনপুটগুলির জন্য সমর্থনের মতো বৈশিষ্ট্য সহ স্কেলে উচ্চ-পারফরম্যান্স অনুমান অফার করার জন্য এটি অপ্টিমাইজ করা হয়েছে।
নিম্নলিখিত চিত্রটি NVIDIA Triton ensemble পাইপলাইনের একটি উদাহরণ দেখায়।
ওয়ার্কলোডগুলি অফার করা সুবিধাগুলি সর্বাধিক করার জন্য সেজমেকার হোস্টিংয়ের সাথে ট্রাইটন সরবরাহ করে এমন ক্ষমতাগুলি বিবেচনা করা উচিত। উদাহরণস্বরূপ, ট্রাইটন HTTP এর পাশাপাশি a C API, যা প্রয়োজনের সময় নমনীয়তার পাশাপাশি পেলোড অপ্টিমাইজেশনের অনুমতি দেয়। পূর্বে উল্লিখিত হিসাবে, ট্রাইটন টেনসরফ্লো, পাইটর্চ, ONNX, XGBoost এবং NVIDIA TensorRT সহ বেশ কয়েকটি জনপ্রিয় ফ্রেমওয়ার্ককে সমর্থন করে। এই ফ্রেমওয়ার্কগুলি ট্রাইটন ব্যাকএন্ডের মাধ্যমে সমর্থিত, এবং বিরল ঘটনাতে যে ব্যাকএন্ড আপনার ব্যবহারের ক্ষেত্রে সমর্থন করে না, ট্রাইটন আপনাকে আপনার নিজের বাস্তবায়ন করতে এবং সহজেই এটিকে সংহত করতে দেয়.
নিচের চিত্রটি NVIDIA Triton আর্কিটেকচারের একটি উদাহরণ দেখায়।
SageMaker-এ NVIDIA Triton
সেজমেকার হোস্টিং পরিষেবাগুলি হল সেজমেকার বৈশিষ্ট্যগুলির সেট যার লক্ষ্য মডেল স্থাপন এবং পরিবেশন সহজতর করা। এটি সহজে স্থাপন, স্বয়ংক্রিয় স্কেল, মনিটর, এবং বিভিন্ন ব্যবহারের ক্ষেত্রে উপযোগী এমএল মডেল অপ্টিমাইজ করার জন্য বিভিন্ন বিকল্প সরবরাহ করে। এর মানে হল যে আপনি সার্ভারহীন বিকল্পগুলির সাথে অবিরাম এবং সর্বদা উপলব্ধ থেকে, ক্ষণস্থায়ী, দীর্ঘ-চলমান, বা ব্যাচ অনুমান প্রয়োজন পর্যন্ত সমস্ত ধরণের ব্যবহারের নিদর্শনগুলির জন্য আপনার স্থাপনা অপ্টিমাইজ করতে পারেন৷
সেজমেকার হোস্টিং ছাতার অধীনে সেজমেকার ইনফরেন্স ডিপ লার্নিং কন্টেইনার (ডিএলসি) এর সেটও রয়েছে, যা তাদের সংশ্লিষ্ট সমর্থিত এমএল ফ্রেমওয়ার্কের জন্য উপযুক্ত মডেল সার্ভার সফ্টওয়্যার সহ প্রিপ্যাকেজ করা হয়। এটি আপনাকে কোনও মডেল সার্ভার সেটআপ ছাড়াই উচ্চ অনুমান কার্যক্ষমতা অর্জন করতে সক্ষম করে, যা প্রায়শই মডেল স্থাপনের সবচেয়ে জটিল প্রযুক্তিগত দিক এবং সাধারণভাবে ডেটা বিজ্ঞানীর দক্ষতা সেটের অংশ নয়। ট্রাইটন ইনফারেন্স সার্ভার এখন সহজলভ্য সেজমেকার ডিএলসি-তে।
বিকল্পের এই বিস্তৃতি, মডুলারিটি, এবং বিভিন্ন পরিবেশন ফ্রেমওয়ার্কের ব্যবহারের সহজতা সেজমেকার এবং ট্রাইটনকে একটি শক্তিশালী ম্যাচ করে তোলে।
NVIDIA FIL ব্যাকএন্ড সমর্থন
সঙ্গে সঙ্গে ট্রাইটনের 22.05 সংস্করণ প্রকাশ, NVIDIA এখন XGBoost, LightGBM, Scikit-learn, এবং cuML সহ বেশ কয়েকটি জনপ্রিয় ML ফ্রেমওয়ার্ক দ্বারা প্রশিক্ষিত বন মডেলগুলিকে সমর্থন করে৷ Triton-এর জন্য FIL ব্যাকএন্ড ব্যবহার করার সময়, আপনি যে মডেল আর্টিফ্যাক্টগুলি প্রদান করেন তা সমর্থিত কিনা তা নিশ্চিত করা উচিত। উদাহরণস্বরূপ, FIL সমর্থন করে model_type
xgboost
, xgboost_json
, lightgbm
, বা treelite_checkpoint
, প্রদত্ত মডেলটি যথাক্রমে XGBoost বাইনারি ফর্ম্যাটে, XGBoost JSON ফর্ম্যাট, LightGBM টেক্সট ফর্ম্যাট বা Treelite বাইনারি ফর্ম্যাটে আছে কিনা তা নির্দেশ করে৷
এই ব্যাকএন্ড সমর্থন আমাদের উদাহরণে ব্যবহার করার জন্য অপরিহার্য কারণ FIL XGBoost মডেল সমর্থন করে। আমরা যে মডেলটি মোতায়েন করি তা বাইনারি বা JSON ফর্ম্যাটগুলিকে সমর্থন করে তা নিশ্চিত করা পরীক্ষা করার একমাত্র বিবেচনা।
আপনার সঠিক মডেল বিন্যাস আছে তা নিশ্চিত করার পাশাপাশি, অন্যান্য বিবেচনা করা উচিত। ট্রাইটনের জন্য FIL ব্যাকএন্ড ডেভেলপারদের তাদের কাজের চাপ টিউন করতে এবং মডেল চালানোর পারফরম্যান্স অপ্টিমাইজ করার জন্য কনফিগারযোগ্য বিকল্প সরবরাহ করে। কনফিগারেশন dynamic_batching
ট্রাইটনকে ক্লায়েন্ট-সাইড অনুরোধগুলি ধরে রাখতে এবং সার্ভারের দিকে ব্যাচ করার অনুমতি দেয়, যাতে দক্ষতার সাথে FIL-এর সমান্তরাল গণনা ব্যবহার করে সম্পূর্ণ ব্যাচকে একসাথে অনুমান করা যায়। পছন্দ max_queue_delay_microseconds
ট্রাইটন একটি ব্যাচ গঠনের জন্য কতক্ষণ অপেক্ষা করে তার একটি ব্যর্থ-নিরাপদ নিয়ন্ত্রণ অফার করে। FIL শ্যাপলি ব্যাখ্যাকারীর সাথে আসে, যা কনফিগারেশন দ্বারা সক্রিয় করা যেতে পারে treeshap_output
; যাইহোক, আপনার মনে রাখা উচিত যে Shapley আউটপুট এর আউটপুট আকারের কারণে কর্মক্ষমতা ক্ষতিগ্রস্ত করে। আরেকটি গুরুত্বপূর্ণ দিক হল storage_type
মেমরি ফুটপ্রিন্ট এবং রানটাইমের মধ্যে ট্রেড-অফ করার জন্য। উদাহরণস্বরূপ, SPARSE হিসাবে স্টোরেজ ব্যবহার করা মেমরি খরচ কমাতে পারে, যেখানে DENSE উচ্চ মেমরি ব্যবহারের খরচে আপনার মডেল চালানোর কর্মক্ষমতা হ্রাস করতে পারে। এইগুলির প্রতিটির জন্য সর্বোত্তম পছন্দের সিদ্ধান্ত নেওয়া আপনার কাজের চাপ এবং আপনার বিলম্বিত বাজেটের উপর নির্ভর করে, তাই আমরা সমস্ত বিকল্পগুলিকে গভীরভাবে দেখার পরামর্শ দিই FIL ব্যাকএন্ড FAQ এবং FIL-এ উপলব্ধ কনফিগারেশনের তালিকা.
ট্রিটনে একটি মডেল হোস্ট করার পদক্ষেপ
ট্রাইটনে কাজের চাপ সরানোর সময় কী বিবেচনা করতে হবে তার উদাহরণ হিসাবে আমাদের জালিয়াতি সনাক্তকরণ ব্যবহারের কেসটি দেখুন।
আপনার কাজের চাপ সনাক্ত করুন
এই ব্যবহারের ক্ষেত্রে, আমাদের কাছে একটি খুচরা গ্রাহকের চেকআউট প্রক্রিয়ার সময় ব্যবহৃত একটি জালিয়াতি সনাক্তকরণ মডেল রয়েছে। ইনফারেন্স পাইপলাইনটি প্রিপ্রসেসিং লজিক সহ একটি XGBoost অ্যালগরিদম ব্যবহার করছে যা প্রিপ্রসেসিংয়ের জন্য ডেটা প্রস্তুতি অন্তর্ভুক্ত করে।
বর্তমান এবং লক্ষ্য কর্মক্ষমতা মেট্রিক্স এবং প্রযোজ্য হতে পারে এমন অন্যান্য লক্ষ্য চিহ্নিত করুন
আপনি দেখতে পাবেন যে আপনার এন্ড-টু-এন্ড ইনফারেন্স সময় গ্রহণযোগ্য হতে অনেক বেশি সময় নিচ্ছে। একই ভলিউম অনুরোধ এবং সংশ্লিষ্ট থ্রুপুটের জন্য আপনার লক্ষ্য হতে পারে কয়েক মিলিয়ন মিলিসেকেন্ড লেটেন্সি থেকে একক-ডিজিটের লেটেন্সিতে যাওয়া। আপনি নির্ধারণ করেন যে বেশিরভাগ সময় ডেটা প্রিপ্রসেসিং এবং XGBoost মডেল দ্বারা গ্রাস করা হয়। অন্যান্য ফ্যাক্টর যেমন নেটওয়ার্ক এবং পেলোড সাইজ এন্ড-টু-এন্ড ইনফারেন্স সময়ের সাথে যুক্ত ওভারহেডে একটি ন্যূনতম ভূমিকা পালন করে।
আপনার প্রয়োজনীয়তার উপর ভিত্তি করে Triton আপনার কাজের চাপ হোস্ট করতে পারে কিনা তা নির্ধারণ করতে পিছনের দিকে কাজ করুন
Triton আপনার প্রয়োজনীয়তা পূরণ করতে পারে কিনা তা নির্ধারণ করতে, আপনি উদ্বেগের দুটি প্রধান ক্ষেত্রে মনোযোগ দিতে চান। প্রথমটি হল নিশ্চিত করা যে ট্রাইটন একটি গ্রহণযোগ্য ফ্রন্ট এন্ড বিকল্প যেমন HTTP বা C API এর সাথে পরিবেশন করতে পারে।
পূর্বে উল্লিখিত হিসাবে, ট্রাইটন আপনার শিল্পকর্ম পরিবেশন করতে পারে এমন একটি ব্যাকএন্ড সমর্থন করে কিনা তা নির্ধারণ করাও গুরুত্বপূর্ণ। Triton একটি সংখ্যা সমর্থন করে পিছনে যেগুলো PyTorch এবং TensorFlow এর মত বিভিন্ন ফ্রেমওয়ার্ককে সমর্থন করার জন্য তৈরি। আপনার মডেলগুলি সমর্থিত এবং আপনার কাছে সঠিক মডেল বিন্যাস রয়েছে তা নিশ্চিত করতে পরীক্ষা করুন যা ট্রাইটন আশা করে। এটি করার জন্য, প্রথমে ট্রাইটন ব্যাকএন্ড সমর্থন করে কোন মডেল ফর্ম্যাটগুলি দেখতে পরীক্ষা করুন৷ অনেক ক্ষেত্রে, এই মডেলের জন্য কোন পরিবর্তন প্রয়োজন হয় না। অন্যান্য ক্ষেত্রে, আপনার মডেলটিকে একটি ভিন্ন বিন্যাসে রূপান্তরের প্রয়োজন হতে পারে। উৎস এবং লক্ষ্য বিন্যাসের উপর নির্ভর করে, বিভিন্ন বিকল্প বিদ্যমান, যেমন রূপান্তর a ট্রিলাইটের বাইনারি চেকপয়েন্ট ফর্ম্যাট ব্যবহার করতে পাইথন পিকল ফাইল.
এই ব্যবহারের ক্ষেত্রে, আমরা নির্ধারণ করি FIL ব্যাকএন্ড XGBoost মডেলটিকে কোন পরিবর্তনের প্রয়োজন ছাড়াই সমর্থন করতে পারে এবং আমরা ব্যবহার করতে পারি পাইথন ব্যাকএন্ড প্রিপ্রসেসিংয়ের জন্য। ট্রাইটনের একত্রিত বৈশিষ্ট্যের সাথে, আপনি হোস্টিং দৃষ্টান্তগুলির মধ্যে ব্যয়বহুল নেটওয়ার্ক কলগুলি এড়িয়ে আপনার কাজের চাপকে আরও অপ্টিমাইজ করতে পারেন।
একটি পরিকল্পনা তৈরি করুন এবং হোস্টিংয়ের জন্য ট্রাইটন ব্যবহার করার জন্য প্রয়োজনীয় প্রচেষ্টা অনুমান করুন
আসুন আপনার মডেলগুলিকে ট্রাইটনে সরানোর পরিকল্পনা সম্পর্কে কথা বলি। প্রতিটি ট্রাইটন স্থাপনার জন্য নিম্নলিখিতগুলির প্রয়োজন:
- ট্রাইটন ব্যাকএন্ডের জন্য প্রয়োজনীয় মডেল আর্টিফ্যাক্ট
- ট্রাইটন কনফিগারেশন ফাইল
- সঠিক কাঠামো সহ একটি মডেল সংগ্রহস্থল ফোল্ডার
আমরা এই পোস্টে পরে এই স্থাপনা নির্ভরতা কিভাবে তৈরি করতে হয় তার একটি উদাহরণ দেখাই।
পরিকল্পনা চালান এবং ফলাফল যাচাই করুন
সঠিকভাবে স্ট্রাকচার্ড মডেল রিপোজিটরিতে আপনি প্রয়োজনীয় ফাইল এবং আর্টিফ্যাক্ট তৈরি করার পরে, আপনাকে আপনার ডিপ্লয়মেন্ট টিউন করতে হবে এবং আপনি এখন আপনার টার্গেট মেট্রিক্সে আঘাত করেছেন তা যাচাই করার জন্য এটি পরীক্ষা করতে হবে।
এই সময়ে, আপনি ব্যবহার করতে পারেন সেজমেকার ইনফারেন্স সুপারিশকারী আপনার প্রয়োজনীয়তার উপর ভিত্তি করে আপনার জন্য কোন এন্ডপয়েন্ট ইনস্ট্যান্স টাইপ সবচেয়ে ভালো তা নির্ধারণ করতে। এছাড়াও, ট্রাইটন আরও ভাল পারফরম্যান্স পেতে বিল্ড অপ্টিমাইজেশন করার জন্য সরঞ্জাম সরবরাহ করে।
বাস্তবায়ন
এখন এর বাস্তবায়ন বিস্তারিত তাকান. এর জন্য আমরা দুটি নোটবুক প্রস্তুত করেছি যা আশা করা যায় তার একটি উদাহরণ প্রদান করে। দ্য প্রথম নোটবুক প্রদত্ত XGBoost মডেলের প্রশিক্ষণের পাশাপাশি প্রিপ্রসেসিং লজিক দেখায় যা প্রশিক্ষণ এবং অনুমান উভয় সময়ের জন্য ব্যবহৃত হয়। দ্য দ্বিতীয় নোটবুক দেখায় কিভাবে আমরা ট্রাইটনে স্থাপনার জন্য প্রয়োজনীয় নিদর্শন প্রস্তুত করি।
প্রথম নোটবুকটি আপনার প্রতিষ্ঠানের একটি বিদ্যমান নোটবুক দেখায় যা ব্যবহার করে রেপিডস লাইব্রেরির স্যুট এবং RAPIDS Conda কার্নেল। এই ইন্সট্যান্সটি AWS দ্বারা প্রদত্ত একটি G4DN ইন্সট্যান্স টাইপের উপর চলে, যা NVIDIA T4 প্রসেসর ব্যবহার করে GPU ত্বরান্বিত হয়।
এই উদাহরণে প্রি-প্রসেসিং কাজগুলি GPU ত্বরণ থেকে উপকৃত হয় এবং প্রচুর পরিমাণে cuML এবং cuDF লাইব্রেরি ব্যবহার করে। এর একটি উদাহরণ নিম্নলিখিত কোডে রয়েছে, যেখানে আমরা cuML ব্যবহার করে শ্রেণীবদ্ধ লেবেল এনকোডিং দেখাই। আমরা একটি উৎপন্ন label_encoders.pkl
ফাইল যা আমরা এনকোডারগুলিকে সিরিয়ালাইজ করতে ব্যবহার করতে পারি এবং অনুমান সময়ের সময় প্রিপ্রসেসিংয়ের জন্য ব্যবহার করতে পারি।
প্রথম নোটবুকটি আমাদের XGBoost মডেলকে প্রশিক্ষণ দিয়ে এবং সেই অনুযায়ী নিদর্শনগুলি সংরক্ষণ করে শেষ করে৷
এই পরিস্থিতিতে, প্রশিক্ষণ কোড ইতিমধ্যেই বিদ্যমান ছিল এবং প্রশিক্ষণের সময় মডেলের জন্য কোন পরিবর্তনের প্রয়োজন নেই। উপরন্তু, যদিও আমরা প্রশিক্ষণের সময় প্রি-প্রসেসিংয়ের জন্য GPU ত্বরণ ব্যবহার করি, আমরা অনুমান সময়ে প্রিপ্রসেসিংয়ের জন্য CPU ব্যবহার করার পরিকল্পনা করি। আমরা পোস্টে পরে আরো ব্যাখ্যা.
আসুন এখন দ্বিতীয় নোটবুকের দিকে এগিয়ে যাই এবং একটি সফল ট্রাইটন স্থাপনার জন্য আমাদের কী প্রয়োজন তা স্মরণ করি।
প্রথমত, আমাদের ব্যাকএন্ডের জন্য প্রয়োজনীয় মডেল আর্টিফ্যাক্ট দরকার। এই এনসেম্বলের জন্য আমাদের যে ফাইলগুলি তৈরি করতে হবে তার মধ্যে রয়েছে:
- প্রিপ্রসেসিং আর্টিফ্যাক্ট (
model.py
,label_encoders.pkl
) - XGBoost মডেল আর্টিফ্যাক্ট (
xgboost.json
)
ট্রাইটনের পাইথন ব্যাকএন্ডের জন্য আমাদের একটি কনডা পরিবেশকে নির্ভরতা হিসাবে ব্যবহার করতে হবে। এই ক্ষেত্রে, আমরা FIL ব্যাকএন্ডে চালানো XGBoost মডেলে ফিড করার আগে কাঁচা ডেটা প্রিপ্রসেস করতে পাইথন ব্যাকএন্ড ব্যবহার করি। যদিও আমরা প্রাথমিকভাবে ডেটা প্রিপ্রসেসিং করার জন্য RAPIDS cuDF এবং cuML লাইব্রেরি ব্যবহার করেছি (আমাদের GPU ব্যবহার করে আগে উল্লেখ করা হয়েছে), এখানে আমরা অনুমান সময়ের জন্য (আমাদের CPU ব্যবহার করে) প্রাক-প্রসেসিং নির্ভরতা হিসাবে Pandas এবং Scikit-learn ব্যবহার করি। আমরা তিনটি কারণে এটি করি:
- আপনার নির্ভরতাগুলির জন্য কীভাবে কনডা পরিবেশ তৈরি করবেন এবং কীভাবে এটি প্যাকেজ করবেন তা দেখানোর জন্য বিন্যাস প্রত্যাশিত ট্রাইটনের পাইথন ব্যাকএন্ড দ্বারা।
- CPU-তে Python ব্যাকএন্ডে চলমান প্রি-প্রসেসিং মডেল দেখানোর মাধ্যমে যখন XGBoost মডেল FIL ব্যাকএন্ডে GPU-তে চলে, আমরা ব্যাখ্যা করি কিভাবে ট্রাইটনের এনসেম্বল পাইপলাইনের প্রতিটি মডেল একটি ভিন্ন ফ্রেমওয়ার্ক ব্যাকএন্ডে চলতে পারে এবং ভিন্ন ভিন্ন হার্ডওয়্যারে চলতে পারে। কনফিগারেশন
- এটি হাইলাইট করে যে কীভাবে RAPIDS লাইব্রেরিগুলি (cuDF, cuML) তাদের CPU সমকক্ষগুলির (পান্ডাস, স্কিট-লার্ন) সাথে সামঞ্জস্যপূর্ণ। এই ভাবে, আমরা কিভাবে দেখাতে পারেন
LabelEncoders
cuML-এ তৈরি করা Scikit-learn এবং এর বিপরীতে ব্যবহার করা যেতে পারে। মনে রাখবেন যে আপনি যদি অনুমান করার সময় প্রচুর পরিমাণে টেবুলার ডেটা প্রিপ্রসেস করার আশা করেন তবে আপনি এখনও GPU-এটি ত্বরান্বিত করতে RAPIDS ব্যবহার করতে পারেন।
মনে রাখবেন যে আমরা তৈরি করেছি label_encoders.pkl
প্রথম নোটবুকে ফাইল। ক্যাটাগরি এনকোডিংয়ের জন্য এটিকে আমাদের মধ্যে অন্তর্ভুক্ত করা ছাড়া আর কিছুই করার নেই model.py
প্রিপ্রসেসিংয়ের জন্য ফাইল।
ট্রাইটন পাইথন ব্যাকএন্ড দ্বারা প্রয়োজনীয় model.py ফাইল তৈরি করতে, আমরা মেনে চলি ব্যাকএন্ড দ্বারা ফরম্যাটিং প্রয়োজন এবং ইনকামিং টেনসর প্রক্রিয়া করার জন্য আমাদের পাইথন লজিক অন্তর্ভুক্ত করুন এবং আগে উল্লেখ করা লেবেল এনকোডার ব্যবহার করুন। আপনি পর্যালোচনা করতে পারেন ফাইল প্রাক প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়।
XGBoost মডেলের জন্য, আর কিছু করার দরকার নেই। আমরা প্রথম নোটবুকে মডেলটিকে প্রশিক্ষণ দিয়েছি এবং ট্রাইটনের FIL ব্যাকএন্ড XGBoost মডেলগুলির জন্য কোনও অতিরিক্ত প্রচেষ্টার প্রয়োজন নেই৷
এর পরে, আমাদের ট্রাইটন কনফিগারেশন ফাইল দরকার। ট্রাইটন এনসেম্বলের প্রতিটি মডেলের একটি প্রয়োজন config.pbtxt
ফাইল উপরন্তু, আমরা একটি তৈরি config.pbtxt
একটি সম্পূর্ণ হিসাবে ensemble জন্য ফাইল. এই ফাইলগুলি ট্রাইটনকে ইনপুট এবং আউটপুটগুলির মতো তথ্যের সাথে এনসেম্বল সম্পর্কে মেটাডেটা জানতে দেয় এবং সেইসাথে এনসেম্বলের সাথে যুক্ত DAG সংজ্ঞায়িত করতে সহায়তা করে।
পরিশেষে, ট্রাইটনে একটি মডেল স্থাপন করার জন্য, আমাদের সঠিক ফোল্ডার কাঠামো থাকতে আমাদের মডেল সংগ্রহস্থল ফোল্ডার প্রয়োজন। ট্রাইটনের মডেল সংগ্রহস্থল বিন্যাসের জন্য নির্দিষ্ট প্রয়োজনীয়তা রয়েছে। শীর্ষ-স্তরের মডেল সংগ্রহস্থল ডিরেক্টরির মধ্যে, প্রতিটি মডেলের নিজস্ব সাব-ডিরেক্টরি রয়েছে যাতে সংশ্লিষ্ট মডেলের তথ্য থাকে। ট্রাইটনের প্রতিটি মডেল ডিরেক্টরিতে মডেলের একটি সংস্করণের প্রতিনিধিত্বকারী কমপক্ষে একটি সংখ্যাসূচক সাব-ডিরেক্টরি থাকতে হবে। আমাদের ব্যবহারের ক্ষেত্রে, ফলাফলের কাঠামোটি নীচের মত হওয়া উচিত।
আমাদের এই তিনটি পূর্বশর্ত থাকার পরে, আমরা স্থাপনার জন্য প্যাকেজিং হিসাবে একটি সংকুচিত ফাইল তৈরি করি এবং এটি আপলোড করি আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3)।
আমরা আগের ধাপে Amazon S3 এ যে মডেল রিপোজিটরি আপলোড করেছি তা থেকে আমরা এখন একটি SageMaker মডেল তৈরি করতে পারি।
এই ধাপে, আমরা অতিরিক্ত পরিবেশ পরিবর্তনশীল প্রদান করি SAGEMAKER_TRITON_DEFAULT_MODEL_NAME
, যা Triton দ্বারা লোড করা মডেলের নাম নির্দিষ্ট করে। এই কীটির মান Amazon S3 এ আপলোড করা মডেল প্যাকেজের ফোল্ডারের নামের সাথে মেলে। এই পরিবর্তনশীলটি একটি একক মডেলের ক্ষেত্রে ঐচ্ছিক। এনসেম্বল মডেলের ক্ষেত্রে, সেজমেকারে ট্রিটন শুরু করার জন্য এই কীটি নির্দিষ্ট করতে হবে।
উপরন্তু, আপনি সেট করতে পারেন SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT এবং SAGEMAKER_TRITON_THREAD_COUNT থ্রেড সংখ্যা অপ্টিমাইজ করার জন্য। উভয় কনফিগারেশন মানই আপনার CPU-তে চলমান থ্রেডের সংখ্যা ঠিক করতে সাহায্য করে, তাই আপনি সম্ভবত আরও বেশি সংখ্যক কোরের সাথে CPU-এর জন্য এই মানগুলি বাড়িয়ে আরও ভাল ব্যবহার করতে পারেন। বেশিরভাগ ক্ষেত্রে, ডিফল্ট মানগুলি প্রায়শই ভাল কাজ করে, তবে আপনার কাজের চাপের জন্য আরও দক্ষতা অর্জন করা যেতে পারে কিনা তা পরীক্ষা করে দেখার উপযুক্ত হতে পারে।
পূর্ববর্তী মডেলের সাথে, আমরা একটি এন্ডপয়েন্ট কনফিগারেশন তৈরি করি যেখানে আমরা এন্ডপয়েন্টে আমরা যে ধরনের উদাহরণ চাই তা নির্দিষ্ট করতে পারি।
অবশেষে, আমরা একটি নতুন সেজমেকার এন্ডপয়েন্ট তৈরি করতে পূর্ববর্তী এন্ডপয়েন্ট কনফিগারেশন ব্যবহার করি এবং স্থাপনা শেষ হওয়ার জন্য অপেক্ষা করি। স্থিতি পরিবর্তিত হয় InService
স্থাপন সফল হওয়ার পর।
এটাই! আপনার এন্ডপয়েন্ট এখন পরীক্ষা এবং বৈধতার জন্য প্রস্তুত। এই মুহুর্তে, আপনি সেরা সম্ভাব্য কর্মক্ষমতা পেতে আপনার উদাহরণের ধরন এবং কনফিগারেশন অপ্টিমাইজ করতে সাহায্য করার জন্য বিভিন্ন সরঞ্জাম ব্যবহার করতে চাইতে পারেন। নিম্নলিখিত চিত্রটি ট্রাইটনের একটি XGBoost মডেলের জন্য FIL ব্যাকএন্ড ব্যবহার করে লাভের একটি উদাহরণ প্রদান করে।
সারাংশ
এই পোস্টে, আমরা ট্রাইটন ইনফারেন্স সার্ভারের সাথে সেজমেকারে একটি XGBoost ensemble ওয়ার্কলোড স্থাপনের মাধ্যমে আপনাকে হেঁটেছি। সেজমেকারে কাজের চাপ ট্রাইটনে স্থানান্তর করা বিনিয়োগে একটি উপকারী রিটার্ন হতে পারে। প্রযুক্তি গ্রহণের মতোই, একটি যাচাইকরণ প্রক্রিয়া এবং পরিকল্পনা গুরুত্বপূর্ণ, এবং আপনার কাজের চাপগুলি সরানোর সময় কী বিবেচনা করতে হবে সে সম্পর্কে আপনাকে গাইড করার জন্য আমরা একটি পাঁচ-পদক্ষেপের প্রক্রিয়া বিস্তারিত করেছি। উপরন্তু, আমরা পাইথন প্রিপ্রসেসিং এবং সেজমেকার-এ ট্রাইটনে একটি XGBoost মডেল ব্যবহার করে এমন একটি এনসেম্বল স্থাপনের জন্য প্রয়োজনীয় পদক্ষেপগুলির গভীরে প্রবেশ করেছি।
SageMaker ML জীবনচক্রের প্রতিটি পর্যায় থেকে অপ্রত্যাশিত ভারী উত্তোলন অপসারণের জন্য সরঞ্জামগুলি সরবরাহ করে, যার ফলে আপনার মডেল স্থাপনাগুলিকে সম্পূর্ণরূপে অপ্টিমাইজ করার জন্য প্রয়োজনীয় দ্রুত পরীক্ষা-নিরীক্ষা এবং অন্বেষণকে সহজতর করে৷ ট্রাইটন ইনফারেন্স সার্ভারের জন্য সেজমেকার হোস্টিং সমর্থন কম লেটেন্সি, প্রতি সেকেন্ডে উচ্চ লেনদেন (টিপিএস) ওয়ার্কলোড সক্ষম করে।
আপনি এই উদাহরণের জন্য ব্যবহৃত নোটবুক খুঁজে পেতে পারেন GitHub.
লেখক সম্পর্কে
জেমস পার্ক অ্যামাজন ওয়েব সার্ভিসের একজন সলিউশন আর্কিটেক্ট। তিনি AWS-এ প্রযুক্তি সমাধান ডিজাইন, নির্মাণ এবং স্থাপন করার জন্য Amazon.com-এর সাথে কাজ করেন এবং AI এবং মেশিন লার্নিং-এ বিশেষ আগ্রহ রয়েছে। তার অবসর সময়ে তিনি নতুন সংস্কৃতি, নতুন অভিজ্ঞতা খোঁজা এবং সর্বশেষ প্রযুক্তির প্রবণতাগুলির সাথে আপ টু ডেট থাকতে উপভোগ করেন।
জিয়াহং লিউ NVIDIA-এর ক্লাউড পরিষেবা প্রদানকারী দলের একজন সমাধান স্থপতি। তিনি ক্লায়েন্টদের মেশিন লার্নিং এবং এআই সমাধান গ্রহণে সহায়তা করেন যা তাদের প্রশিক্ষণ এবং অনুমান চ্যালেঞ্জ মোকাবেলায় NVIDIA ত্বরিত কম্পিউটিংকে সুবিধা দেয়। অবসর সময়ে, তিনি অরিগামি, DIY প্রকল্প এবং বাস্কেটবল খেলা উপভোগ করেন।
ক্ষিতিজ গুপ্ত NVIDIA-এর একজন সলিউশন আর্কিটেক্ট। তিনি ক্লাউড গ্রাহকদের জিপিইউ এআই প্রযুক্তি সম্পর্কে শিক্ষিত করতে উপভোগ করেন NVIDIA-এর অফার করা এবং তাদের মেশিন লার্নিং এবং গভীর শিক্ষার অ্যাপ্লিকেশনগুলিকে ত্বরান্বিত করতে সহায়তা করা। কাজের বাইরে, তিনি দৌড়ানো, হাইকিং এবং বন্যপ্রাণী দেখা উপভোগ করেন।
ব্রুনো আগুয়ার ডি মেলো তিনি Amazon.com-এর একজন সফ্টওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার, যেখানে তিনি বিজ্ঞান দলগুলিকে এমএল ওয়ার্কলোড তৈরি, স্থাপন এবং মুক্তি দিতে সাহায্য করেন। তিনি এমএল মডেলিং/ডিজাইন পর্বের মধ্যে ইন্সট্রুমেন্টেশন এবং নিয়ন্ত্রণযোগ্য দিকগুলিতে আগ্রহী যেগুলিকে অবশ্যই বিবেচনা করা উচিত এবং অন্তর্দৃষ্টি দিয়ে পরিমাপ করা উচিত যে মডেল এক্সিকিউশন পারফরম্যান্স মডেলের গুণমানের পারফরম্যান্সের মতোই গুরুত্বপূর্ণ, বিশেষত লেটেন্সি সীমাবদ্ধ ব্যবহারের ক্ষেত্রে। তার অবসর সময়ে, তিনি ওয়াইন, বোর্ড গেম এবং রান্না উপভোগ করেন।
এলিউথ ট্রায়ানা NVIDIA-এর একজন বিকাশকারী সম্পর্ক ব্যবস্থাপক। তিনি Amazon ML/DL কাজের চাপ, EC2 পণ্য এবং AWS AI পরিষেবাগুলিকে ত্বরান্বিত করতে এনভিআইডিআইএ প্রযুক্তিবিদ এবং পণ্য নেতাদের সাথে অ্যামাজন এবং এডব্লিউএস পণ্যের নেতা, বিকাশকারী এবং বিজ্ঞানীদের সংযোগ করেন। এছাড়াও, এলিউথ একজন উত্সাহী পর্বত বাইকার, স্কিয়ার এবং জুজু খেলোয়াড়।
- AI
- ai শিল্প
- এআই আর্ট জেনারেটর
- আইআই রোবট
- আমাজন সেজমেকার
- কৃত্রিম বুদ্ধিমত্তা
- কৃত্রিম বুদ্ধিমত্তা সার্টিফিকেশন
- ব্যাংকিং এ কৃত্রিম বুদ্ধিমত্তা
- কৃত্রিম বুদ্ধিমত্তার রোবট
- কৃত্রিম বুদ্ধিমত্তার রোবট
- কৃত্রিম বুদ্ধিমত্তা সফ্টওয়্যার
- এডাব্লুএস মেশিন লার্নিং
- blockchain
- ব্লকচেইন সম্মেলন এআই
- coingenius
- কথোপকথন কৃত্রিম বুদ্ধিমত্তা
- ক্রিপ্টো সম্মেলন এআই
- ডাল-ই
- গভীর জ্ঞানার্জন
- গুগল আই
- মেশিন লার্নিং
- Plato
- প্লেটো এআই
- প্লেটো ডেটা ইন্টেলিজেন্স
- প্লেটো গেম
- প্লেটোডাটা
- প্লেটোগেমিং
- স্কেল ai
- বাক্য গঠন
- zephyrnet