Data Version Control (software)
ডিভিসি হল তথ্য, মেশিন লার্নিং মডেল এবং পরীক্ষার জন্য একটি মুক্ত এবং মুক্ত উৎস, প্ল্যাটফর্ম-অজ্ঞেয়বাদী সংস্করণ ব্যবস্থা। এটি এমএল মডেলগুলিকে শেয়ারযোগ্য, পরীক্ষাগুলি পুনরুত্পাদনযোগ্য এবং মডেল, ডেটা এবং পাইপলাইনগুলির সংস্করণগুলি ট্র্যাক করার জন্য ডিজাইন করা হয়েছে। ডিভিসি গিট সংগ্রহস্থল এবং ক্লাউড স্টোরেজের উপরে কাজ করে। ডিভিসি 0.6-এর প্রথম (বিটা) সংস্করণটি 2017 সালের মে মাসে চালু করা হয়েছিল। 2020 সালের মে মাসে, ডিভিসি 1.0 সর্বজনীনভাবে Iterative.ai দ্বারা প্রকাশিত হয়েছিল। ওভারভিউ ডিভিসি মেশিন লার্নিং ওয়ার্কফ্লোতে সফ্টওয়্যার বিকাশের সর্বোত্তম অনুশীলনগুলিকে অন্তর্ভুক্ত করার জন্য ডিজাইন করা হয়েছে। এটি ডেটাসেট এবং মেশিন লার্নিং মডেলের জন্য ক্লাউড স্টোরেজ দ্বারা ঐতিহ্যবাহী সফ্টওয়্যার টুল গিট প্রসারিত করে এটি করে। বিশেষত, ডিভিসি মেশিন লার্নিং অপারেশন তৈরি করেঃ কোডিফাইডঃ এটি ক্লাউড স্টোরেজে ডেটা ফাইলগুলিতে পয়েন্টার সংরক্ষণ করে ডেটাসেট এবং মডেলগুলিকে কোডিফাই করে। পুনরুত্পাদনযোগ্যঃ এটি ব্যবহারকারীদের পরীক্ষাগুলি পুনরুত্পাদন করতে এবং কাঁচা ডেটা থেকে ডেটাসেটগুলি পুনর্নির্মাণ করতে দেয়। এই বৈশিষ্ট্যগুলি ডেটাসেট নির্মাণ, প্রশিক্ষণ, মূল্যায়ন এবং এমএল মডেলগুলির স্থাপনার স্বয়ংক্রিয় করার অনুমতি দেয়। ডিভিসি এবং গিট ডিভিসি বড় ফাইল এবং ডেটাসেটগুলি গিটের বাইরে পৃথক স্টোরেজে সংরক্ষণ করে। এই স্টোরেজটি ব্যবহারকারীর কম্পিউটারে বা যে কোনও বড় ক্লাউড স্টোরেজ প্রদানকারী যেমন এডাব্লুএস এস 3, গুগল ক্লাউড স্টোরেজ এবং মাইক্রোসফ্ট অ্যাজুরে ব্লব স্টোরেজে হোস্ট করা যেতে পারে। ডিভিসি ব্যবহারকারীরা যে কোনও সার্ভারে একটি দূরবর্তী সংগ্রহস্থল স্থাপন করতে পারেন এবং এর সাথে দূরবর্তীভাবে সংযোগ স্থাপন করতে পারেন। যখন কোনও ব্যবহারকারী তাদের তথ্য এবং মডেলগুলি দূরবর্তী সংগ্রহস্থলে সংরক্ষণ করেন, তখন তাদের গিট সংগ্রহস্থলে পাঠ্য ফাইল তৈরি করা হয় যা দূরবর্তী সঞ্চয়ের প্রকৃত তথ্যকে নির্দেশ করে। ডিভিসি-র বৈশিষ্ট্যগুলিকে তিনটি বিভাগে ভাগ করা যেতে পারেঃ ডেটা ম্যানেজমেন্ট, পাইপলাইন এবং এক্সপেরিমেন্ট ট্র্যাকিং। ডেটা ম্যানেজমেন্ট ডেটা এবং মডেল সংস্করণ বড় ফাইল, ডেটাসেট এবং মেশিন লার্নিং মডেলের জন্য ডিভিসি-র মূল স্তর। এটি একটি স্ট্যান্ডার্ড গিট ওয়ার্কফ্লো ব্যবহারের অনুমতি দেয়, তবে সেই ফাইলগুলি সংগ্রহস্থলে সংরক্ষণ করার প্রয়োজন ছাড়াই। বড় ফাইল, ডিরেক্টরি এবং এমএল মডেলগুলি ছোট মেটাফাইল দ্বারা প্রতিস্থাপিত হয়, যা মূল তথ্যের দিকে নির্দেশ করে। ডেটা আলাদাভাবে সংরক্ষণ করা হয়, যা ডেটা বিজ্ঞানীদের বড় ডেটাসেট স্থানান্তর করতে বা অন্যদের সাথে একটি মডেল ভাগ করে নেওয়ার অনুমতি দেয়। ডিভিসি কোডিফিকেশনের মাধ্যমে ডেটা সংস্করণ সক্ষম করে। যখন কোনও ব্যবহারকারী মেটাফাইল তৈরি করে, কোন ডেটাসেট, এমএল শিল্পকর্ম এবং অন্যান্য বৈশিষ্ট্যগুলি ট্র্যাক করতে হবে তা বর্ণনা করে, ডিভিসি ডেটা এবং মডেলগুলির সংস্করণগুলি ক্যাপচার করা, স্ন্যাপশটগুলি থেকে তৈরি এবং পুনরুদ্ধার করা, বিবর্তিত মেট্রিকগুলি রেকর্ড করা, সংস্করণগুলির মধ্যে স্যুইচ করা ইত্যাদি সম্ভব করে তোলে। ডেটা ফাইল এবং ডিরেক্টরিগুলির অনন্য সংস্করণগুলি একটি নিয়মতান্ত্রিক উপায়ে ক্যাশে করা হয় (এছাড়াও ফাইলের অনুলিপি প্রতিরোধ করা হয়)। প্রকল্পটি হালকা রাখার জন্য কার্যকরী ডেটাস্টোরটি ব্যবহারকারীর কর্মক্ষেত্র থেকে পৃথক করা হয়, তবে ডিভিসি দ্বারা স্বয়ংক্রিয়ভাবে পরিচালিত ফাইল লিঙ্কগুলির মাধ্যমে সংযুক্ত থাকে। পাইপলাইন ডিভিসি পাইপলাইনগুলি সংজ্ঞায়িত এবং কার্যকর করার জন্য একটি প্রক্রিয়া সরবরাহ করে। পাইপলাইনগুলি এমএল ডেটাসেট এবং মডেল তৈরির প্রক্রিয়াটির প্রতিনিধিত্ব করে, কীভাবে ডেটা প্রাক-প্রক্রিয়াজাত করা হয় থেকে শুরু করে মডেলগুলি কীভাবে প্রশিক্ষিত এবং মূল্যায়ন করা হয়। পাইপলাইনগুলি উৎপাদন পরিবেশে মডেল স্থাপন করতেও ব্যবহার করা যেতে পারে। ডিভিসি পাইপলাইন এমএল প্রক্রিয়ার পরীক্ষামূলক পর্যায়ে মনোনিবেশ করে। ব্যবহারকারীরা পাইপলাইনের সাথে একটি গিট সংগ্রহস্থল ক্লোন করে বা এমএল পরীক্ষা-নিরীক্ষা চালিয়ে ডিভিসি পাইপলাইনের একাধিক অনুলিপি চালাতে পারেন। তারা পাইপলাইন হিসাবে কর্মপ্রবাহ রেকর্ড করতে পারে এবং ভবিষ্যতে এটি পুনরুত্পাদন করতে পারে। পাইপলাইনগুলি কোডে ই. এ. এম. এল কনফিগারেশন ফাইল হিসাবে উপস্থাপিত হয়। এই ফাইলগুলি পাইপলাইনের পর্যায়গুলি এবং কীভাবে তথ্য ও তথ্য এক ধাপ থেকে অন্য ধাপে প্রবাহিত হয় তা নির্ধারণ করে। যখন একটি পাইপলাইন চালানো হয়, তখন সেই পাইপলাইন দ্বারা উত্পাদিত নিদর্শনগুলি একটি dvc.lock ফাইলে নিবন্ধিত হয়। লকফাইলটি যে পর্যায়গুলি চালানো হয়েছিল তা রেকর্ড করে এবং প্রতিটি পর্যায়ের জন্য ফলাফল আউটপুটের একটি হ্যাশ সঞ্চয় করে। এটি কেবল পাইপলাইন বাস্তবায়নের একটি রেকর্ডই নয়, পাইপলাইনের পরবর্তী বাস্তবায়নের জন্য কোন পদক্ষেপগুলি পুনরায় চালাতে হবে তা সিদ্ধান্ত নেওয়ার সময়ও কার্যকর। এক্সপেরিমেন্ট ট্র্যাকিং ডেভেলপারদের বিভিন্ন মেশিন লার্নিং পরীক্ষা-নিরীক্ষা অন্বেষণ, পুনরাবৃত্তি এবং তুলনা করার অনুমতি দেয়। প্রতিটি পরীক্ষা কর্মক্ষেত্রের পরিবর্তন দ্বারা সংজ্ঞায়িত একটি তথ্য বিজ্ঞান প্রকল্পের বৈচিত্র্যের প্রতিনিধিত্ব করে। পরীক্ষাগুলি তাদের মূল বা বেসলাইন হিসাবে বর্তমান শাখায় (গিট হেড) কমিটের সাথে একটি লিঙ্ক বজায় রাখে। তবে, এগুলি নিয়মিত গিট গাছের অংশ গঠন করে না (যদি না এগুলি স্থায়ী করা হয়)। এটি ব্যবহারকারীর সংগ্রহস্থল উপচে পড়া থেকে অস্থায়ী প্রতিশ্রুতি এবং শাখা বন্ধ করে দেয়। পরীক্ষার জন্য সাধারণ ব্যবহারের ক্ষেত্রে রয়েছেঃ মডেল আর্কিটেকচারের তুলনা প্রশিক্ষণ বা মূল্যায়ন ডেটাসেটের তুলনা মডেল হাইপারপ্যারামিটার ডিভিসি পরীক্ষার নির্বাচন ভিএস কোড আইডিই থেকে বা অনলাইনে ইটারেটিভ স্টুডিও ব্যবহার করে পরিচালনা এবং কল্পনা করা যেতে পারে। ভিজ্যুয়ালাইজেশন প্রতিটি ব্যবহারকারীকে পরীক্ষার ফলাফলগুলি দৃশ্যমানভাবে তুলনা করতে, প্লটগুলি ট্র্যাক করতে এবং গ্রন্থাগারের সংহতকরণের সাথে সেগুলি তৈরি করতে দেয়। ডিভিসি নিয়মিত কর্মপ্রবাহে ভিজ্যুয়ালাইজেশন ব্যবহার করার জন্য বিভিন্ন বিকল্প প্রদান করেঃ ডিভিসি এইচটিএমএল ফাইল তৈরি করতে পারে যার মধ্যে জেএসওএন, ওয়াইএএমএল, সিএসভি, বা টিএসভি ফর্ম্যাটে ডেটা সিরিজ থেকে ইন্টারেক্টিভ প্লট অন্তর্ভুক্ত রয়েছে ডিভিসি প্রশিক্ষণ/মূল্যায়ন স্ক্রিপ্ট থেকে প্লট আউটপুট হিসাবে উত্পাদিত চিত্র ফাইলগুলির উপর নজর রাখতে পারে ডিভিসিএলাইভ সংহতকরণ প্রশিক্ষণের সময় স্বয়ংক্রিয়ভাবে প্লট তৈরি করতে পারে ডিভিসি বনাম কোড এক্সটেনশন 2022 সালে, ইটারেটিভ ভিজ্যুয়াল স্টুডিও কোড (ভিএস কোড)-এর জন্য একটি বিনামূল্যে এক্সটেনশন প্রকাশ করেছে, যা মাইক্রোসফ্ট দ্বারা তৈরি একটি সোর্স-কোড সম্পাদক, যা ভিএস কোড ব্যবহারকারীদের অতিরিক্ত ইউজার ইন্টারফেস কার্যকারিতা সহ তাদের সম্পাদকদের মধ্যে ডিভিসি ব্যবহার করার ক্ষমতা প্রদান করে। 2017 সালে, ডিভিসি 0.6-এর প্রথম (বিটা) সংস্করণ প্রকাশ্যে প্রকাশিত হয়েছিল (একটি সাধারণ কমান্ড লাইন টুল হিসাবে)। এটি ডেটা বিজ্ঞানীদের তাদের মেশিন লার্নিং প্রক্রিয়া এবং ফাইল নির্ভরতাগুলিকে গিট-সদৃশ কমান্ডের সহজ আকারে ট্র্যাক রাখার অনুমতি দেয়। এটি তাদের বিদ্যমান মেশিন লার্নিং প্রক্রিয়াগুলিকে পুনরুত্পাদনযোগ্য ডিভিসি পাইপলাইনে রূপান্তরিত করার অনুমতি দেয়। ডিভিসি 0.6 মেশিন লার্নিং ইঞ্জিনিয়ার এবং ডেটা বিজ্ঞানীরা যে সাধারণ সমস্যার মুখোমুখি হয়েছিলেন তার বেশিরভাগ সমাধান করেছেঃ মেশিন লার্নিং পরীক্ষার পুনরুত্পাদনযোগ্যতা, পাশাপাশি ডেটা সংস্করণ এবং দলগুলির মধ্যে সহযোগিতার নিম্ন স্তর। প্রাক্তন মাইক্রোসফ্ট ডেটা বিজ্ঞানী দিমিত্রি পেত্রভ দ্বারা নির্মিত, ডিভিসি মেশিন লার্নিং ক্রিয়াকলাপে সেরা বিদ্যমান সফ্টওয়্যার বিকাশের অনুশীলনগুলিকে সংহত করার লক্ষ্য রাখে। 2018 সালে, দিমিত্রি পেত্রভ, একজন প্রকৌশলী এবং উদ্যোক্তা, ইভান শেক্লেইনের সাথে মিলে একটি এম. এল. ও. পি. এস কোম্পানি, যা ডি. ভি. সি-র উন্নয়ন অব্যাহত রেখেছিল, <আই. ডি1> প্রতিষ্ঠা করেন। ডিভিসি ছাড়াও, সি. এম. এল, এম. এল. ই. এম এবং স্টুডিওর মতো ওপেন সোর্স সরঞ্জামগুলির পিছনে রয়েছে, যা ওপেন সোর্স সরঞ্জামগুলির এন্টারপ্রাইজ সংস্করণ। 2020 সালের জুন মাসে, Iterative.ai দল ডিভিসি 1.0 প্রকাশ করে। বহু-পর্যায়ের ডিভিসি ফাইল, রান ক্যাশে, প্লট, ডেটা ট্রান্সফার অপ্টিমাইজেশন, হাইপারপ্যারামিটার ট্র্যাকিং এবং স্থিতিশীল রিলিজ চক্রের মতো নতুন বৈশিষ্ট্যগুলি সম্প্রদায়ের আলোচনা এবং অবদানের ফলস্বরূপ যুক্ত করা হয়েছিল। 2021 সালের মার্চ মাসে ডিভিসি ডিভিসি 2 প্রকাশ করে, যা এমএল পরীক্ষা-নিরীক্ষা (এক্সপেরিমেন্ট ম্যানেজমেন্ট), মডেল চেকপয়েন্ট এবং মেট্রিক লগিং চালু করে। এমএল পরীক্ষা-নিরীক্ষাঃ গিট ওভারহেডের সমস্যা সমাধানের জন্য, যখন একদিনে শত শত পরীক্ষা-নিরীক্ষা চালানোর প্রয়োজন হয় এবং প্রতিটি পরীক্ষা চালানোর জন্য অতিরিক্ত গিট কমান্ডের প্রয়োজন হয়, ডিভিসি 2 লাইটওয়েট পরীক্ষা-নিরীক্ষা বৈশিষ্ট্য চালু করে। এটি এর ব্যবহারকারীদের স্বয়ংক্রিয়ভাবে এমএল পরীক্ষা-নিরীক্ষা এবং কোড পরিবর্তনগুলি ক্যাপচার করার অনুমতি দেয়। এটি অতিরিক্ত পরিষেবাগুলির উপর নির্ভরতা দূর করে ডেটা সংস্করণগুলিকে বাহ্যিক ডাটাবেস বা এপিআই-এ নামিয়ে দেওয়ার পরিবর্তে গিট-এ মেটাডেটা হিসাবে সংরক্ষণ করে। এমএল মডেল চেকপয়েন্ট সংস্করণঃ নতুন প্রকাশটি সংশ্লিষ্ট কোড এবং ডেটা সহ সমস্ত চেকপয়েন্টের সংস্করণ সক্ষম করে। মেট্রিক্স লগিংঃ ডিভিসি 2 একটি নতুন ওপেন-সোর্স লাইব্রেরি ডিভিসি-লাইভ চালু করেছে যা মডেল মেট্রিক্স ট্র্যাকিং এবং মেট্রিক্সকে এমনভাবে সংগঠিত করার জন্য কার্যকারিতা প্রদান করবে যাতে ডিভিসি গিট ইতিহাসে নেভিগেশনের মাধ্যমে কল্পনা করতে পারে। ডিভিসি-র বিকল্প সমাধান বেশ কয়েকটি ওপেন সোর্স প্রকল্প রয়েছে যা ডিভিসি-কে অনুরূপ ডেটা সংস্করণ নিয়ন্ত্রণ ক্ষমতা প্রদান করে, যেমনঃ গিট এলএফএস, ডোল্ট এবং লেকএফএস। এই প্রকল্পগুলি ডেটা ইঞ্জিনিয়ার এবং ডেটা বিজ্ঞানীদের বিভিন্ন প্রয়োজনের সাথে তাদের উপযুক্ততায় পরিবর্তিত হয় যেমনঃ স্কেলাবিলিটি, সমর্থিত ফাইল ফর্ম্যাট, ট্যাবুলার ডেটা এবং কাঠামোগত ডেটাতে সমর্থন, সমর্থিত ডেটার পরিমাণ এবং আরও অনেক কিছু। রেফারেন্স বাহ্যিক লিঙ্ক অ্যাপাচি লাইসেন্স পাইথন (প্রোগ্রামিং ভাষা) লাইব্রেরি পাইথন (প্রোগ্রামিং ভাষা) সফ্টওয়্যার ডেটা মাইনিং এবং মেশিন লার্নিং সফ্টওয়্যার 2017 সফ্টওয়্যার ব্যবহার করে পাইথন সফ্টওয়্যারে প্রোগ্রাম করা ফ্রি সফ্টওয়্যার