- OpenWorm एक प्रोजेक्ट है जिसका लक्ष्य सूक्ष्म nematode Caenorhabditis elegans (C. elegans) का व्यापक computational model बनाना है
- इसका approach bottom-up modeling है, जिसमें पिछले 10 वर्षों में किए गए scientific experiments से आए data को simulate करके देखा जाता है कि वर्म का behavior उभरता है या नहीं
- Docker container simulation के मुख्य components को एक साथ पैक करके local machine पर चलाने का environment है
- nervous system model c302 चलाना
- nervous system model के output का उपयोग करके 3D वर्म body model Sibernetic को parallel में चलाना
- nervous system और body model के behavior graphs बनाना
- body model output video बनाना
- default simulation run time को reasonable execution time के लिए सीमित रखा गया है, और example output की तुलना में लगभग 5% run time के बराबर partial output ही दिखाया जाता है {p:5}
- run requirements हैं: कम से कम 60GB free space, कम से कम 2GB RAM, git repository clone कर सकने वाला environment, और Docker installed होना
- execution flow
git clone, optional./build.sh,./run.sh, खत्म होने के बादstop.sh, और localoutputdirectory check करने से बना है - यदि
./build.shskip किया जाता है, तो OpenWorm Docker hub से latest release Docker image download की जाती है -d [num]argument से simulation time को milliseconds में बदला जा सकता है; default value15है, और पूरा example video बनाने के लिए value5000है./run-shell-only.shका उपयोगmaster_openworm.pyचलाने से पहले container में login करके checked-out codebase और installed system के अंदरूनी हिस्सों को देखने या modify करने के लिए है- installed items बदलने के लिए
Dockerfilemodify करें, और run items बदलने के लिएmaster_openworm.pymodify करें; इसके बाद local image rebuild करने के लिएbuild.shचलाना आवश्यक है - default output केवल कुछ images और videos को host system में export करता है; full simulation output या
worm_motion_log.txtजैसे data को Docker container से copy करना होगा stop.shcontainer और related files को remove करता है, इसलिए data निकालने से पहले इसे run नहीं करना चाहिए- additional docs http://docs.openworm.org पर उपलब्ध हैं, और repository में पूरे project को track करने के लिए high-level issues और milestones हैं
1 टिप्पणियां
Hacker News की राय
302 न्यूरॉन किसी ऐसे व्यक्ति को बहुत प्रभावशाली नहीं लग सकते जो 7 अरब+ पैरामीटर वाले neural networks का आदी हो
लेकिन ऐसे neural networks और जैविक न्यूरॉन्स में समानता लगभग उतनी ही है जितनी साइकिल और घोड़े में। दोनों काफी तेज़ चल सकते हैं, लेकिन एक 1 अरब साल से ज़्यादा के कठोर natural selection से विकसित हुआ है और दूसरा किसी एक मकसद के लिए बारीकी से tune की गई धातु की मशीन है
न्यूरॉन भी इसी तरह, व्यवहार को नियंत्रित करने वाले अरबों DNA base pairs वाली बेहद परिष्कृत जैविक मशीनें हैं, और जैविक systems और AI systems दोनों में न्यूरॉन्स का emergent behavior काफी दिलचस्प है
“ये न्यूरॉन्स action potentials fire नहीं करते, और voltage-gated sodium channels भी express नहीं करते” [1]
इसलिए यह तथ्य और भी दिलचस्प है कि इनमें nicotine addiction विकसित हो सकता है
“C. elegans स्तनधारियों जैसी nicotine behavioral responses दिखाता है, इसलिए इसे nicotine dependence research में भी इस्तेमाल किया जा सकता है। इसमें acute response, tolerance, withdrawal, sensitization शामिल हैं” [1]
[1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
ये circuits कुछ मायनों में neural networks जैसे दिखते हैं, और सबसे महत्वपूर्ण बात, इनके पास छोटी और लंबी अवधि तक बनी रहने वाली memory और state होती है। हर न्यूरॉन सीखने और व्यवहार करने में सक्षम एक जीवित इकाई के करीब है, model के अंदर का parameter नहीं
इसके उलट virtual “neuron” एक बहुत सरल गणितीय abstraction है, और जैविक न्यूरॉन की तुलना में इसकी computational complexity बेहद कम है। connectome सिर्फ इस बात का बहुत मोटा नक्शा है कि न्यूरॉन्स कैसे जुड़े हैं; यह किसी पूर्ण “neural network” की wiring diagram से बहुत दूर है
हो सकता है जैविक न्यूरॉन को एक बड़े neural network के भीतर state रखने वाले sub-neural network के रूप में model किया जा सके, लेकिन computationally equivalent मान भी लें, तो भी हमें बिल्कुल नहीं पता कि जैविक न्यूरॉन के computationally महत्वपूर्ण behavior को पूरी तरह व्यक्त करने के लिए कितने virtual “neurons” चाहिए होंगे
इसलिए 302 जैविक न्यूरॉन्स वाला कीड़ा computationally अरबों virtual neurons के बराबर भी हो सकता है, और सच में हमें पता नहीं
न्यूरॉन्स में memory होती है, इस लिहाज़ से यह LSTM network जैसा थोड़ा लग सकता है, और जैविक neural network सिर्फ feedforward नहीं होता, इसलिए यह निश्चित रूप से recurrent neural network के ज्यादा करीब है
इसी वजह से mind uploading की बात करने वालों को देखकर हंसी आती है। जब तक हम जैविक न्यूरॉन के संबंधित behavior को समझ और model नहीं कर लेते, और जीवित न्यूरॉन से उपयोगी state निकालने में सक्षम नहीं हो जाते, तब तक हंसी रुक नहीं सकती। फिलहाल यह 100% science fiction है, और जो लोग सोचते हैं कि हम जल्द ही mind upload कर पाएंगे, वे biology नहीं जानते
अगर ये मिलते-जुलते principles पर काम करते हैं, तो कीड़ा इतने छोटे resources से ऐसा behavior कैसे कर पाता है? उदाहरण के लिए, अगर यह पता चले कि कीड़े की क्षमता के लिए substrate की detailed properties जरूरी नहीं हैं, तो यह AI research के लिए अच्छी खबर हो सकती है
1990 के दशक में Ralph Siegel की lab में programming का काम करने का मौका मिला था, और वे इस तरह के कीड़े के connectome model पर भी research कर रहे थे
https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
वे connectome पर neuron responses simulate करने के लिए Hodgkin-Huxley equations का इस्तेमाल करते थे। किसी ने समझाया था कि Hodgkin-Huxley model इंसानी पैर को hinges से जुड़े तीन कठोर blocks के रूप में model करने जैसा है। कई models में उपयोगी होने के लिए यह पर्याप्त है, लेकिन पूरा explanation नहीं है
साथ ही, कीड़े के न्यूरॉन्स spike नहीं करते, और HH equations spike trains बनाने वाले neurons का वर्णन करती हैं, इसलिए कीड़े के neurons के लिए यह सही model नहीं भी हो सकता। ऐसे neurons अधिक जटिल nervous systems में मौजूद होते हैं
HH equations हमारे पास मौजूद mathematical model हैं, इसलिए simulations में इस्तेमाल होती हैं, और OpenWorm project में भी अभी इस्तेमाल होती दिखती हैं। कीड़े के neurons की properties के बारे में यह बात मैंने बहुत पहले सुनी थी, इसलिए जानकारी पुरानी हो सकती है
यह शानदार है कि यह काम जारी है, और nervous system कैसे काम करता है इस पर insight दे सकता है। लेकिन कठिनाई बहुत बड़ी है, और हम विशाल अज्ञात क्षेत्र में बहुत धीमे और मुश्किल तरीके से आगे बढ़ रहे हैं
तो क्या वे इंसानी न्यूरॉन्स से बहुत अलग हैं? वे कैसे काम करते हैं, और इस बारे में कहां पढ़ सकता हूं, यह जानना चाहूंगा
मुझे यह bottom-up approach पसंद है। क्योंकि यह बहुत अच्छी तरह दिखाता है कि हम life के बारे में अभी कितना कम जानते हैं
यहां Craig Venter के minimal cell project syn3.0 का भी उल्लेख किया जा सकता है। इस टीम ने 473 genes से बनी living synthetic cell बनाई, जिसमें काफी हिस्सा trial and error से हुआ, और उन genes में से कई का function आज भी unknown है
उसी team की हालिया review यहां है: https://doi.org/10.1016/j.cell.2022.06.046
यानी यह देखने का तरीका कि system ढहे बिना कौन-सा टुकड़ा हटाया जा सकता है
genome को artificial रूप से synthesize किया गया, यह technical fact एक तरह की showmanship के करीब है, और आखिरकार उसे existing cell के अंदर ही डालना पड़ा
यह कुछ ऐसा है जैसे किसी existing chip को copy करना, बस कुछ bits निकालकर बदल देना, और फिर कहना “indicator काम नहीं करता, लेकिन गाड़ी मोटे तौर पर चल जाती है”, और दावा करना कि कार scratch से बनाई गई है
Noam Chomsky कहते हैं कि AI दो तरह की होती है
पहला AI research वह है जो self-driving cars, language translation और object recognition जैसी चीज़ों की तरह engineering के करीब है
दूसरा AI research वह है जो cognitive scientists के models के अनुरूप तरीके से जीवों—जैसे इंसान या कीड़े—की intelligence को replicate करने की कोशिश करता है
उदाहरण के लिए, बच्चों की तरह बहुत कम supervision से कोई भी human language सीख लेने वाला system इसी प्रकार का होगा
OpenWorm, type 2 के ज्यादा करीब लगता है। ऐसी type 2 AI को और explore करने के लिए अगर कोई दिलचस्प resources हों, तो जानना चाहूंगा
[0]: https://youtu.be/TAP0xk-c4mk
कुछ साल पहले मैंने इसे देखा था, और हमेशा उम्मीद की थी कि Kurzweil-शैली की apocalypse वाली सोच में कुछ दम हो
पहले C. elegans को simulate करो, फिर बस scale बढ़ाकर इंसानों को भी simulate कर सकते हो, और फिर singularity आ जाएगी—कुछ ऐसा
सच कहें तो एक बेवकूफ-से कीड़े को simulate करना कितना मुश्किल हो सकता है? Connectome भी है और सारे neurons व connections भी पता हैं, तो आसान होना चाहिए था
लेकिन जब देखा तो झटका लगा। यह काम नहीं कर रहा था। कुछ basic movements reproduce किए जा सके, लेकिन असली कीड़ा जो कई behaviors करता है, वे अब भी mystery थे। Documentation से भी नहीं लगा कि लोग जल्द इसका हल निकालने वाले हैं, और कुछ साल बाद देखा तो लगता है आखिरकार छोड़ दिया गया
जहां तक मुझे पता है, hype किए गए European brain emulation project भी corruption के आरोपों के बीच बंद हो गया
हम इसे बिल्कुल नहीं समझते, और लगता है कि अभी बहुत दूर हैं। फिलहाल तो science fiction पर वापस लौटना पड़ेगा
हर synapse में खास neurotransmitter होता है, और distance, size, shape, receptor count, और संबंधित glial cells transmission पर बहुत बड़ा असर डालते हैं। Axon की दूरी और मोटाई भी transmit होने वाले signal की strength को प्रभावित करती है, और यह सब measure करना बहुत मुश्किल है
Neurons signal strength और timing के प्रति भी बहुत sensitive होते हैं। उदाहरण के लिए inhibitory synapse cell wall में छेद खोलकर काम करता है, जिससे समय के साथ charge leak होता है। उस speed में थोड़ा-सा भी फर्क cell के behavior को काफी बदल सकता है
Connectome को यूं कहें तो पागलपन-भरी complex pre-trained model जैसा समझा जा सकता है, और हर neuron में signal पर direct response के अलावा समय के साथ behavior समझाने वाले कई weights होते हैं। उन weights के बिना emulation नहीं हो सकता
Devs का पहला episode याद आ गया
https://www.imdb.com/title/tt8134186/
इसमें एक scene है जहां AI engineer एक nematode की movements synchronize करने के बाद उसकी future movements predict करने का demo दिखाता है। वैसे यह सच में बहुत अच्छा drama है
जानकारी के आधार पर बहुत सटीक extrapolate करने का concept इस drama के core में है, लेकिन मैं यहीं तक कहूंगा
Fruit fly brain का connectome model हाल ही में release हुआ है[1]
[1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...
यहां तक कि यह संभव है, इसे साबित करने से भी अभी बहुत दूर हैं
इसलिए neurokernel [1] जैसे projects थोड़े ज्यादा ambitious लगते हैं। फिर भी शुभकामनाएं
[1] http://neurokernel.github.io/
कुछ साल पहले London में OpenWorm की mini conference जैसी एक event में गया था
कई दिनों तक worm locomotion पर चर्चा हुई। मुझे कीड़ों या animal locomotion के बारे में कुछ नहीं पता था, और life simulation में amateur interest रखने वाला पूरी तरह outsider था, इसलिए बहुत कम समझ आया
फिर भी यह सच में fascinating था, और इस topic के लिए passionate लोगों से मिलना बहुत अच्छा लगा
अगर simulation बंद कर दें, तो क्या हमने कीड़े को मार दिया?
OpenWorm के founding member के रूप में, लगभग 10 साल पहले मैंने connectome को emulate करके robotics में apply किया था
https://youtu.be/YWQnzylhgHc
इस experiment में हर neuron को एक program के रूप में represent किया गया, और अलग-अलग neuron programs के बीच communication के लिए UDP messages इस्तेमाल किए गए। कई problems थीं, जिनमें सबसे बड़ी यह थी कि connectome बहुत cyclic है, जिससे experiment में “UDP stacking” कहा गया phenomenon हुआ। यानी activation signals वाले UDP messages program के process कर पाने की speed से ज्यादा तेजी से आने लगे
अब तक complete हुए Drosophila connectome को download करके emulation बना रहा हूं। Neurons या neuropil को emulate करने के लिए hypervectors explore कर रहा हूं, लेकिन अभी concept refine करने के चरण में हूं
Adjacency matrix, functional programming वगैरह कई ideas भी आजमाए। तरीका यह है कि हर function animal nervous system के एक हिस्से को represent करे; C. elegans के मामले में sensory neurons, interneurons और motor neurons को तीन अलग functions और programs के रूप में देखने जैसा
C. elegans emulation एक single Python app के रूप में भी implement हुआ और कई दूसरी programming languages में भी port किया गया, और कई robots पर स्पष्ट emulation दिखाया गया। Ablation experiments ने दिखाया कि emulated nervous system observable behavior के जरिए biological nervous system से match करता है
Nervous system की evolutionary continuum में एक छोर पर worm brain है और दूसरे छोर पर human brain। लेकिन सिर्फ worm nervous system से भी general intelligence और AGI की ओर जाने वाला gateway साफ दिखता है