লেখক:
(1) Sasun Hambardzumyan, Activeloop, Mountain View, CA, USA;
(2) অভিনব তুলি, অ্যাক্টিভলুপ, মাউন্টেন ভিউ, CA, USA;
(3) Levon Ghukasyan, Activeloop, Mountain View, CA, USA;
(4) ফারিজ রহমান, অ্যাক্টিভলুপ, মাউন্টেন ভিউ, CA, USA;।
(5) Hrant Topchyan, Activeloop, Mountain View, CA, USA;
(6) ডেভিড ইসায়ান, অ্যাক্টিভলুপ, মাউন্টেন ভিউ, CA, USA;
(7) Mark McQuade, Activeloop, Mountain View, CA, USA;
(8) Mikayel Harutyunyan, Activeloop, Mountain View, CA, USA;
(9) Tatevik Hakobyan, Activeloop, Mountain View, CA, USA;
(10) Ivo Stranic, Activeloop, Mountain View, CA, USA;
(11) Davit Buniatyan, Activeloop, Mountain View, CA, USA.
ডিপ লেক ডেটাসেটগুলি কলামের স্টোরেজ আর্কিটেকচার অনুসরণ করে, কলাম হিসাবে টেনসর সহ, যেমন চিত্র 3-এ দেখানো হয়েছে। প্রতিটি টেনসর হল খণ্ডগুলির একটি সংগ্রহ - বাইনারি ব্লব যাতে ডেটা নমুনা থাকে। প্রতিটি টেনসরের সাথে যুক্ত একটি সূচক মানচিত্র একটি প্রদত্ত নমুনা সূচকের জন্য সেই অংশের মধ্যে নমুনার সঠিক অংশ এবং সূচক খুঁজে পেতে সহায়তা করে।
একটি ডেটাসেটের একটি নমুনা সমান্তরাল টেনসর জুড়ে সূচিত করা একটি একক সারি উপস্থাপন করে। ডকুমেন্ট স্টোরেজ ফরম্যাটের বিপরীতে, নমুনা উপাদানগুলি যৌক্তিকভাবে স্বাধীন, যা পারফরম্যান্ট কোয়েরি চালানোর জন্য নমুনাগুলিতে আংশিক অ্যাক্সেস সক্ষম করে বা নেটওয়ার্কে নির্বাচিত টেনসরগুলিকে GPU প্রশিক্ষণের দৃষ্টান্তগুলিতে স্ট্রিমিং করে। একাধিক টেনসর গ্রুপ করা যেতে পারে। গোষ্ঠীগুলি সিনট্যাকটিক নেস্টিং প্রয়োগ করে এবং সংজ্ঞায়িত করে যে কীভাবে টেনসর একে অপরের সাথে সম্পর্কিত। সিনট্যাকটিক নেস্টিং হায়ারার্কিক্যাল মেমরি লেআউটের জন্য ফর্ম্যাট জটিলতা এড়ায়। ডেটাসেটের স্কিমার পরিবর্তনগুলিও সংস্করণ নিয়ন্ত্রণের সাথে সময়ের সাথে ট্র্যাক করা হয়, ডেটাসেটের বিষয়বস্তুর পরিবর্তনের মতো।
টেনসরগুলি টাইপ করা হয় এবং জায়গায় সংযোজন বা পরিবর্তন করা যেতে পারে। একটি সূচক বা সূচকগুলির একটি সেটে ডিফল্ট অ্যাক্সেস NumPy অ্যারে হিসাবে ডেটা ফেরত দেয় [55]। Parquet [79] বা তীর [13] তে সিরিজে 1-D ডেটা সংরক্ষণ করার পরিবর্তে, টেনসরগুলি n-মাত্রিক ডেটা মিটমাট করতে পারে, যেখানে সাধারণত প্রথম মাত্রা সূচক বা ব্যাচ মাত্রার সাথে মিলে যায়। টেনসরগুলিতে গতিশীল আকৃতির অ্যারে থাকতে পারে, যাকে র্যাগড টেনসরও বলা হয়, যেমন Zarr [52] এর মতো অন্যান্য স্ট্যাটিকালি খণ্ডিত অ্যারে বিন্যাসের বিপরীতে।
Htype একটি টেনসরের নমুনাগুলির প্রত্যাশাগুলি সংজ্ঞায়িত করে যেমন ডেটা টাইপ (NumPy [55] এ দেখানো dtype), আকৃতি, মাত্রার সংখ্যা, বা কম্প্রেশন। টাইপ করা টেনসর গভীর শিক্ষার ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্টকে সহজ করে তোলে এবং স্যানিটী চেক এবং দক্ষ মেমরি লেআউট সক্ষম করে। একটি জেনেরিক টেনসর htype থেকে উত্তরাধিকারসূত্রে, আমরা ইমেজ, ভিডিও, অডিও, bbox, dicom, এবং অন্যান্যের মতো প্রকারগুলি তৈরি করতে পারি। উদাহরণস্বরূপ, ইমেজ htype সহ একটি টেনসর আশা করবে যে নমুনাগুলি এর সাথে যুক্ত করা হচ্ছে dtype হিসাবে uint8 এবং আকৃতির দৈর্ঘ্য 3 (যেমন প্রস্থ, উচ্চতা এবং চ্যানেলের সংখ্যা)। আমরা htypes এর ধারণাকে আরও প্রসারিত করি যা মেটা প্রকারের জন্য মঞ্জুরি দেয় যা টেনসর (সিকোয়েন্স[ছবি]) তে ইমেজ সিকোয়েন্স সংরক্ষণ করতে সহায়তা করে, দূরবর্তীভাবে সংরক্ষিত ছবিগুলিকে রেফারেন্স করে, একটি ইমেজ টেনসরের নিয়মিত আচরণ বজায় রাখে (লিঙ্ক[চিত্র]), এমনকি সম্ভাব্য ক্রস-ফরম্যাট সমর্থন।
একটি ডিপ লেক ডেটাসেটে JSON ফর্ম্যাটে একটি প্রোভেন্যান্স ফাইল এবং প্রতি টেনসর ফোল্ডার রয়েছে৷ একটি টেনসরে খণ্ড, খণ্ড এনকোডার, টাইল এনকোডার এবং টেনসর মেটাডেটা থাকে। টেনসরগুলি ঐচ্ছিকভাবে লুকানো যেতে পারে। উদাহরণস্বরূপ, লুকানো টেনসরগুলি চিত্রগুলির ডাউন-স্যাম্পল সংস্করণগুলি বজায় রাখতে বা দ্রুত প্রশ্নের জন্য আকারের তথ্য সংরক্ষণ করতে ব্যবহার করা যেতে পারে।
টেনসরগুলি স্টোরেজ স্তরে খণ্ডে সংরক্ষণ করা হয়। যদিও স্থিরভাবে (অনুমানিত) আকৃতির খণ্ড একটি খণ্ড মানচিত্র টেবিল বজায় রাখা এড়িয়ে যায়, এটি টেনসরের স্পেসিফিকেশন, কাস্টম কম্প্রেশন ব্যবহারের সীমাবদ্ধতা, গতিশীল আকৃতির টেনসরগুলির জন্য কম ব্যবহার না করা স্টোরেজ এবং পোস্ট-প্রসেসিং অদক্ষতার সময় উল্লেখযোগ্য ব্যবহারকারীর ওভারহেডের পরিচয় দেয়। গভীর হ্রদের খণ্ডগুলি সীমিত সংখ্যক নমুনার জন্য খণ্ড আকারের নীচের এবং উপরের সীমানার উপর ভিত্তি করে তৈরি করা হয়। এটি একটি সংকুচিত সূচক মানচিত্র থাকার একটি ট্রেড-অফের সাথে আসে যা মিশ্র-আকৃতির নমুনাগুলিকে মিটমাট করার সময় স্ট্রিমিংয়ের জন্য সর্বোত্তম পরিসরে খণ্ডের আকার সক্ষম করে প্রতি টেনসরে খণ্ড আইডি ম্যাপিং করতে নমুনা সূচক সংরক্ষণ করে। ফাইল সিস্টেম পৃষ্ঠা মানচিত্র এবং গণনা-সংজ্ঞায়িত মানচিত্র-লেস অ্যারে স্টোরেজ সিস্টেমের মধ্যে একটি অপ্টিমাইজড ট্রেড-অফ হিসাবে এই কাগজে নেওয়া পদ্ধতিকে কেউ বিবেচনা করতে পারে। ব্যবহারিক কারণে, প্রতি 1PB টেনসর ডেটাতে একটি 150MB খণ্ড এনকোডার বজায় রেখে একটি একক খণ্ড এনকোডারকে কোটি কোটি ছবিতে স্কেল করা যেতে পারে। খণ্ড এনকোডার শার্ড করে আরও স্কেলিং চালু করা যেতে পারে। খণ্ডে হেডারের তথ্য থাকে যেমন বাইট রেঞ্জ, নমুনার আকার এবং নমুনা ডেটা নিজেই। যদি একটি নমুনা উপরের আবদ্ধ খণ্ডের আকারের চেয়ে বড় হয়, যা বড় বায়বীয় বা মাইক্রোস্কোপি চিত্রগুলির ক্ষেত্রে, নমুনাটি স্থানিক মাত্রা জুড়ে খণ্ডে টাইল করা হয়। টাইলিং এর একমাত্র ব্যতিক্রম হল ভিডিও। স্ট্রিমিং করার সময় সূচকে দক্ষ ফ্রেম ম্যাপিং, কী-ফ্রেম-কেবল ডিকম্প্রেশন এবং রেঞ্জ-ভিত্তিক অনুরোধের কারণে ভিডিওগুলি সংরক্ষণ করা হয়।
টেনসর স্টোরেজ ফরম্যাটটি গভীর শিক্ষার প্রশিক্ষণ এবং অনুমানের জন্য অপ্টিমাইজ করা হয়েছে, অনুক্রমিক এবং এলোমেলো অ্যাক্সেস সহ। অনুক্রমিক অ্যাক্সেস ব্যবহার করা হয় স্ক্যান কোয়েরি চালানোর জন্য, টেনসরকে অন্য টেনসরে রূপান্তরিত করতে, বা অনুমান চালানোর জন্য। র্যান্ডম অ্যাক্সেস ব্যবহারের ক্ষেত্রে একই ছবিতে একাধিক টীকা লেবেল লেখা বা ডেটাসেটের সাথে পূর্বাভাস সংরক্ষণ করা মডেল অন্তর্ভুক্ত। কঠোর মোড নিষ্ক্রিয় থাকাকালীন, একটি টেনসরের সীমার বাইরের সূচকগুলি বরাদ্দ করা যেতে পারে, এইভাবে স্পার্স টেনসরগুলিকে মিটমাট করে। যাইহোক, সময়ের সাথে র্যান্ডম অ্যাসাইনমেন্ট অদক্ষভাবে সংরক্ষিত ডেটা খণ্ড তৈরি করবে। ডাটা লেআউট ঠিক করার জন্য, আমরা ডাটা লেআউট অপ্টিমাইজ করার জন্য একটি অন-দ্য-ফ্লাই রি-চঙ্কিং অ্যালগরিদম প্রয়োগ করি। ডিপ লেকের মূল অ্যাক্সেস প্যাটার্নগুলির মধ্যে একটি হল মেশিন লার্নিং মডেলের প্রশিক্ষণের জন্য শাফেল স্ট্রিম অ্যাক্সেস। প্রশিক্ষণ প্রক্রিয়ায় অংশগুলি স্ট্রিম করার সময় এটির জন্য এলোমেলো বা কাস্টম অর্ডার অ্যাক্সেসের প্রয়োজন। খণ্ডগুলির মধ্যে উপ-উপাদানগুলি অ্যাক্সেস করার জন্য পরিসীমা-ভিত্তিক অনুরোধগুলিকে অন্তর্ভুক্ত করে, অর্ডার নির্ধারণের জন্য প্রশিক্ষণের আগে জটিল প্রশ্নগুলি চালানো এবং আনা এবং অব্যবহৃত ডেটার একটি বাফার ক্যাশ বজায় রাখার মাধ্যমে এটি অর্জন করা হয়। এটি শাফলিং অ্যালগরিদম চালানোর জন্য একটি পৃথক গণনা ক্লাস্টার থাকা এড়িয়ে যায় [50]।
প্রতিটি টেনসরের নিজস্ব অংশ রয়েছে এবং ডিফল্ট খণ্ডের আকার 8MB। একটি একক খণ্ড একাধিক সূচক থেকে ডেটা নিয়ে গঠিত যখন পৃথক ডেটা পয়েন্ট (চিত্র, লেবেল, টীকা, ইত্যাদি) খণ্ডের আকারের চেয়ে ছোট হয়। বিপরীতভাবে, যখন পৃথক ডেটা পয়েন্টগুলি খণ্ডের আকারের চেয়ে বড় হয়, তখন ডেটা একাধিক খণ্ডে (টাইলিং) বিভক্ত হয়। চঙ্কিং লজিকের ব্যতিক্রম হল ভিডিও ডেটা।
ডিপ লেক ফরম্যাটটি GPU প্রক্রিয়াকরণে থ্রুপুট সর্বাধিক করার জন্য অপ্টিমাইজ করা হয়েছে। এটির মধ্যে রয়েছে সিপিইউ প্রি-ফেচিং, ডিকম্প্রেশন বা ডিকোডিং, ট্রান্সফর্মেশন, এবং ডিপ লার্নিং ফ্রেমওয়ার্কের প্রত্যাশিত লেআউটে জিপিইউ মেমরি ট্রান্সফার।
ডিপ লেক যেকোন স্টোরেজ প্রোভাইডারে প্লাগ করা যেতে পারে, যার মধ্যে অবজেক্ট স্টোরেজ যেমন AWS S3 [1], Google ক্লাউড স্টোরেজ (GCS) [3], POSIX সামঞ্জস্যপূর্ণ ফাইল সিস্টেম বা স্থানীয় ইন-মেমরি স্টোরেজ। তাছাড়া, এটি বিভিন্ন স্টোরেজ প্রোভাইডারকে একত্রে চেইন করে মেমরি ক্যাশিং তৈরি করে, উদাহরণস্বরূপ - স্থানীয় ইন-মেমরি ডেটা সহ দূরবর্তী S3 স্টোরেজের সর্বনিম্ন ব্যবহৃত (LRU) ক্যাশে।
এই কাগজটি CC 4.0 লাইসেন্সের অধীনে arxiv-এ উপলব্ধ ।