OpenWorm - C. elegans solucanının bilgisayar modeli
(github.com/openworm)- OpenWorm, mikroskobik bir nematod olan Caenorhabditis elegans (C. elegans) için kapsamlı bir hesaplamalı model oluşturmayı hedefleyen bir projedir
- Yaklaşım, son 10 yılda yürütülen bilimsel deneylerden elde edilen verileri simüle ederek solucan davranışının ortaya çıkıp çıkmadığını gözlemleyen aşağıdan yukarı modellemedir
- Docker konteyneri, simülasyonun ana bileşenlerini bir araya getirip yerel makinede çalıştıran bir ortamdır
- Sinir sistemi modeli c302’yi çalıştırma
- Sinir sistemi modelinin çıktısını kullanarak 3B solucan gövdesi modeli Sibernetic’i paralel çalıştırma
- Sinir sistemi ve gövde modelinin çalışma grafiklerini oluşturma
- Gövde modeli çıktısının videosunu oluşturma
- Varsayılan simülasyon çalışma süresi, makul bir çalıştırma süresi için sınırlandırılmıştır; örnek çıktıyla karşılaştırıldığında yalnızca yaklaşık %5 çalışma süresine karşılık gelen kısmi çıktı gösterilir {p:5}
- Çalıştırma gereksinimleri: en az 60GB boş alan, en az 2GB RAM, git deposunu klonlayabilecek bir ortam ve Docker kurulumu
- Çalıştırma akışı
git clone, isteğe bağlı./build.sh,./run.sh, bitincestop.shve yereloutputdizinini kontrol etme adımlarından oluşur ./build.shatlanırsa OpenWorm Docker hub üzerinden en son sürüm Docker imajı indirilir-d [num]argümanıyla simülasyon süresi milisaniye cinsinden değiştirilebilir; varsayılan değer15, tam örnek video oluşturmak için gereken değer5000’dir./run-shell-only.sh,master_openworm.pyçalıştırılmadan önce konteynere giriş yaparak checkout edilmiş kod tabanını ve kurulu sistemin içini incelemek ya da değiştirmek içindir- Kurulum öğelerini değiştirmek için
Dockerfile, çalıştırılan öğeleri değiştirmek içinmaster_openworm.pydüzenlenir; ardından yerel imajı yeniden oluşturmak içinbuild.shçalıştırmak gerekir - Varsayılan çıktı yalnızca bazı görselleri ve videoları host sisteme aktarır; tüm simülasyon çıktıları veya
worm_motion_log.txtgibi veriler Docker konteynerinden kopyalanmalıdır stop.sh, konteyneri ve ilgili dosyaları kaldırdığı için verileri dışarı almadan önce çalıştırılmamalıdır- Ek belgeler http://docs.openworm.org adresinde sağlanır; depoda proje genelini izlemek için high-level issues ve milestones bulunur
1 yorum
Hacker News görüşleri
302 nöron, 7 milyar+ parametreli sinir ağlarına alışkın biri için çok etkileyici görünmeyebilir
Ancak bu tür sinir ağlarıyla biyolojik nöronların ortak yanı, bisikletle atın ortak yanı kadar yakındır. İkisi de epey hızlı hareket edebilir, ama biri 1 milyar yılı aşkın acımasız doğal seçilimle evrimleşti, diğeri ise tek bir amaca göre hassas biçimde ayarlanmış metal bir makinedir
Nöronlar da benzer şekilde, davranışı kontrol eden milyarlarca DNA baz çiftiyle şekillenen son derece sofistike biyolojik makinelerdir ve biyolojik sistemlerle yapay zeka sistemlerinde nöronların ortaya çıkan davranışı oldukça ilgi çekicidir
“Bu nöronlar aksiyon potansiyeli üretmez ve voltaj kapılı sodyum kanallarını da ifade etmez” [1]
Bu yüzden nikotin bağımlılığının ortaya çıkabilmesi daha da ilginçtir
“C. elegans, memelilere benzer nikotin davranışsal tepkileri gösterdiği için nikotin bağımlılığı araştırmalarında da kullanılabilir. Buna akut yanıt, tolerans, yoksunluk ve duyarlılaşma dahildir” [1]
[1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
Bu devreler bazı açılardan sinir ağlarını andırır ve daha da önemlisi, kısa ve uzun zaman ölçeklerinde kalıcı bellek ve durum taşırlar. Her nöron, model içindeki bir parametreden ziyade öğrenme ve davranış kapasitesine sahip yaşayan bir varlığa daha yakındır
Buna karşılık sanal “nöron”, son derece basit bir matematiksel soyutlamadır ve biyolojik nörona kıyasla hesaplama karmaşıklığı ezici biçimde daha düşüktür. Connectome, nöronların nasıl bağlandığına dair yalnızca çok kaba bir haritadır; eksiksiz bir “sinir ağı” şemasından çok uzaktır
Biyolojik bir nöronu, daha büyük bir sinir ağı içindeki durum taşıyan alt bir sinir ağı olarak modellemek mümkün olabilir, ancak hesaplama açısından eşdeğer olduğunu varsaysak bile biyolojik nöronun hesaplama bakımından önemli tüm davranışlarını temsil etmek için kaç sanal “nöron” gerektiğini hiç bilmiyoruz
Bu yüzden 302 biyolojik nörona sahip bir solucan, hesaplama açısından milyarlarca sanal nörona eşdeğer olabilir; gerçekten bilmiyoruz
Nöronlarda bellek bulunması açısından LSTM ağlarına biraz benzetilebilir ve biyolojik sinir ağları basit bir ileri beslemeli yapı olmadığından kesinlikle tekrarlayan sinir ağlarına daha yakındır
Bu yüzden mind uploading hakkında konuşanları görünce gülüyorum. Biyolojik nöronların ilgili davranışlarını anlayıp modelleyebilene ve yaşayan nöronlardan kullanılabilir durum bilgisi çıkarabilene kadar gülmeyi bırakamam. Şu anda bu %100 bilim kurgu ve yakında zihnimizi upload edebileceğimizi düşünenler biyolojiyi bilmiyor
Benzer ilkelerle çalışıyorlarsa, solucan bu kadar küçük kaynaklarla bu davranışları nasıl sergileyebiliyor? Örneğin solucanın yeteneklerinde substratın ayrıntılı özelliklerinin vazgeçilmez olmadığı ortaya çıkarsa, bu yapay zeka araştırmaları için iyi haber olabilir
1990’larda Ralph Siegel’in laboratuvarında programlama işi yapma fırsatım olmuştu ve o da bu tür solucan connectome modelleri üzerinde çalışıyordu
https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
Connectome üzerinde nöron tepkilerini simüle etmek için Hodgkin-Huxley denklemlerini kullanıyordu. Bana anlatıldığı kadarıyla Hodgkin-Huxley modeli, insan bacağını menteşelerle bağlanmış üç sert blok olarak modellemeye benziyor. Birçok model için yeterince kullanışlıdır ama tam bir açıklama değildir
Ayrıca solucan nöronları spike üretmez ve HH denklemleri spike trenleri üreten nöronları tanımladığı için solucan nöronları için uygun bir model olmayabilir. Bu tür nöronlar daha karmaşık sinir sistemlerinde bulunur
HH denklemleri elimizdeki matematiksel model olduğu için simülasyonlarda kullanılıyor ve OpenWorm projesinde de hâlâ kullanılıyor gibi görünüyor. Solucan nöronlarının özellikleri hakkında bunu uzun zaman önce duymuştum, dolayısıyla bilgilerim eski olabilir
Bu çalışmanın sürüyor olması harika ve sinir sisteminin nasıl işlediğine dair içgörüler sağlayabilir. Ama zorluk seviyesi muazzam ve devasa bir bilinmezlik alanında çok yavaş ve zahmetli biçimde ilerleniyor
Bu durumda insan nöronlarından çok mu farklılar? Nasıl çalıştıklarını ve bununla ilgili nereden okuyabileceğimi merak ediyorum
Bu tür bottom-up yaklaşımı seviyorum. Çünkü yaşam hakkında hâlâ ne kadar az şey bildiğimizi çok iyi gösteriyor
Burada Craig Venter’ın minimum hücre projesi syn3.0’dan da söz etmeye değer. Bu ekip 473 genden oluşan yaşayan sentetik bir hücre yaptı; bunun önemli bir kısmı deneme yanılmayla gerçekleşti ve o genlerin çoğunun işlevi hâlâ bilinmiyor
Aynı ekibin yakın tarihli değerlendirmesi burada: https://doi.org/10.1016/j.cell.2022.06.046
Yani sistem çökmeyecek şekilde hangi parçaların çıkarılabildiğine bakılıyor
Genomun yapay olarak sentezlenmiş olması teknik olarak etkileyici ama biraz gösteriş gibi; sonuçta yine mevcut bir hücrenin içine yerleştirilmesi gerekti
Bu, mevcut bir çipi kopyalayıp birkaç biti çıkararak değiştirip sonra da “sinyaller çalışmıyor ama kabaca sürülüyor” deyip arabayı sıfırdan yaptığını iddia etmeye benziyor
Noam Chomsky, yapay zekanın iki türü olduğunu söylüyor
Birinci tür yapay zeka araştırması, otonom araçlar, dil çevirisi ve nesne tanıma gibi mühendisliğe daha yakın alanlar
İkinci tür yapay zeka araştırması ise, bilişsel bilimcilerin modelleriyle tutarlı bir şekilde insan ya da solucan gibi canlıların zekasını kopyalamaya çalışıyor
Örneğin çocuklar gibi çok az yönlendirmeyle herhangi bir insan dilini edinen bir sistem bu türe girer
OpenWorm, 2. türe daha yakın görünüyor. Bu 2. tür yapay zekayı daha fazla incelemek için ilginç kaynaklar varsa bilmek isterim
[0]: https://youtu.be/TAP0xk-c4mk
Bunu birkaç yıl önce incelemiştim ve Kurzweil tarzı kıyamet senaryolarının bir ölçüde doğru çıkmasını hep ummuştum
Önce C. elegans simüle edilir, sonra sadece ölçek büyütülerek insan da simüle edilebilir ve ardından tekillik gelir diye düşünüyordum
Gerçekte aptal bir solucanı simüle etmek ne kadar zor olabilirdi ki? Konektom da var, tüm nöronları ve bağlantıları da biliyoruz, kolay olmalı gibi görünüyordu
Sonra inceleyince şok oldum. Çalışmıyordu. Temel hareketlerin bir kısmı yeniden üretilebilmişti ama gerçek solucanın sergilediği pek çok davranış hâlâ gizemini koruyordu. Belgelerde de insanların bunu yakında çözecek gibi görünmediğini fark ettim; birkaç yıl sonra baktığımda ise sonunda vazgeçilmiş gibiydi
Bildiğim kadarıyla, abartılı biçimde öne çıkarılan Avrupa beyin emülasyonu projesi de yolsuzluk şüpheleri arasında kapatıldı
Bunu hiç anlamıyoruz ve hâlâ çok uzağında gibiyiz. Şimdilik bilimkurguya geri dönmemiz gerekecek gibi görünüyor
Her sinapsta belirli nörotransmiterler bulunur; mesafe, boyut, şekil, reseptör sayısı ve ilgili glia hücreleri iletim üzerinde çok büyük etkiye sahiptir. Aksonların mesafesi ve kalınlığı da iletilen sinyalin gücünü etkiler ve bunların hepsini ölçmek çok zordur
Nöronlar sinyal gücü ve zamanlamaya da son derece duyarlıdır. Örneğin inhibitör sinapslar, hücre duvarında delikler açarak yükün zamanla sızmasına neden olacak şekilde çalışır. Bunun hızını biraz bile yanlış ayarlarsanız hücrenin davranışı büyük ölçüde değişebilir
Konektom, tabiri caizse delicesine karmaşık bir önceden eğitilmiş modele daha yakındır; her nöronun, sinyale doğrudan tepkisinin yanı sıra zaman içindeki davranışını açıklayan çeşitli ağırlıkları vardır. Bu ağırlıklar olmadan emülasyon yapılamaz
Devs'in ilk bölümü aklıma geldi
https://www.imdb.com/title/tt8134186/
Yapay zeka mühendisi, bir nematodun hareketlerini senkronize ettikten sonra gelecekteki hareketlerini tahmin eden bir demo gösteriyor. Bu arada gerçekten çok iyi bir dizi
Verilere dayanarak son derece doğru ekstrapolasyon yapma fikri bu dizinin merkezinde yer alıyor; ama burada keseyim
Meyve sineği beyninin konektom modeli yakın zamanda yayımlandı[1]
[1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...
Bunun mümkün olduğunu kanıtlamaya bile hâlâ uzağız
Bu yüzden neurokernel [1] gibi projeler biraz fazla iddialı görünüyor. Yine de başarılar
[1] http://neurokernel.github.io/
Birkaç yıl önce Londra'da düzenlenen OpenWorm mini konferansına benzer bir etkinliğe gitmiştim
Birkaç gün boyunca solucan hareketi hakkında konuşuldu. Solucanlar ya da genel olarak hayvan hareketi konusunda hiçbir şey bilmiyordum ve yaşam simülasyonuna sadece amatörce ilgisi olan tam bir yabancıydım, bu yüzden anlatılanların çoğunu anlayamadım
Yine de gerçekten ilginçti ve bu konuya tutkuyla bağlı insanlarla tanışmak çok güzeldi
Simülasyonu sonlandırırsanız solucanı öldürmüş olur musunuz?
OpenWorm'un kurucu üyelerinden biri olarak, yaklaşık 10 yıl önce konektomu emüle edip robotiğe uygulamıştım
https://youtu.be/YWQnzylhgHc
Bu deneyde her nöronu bir program olarak temsil ettik ve tek tek nöron programları arasındaki iletişim için UDP mesajları kullandık. Birkaç sorun vardı; en büyük sorun, konektomun çok döngüsel olması nedeniyle deneyde “UDP stacking” dediğimiz bir durumun ortaya çıkmasıydı. Yani etkinleştirme sinyali olan UDP mesajları, programların işleyebileceğinden daha hızlı geliyordu
Şu anda tamamlanmış Drosophila konektomunu indirip bir emülasyon oluşturmaya çalışıyorum. Nöronları ya da nöropilleri emüle etmek için hipervektörleri araştırıyorum, ancak hâlâ kavramı netleştirme aşamasındayım
Komşuluk matrisleri, fonksiyonel programlama ve başka çeşitli fikirleri de denedim. Burada her fonksiyon hayvan sinir sisteminin bir bölümünü temsil ediyor; örneğin C. elegans için duyu nöronları, ara nöronlar ve motor nöronlarını üç ayrı fonksiyon ve program olarak ele almak gibi
C. elegans emülasyonu tek bir Python uygulaması olarak da hayata geçirildi, ayrıca çeşitli başka programlama dillerine de taşındı ve birçok robot üzerinde belirgin emülasyonlar sergiledi. Ablasyon deneyleri, emüle edilmiş sinir sisteminin biyolojik sinir sistemiyle gözlemlenebilir davranışlar üzerinden uyuştuğunu gösterdi
Sinir sisteminin evrimsel sürekliliğinin bir ucunda solucan beyni, diğer ucunda insan beyni var. Ancak yalnızca solucanın sinir sistemi bile genel zekâ ve AGI'ye giden kapıyı açıkça göstermektedir