Watafiti mara chache hulalamika kuhusu uhaba wa programu. Badala yake, wanakabiliwa na tatizo la kinyume: zana nyingi zisizounganishwa ambazo zimeunganishwa kwa kutumia shell scripts na matumaini tu. Mradi mpya wa chanzo huru unaitwa OpenScience unataka kuchukua nafasi ya mrundikano huo kwa kutumia benchi la kazi la AI (AI workbench) moja lililoundwa mahususi kwa ajili ya ugunduzi wa kisayansi. Uliojengwa kwa TypeScript na tayari umepata zaidi ya nyota 2,167 kwenye GitHub, unalenga kuipa maabara mazingira ya pamoja ambapo akili mnemba (artificial intelligence) husaidia kurahisisha mifumo ya kazi (workflows), kusimamia data za majaribio, na kuweka washiriki katika hali ya ushirikiano. Nia ni wazi. Ikiwa itaweza kuhimili uhalisia wa matengenezo ya chanzo huru na ushindani mkali ni swali lingine.

Kwa Nini Utafiti Unahitaji Benchi Lake la Kazi

Maendeleo ya kisayansi yanategemea uwezo wa kurudia matokeo (reproducibility). Matokeo hayana maana ikiwa timu nyingine haiwezi kufanya uchambuzi uleule na kufikia hitimisho lilelile. Hata hivyo, mifumo ya kisasa ya kujifunza kwa mashine (machine learning pipelines) inajulikana kwa kuwa na vurugu sana. Hatua za usindikaji wa awali (preprocessing) hujificha ndani ya seli za Jupyter zilizotawanyika. Hyperparameters huwekwa moja kwa moja kwenye skripti zisizo na maelezo. Seti za data (datasets) hunakiliwa, kubadilishwa majina, na kupotea kwenye diski zinazoshirikiwa. Mwanafunzi wa uzamili anapoondoka, mara nyingi mfumo wake wa kazi huondoka pamoja naye.

OpenScience inalenga kukabiliana na vurugu hiyo moja kwa moja. Kwa kutoa jukwaa lililounganishwa badala ya mkusanyiko wa maktaba (libraries) zisizounganishwa, inatumai kudhibiti uthabiti katika jinsi majaribio yanavyowekwa, kufuatiliwa, na kushirikiwa. Ushirikiano ndio msingi wa pendekezo hili. Badala ya kutuma kodi kwa barua pepe huku na kuku, au kupambana na udhibiti wa toleo (version control), watafiti watafanya kazi ndani ya mazingira ya pamoja ambayo huandika nani alibadilisha nini na lini. Kwa nyanja ambazo jaribio moja linaweza kuchukua wiki kadhaa za hesabu za kompyuta (computation), aina hiyo ya uwazi si anasa. Ni hitaji la lazima.

Kuweka Dau kwenye TypeScript kwa ajili ya Kodi za Kisayansi

Uamuzi wa kujenga hili kwa TypeScript haukutarajiwa. Machine learning inafanya kazi kwa Python. Basi. TensorFlow, PyTorch, na sehemu kubwa ya misingi ya kodi za utafiti imeandikwa kwa kutumia hiyo. Wanasayansi kwa kawaida hutumia Python au R kuandika skripti, na wengi wanajua JavaScript ya kutosha tu kurekebisha taswira ya wavuti (web visualization). Kwa hiyo, kwa nini TypeScript?

Timu ya uendelezaji inadai kuwa aina ya kudumu (static typing) huifanya kodi kuwa yenye mpangilio na inayoweza kuaminika. Katika kazi za kisayansi, kosa moja la aina (type error) linalojificha linaweza kufanya kazi ya maabara ya miezi kadhaa isifanye kazi. TypeScript hukamata aina nzima za hitilafu (bugs) wakati wa kuunganisha (compile time) badala ya kuziacha zije kusababisha matatizo wakati wa kazi ndefu ya mafunzo (training job). Kwa jukwaa linalotaka kuhakikisha uwezo wa kurudia matokeo, ukali huo unavutia.

Kuna mabadiliko ya kutoa na kupokea (trade-offs) ya kweli. TypeScript inavutia watengenezaji wanaothamini zana za kitaalamu, lakini inaweza kuwatenga watafiti ambao OpenScience inatumai kuwahudumia. Mwanabiolojia aliyejifunza JavaScript ya msingi ili kupanga data za utafiti lazima sasa akabiliane na interfaces, generics, na build pipeline. Hatua ya kujifunza ni ngumu. Ikiwa jukwaa litamlazimu kila mtumiaji kuwa mhandisi wa programu kabla ya kuweza kufundisha modeli, matumizi yake yatashuka. Dau ni kwamba faida ya muda mrefu katika uthabiti itazidi vikwazo vya muda mfupi vya kuanza kutumia.

Kile OpenScience Inachojanjua

Mradi unataka kurahisisha kazi mbili ambazo kwa sasa zinatumia nguvu kubwa ya akili: mafunzo ya modeli na ufuatiliaji wa majaribio. Badala ya kuwaomba watafiti kuunganisha zana kadhaa za command-line, OpenScience inapanga kutoa kiolesura (interface) kinachoshikamana. Pia inakusudia kuunganishwa na majitu ya nyanja hii, hasa TensorFlow na PyTorch, ili wanasayansi wasilazimike kuacha maktaba wanazozifahamu.

AI yenyewe inatarajiwa kufanya kazi kubwa. Benchi la kazi linakusudia kurahisisha mifumo ya kazi inayojirudia. Fikiria mifumo ya kusafisha data inayozalishwa yenyewe, mapendekezo ya akili kwa ajili ya hyperparameters kulingana na matokeo ya awali, au uandishi wa kumbukumbu (logging) wa kiotomatiki unaorekodi ni toleo gani hasa la seti ya data lililotoa matokeo fulani. Ikiwa maono hayo yatatimia, yanaweza kuwapa watafiti uhuru wa kuzingatia nadharia (hypotheses) badala ya miundombinu.

Hatari ya Kuongezeka kwa Uunganishaji (Integration Bloat)

Kila uunganishaji uliopangwa ni ahadi inayohitaji matengenezo. TensorFlow na PyTorch hutuma sasisho za mara kwa mara. Mabadiliko moja muhimu katika utegemezi wa msingi (core dependency) yanaweza kuathiri tabaka za uundaji (abstraction layers) za OpenScience na kuacha watumiaji wakitazama makosa ya kodi (stack traces) yasiyoeleweka badala ya kufanya majaribio. Maktaba nyingi zaidi yanamaanisha marekebisho mengi zaidi ya usalama, migongano zaidi ya matoleo, na fursa zaidi kwa jukwaa hilo kupoteza usawa na zana ambazo inapaswa kuzitumikia.

Ugumu wa usanidi ni muuaji wa kimyakimya wa programu za utafiti. Ikiwa kusakinisha OpenScience kunahitaji kupambana na viunganishi (drivers) vya CUDA, matoleo maalum ya Node.js, na mazingira ya Python yanayopingana, wanafunzi wa uzamili wenye shughuli nyingi watachagua tu kufungua tab ya Google Colab ambapo mazingira ya utendaji (runtime) yameandaliwa tayari. Utafiti hufanyika kwa ratiba ngumu. Hakuna mtu anayepata chapisho la kitaaluma kwa kutumia wiki tatu kurekebisha hitilafu za mfululizo wa zana (toolchain).

Watengenezaji wanaonekana kutambua mvutano huu. Changamoto yao ni kutoa nguvu ya kutosha ili iwe na manufaa bila kuwa nzito kiasi kwamba zana hiyo inashindwa kufanya kazi kutokana na uzito wake wenyewe.

Uendelevu katika Programu Huria

Programu huria (open-source) imefanya kila kitu kuwa cha kila mtu, kuanzia maendeleo ya wavuti hadi uchambuzi wa data. Kila mtu anaweza kukagua msimbo, kuchangia marekebisho, au kutengeneza nakala ya mradi (fork) kwa ajili ya matumizi maalum. Ufunguzi huo unafanya kazi vizuri wakati jamii kubwa ya wataalamu walioajiriwa inategemea msimbo huo kwa kazi zao za kila siku.

Zana za kisayansi za programu huria zinakabili ukweli tofauti. Ile nyota 2,167 za GitHub inaonekana kuwa ya matumaini, lakini nyota hazigharimii watu wanaosimamia programu. Mizunguko ya ruzuku huisha. Wanafunzi wa uzamili huendelea na mambo mengine. Bila msaada thabiti wa kitaasisi au timu kuu ya kujitolea, hata miradi bora inaweza kuganda. Ghala la msimbo (repository) linabaki bila matumizi kwa mwaka mzima, utegemezi (dependencies) unaharibika, na watumiaji wa awali wanabakiwa na msimbo uliotelekezwa ambao hauwezi tena kufanya kazi kwenye vifaa vya kisasa. Kwa jukwaa linalotaka kuandaa sayansi inayoweza kurudiwa (reproducible science), kuachwa bila kutumika ni mbaya zaidi kuliko kutokuwepo kabisa. OpenScience inahitaji msaada wa muda mrefu kutoka kwa vyuo vikuu, maabara, au mashirika ya ufadhili ikiwa itataka kuendelea kuishi zaidi ya vichwa vya habari.

Kushindana na Jupyter, Colab, na MATLAB

OpenScience inaingia katika mazingira yenye ushindani mkubwa. Jupyter Notebooks ndizo zana za msingi za utafiti wa uchunguzi katika Python. Google Colab iliondoa kikwazo cha vifaa (hardware) kwa kutoa GPU za bure ndani ya tab ya kivinjari. MATLAB bado inatawala idara za uhandisi zinazothamini sanduku zake za zana zinazoungwa mkono na dhamana na maarifa ya kitaasisi ya miongo kadhaa.

Ili kuwavuta watumiaji mbali na zana hizi zilizothibitika, OpenScience lazima itoe kitu ambacho wao hawatoi. Labda ni ushirikiano halisi wa watumiaji wengi bila ucheleweshaji (latency) wa vitabu vya kumbukumbu vilivyoshirikiwa. Labda ni muundo wa utawala ambapo wanasayansi, si watengenezaji wa programu pekee, ndio wanaongoza ramani ya mradi. Au labda ni kiwango cha utoaji matoleo ya majaribio (experiment versioning) kinachofanya uwezo wa kurudia utafiti uwe wa kiotomatiki badala ya kuwa jambo la baadae.

Chochote kitakachotofautisha, zana hiyo lazima ibaki inayofikika. Ikiwa itahitaji vituo vya kazi vya hali ya juu (high-end local workstations) au itadhani kuwa kila mtumiaji anajua jinsi ya kuendesha seva ya maendeleo (development server), haitawahi kutoka kwenye ukurasa wa mambo yanayovuma kwenye GitHub. Watafiti hulenga kupata majibu, si kusanidi programu.

Jaribio Halisi: Utawala Badala ya Msimbo

TypeScript safi na orodha ya sifa zenye malengo makubwa zitaweza kupeleka mradi mbali kwa kiasi fulani tu. Historia ya programu za kisayansi imejaa msimbo mzuri ulioshindwa kwa sababu ulijengwa na watengenezaji kwa ajili ya watengenezaji. Mwanasayansi wa maabara hahitaji kiolesura cha mtumiaji chenye kuvutia sana ikiwa programu ya kuingiza CSV inafeli kwenye data halisi. Wanahitaji zana zinazoheshimu kazi ngumu halisi ya utafiti: mtandao usio thabiti katika vituo vya nyanjani, mifumo ya faili iliyochafuka kutoka kwa vifaa vya zamani, na hitaji la lazima la kuthibitisha ni msimbo gani hasa uliozalisha mchoro gani kwa ajili ya mhakiki mwenye mashaka.

Mafanikio yanategemea utawala wa jamii. Watafiti wakuu, mameneja wa maabara, na wanafunzi wa uzamili wanahitaji sauti halisi katika kuamua nini kinapaswa kujengwa. OpenScience lazima ikutane na wanasayansi pale walipo, si pale watengenezaji wanapodhani wanapaswa kuwa.

Hitimisho

OpenScience ni jaribio la kuvutia kweli. Inatumia umakini wa uhandisi wa programu wa aina ya 'typed' kwenye ulimwengu uliovurugika na unaojirudia wa ugunduzi wa kisayansi. Mchanganyiko huo ni adimu katika nyanja inayotawaliwa na skripti za haraka za Python. Lakini chaguzi za kiufundi zina hatari, ushindani ni mkali, na njia kutoka kwenye nyota za GitHub hadi kwenye miundombinu endelevu ni ngumu. Msimbo uko wazi. Nyota zinazidi kuongezeka. Changamoto halisi sasa ni kujenga...