ஆராய்ச்சியாளர்கள் மென்பொருள் பற்றாக்குறை குறித்து அரிதாகவே புகார் கூறுகிறார்கள். மாறாக, அவர்கள் அதற்கு நேர்மாறான பிரச்சனையை எதிர்கொள்கிறார்கள்: ஷெல் ஸ்கிரிப்ட்கள் (shell scripts) மற்றும் நம்பிக்கையின் அடிப்படையில் இணைக்கப்பட்ட சிதறிய கருவிகள் அதிகம் இருப்பது. OpenScience எனப்படும் புதிய திறந்த மூலத் திட்டம் (open-source project), அந்தத் தற்காலிகத் தீர்வுகளுக்குப் பதிலாக, அறிவியல் கண்டுபிடிப்புகளுக்காகவே பிரத்யேகமாக வடிவமைக்கப்பட்ட ஒரு ஒற்றை AI பணித்தளத்தை (AI workbench) உருவாக்க விரும்புகிறது. TypeScript-இல் கட்டமைக்கப்பட்டு, ஏற்கனவே GitHub-இல் 2,167-க்கும் மேற்பட்ட நட்சத்திரங்களைப் (stars) பெற்றுள்ள இது, ஆய்வகங்களுக்கு ஒரு பொதுவான சூழலை வழங்க இலக்கு கொண்டுள்ளது. அங்கு செயற்கை நுண்ணறிவு பணிப்பாய்வுகளைத் தானியக்கமாக்கவும் (automate workflows), சோதனைத் தரவை நிர்வகிக்கவும் மற்றும் இணைந்து பணியாற்றுபவர்களை ஒருங்கிணைக்கவும் உதவும். இதன் நோக்கம் தெளிவானது. ஆனால், திறந்த மூலப் பராமரிப்பின் யதார்த்தங்கள் மற்றும் ஏற்கனவே உள்ள கடும் போட்டிகளை இது சமாளிக்குமா என்பது மற்றொரு கேள்வி.
ஆராய்ச்சிக்கு ஏன் ஒரு தனிப்பட்ட பணித்தளம் தேவை?
அறிவியல் முன்னேற்றம் மறுஉற்பத்தித்தன்மையை (reproducibility) நம்பியுள்ளது. மற்றொரு குழுவால் அதே பகுப்பாய்வைச் செய்து அதே முடிவை எட்ட முடியாவிட்டால், ஒரு முடிவிற்குப் பயன் ஏதுமில்லை. இருப்பினும், நவீன இயந்திரக் கற்றல் பணிப்பாய்வுகள் (machine learning pipelines) மிகவும் குழப்பமானவை. முன்செயலாக்க நிலைகள் (Preprocessing steps) சிதறிக்கிடக்கும் Jupyter செல்களுக்குள் மறைந்துள்ளன. ஹைப்பர் பாராமீட்டர்கள் (Hyperparameters) ஆவணப்படுத்தப்படாத ஸ்கிரிப்ட்களில் நேரடியாகக் குறியிடப்படுகின்றன. தரவுத்தொகுப்புகள் (Datasets) பகிரப்பட்ட டிரைவ்களில் நகலெடுக்கப்பட்டு, பெயர் மாற்றப்பட்டு, தொலைந்து போகின்றன. ஒரு முதுகலை மாணவர் ஆய்வகத்திலிருந்து வெளியேறும்போது, அவரது பணிப்பாய்வும் பெரும்பாலும் அவருடனேயே வெளியேறிவிடுகிறது.
OpenScience அந்த குழப்பத்தை நேரடியாகத் தீர்க்க முயல்கிறது. கருவிகளின் ஒரு தொகுப்பாக இல்லாமல், ஒரு ஒருங்கிணைந்த தளத்தை வழங்குவதன் மூலம், சோதனைகள் எவ்வாறு அமைக்கப்படுகின்றன, கண்காணிக்கப்படுகின்றன மற்றும் பகிரப்படுகின்றன என்பதில் ஒருமைப்பாட்டை (consistency) நிலைநாட்ட அது hopes செய்கிறது. ஒத்துழைப்பு (Collaboration) என்பது இதன் முக்கிய அம்சமாகும். குறியீடுகளை மின்னஞ்சல் மூலம் பரிமாறிக்கொள்வதற்குப் பதிலாக அல்லது பதிப்பு கட்டுப்பாட்டுடன் (version control) போராடுவதற்குப் பதிலாக, ஆராய்ச்சியாளர்கள் யார், எப்போது, எதை மாற்றினார்கள் என்பதைப் பதிவு செய்யும் ஒரு பொதுவான சூழலில் பணியாற்ற முடியும். ஒரு ஒற்றைச் சோதனை வாரம் முழுவதற்கும் கணக்கீடுகளைச் செய்ய வேண்டிய துறைகளுக்கு, இத்தகைய வெளிப்படைத்தன்மை ஒரு ஆடம்பரம் அல்ல; அது ஒரு அவசியம்.
அறிவியல் குறியீட்டிற்கு TypeScript-ஐப் பயன்படுத்துதல்
இதை TypeScript-இல் கட்டமைக்கத் தேர்ந்தெடுத்தது எதிர்பாராத ஒன்று. இயந்திரக் கற்றல் Python-இல் இயங்குகிறது. அவ்வளவுதான். TensorFlow, PyTorch மற்றும் பெரும்பாலான ஆராய்ச்சி குறியீட்டுத் தொகுப்புகள் (codebases) இதிலேயே எழுதப்பட்டுள்ளன. விஞ்ஞானிகள் பொதுவாக Python அல்லது R ஆகியவற்றில் குறியீடுகளை எழுதுகிறார்கள், மேலும் பலர் இணையக் காட்சிப்படுத்தலுக்கு (web visualization) தேவையான அளவு மட்டுமே JavaScript அறிவார்கள். அப்படியிருக்க ஏன் TypeScript?
நிலையான வகைப்படுத்துதல் (static typing) குறியீட்டை ஒழுங்காகவும் நம்பகமானதாகவும் வைத்திருக்கும் என்று மேம்பாட்டுக் குழு வாதிடுகிறது. அறிவியல் பணியில், ஒரு சிறிய வகை பிழை (type error) கூட பல மாத கால ஆய்வை வீணடித்துவிடும். TypeScript பிழைகளை ஒரு நீண்ட நேரப் பயிற்சிப் பணியின் (training job) போது வெடிக்க விடுவதற்குப் பதிலாக, தொகுக்கும் நேரத்திலேயே (compile time) கண்டறிந்துவிடுகிறது. மறுஉற்பத்தித்தன்மையை உறுதிப்படுத்த விரும்பும் ஒரு தளத்திற்கு, இத்தகைய துல்லியம் மிகவும் அவசியமானது.
இதில் சில சவால்களும் உள்ளன. TypeScript தொழில்முறை கருவிகளை மதிக்கும் மேம்பாட்டકર્ஷர்களை ஈர்க்கும், ஆனால் OpenScience சேவை செய்ய விரும்பும் ஆராய்ச்சியாளர்களை அது அந்நியப்படுத்தக்கூடும். ஒரு ஆய்வறிக்கையின் தரவை வடிவமைக்க அடிப்படை JavaScript கற்ற ஒரு உயிரியலாளர், இப்போது இன்டர்ஃபேஸ்கள் (interfaces), ஜெனரிக்ஸ் (generics) மற்றும் ஒரு பில்ட் பைப்லைன் (build pipeline) ஆகியவற்றைக் கையாள வேண்டியிருக்கும். இதைக் கற்றுக்கொள்வது சவாலானது. ஒரு பயனர் ஒரு மாதிரியைப் பயிற்றுவிப்பதற்கு முன்பே மென்பொருள் பொறியாளராக மாற வேண்டிய கட்டாயம் ஏற்பட்டால், அதன் பயன்பாடு தடைபடும். ஆனால், நீண்ட கால நிலைத்தன்மை தரும் பலன், தொடக்கக்காலக் கற்றல் சிரமங்களை விட அதிகமாக இருக்கும் என்பதே இந்தத் திட்டத்தின் நம்பிக்கை.
OpenScience என்ன வாக்குறுதி அளிக்கிறது?
தற்போது அதிக மன உழைப்பைச் செலவிடும் இரண்டு பணிகளை எளிதாக்க இந்தத் திட்டம் விரும்புகிறது: மாதிரிப் பயிற்சி (model training) மற்றும் சோதனை கண்காணிப்பு (experiment tracking). ஆராய்ச்சியாளர்களைப் பல கமாண்ட்-லைன் பயன்பாடுகளை (command-line utilities) இணைக்கச் சொல்வதற்குப் பதிலாக, OpenScience ஒரு ஒருங்கிணைந்த இடைமுகத்தை (cohesive interface) வழங்கத் திட்டமிட்டுள்ளது. மேலும், விஞ்ஞானிகள் தங்களுக்குப் பழக்கமான நூலகங்களை (libraries) விட்டுவிட வேண்டிய அவசியம் இல்லாதவாறு, குறிப்பாக TensorFlow மற்றும் PyTorch ஆகியவற்றுடன் ஒருங்கிணைக்கப்படவும் இது திட்டமிட்டுள்ளது.
AI தானாகவே சில கடினமான வேலைகளைச் செய்ய வேண்டும். இந்த பணித்தளம் மீண்டும் மீண்டும் செய்யப்படும் பணிகளைத் தானியக்கமாக்க இலக்கு கொண்டுள்ளது. தானாக உருவாக்கப்பட்ட தரவு சுத்திகரிப்பு பணிப்பாய்வுகள் (data cleaning pipelines), முந்தைய சோதனைகளின் அடிப்படையில் ஹைப்பர் பாராமீட்டர்களுக்கான புத்திசாலித்தனமான பரிந்துரைகள் அல்லது ஒரு குறிப்பிட்ட முடிவைத் தந்த தரவுத்தொகுப்பின் சரியான பதிப்பு எது என்பதைப் பதிவு செய்யும் தானியங்கி பதிவேற்றம் (automated logging) ஆகியவற்றைக் கருதலாம். இந்தத் திட்டம் நனவானால், ஆராய்ச்சியாளர்கள் உள்கட்டமைப்பிற்குப் பதிலாகத் தங்கள் கருதுகோள்களில் (hypotheses) கவனம் செலுத்த இது வழிவகுக்கும்.
ஒருங்கிணைப்புச் சுமையின் ஆபத்து (Integration Bloat)
ஒவ்வொரு திட்டமிடப்பட்ட ஒருங்கிணைப்பும் பராமரிப்பு தேவைப்படும் ஒரு வாக்குறுதியாகும். TensorFlow மற்றும் PyTorch அடிக்கடி புதுப்பிப்புகளை வெளியிடுகின்றன. ஒரு முக்கிய சார்புத் தொகுப்பில் (core dependency) ஏற்படும் ஒரு சிறிய மாற்றம், OpenScience-இன் அடுக்குகள் வழியாகப் பரவி, பயனர்களைச் சோதனைகளைச் செய்வதற்குப் பதிலாக புரியாத ஸ்டாக் ட்ரேஸ்களை (stack traces) பார்த்துக் கொண்டிருக்கச் செய்துவிடும். அதிக நூலகங்கள் (libraries) என்பது அதிக பாதுகாப்புத் திருத்தங்கள் (security patches), அதிக பதிப்பு மோதல்கள் (version conflicts) மற்றும் அந்தத் தளம் தான் சேவை செய்ய வேண்டிய கருவிகளிலிருந்து விலகிச் செல்லும் வாய்ப்புகளையும் குறிக்கும்.
அமைப்பினை நிறுவும் சிக்கல்கள் (Setup complexity) ஆராய்ச்சி மென்பொருட்களின் அமைதியான கொலையாளி. OpenScience-ஐ நிறுவ CUDA drivers, குறிப்பிட்ட Node.js பதிப்புகள் மற்றும் ஒன்றுடன் ஒன்று முரண்படும் Python சூழல்களுடன் போராட வேண்டியிருந்தால், வேலையில் மூழ்கியிருக்கும் பட்டதாரி மாணவர்கள், runtime ஏற்கனவே கட்டமைக்கப்பட்டிருக்கும் Google Colab பக்கத்தையே பயன்படுத்துவார்கள். ஆராய்ச்சி என்பது மிகக் குறுகிய காலக்கெடுவுக்குள் நடப்பவை. ஒரு கருவியின் பிழைகளைத் திருத்துவதிலேயே (debugging) மூன்று வாரங்களைச் செலவிடுவதன் மூலம் யாரும் ஆய்வறிக்கையை (publication) வெளியிட முடியாது.
டெவலப்பர்கள் இந்த முரண்பாட்டை உணர்ந்துள்ளதாகத் தெரிகிறது. ஒரு கருவி அதன் சொந்த எடையிலேயே முறிந்துவிடாத வகையில், பயனுள்ள வகையில் போதுமான ஆற்றலை வழங்க வேண்டும் என்பதே அவர்களின் சவாலாகும்.
திறந்த நிலையில் நிலைத்தன்மை (Sustainability in the Open)
திறந்த மூல மென்பொருள் (Open-source software) இணைய மேம்பாடு முதல் தரவு பகுப்பாய்வு வரை அனைத்தையும் ஜனநாயகப்படுத்தியுள்ளது. யார் வேண்டுமானாலும் குறியீட்டைப் பரிசோதிக்கலாம், ஒரு திருத்தத்திற்கு பங்களிக்கலாம் அல்லது ஒரு குறிப்பிட்ட பயன்பாட்டிற்காகத் திட்டத்தைப் பிரிக்கலாம் (fork). ஒரு பெரிய தொழில்முறை சமூகத்தினர் தங்கள் அன்றாட வேலைகளுக்காக இந்த குறியீட்டுத் தொகுப்பைச் சார்ந்து இருக்கும்போது, இத்தகைய திறந்த தன்மை சிறப்பாகச் செயல்படும்.
அறிவியல் சார்ந்த திறந்த மூலக் கருவிகள் வேறுபட்ட யதார்த்தத்தை எதிர்கொள்கின்றன. அந்த 2,167 GitHub stars நம்பிக்கையளிக்கின்றன, ஆனால் அந்த நட்சத்திரங்கள் பராமரிப்பாளர்களுக்கு நிதி வழங்குவதில்லை. மானியக் கால சுழற்சிகள் முடிந்துவிடும். பட்டதாரி மாணவர்கள் அடுத்த நிலைக்குச் சென்றுவிடுவார்கள். நிலையான நிறுவன ஆதரவு அல்லது அர்ப்பணிப்புள்ள ஒரு முக்கியக் குழு இல்லையென்றால், சிறந்த திட்டங்கள் கூடச் செயலற்றதாகிவிடும். அந்தத் தொகுப்பு (repository) ஒரு year காலத்திற்கு அப்படியே இருக்கும், சார்புத் தேவைகள் (dependencies) காலாவதியாகிவிடும், மேலும் ஆரம்பகாலப் பயனர்கள் நவீன வன்பொருட்களுடன் இயங்காத கைவிடப்பட்ட குறியீடுகளுடன் (orphaned code) விடப்படுவார்கள். மீண்டும் நிகழ்த்தக்கூடிய அறிவியலை (reproducible science) வழங்க விரும்பும் ஒரு தளத்திற்கு, கைவிடப்படுவது என்பது அது இருந்ததே இல்லை என்பதை விட மோசமானது. OpenScience செய்திகளில் இடம்பெறுவதைத் தாண்டி உயிர்வாழ வேண்டுமானால், பல்கலைக்கழகங்கள், ஆய்வகங்கள் அல்லது நிதி வழங்கும் அமைப்புகளிடமிருந்து நீண்டகால ஆதரவு தேவை.
Jupyter, Colab மற்றும் MATLAB ஆகியவற்றுடன் போட்டியிடுதல்
OpenScience ஒரு நெரிசலான சூழலுக்குள் நுழைகிறது. Python-இல் ஆய்வு ரீதியான ஆராய்ச்சிக்கான இயல்பான கையேடாக Jupyter Notebooks உள்ளன. Google Colab, உலாவியின் (browser) உள்ளேயே இலவச GPU-களை வழங்குவதன் மூலம் வன்பொருள் தடையை நீக்கியுள்ளது. அதன் உத்தரவாதம் அளிக்கப்பட்ட டூல் பாக்ஸ்கள் (toolboxes) மற்றும் பல தசாப்த கால நிறுவன அறிவின் காரணமாக பொறியியல் துறைகளில் MATLAB இன்றும் ஆதிக்கம் செலுத்துகிறது.
இந்த நிலைபெற்ற கருவிகளிலிருந்து பயனர்களை ஈர்க்க வேண்டுமானால், OpenScience அவை வழங்காத ஒன்றை வழங்க வேண்டும். ஒருவேளை அது பகிரப்பட்ட நோட்புக்குகளின் தாமதமின்றி (latency) பல பயனர்கள் இணைந்து செயல்படும் உண்மையான ஒத்துழைப்பாக இருக்கலாம். அல்லது மென்பொருள் டெவலப்பர்கள் மட்டுமல்லாது, விஞ்ஞானிகளும் திட்டத்தின் பாதையைத் தீர்மானிக்கும் ஒரு நிர்வாகக் கட்டமைப்பாக இருக்கலாம். அல்லது ஒரு பரிசோதனையின் பதிப்பு மேலாண்மை (experiment versioning) என்பது ஒரு கூடுதல் விஷயமாக இல்லாமல், தானாகவே நிகழ்த்தக்கூடியதாக (automatic) இருக்கலாம்.
தனித்துவமான அம்சம் எதுவாக இருந்தாலும், அந்தத் கருவி எளிதில் அணுகக்கூடியதாக இருக்க வேண்டும். அது உயர் ரக உள்ளூர் பணித்தளங்களைக் (high-end local workstations) கோரினாலோ அல்லது ஒவ்வொரு பயனரும் ஒரு டெவலப்மென்ட் சர்வரை இயக்குவதில் வல்லவர்களாக இருக்க வேண்டும் என்று எதிர்பார்த்தாலோ, அது ஒருபோதும் GitHub trending பக்கத்தை விட்டு வெளியேறாது. ஆராய்ச்சியாளர்கள் பதில்களைப் பெறுவதிலேயே கவனம் செலுத்துகிறார்கள், மென்பொருளைத் தயார் செய்வதில் அல்ல.
உண்மையான சோதனை: குறியீட்டை விட நிர்வாகமே முக்கியம் (Governance Over Code)
தூய்மையான TypeScript மற்றும் லட்சியமான அம்சங்களின் பட்டியல் ஒரு திட்டத்தை ஒரு குறிப்பிட்ட தூரம் மட்டுமே கொண்டு செல்லும். அறிவியல் மென்பொருட்களின் வரலாறு, டெவலப்பர்களுக்காக டெவலப்பர்களால் உருவாக்கப்பட்டதால் தோல்வியடைந்த அழகான குறியீட்டுத் தொகுப்புகளால் நிறைந்துள்ளது. ஒரு CSV இறக்குவிப்பாளர் (importer) நிஜ உலகத் தரவுகளில் செயலிழந்துவிட்டால், ஒரு ஆய்வக விஞ்ஞானிக்குத் திகைப்பூட்டும் பயனர் இடைமுகம் (user interface) தேவையில்லை. அவர்களுக்கு ஆராய்ச்சியின் உண்மையான சவால்களைக் கையாளக்கூடிய கருவிகள் தேவை: களப்பணியிடங்களில் அவ்வப்போது ஏற்படும் இணையத் தடைகள், பழைய கருவிகளிலிருந்து வரும் ஒழுங்கற்ற கோப்பு வடிவங்கள் (messy file formats), மற்றும் ஒரு சந்தேகப்படும் ஆய்வாளருக்கு (skeptical reviewer) எந்தக் குறியீடு எந்த வரைபடத்தை உருவாக்கியது என்பதைத் துல்லியமாக நிரூபிக்க வேண்டிய கட்டாயம்.
வெற்றி என்பது சமூக நிர்வாகத்தைப் (community governance) பொறுத்தது. என்ன உருவாக்கப்பட வேண்டும் என்பதைத் தீர்மானிப்பதில் முதன்மை ஆய்வாளர்கள், ஆய்வக மேலாளர்கள் மற்றும் பட்டதாரி மாணவர்கள் உண்மையானக் குரலைக் கொண்டிருக்க வேண்டும். டெவலப்பர்கள் விஞ்ஞானிகள் எங்கு இருக்க வேண்டும் என்று நினைக்கிறார்களோ அங்கு அல்ல, விஞ்ஞானிகள் தற்போது எங்கு இருக்கிறார்களோ அங்கு OpenScience அவர்களைச் சென்றடைய வேண்டும்.
சுருக்கமாகச் சொன்னால்
OpenScience என்பது உண்மையிலேயே ஒரு சுவாரஸ்யமான சோதனை முயற்சி. இது அறிவியல் கண்டுபிடிப்புகளின் சிக்கலான மற்றும் தொடர்ச்சியான உலகிற்கு, வகைப்படுத்தப்பட்ட மென்பொருள் பொறியியலின் (typed software engineering) துல்லியத்தைப் பயன்படுத்துகிறது. விரைவான Python ஸ்கிரிப்டுகளால் ஆதிக்கம் செலுத்தப்படும் ஒரு துறையில் இத்தகைய கலவை அரிதானது. ஆனால் தொழில்நுட்பத் தேர்வுகள் அபாயங்களைக் கொண்டுள்ளன, போட்டி கடுமையாக உள்ளது, மேலும் GitHub stars-லிருந்து நிலையான உள்கட்டமைப்பிற்கான பாதை மிகவும் கடினமானது. குறியீடு திறந்த நிலையில் உள்ளது. நட்சத்திரங்கள் (stars) குவிந்து வருகின்றன. உண்மையான சவால் இப்போது கட்டமைப்பினை உருவாக்குவதுதான்...
