Data Version Control (software)
ડીવીસી એ ડેટા, મશીન લર્નિંગ મોડેલ્સ અને પ્રયોગો માટે એક મફત અને ઓપન-સોર્સ, પ્લેટફોર્મ-અજ્ઞેયવાદી સંસ્કરણ સિસ્ટમ છે. તે એમ. એલ. મોડેલોને વહેંચવા યોગ્ય બનાવવા, પ્રયોગોને પુનઃઉત્પાદિત કરવા અને મોડેલો, ડેટા અને પાઇપલાઇનના સંસ્કરણોને ટ્રેક કરવા માટે રચાયેલ છે. ડીવીસી ગિટ રીપોઝીટરી અને ક્લાઉડ સ્ટોરેજની ટોચ પર કામ કરે છે. ડીવીસી 0.6નું પ્રથમ (બીટા) વર્ઝન મે 2017માં લોન્ચ કરવામાં આવ્યું હતું. મે 2020 માં, ડીવીસી 1 ને Iterative.ai દ્વારા જાહેરમાં રજૂ કરવામાં આવ્યું હતું. ઝાંખી ડી. વી. સી. મશીન લર્નિંગ વર્કફ્લોમાં સોફ્ટવેર ડેવલપમેન્ટની શ્રેષ્ઠ પદ્ધતિઓનો સમાવેશ કરવા માટે રચાયેલ છે. તે ડેટાસેટ્સ અને મશીન લર્નિંગ મોડલ્સ માટે ક્લાઉડ સ્ટોરેજ દ્વારા પરંપરાગત સોફ્ટવેર ટૂલ Git ને વિસ્તૃત કરીને આ કરે છે. ખાસ કરીને, ડી. વી. સી. મશીન લર્નિંગ ઓપરેશન્સ બનાવે છેઃ કોડીફાઇડઃ તે ક્લાઉડ સ્ટોરેજમાં ડેટા ફાઇલોમાં પોઇન્ટર સ્ટોર કરીને ડેટાસેટ્સ અને મોડેલ્સને સંહિતાબદ્ધ કરે છે. રિપ્રોડ્યુસિબલઃ તે વપરાશકર્તાઓને પ્રયોગોનું પુનઃઉત્પાદન કરવાની અને કાચા ડેટામાંથી ડેટાસેટ્સનું પુનઃનિર્માણ કરવાની મંજૂરી આપે છે. આ સુવિધાઓ ડેટાસેટ્સનું નિર્માણ, એમ. એલ. મોડેલોની તાલીમ, મૂલ્યાંકન અને જમાવટને સ્વચાલિત કરવાની પણ મંજૂરી આપે છે. ડીવીસી અને ગિટ ડીવીસી મોટી ફાઇલો અને ડેટાસેટ્સને ગિટની બહાર અલગ સંગ્રહમાં સંગ્રહિત કરે છે. આ સંગ્રહ વપરાશકર્તાના કમ્પ્યુટર પર હોઈ શકે છે અથવા કોઈપણ મુખ્ય ક્લાઉડ સ્ટોરેજ પ્રદાતા પર હોસ્ટ કરી શકાય છે, જેમ કે AWS S3, ગૂગલ ક્લાઉડ સ્ટોરેજ અને માઈક્રોસોફ્ટ એઝ્યોર બ્લોબ સ્ટોરેજ. ડીવીસી વપરાશકર્તાઓ કોઈપણ સર્વર પર દૂરસ્થ રીપોઝીટરી પણ સેટ કરી શકે છે અને તેની સાથે દૂરસ્થ રીતે જોડાઈ શકે છે. જ્યારે વપરાશકર્તા તેમના ડેટા અને મોડેલોને દૂરસ્થ રીપોઝીટરીમાં સંગ્રહિત કરે છે, ત્યારે તેમની Git રીપોઝીટરીમાં ટેક્સ્ટ ફાઇલ બનાવવામાં આવે છે જે દૂરસ્થ સંગ્રહમાં વાસ્તવિક ડેટા તરફ નિર્દેશ કરે છે. ડી. વી. સી. ની વિશેષતાઓને ત્રણ વર્ગોમાં વિભાજિત કરી શકાય છેઃ માહિતી વ્યવસ્થાપન, પાઈપલાઈન અને પ્રયોગ ટ્રેકિંગ. ડેટા મેનેજમેન્ટ ડેટા અને મોડેલ વર્ઝનિંગ એ મોટી ફાઇલો, ડેટાસેટ્સ અને મશીન લર્નિંગ મોડલ્સ માટે ડીવીસીનું આધાર સ્તર છે. તે પ્રમાણભૂત Git વર્કફ્લોના ઉપયોગની મંજૂરી આપે છે, પરંતુ તે ફાઇલોને રીપોઝીટરીમાં સંગ્રહિત કરવાની જરૂર વગર. મોટી ફાઇલો, ડિરેક્ટરીઓ અને એમ. એલ. મોડેલોને નાની મેટાફાઇલો સાથે બદલવામાં આવે છે, જે બદલામાં મૂળ માહિતી તરફ નિર્દેશ કરે છે. ડેટા અલગથી સંગ્રહિત કરવામાં આવે છે, જે ડેટા વૈજ્ઞાનિકોને મોટા ડેટાસેટ્સ સ્થાનાંતરિત કરવા અથવા અન્ય લોકો સાથે મોડેલ શેર કરવાની મંજૂરી આપે છે. ડીવીસી સંહિતાકરણ દ્વારા માહિતી સંસ્કરણને સક્ષમ કરે છે. જ્યારે વપરાશકર્તા મેટાફાઇલ્સ બનાવે છે, કયા ડેટાસેટ્સ, એમ. એલ. કલાકૃતિઓ અને અન્ય સુવિધાઓને ટ્રેક કરવા માટે તેનું વર્ણન કરે છે, ત્યારે ડીવીસી ડેટા અને મોડેલ્સની આવૃત્તિઓ કેપ્ચર કરવાનું, સ્નેપશોટમાંથી બનાવવા અને પુનઃસ્થાપિત કરવાનું, વિકસતી મેટ્રિક્સ રેકોર્ડ કરવાનું, આવૃત્તિઓ વચ્ચે સ્વિચ કરવાનું વગેરે શક્ય બનાવે છે. ડેટા ફાઇલો અને ડિરેક્ટરીઓની અનન્ય આવૃત્તિઓ વ્યવસ્થિત રીતે કેશ કરવામાં આવે છે (ફાઇલ ડુપ્લિકેશનને પણ અટકાવે છે). કાર્યરત ડેટાસ્ટોર પ્રોજેક્ટને હળવો રાખવા માટે વપરાશકર્તાની કાર્યસ્થળથી અલગ કરવામાં આવે છે, પરંતુ ડીવીસી દ્વારા આપમેળે નિયંત્રિત ફાઇલ લિંક્સ દ્વારા જોડાયેલ રહે છે. પાઈપલાઈન ડીવીસી પાઈપલાઈનને વ્યાખ્યાયિત કરવા અને અમલમાં મૂકવા માટે એક પદ્ધતિ પ્રદાન કરે છે. પાઇપલાઇન એમએલ ડેટાસેટ્સ અને મોડેલ્સ બનાવવાની પ્રક્રિયાને રજૂ કરે છે, જેમાં ડેટાની પૂર્વ પ્રક્રિયા કેવી રીતે કરવામાં આવે છે અને મોડેલ્સને કેવી રીતે તાલીમ અને મૂલ્યાંકન કરવામાં આવે છે. પાઇપલાઇનનો ઉપયોગ ઉત્પાદન વાતાવરણમાં મોડેલોને ગોઠવવા માટે પણ થઈ શકે છે. ડીવીસી પાઇપલાઇન એમએલ પ્રક્રિયાના પ્રયોગ તબક્કા પર કેન્દ્રિત છે. વપરાશકર્તાઓ પાઇપલાઇન સાથે ગિટ રીપોઝીટરીનું ક્લોનિંગ કરીને અથવા એમ. એલ. પ્રયોગો ચલાવીને ડીવીસી પાઇપલાઇનની બહુવિધ નકલો ચલાવી શકે છે. તેઓ વર્કફ્લોને પાઇપલાઇન તરીકે પણ રેકોર્ડ કરી શકે છે અને ભવિષ્યમાં તેનું પુનઃઉત્પાદન કરી શકે છે. પાઇપલાઇનને કોડમાં yaml રૂપરેખાંકન ફાઇલો તરીકે રજૂ કરવામાં આવે છે. આ ફાઇલો પાઇપલાઇનના તબક્કાઓને વ્યાખ્યાયિત કરે છે અને કેવી રીતે ડેટા અને માહિતી એક પગલાથી બીજા પગલા સુધી વહે છે. જ્યારે પાઇપલાઇન ચલાવવામાં આવે છે, ત્યારે તે પાઇપલાઇન દ્વારા ઉત્પાદિત કલાકૃતિઓ dvc.lock ફાઇલમાં નોંધાયેલી હોય છે. લોકફાઇલ જે તબક્કાઓ ચલાવવામાં આવ્યા હતા તેને રેકોર્ડ કરે છે અને દરેક તબક્કા માટે પરિણામી આઉટપુટનું હેશ સંગ્રહિત કરે છે. તે માત્ર પાઇપલાઇનના અમલીકરણનો રેકોર્ડ જ નથી, પરંતુ પાઇપલાઇનના અનુગામી અમલીકરણ પર કયા પગલાં ફરીથી ચલાવવા જોઈએ તે નક્કી કરતી વખતે પણ ઉપયોગી છે. પ્રયોગ ટ્રેકિંગ વિકાસકર્તાઓને વિવિધ મશીન લર્નિંગ પ્રયોગોનું અન્વેષણ, પુનરાવર્તન અને તુલના કરવાની મંજૂરી આપે છે. દરેક પ્રયોગ કાર્યસ્થળમાં ફેરફારો દ્વારા વ્યાખ્યાયિત ડેટા સાયન્સ પ્રોજેક્ટની વિવિધતાને રજૂ કરે છે. પ્રયોગો વર્તમાન શાખા (Git HEAD) માં કમિટ સાથે તેમની પેરેન્ટ અથવા બેઝલાઇન તરીકે કડી જાળવી રાખે છે. જો કે, તેઓ નિયમિત ગિટ વૃક્ષનો ભાગ નથી (જ્યાં સુધી તેમને સ્થાયી ન કરવામાં આવે). આ કામચલાઉ કમિટ અને શાખાઓને વપરાશકર્તાની રીપોઝીટરીમાં ઓવરફ્લો થવાથી અટકાવે છે. પ્રયોગો માટે સામાન્ય ઉપયોગના કિસ્સાઓ છેઃ મોડેલ આર્કિટેક્ચરની સરખામણી તાલીમ અથવા મૂલ્યાંકન ડેટાસેટ્સની સરખામણી મોડેલ હાયપરપેરામીટર્સ ડીવીસી પ્રયોગોની પસંદગીનું સંચાલન અને કલ્પના ક્યાં તો વી. એસ. કોડ આઇ. ડી. ઇ. થી અથવા ઇટરેટિવ સ્ટુડિયોનો ઉપયોગ કરીને ઓનલાઇન કરી શકાય છે. વિઝ્યુલાઇઝેશન દરેક વપરાશકર્તાને પ્રયોગના પરિણામોની દૃષ્ટિની સરખામણી કરવા, પ્લોટને ટ્રેક કરવા અને તેમને લાઇબ્રેરી એકીકરણ સાથે જનરેટ કરવાની મંજૂરી આપે છે. ડીવીસી નિયમિત વર્કફ્લોમાં વિઝ્યુલાઇઝેશનનો ઉપયોગ કરવા માટે ઘણા વિકલ્પો પ્રદાન કરે છેઃ ડીવીસી એચટીએમએલ ફાઇલો જનરેટ કરી શકે છે જેમાં જેએસઓએન, વાયએએમએલ, સીએસવી અથવા ટીએસવી ફોર્મેટમાં ડેટા સિરીઝમાંથી ઇન્ટરેક્ટિવ પ્લોટ્સનો સમાવેશ થાય છે ડીવીસી તાલીમ/મૂલ્યાંકન સ્ક્રિપ્ટ્સમાંથી પ્લોટ આઉટપુટ તરીકે ઉત્પાદિત ઇમેજ ફાઇલોનો ટ્રેક રાખી શકે છે ડીવીસીલાઇવ એકીકરણ તાલીમ દરમિયાન આપમેળે પ્લોટ્સ ઉત્પન્ન કરી શકે છે ડીવીસી વિએસ કોડ એક્સ્ટેંશન 2022 માં, ઇટરેટિવએ વિઝ્યુઅલ સ્ટુડિયો કોડ (વીએસ કોડ) માટે મફત એક્સ્ટેંશન બહાર પાડ્યું, જે માઇક્રોસોફ્ટ દ્વારા બનાવેલ સ્રોત-કોડ એડિટર છે, જે વીએસ કોડ વપરાશકર્તાઓને તેમના સંપાદકોમાં વધારાના વપરાશકર્તા ઇન્ટરફેસ કાર્યક્ષમતા સાથે ડીવીસીનો ઉપયોગ કરવાની ક્ષમતા પ્રદાન કરે છે. 2017 માં, ડીવીસી 0.6 નું પ્રથમ (બીટા) સંસ્કરણ જાહેરમાં રજૂ કરવામાં આવ્યું હતું (એક સરળ આદેશ વાક્ય સાધન તરીકે). તે ડેટા વૈજ્ઞાનિકોને તેમની મશીન લર્નિંગ પ્રક્રિયાઓ અને ફાઇલ ડિપેન્ડન્સીઝ પર ગિટ જેવા આદેશોના સરળ સ્વરૂપમાં નજર રાખવાની મંજૂરી આપે છે. તેણે તેમને હાલની મશીન લર્નિંગ પ્રક્રિયાઓને પુનઃઉત્પાદિત કરી શકાય તેવી ડીવીસી પાઈપલાઈનમાં રૂપાંતરિત કરવાની પણ મંજૂરી આપી. ડી. વી. સી. 0.6 એ મશીન લર્નિંગ ઇજનેરો અને ડેટા વૈજ્ઞાનિકો જે સામાન્ય સમસ્યાઓનો સામનો કરી રહ્યા હતા તેમાંથી મોટાભાગની સમસ્યાઓનું સમાધાન કર્યુંઃ મશીન લર્નિંગ પ્રયોગોની પ્રજનનક્ષમતા, તેમજ ડેટા વર્ઝનિંગ અને ટીમો વચ્ચે સહયોગનું નીચું સ્તર. ભૂતપૂર્વ માઇક્રોસોફ્ટ ડેટા વૈજ્ઞાનિક દિમિત્રી પેટ્રોવ દ્વારા બનાવવામાં આવેલ, ડીવીસીનો ઉદ્દેશ મશીન લર્નિંગ કામગીરીમાં શ્રેષ્ઠ હાલની સોફ્ટવેર વિકાસ પદ્ધતિઓને એકીકૃત કરવાનો છે. 2018 માં, દિમિત્રી પેટ્રોવે ઇજનેર અને ઉદ્યોગસાહસિક ઇવાન શેક્લેઇન સાથે મળીને Iterative.ai ની સ્થાપના કરી, જે એક એમ. એલ. ઓ. પી. એસ. કંપની છે જેણે ડી. વી. સી. નો વિકાસ ચાલુ રાખ્યો. ડીવીસી ઉપરાંત, Iterative.ai ઓપન સોર્સ ટૂલ્સ જેમ કે CML, MLEM અને સ્ટુડિયો પાછળ પણ છે, જે ઓપન સોર્સ ટૂલ્સનું એન્ટરપ્રાઇઝ વર્ઝન છે. જૂન 2020માં, Iterative.ai ટીમે DVC 1 રજૂ કર્યું. સમુદાયની ચર્ચાઓ અને યોગદાનના પરિણામે મલ્ટી-સ્ટેજ ડીવીસી ફાઇલો, રન કેશ, પ્લોટ્સ, ડેટા ટ્રાન્સફર ઓપ્ટિમાઇઝેશન, હાયપરપેરામીટર ટ્રેકિંગ અને સ્થિર પ્રકાશન ચક્ર જેવી નવી સુવિધાઓ ઉમેરવામાં આવી હતી. માર્ચ 2021 માં, ડી. વી. સી. એ ડી. વી. સી. 2 રજૂ કર્યું, જેણે એમ. એલ. પ્રયોગો (પ્રયોગ વ્યવસ્થાપન), મોડેલ ચેકપોઇન્ટ્સ અને મેટ્રિક્સ લોગિંગ રજૂ કર્યા. એમ. એલ. પ્રયોગોઃ ગિટ ઓવરહેડની સમસ્યાને ઉકેલવા માટે, જ્યારે એક જ દિવસમાં સેંકડો પ્રયોગો ચલાવવાની જરૂર હોય અને દરેક પ્રયોગ ચલાવવા માટે વધારાના ગિટ આદેશોની જરૂર હોય, ત્યારે ડીવીસી 2એ હળવા વજનના પ્રયોગોની સુવિધા રજૂ કરી. તે તેના વપરાશકર્તાઓને એમ. એલ. પ્રયોગોને ઓટો-ટ્રેક કરવા અને કોડ ફેરફારોને કેપ્ચર કરવાની મંજૂરી આપે છે. આનાથી ડેટા વર્ઝનને બાહ્ય ડેટાબેઝ અથવા APIમાં મૂકવાના વિરોધમાં Gitમાં મેટાડેટા તરીકે સાચવીને વધારાની સેવાઓ પરની નિર્ભરતાને દૂર કરવામાં આવી. એમ. એલ. મોડેલ ચેકપોઇન્ટ્સ વર્ઝનિંગઃ નવું પ્રકાશન અનુરૂપ કોડ અને ડેટા સાથે તમામ ચેકપોઇન્ટ્સના વર્ઝનિંગને પણ સક્ષમ કરે છે. મેટ્રિક્સ લોગિંગઃ ડીવીસી 2 એ નવી ઓપન-સોર્સ લાઇબ્રેરી ડીવીસી-લાઇવ રજૂ કરી જે મોડેલ મેટ્રિક્સને ટ્રેક કરવા અને મેટ્રિક્સને એવી રીતે ગોઠવવા માટે કાર્યક્ષમતા પ્રદાન કરશે કે જેથી ડીવીસી ગિટ ઇતિહાસમાં નેવિગેશન સાથે કલ્પના કરી શકે. ડીવીસીના વૈકલ્પિક ઉકેલો એવા ઘણા ઓપન સોર્સ પ્રોજેક્ટ છે જે ડીવીસીને સમાન ડેટા સંસ્કરણ નિયંત્રણ ક્ષમતાઓ પ્રદાન કરે છે, જેમ કેઃ ગિટ એલએફએસ, ડોલ્ટ અને લેકએફએસ. આ પ્રોજેક્ટ ડેટા ઇજનેરો અને ડેટા વૈજ્ઞાનિકોની વિવિધ જરૂરિયાતો અનુસાર અલગ અલગ હોય છે જેમ કેઃ માપનીયતા, સમર્થિત ફાઇલ બંધારણો, ટેબ્યુલર ડેટા અને અનસ્ટ્રક્ચર્ડ ડેટામાં સમર્થન, સમર્થિત ડેટાનું પ્રમાણ અને વધુ. સંદર્ભો બાહ્ય કડીઓ અપાચે લાઇસન્સ પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) લાઈબ્રેરીઓ પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) સોફ્ટવેર ડેટા માઇનિંગ અને મશીન લર્નિંગ સોફ્ટવેર 2017 સોફ્ટવેરનો ઉપયોગ કરીને પાયથોન સોફ્ટવેરમાં પ્રોગ્રામ કરેલ ફ્રી સોફ્ટવેર