লেখক:
(1) ইয়াসন ওফিডিস, ইলেকট্রিক্যাল ইঞ্জিনিয়ারিং বিভাগ, এবং ইয়েল ইনস্টিটিউট ফর নেটওয়ার্ক সায়েন্স, ইয়েল ইউনিভার্সিটি, নিউ হ্যাভেন {সমান অবদান};
(2) দিয়েগো কিডানস্কি, ইলেকট্রিক্যাল ইঞ্জিনিয়ারিং বিভাগ, এবং ইয়েল ইনস্টিটিউট ফর নেটওয়ার্ক সায়েন্স, ইয়েল ইউনিভার্সিটি, নিউ হ্যাভেন {সমান অবদান};
(3) Leandros TassiulasLevon Ghukasyan, Activeloop, Mountain View, CA, USA, ডিপার্টমেন্ট অফ ইলেকট্রিক্যাল ইঞ্জিনিয়ারিং, এবং ইয়েল ইনস্টিটিউট ফর নেটওয়ার্ক সায়েন্স, ইয়েল ইউনিভার্সিটি, নিউ হ্যাভেন।
ডেটালোডার, মেশিন লার্নিং মডেল প্রশিক্ষণের সময় স্টোরেজ থেকে ডেটা GPU-তে স্থানান্তরিত করার দায়িত্বে, প্রশিক্ষণের কাজের কার্যকারিতা ব্যাপকভাবে উন্নত করার চাবিকাঠি ধরে রাখতে পারে। সাম্প্রতিক অগ্রগতিগুলি শুধুমাত্র প্রশিক্ষণের সময়কে উল্লেখযোগ্যভাবে হ্রাস করে নয় বরং S3 এর মতো দূরবর্তী স্টোরেজ থেকে ডেটা লোড করার মতো নতুন বৈশিষ্ট্যগুলি অফার করেও প্রতিশ্রুতি দেখিয়েছে। এই কাগজে, আমরাই প্রথম যে ডাটালোডারকে ডিপ লার্নিং (DL) ওয়ার্কফ্লোতে একটি পৃথক উপাদান হিসেবে আলাদা করেছি এবং এর গঠন ও বৈশিষ্ট্যের রূপরেখা তৈরি করেছি। পরিশেষে, আমরা উপলব্ধ বিভিন্ন ডেটালোডিং লাইব্রেরি, কার্যকারিতা, ব্যবহারযোগ্যতা এবং কর্মক্ষমতার পরিপ্রেক্ষিতে তাদের ট্রেড-অফ এবং তাদের থেকে প্রাপ্ত অন্তর্দৃষ্টিগুলির একটি ব্যাপক তুলনা অফার করি।
একটি (গভীর) মেশিন লার্নিং মডেলের প্রশিক্ষণের জন্য একটি ডেটাসেট, একটি মডেল এবং হার্ডওয়্যার প্রয়োজন, যা বাস্তব সমস্যার জন্য এক বা একাধিক GPU জড়িত।
আমরা সর্বদা একটি মডেল প্রশিক্ষণের জন্য প্রয়োজনীয় মোট গণনামূলক সময় কমাতে আগ্রহী। এটি বিভিন্ন কারণে বাঞ্ছনীয়: কম খরচ, পুনরাবৃত্তি করা সহজ, এবং অন্যান্য জিনিসগুলির মধ্যে ছোট দলগুলির জন্য আরও অ্যাক্সেসযোগ্য।
একটি ML পাইপলাইনের প্রধান উপাদান এবং চলমান সময়ের মধ্যে সম্পর্ক প্রায়শই স্পষ্ট হয়: একটি বড় ডেটাসেট বেশি সময় নেয়, একটি বড় মডেল বেশি সময় নেয় এবং একটি দ্রুত GPU মোট চলমান সময়কে কমিয়ে দেয়। ধাঁধার একটি মূল অংশ যা প্রায়শই উপেক্ষা করা হয় তা হল এই সমস্ত অংশগুলির মধ্যে আঠা: ডেটালোডার। ডেটালোডার তার স্থায়ী সঞ্চয়স্থান (RAM, ডিস্ক বা নেটওয়ার্ক) থেকে ডেটা লোড করার দায়িত্বে থাকে, প্রয়োজনীয় রূপান্তরগুলি প্রয়োগ করে এবং রূপান্তরিত ডেটা উপযুক্ত ডিভাইসে প্রেরণ করে যাতে মডেলটি এটি গ্রহণ করতে পারে।
বেশিরভাগ ডেভেলপাররা ধরে নেন যে তাদের নিজ নিজ মেশিন লার্নিং ফ্রেমওয়ার্কের (Pytorch, Tensorflow, Jax) ডিফল্ট ডেটালোডার ইতিমধ্যেই তাদের অ্যাপ্লিকেশনের জন্য অপ্টিমাইজ করা হয়েছে এবং প্রায়শই তৃতীয় পক্ষের ডেটা লোডারের উপর নির্ভর করে না। মজার ব্যাপার হল, সম্প্রতি এটি দেখানো হয়েছে যে ডেটা লোডারগুলি ML পাইপলাইনের আরও উল্লেখযোগ্য বাধাগুলির মধ্যে একটি হতে পারে (Mohan et al., 2020)৷ ফলস্বরূপ, আমরা ডেটালোডার কর্মক্ষমতা অপ্টিমাইজ এবং উন্নত করার জন্য নিবেদিত অনেক নতুন লাইব্রেরি এবং গবেষণা প্রকল্প দেখেছি।
উদাহরণস্বরূপ, FFCV (Leclerc et al., 2022), MIT-এর একটি গবেষণা দল দ্বারা তৈরি একটি নতুন ওপেনসোর্স লাইব্রেরি, ডিফল্ট PyTorch ডেটালোডার ব্যবহার করে ইমেজনেটকে প্রশিক্ষন দিতে সক্ষম হয়েছে। এই ধরনের লাভগুলি আমাজন ওয়েব সার্ভিসেস (AWS) এবং Google ক্লাউড প্ল্যাটফর্ম (GPC) এর মতো পরিষেবা (IaaS) হিসাবে পরিকাঠামোর উপর নির্ভর করে এমন কোম্পানি এবং গবেষণা দলের অপারেশনাল খরচ নাটকীয়ভাবে হ্রাস করতে পারে।
ডেটালোডারদের দ্বারা দেওয়া আরেকটি প্রতিশ্রুতিশীল বৈশিষ্ট্য হল দূরবর্তীভাবে সংরক্ষিত ডেটা লোড করার ক্ষমতা; উদাহরণস্বরূপ, একটি S3 বালতি থেকে। এর অনেক ব্যবহারিক সুবিধা রয়েছে: স্থানীয়ভাবে ডেটাসেট সেট আপ করার সময় এড়ানো হয়, কম্পিউটিং মেশিনে প্রয়োজনীয় ডিস্ক ক্ষমতা হ্রাস পায় এবং একই ডেটাসেটের বিভিন্ন সংস্করণ ব্যবহার করে দলের সদস্যদের ঝুঁকি হ্রাস পায়। প্রশিক্ষণের সময় ডেটা স্ট্রিম করার স্বাভাবিক ত্রুটি হল যে, সাধারণত, নেটওয়ার্ক স্থানান্তর গতি ডিস্ক I/O থেকে ধীর হয়, এবং ফলস্বরূপ, মডেলটিকে প্রশিক্ষণের জন্য বেশি সময় নেওয়া উচিত। মজার বিষয় হল, আমরা লক্ষ্য করেছি যে কিছু লাইব্রেরি যেমন হাব (টিম, 2022a) এবং ডিপ লেক (হাম্বারডজুমিয়ান এট আল।, 2022), কিছু পরিস্থিতিতে স্থানীয়ভাবে ডেটা পড়ার ডিফল্ট পাইটর্চ ডেটালোডারের চেয়ে নেটওয়ার্কে ভাল পারফরম্যান্স অর্জন করে। এটি সম্ভব কারণ ডেটালোডার GPU এর প্রয়োজনের আগে প্রয়োজনীয় ডেটা প্রাক-আনয়ন করতে পরিচালনা করে। আমরা বিভাগ 5 এ আরও বিস্তৃত আলোচনার প্রস্তাব দেব।
সমস্ত লাইব্রেরি রিমোট লোডিং সমর্থন করে না এবং যেগুলি করে, একই দূরবর্তী স্টোরেজ পরিষেবাগুলির সাথে একত্রিত হয় না। যেহেতু ডেটালোডার প্রয়োগকারী উপলব্ধ লাইব্রেরির সংখ্যা বাড়ছে, আমরা বর্তমান অত্যাধুনিক, কোন সমস্যাগুলি ইতিমধ্যে সমাধান করা হয়েছে বলে মনে হয় এবং ভবিষ্যতে উন্নতির জন্য সবচেয়ে প্রতিশ্রুতিশীল ক্ষেত্রগুলি আবিষ্কার করার জন্য একটি বিস্তৃত বেঞ্চমার্ক তৈরি করার জন্য সেট করেছি। গবেষণা
এই মুহুর্তে, এটি উল্লেখ করা উচিত যে (কুমার এবং শিবাথানু, 2020), (মোহন এট আল।, 2020) এর মতো অন্যান্য কাজের থেকে আমাদের পরীক্ষা-নিরীক্ষার থেকে একটি বিশেষ পার্থক্য হ'ল আমরা ছোট থেকে মাঝারি ওয়ার্কস্টেশনে চলে এমন চাকরিগুলিতে ফোকাস করি সীমিত ক্ষমতা (GPU, RAM, SSD)। এগুলি শিল্পের বেশিরভাগ ব্যক্তি এবং ছোট দলগুলির জন্য উপলব্ধ হার্ডওয়্যারকে প্রতিফলিত করার সম্ভাবনা বেশি, যাদের জন্য বাজেট বড়-স্কেল ক্লাস্টারগুলির ব্যবহারের অনুমতি দেয় না।
আমরা আমাদের অবদানগুলিকে নিম্নরূপ সংক্ষিপ্ত করতে পারি:
• ওপেন-সোর্স কোড: আমরা একটি ওপেন সোর্স বেঞ্চমার্ক তৈরি করেছি যা পাইটর্চে সবচেয়ে জনপ্রিয় ডেটা লোডিং লাইব্রেরির তুলনা করে[1]। প্রকল্পটি সম্প্রদায়ের কাছে উপলব্ধ থাকবে যাতে নতুন লাইব্রেরি এবং ডেটাসেটগুলি যোগ করা যেতে পারে কারণ তাদের প্রতি আগ্রহ বৃদ্ধি পায়। আমরা এই কাগজে বেঞ্চমার্ক করা লাইব্রেরির যেকোনো বড় আপডেটের পরে এই বেঞ্চমার্কগুলিতে প্রাপ্ত সংখ্যাসূচক ফলাফলগুলি আপডেট করার আশা করি।
• দূরবর্তী প্রশিক্ষণের কার্যকারিতা: আমরা দেখাই যে যুক্তিসঙ্গত পরিস্থিতিতে একটি পাবলিক ইন্টারনেট সংযোগের মাধ্যমে একটি ডেটা স্ট্রিম ব্যবহার করে একটি মেশিন লার্নিং মডেলকে প্রশিক্ষণ দেওয়া সম্ভব। বিশেষ করে, আমরা ডেটা পরিবেশনকারী কম্পিউটিংয়ের প্রভাবকে নির্দেশ করি। আমাদের ফলাফল (Mohan et al., 2020) এর থেকে ভিন্ন কারণ আমরা ধরে নেই যে ডাউনলোডের পরে ডেটাসেট স্থানীয়ভাবে ক্যাশে করা হয়েছে।
• গতির জন্য হাইপারপ্যারামিটার অপ্টিমাইজেশান: প্রথাগত হাইপারপ্যারামিটার পদ্ধতির লক্ষ্য প্রশিক্ষিত মডেলের সামগ্রিক নির্ভুলতা বৃদ্ধি করা। এই কাগজে, আমরা দেখাই যে কিভাবে আমরা মোট চলমান সময়ের প্রক্সি হিসাবে গতি (সময়ের সাথে প্রক্রিয়াকৃত নমুনা) জন্য অপ্টিমাইজ করতে পারি। এই অপ্টিমাইজেশানটি হার্ডওয়্যার-নির্ভর, তাই দীর্ঘদিন ধরে চলা কাজের আগে এটি সম্পাদন করা বোধগম্য। এই প্রক্রিয়াটি সমতুল্য সময়-থেকে-শুদ্ধতা মেট্রিক্সের চেয়ে কমপক্ষে একটি ক্রম দ্রুত হওয়া উচিত।
এই কাগজটি CC 4.0 লাইসেন্সের অধীনে arxiv-এ উপলব্ধ ।
[১] গিথুব সংগ্রহস্থল: https://github.com/smartnets/dataloaderbenchmarks