OpenWorm - โมเดลคอมพิวเตอร์ของหนอน C. elegans
(github.com/openworm)- OpenWorm เป็นโปรเจกต์ที่มีเป้าหมายสร้างแบบจำลองเชิงคำนวณอย่างครอบคลุมของ Caenorhabditis elegans (C. elegans) ซึ่งเป็นไส้เดือนฝอยขนาดจุลทรรศน์
- แนวทางที่ใช้คือ การสร้างแบบจำลองจากล่างขึ้นบน โดยจำลองข้อมูลจากการทดลองทางวิทยาศาสตร์ที่ดำเนินการตลอด 10 ปีที่ผ่านมา เพื่อสังเกตว่าพฤติกรรมของหนอนจะปรากฏขึ้นหรือไม่
- คอนเทนเนอร์ Docker เป็นสภาพแวดล้อมที่รวมองค์ประกอบหลักของการจำลองไว้ด้วยกันและรันบนเครื่องโลคัล
- รันโมเดลระบบประสาท c302
- ใช้เอาต์พุตของโมเดลระบบประสาทเพื่อรันโมเดลร่างกายหนอนแบบ 3D Sibernetic แบบขนาน
- สร้างกราฟการทำงานของโมเดลระบบประสาทและร่างกาย
- สร้างวิดีโอเอาต์พุตของโมเดลร่างกาย
- เวลารันของการจำลองเริ่มต้นถูกจำกัดไว้เพื่อให้ใช้เวลารันอย่างเหมาะสม และจะแสดงเพียงเอาต์พุตบางส่วนที่คิดเป็นประมาณ 5% ของเวลารัน เมื่อเทียบกับเอาต์พุตตัวอย่าง {p:5}
- ข้อกำหนดในการรันคือมี พื้นที่ว่างอย่างน้อย 60GB, RAM อย่างน้อย 2GB, สภาพแวดล้อมที่สามารถโคลน git repository ได้ และติดตั้ง Docker
- ลำดับการรันประกอบด้วย
git clone,./build.sh(ไม่บังคับ),./run.sh,stop.shหลังเสร็จสิ้น และตรวจสอบไดเรกทอรีoutputบนเครื่องโลคัล - หากข้าม
./build.shระบบจะดาวน์โหลดอิมเมจ Docker รุ่นล่าสุดจาก OpenWorm Docker hub - สามารถเปลี่ยนเวลาในการจำลองเป็นหน่วยมิลลิวินาทีได้ด้วยอาร์กิวเมนต์
-d [num]โดยค่าเริ่มต้นคือ15และค่าที่ใช้สร้างวิดีโอตัวอย่างแบบเต็มคือ5000 ./run-shell-only.shใช้สำหรับล็อกอินเข้าไปในคอนเทนเนอร์ก่อนรันmaster_openworm.pyเพื่อดูหรือตรวจแก้โค้ดเบสที่เช็กเอาต์ไว้และภายในระบบที่ติดตั้งอยู่- หากต้องการเปลี่ยนรายการติดตั้งให้แก้
Dockerfileและหากต้องการเปลี่ยนรายการที่รันให้แก้master_openworm.pyจากนั้นต้องรันbuild.shเพื่อรีบิลด์อิมเมจโลคัล - เอาต์พุตเริ่มต้นจะส่งออกเพียงรูปภาพและวิดีโอบางส่วนไปยังระบบโฮสต์ ส่วนเอาต์พุตการจำลองทั้งหมดหรือข้อมูลอย่าง
worm_motion_log.txtต้องคัดลอกจากคอนเทนเนอร์ Docker stop.shจะลบคอนเทนเนอร์และไฟล์ที่เกี่ยวข้อง ดังนั้นไม่ควรรันก่อนดึงข้อมูลออกมา- เอกสารเพิ่มเติมมีให้ที่ http://docs.openworm.org และใน repository มี high-level issues และ milestones สำหรับติดตามภาพรวมของโปรเจกต์
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
นิวรอน 302 ตัว อาจฟังดูไม่ได้น่าทึ่งนักสำหรับคนที่คุ้นกับโครงข่ายประสาทที่มีพารามิเตอร์มากกว่า 7 พันล้านตัว
แต่สิ่งที่โครงข่ายแบบนั้นมีเหมือนกับนิวรอนชีวภาพ ก็คงใกล้เคียงกับความเหมือนกันระหว่างจักรยานกับม้า ทั้งคู่เคลื่อนที่ได้ค่อนข้างเร็ว แต่หนึ่งอย่างวิวัฒน์มาผ่านการคัดเลือกโดยธรรมชาติอันโหดร้ายยาวนานกว่าพันล้านปี ส่วนอีกอย่างเป็นเครื่องจักรโลหะที่ปรับแต่งอย่างแม่นยำเพื่อจุดประสงค์เดียว
นิวรอนก็เช่นกัน มันคือเครื่องจักรชีวภาพที่ซับซ้อนมาก มีคู่เบส DNA หลายพันล้านคู่ที่ควบคุมพฤติกรรมของมัน และ พฤติกรรมเกิดใหม่ ของนิวรอนในทั้งระบบชีวภาพและระบบ AI นั้นน่าสนใจมาก
“นิวรอนเหล่านี้ไม่ยิงศักย์งาน และไม่แสดงออกของช่องโซเดียมแบบ voltage-gated” [1]
ดังนั้นยิ่งน่าสนใจขึ้นไปอีกที่มันสามารถเกิดการเสพติดนิโคตินได้
“C. elegans สามารถใช้ศึกษาการพึ่งพานิโคตินได้ เพราะมันแสดงการตอบสนองทางพฤติกรรมต่อนิโคตินคล้ายกับสัตว์เลี้ยงลูกด้วยนม ซึ่งรวมถึงการตอบสนองเฉียบพลัน ความทนยา อาการถอน และการไวต่อสิ่งกระตุ้น” [1]
[1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
วงจรเหล่านี้ในบางแง่ก็คล้ายโครงข่ายประสาท และที่สำคัญคือมีความจำและสถานะที่คงอยู่ทั้งช่วงเวลาสั้นและยาว นิวรอนแต่ละตัวใกล้เคียงกับการเป็นหน่วยมีชีวิตที่สามารถเรียนรู้และมีพฤติกรรมได้ มากกว่าจะเป็นพารามิเตอร์ในโมเดล
ในทางกลับกัน “นิวรอน” เสมือนเป็นเพียงนามธรรมทางคณิตศาสตร์ที่เรียบง่ายมาก และมีความซับซ้อนเชิงคำนวณต่ำกว่านิวรอนชีวภาพอย่างท่วมท้น connectome เป็นเพียงแผนที่หยาบมากของการเชื่อมต่อกันของนิวรอน ไม่ได้ใกล้เคียงกับพิมพ์เขียวของ “โครงข่ายประสาท” ที่สมบูรณ์
อาจเป็นไปได้ที่จะจำลองนิวรอนชีวภาพเป็นโครงข่ายประสาทย่อยที่มีสถานะภายในโครงข่ายประสาทที่ใหญ่กว่า แต่ถึงจะสมมติว่ามันเทียบเท่ากันเชิงคำนวณ เราก็ไม่รู้เลยว่าจะต้องใช้นิวรอน “เสมือน” กี่ตัวเพื่อแทนพฤติกรรมทั้งหมดที่สำคัญในเชิงคำนวณของนิวรอนชีวภาพ
เพราะฉะนั้น หนอนที่มีนิวรอนชีวภาพ 302 ตัวอาจเทียบได้ในเชิงคำนวณกับนิวรอนเสมือนหลายพันล้านตัวก็ได้ เราไม่รู้จริง ๆ
ในแง่ที่นิวรอนมีความจำ มันอาจดูคล้ายเครือข่าย LSTM อยู่บ้าง และเพราะโครงข่ายประสาทชีวภาพไม่ใช่แค่ feed-forward ธรรมดา มันจึงใกล้กับ recurrent neural network มากกว่าแน่นอน
ด้วยเหตุนี้ พอเห็นคนพูดถึง mind uploading ก็อดขำไม่ได้ และคงหยุดขำไม่ได้จนกว่าเราจะเข้าใจและจำลองพฤติกรรมที่เกี่ยวข้องของนิวรอนชีวภาพได้ รวมถึงดึงสถานะที่ใช้งานได้จากนิวรอนที่มีชีวิตออกมาได้ ตอนนี้มันยังเป็นนิยายวิทยาศาสตร์ 100% และคนที่คิดว่าเราจะอัปโหลดจิตใจได้ในเร็ว ๆ นี้ก็คือคนที่ไม่เข้าใจชีววิทยา
ถ้ามันทำงานด้วยหลักการที่คล้ายกัน หนอนทำพฤติกรรมแบบนั้นได้อย่างไรด้วยทรัพยากรที่น้อยมาก? ตัวอย่างเช่น หากพบว่า คุณลักษณะเฉพาะของวัสดุรองรับ ไม่ได้จำเป็นต่อความสามารถของหนอน นั่นอาจเป็นข่าวดีสำหรับงานวิจัย AI
ผมเคยมีโอกาสไปทำงานเขียนโปรแกรมในแล็บของ Ralph Siegel ช่วงทศวรรษ 1990 และเขาก็ศึกษางานประเภท โมเดล connectome ของหนอน แบบนี้ด้วย
https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
เขาใช้สมการ Hodgkin-Huxley เพื่อจำลองการตอบสนองของนิวรอนบน connectome ตามที่มีคนอธิบายให้ผมฟัง โมเดล Hodgkin-Huxley ก็คล้ายกับการจำลองขามนุษย์เป็นบล็อกแข็งสามชิ้นที่เชื่อมกันด้วยบานพับ มันมีประโยชน์พอสำหรับหลายโมเดล แต่ไม่ใช่คำอธิบายที่สมบูรณ์
อีกอย่าง นิวรอนของหนอนไม่ได้สร้างสไปก์ และสมการ HH อธิบายนิวรอนที่สร้างชุดสไปก์ จึงอาจไม่ใช่โมเดลที่เหมาะกับนิวรอนของหนอน นิวรอนแบบนั้นพบในระบบประสาทที่ซับซ้อนกว่า
สมการ HH เป็นโมเดลทางคณิตศาสตร์ที่เรามีอยู่ จึงถูกนำมาใช้ในการจำลอง และดูเหมือนว่ายังถูกใช้ในโครงการ OpenWorm ด้วย เรื่องคุณสมบัติของนิวรอนหนอนนั้นเป็นสิ่งที่ผมได้ยินมานานแล้ว ข้อมูลอาจล้าสมัย
การที่งานนี้ยังดำเนินต่อไปเป็นเรื่องยอดเยี่ยม และมันอาจให้ข้อมูลเชิงลึกเกี่ยวกับการทำงานของระบบประสาทได้ แต่ความยากนั้นสูงมาก และเรากำลังก้าวไปอย่างช้า ๆ และยากลำบากในดินแดนแห่งความไม่รู้อันกว้างใหญ่
ถ้าอย่างนั้นมันต่างจากนิวรอนมนุษย์มากเลยหรือเปล่า? อยากรู้ว่ามันทำงานอย่างไร และควรไปอ่านจากที่ไหน
ชอบ แนวทางแบบ bottom-up แบบนี้ เพราะมันแสดงให้เห็นได้ดีมากว่าเรายังไม่รู้อีกมากแค่ไหนเกี่ยวกับชีวิต
ตรงนี้นึกถึงโครงการ minimum cell ของ Craig Venter อย่าง syn3.0 ด้วย ทีมนี้สร้างเซลล์สังเคราะห์ที่มีชีวิตซึ่งประกอบด้วยยีน 473 ตัว โดยส่วนใหญ่ได้มาจากการลองผิดลองถูก และหน้าที่ของยีนหลายตัวในนั้นเราก็ยังไม่รู้จนถึงทุกวันนี้
รีวิวล่าสุดของทีมเดียวกันอยู่ที่ https://doi.org/10.1016/j.cell.2022.06.046
คือดูว่าจะเอาชิ้นส่วนอะไรออกได้บ้างโดยที่ระบบยังไม่พัง
ข้อเท็จจริงทางเทคนิคที่ว่าสังเคราะห์จีโนมขึ้นมาเองได้นั้นค่อนข้างเหมือนการโชว์มากกว่า เพราะสุดท้ายก็ยังต้องเอาไปใส่ในเซลล์ที่มีอยู่แล้ว
มันคล้ายกับการคัดลอกชิปตัวเดิม แต่ดึงออกบางบิตแล้วสลับเปลี่ยน จากนั้นก็บอกว่า “ไฟเลี้ยวใช้ไม่ได้ แต่ก็ยังขับได้ประมาณหนึ่ง” แล้วอ้างว่าสร้างรถขึ้นมาใหม่ตั้งแต่ต้น
Noam Chomsky กล่าวว่า AI มีอยู่สองประเภท
งานวิจัย AI ประเภทแรกเป็นสิ่งที่ใกล้กับวิศวกรรม เช่น รถยนต์ไร้คนขับ การแปลภาษา และการรู้จำวัตถุ
งานวิจัย AI ประเภทที่สองคือการพยายามจำลองสติปัญญาของสิ่งมีชีวิต เช่น มนุษย์หรือหนอน ให้สอดคล้องกับแบบจำลองที่นักวิทยาศาสตร์ด้านการรู้คิดมีอยู่
ตัวอย่างเช่น ระบบที่สามารถเรียนรู้ภาษามนุษย์ภาษาใดก็ได้ด้วยการชี้แนะเพียงเล็กน้อยมาก เหมือนเด็ก ๆ ก็เป็นประเภทนี้
OpenWorm ดูจะใกล้เคียงกับข้อ 2 มากกว่า ถ้ามีแหล่งข้อมูลที่น่าสนใจสำหรับสำรวจ AI ประเภทที่ 2 แบบนี้เพิ่มเติม อยากรู้เหมือนกัน
[0]: https://youtu.be/TAP0xk-c4mk
เมื่อหลายปีก่อนผมเคยดูเรื่องนี้ และก็หวังอยู่เสมอว่าความคิดแบบหายนะของ Kurzweil จะมีมูลอยู่บ้าง
แนวคิดคือเริ่มจากจำลอง C. elegans ก่อน จากนั้นก็แค่ขยายขนาดขึ้นก็จะจำลองมนุษย์ได้ และแล้วภาวะเอกฐานก็จะมาถึง
เอาจริง ๆ การจำลองหนอนทึ่ม ๆ ตัวหนึ่งมันจะยากแค่ไหนกัน? เรามี connectome อยู่แล้ว และรู้จักนิวรอนกับการเชื่อมต่อทั้งหมด ก็น่าจะง่ายสิ
แต่พอไปดูแล้วก็ตกใจมาก มัน ใช้การไม่ได้ ทำได้แค่จำลองการเคลื่อนไหวพื้นฐานบางส่วน แต่พฤติกรรมอีกมากมายที่หนอนจริงทำได้นั้นยังคงเป็นปริศนา แม้แต่ในเอกสารก็ดูไม่เหมือนว่าผู้คนจะไขคำตอบได้ในเร็ววัน และพอผ่านไปอีกหลายปีก็ดูเหมือนสุดท้ายจะล้มเลิกกันไป
เท่าที่ผมรู้ โครงการจำลองสมองในยุโรปที่เคยถูกโหมกระแสมากก็ยุติลงท่ามกลางข้อสงสัยเรื่องการทุจริต
เราแทบไม่เข้าใจเรื่องนี้เลย และดูเหมือนยังห่างไกลมาก ตอนนี้คงต้องกลับไปอ่านนิยายวิทยาศาสตร์กันก่อน
ไซแนปส์แต่ละจุดมีสารสื่อประสาทเฉพาะของตัวเอง และระยะทาง ขนาด รูปร่าง จำนวนตัวรับ รวมถึง glia ที่เกี่ยวข้อง ล้วนมีผลอย่างมากต่อการส่งสัญญาณ ระยะและความหนาของแอกซอนก็ส่งผลต่อความแรงของสัญญาณที่ถูกส่งด้วย และทั้งหมดนี้วัดได้ยากมาก
นิวรอนยังไวมากต่อความแรงและจังหวะเวลาของสัญญาณด้วย ตัวอย่างเช่น ไซแนปส์แบบยับยั้งทำงานโดยเปิดรูบนผนังเซลล์ ทำให้ประจุค่อย ๆ รั่วออกไปตามเวลา หากจังหวะนี้คลาดเคลื่อนไปเพียงเล็กน้อย พฤติกรรมของเซลล์ก็อาจเปลี่ยนอย่างมาก
พูดอีกอย่าง connectome คล้ายกับ โมเดลก่อนการฝึก ที่ซับซ้อนบ้าคลั่งมาก และนิวรอนแต่ละตัวก็มีค่าน้ำหนักหลายตัวที่ใช้อธิบายไม่เพียงการตอบสนองต่อสัญญาณโดยตรง แต่รวมถึงพฤติกรรมตามกาลเวลาด้วย ถ้าไม่มีค่าน้ำหนักเหล่านี้ก็จำลองไม่ได้
ทำให้นึกถึงตอนแรกของ Devs
https://www.imdb.com/title/tt8134186/
มีฉากที่วิศวกร AI สาธิตการซิงก์การเคลื่อนไหวของหนอนตัวกลม แล้วใช้ทำนายการเคลื่อนไหวในอนาคต อ้างอิงไว้เผื่อสนใจ เป็นซีรีส์ที่ดีมากจริง ๆ
แนวคิดเรื่องการคาดคะเนต่อออกไปอย่างแม่นยำมากจากข้อมูลเป็นแกนหลักของซีรีส์นี้ แต่ผมจะพูดแค่นี้
ไม่นานมานี้มีการเผยแพร่ โมเดล connectome ของสมองแมลงวันผลไม้แล้ว[1]
[1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...
แม้แต่การพิสูจน์ว่าสิ่งนั้นเป็นไปได้ก็ยังอีกไกล
เพราะงั้นโครงการอย่าง neurokernel [1] ก็ดูทะเยอทะยานเกินไปหน่อย แต่ก็ขอให้โชคดี
[1] http://neurokernel.github.io/
เมื่อหลายปีก่อนผมไปงานคล้ายมินิคอนเฟอเรนซ์ OpenWorm ที่ลอนดอน
เป็นงานที่คุยกันเรื่อง การเคลื่อนไหวของหนอน อยู่หลายวัน ตอนนั้นผมไม่รู้อะไรเลยทั้งเรื่องหนอนและการเคลื่อนไหวของสัตว์โดยรวม และเป็นคนนอกวงการโดยสมบูรณ์ที่แค่สนใจการจำลองสิ่งมีชีวิตแบบสมัครเล่น จึงแทบฟังไม่เข้าใจ
ถึงอย่างนั้นมันก็น่าสนใจมากจริง ๆ และการได้พบคนที่มีแพสชันกับหัวข้อนี้ก็ยอดเยี่ยมมาก
ถ้าปิดการจำลองลง เท่ากับฆ่าหนอนหรือเปล่า?
ในฐานะสมาชิกผู้ก่อตั้ง OpenWorm ผมเคยเอา connectome ไปทำเป็นอีมูเลชันและประยุกต์ใช้กับหุ่นยนต์เมื่อเกือบ 10 ปีก่อน
https://youtu.be/YWQnzylhgHc
ในการทดลองนี้ เราแทนนิวรอนแต่ละตัวด้วยหนึ่งโปรแกรม และใช้ข้อความ UDP สำหรับการสื่อสารระหว่างโปรแกรมนิวรอนแต่ละตัว มีปัญหาหลายอย่าง แต่ปัญหาใหญ่ที่สุดคือ connectome มีลักษณะวนกลับสูงมาก จึงเกิดสิ่งที่เราเรียกว่า “UDP stacking” ในการทดลอง นั่นคือข้อความ UDP ซึ่งเป็นสัญญาณกระตุ้นไหลเข้ามาเร็วกว่าที่โปรแกรมจะประมวลผลได้
ตอนนี้ผมกำลังดาวน์โหลด Drosophila connectome ที่เสร็จสมบูรณ์แล้วมาสร้างอีมูเลชัน และกำลังสำรวจ hypervector เพื่อใช้อีมูเลตนิวรอนหรือ neuropil แต่ยังอยู่ในช่วงเกลาคอนเซปต์
ผมยังลองไอเดียอื่น ๆ เช่น adjacency matrix, functional programming เป็นต้น โดยให้แต่ละฟังก์ชันแทนส่วนหนึ่งของระบบประสาทสัตว์ เช่น สำหรับ C. elegans ก็อาจมองเซลล์ประสาทรับความรู้สึก อินเตอร์นิวรอน และมอเตอร์นิวรอน เป็นสามฟังก์ชันและสามโปรแกรมแยกกัน
อีมูเลชันของ C. elegans ถูกทำเป็นแอป Python เดี่ยวได้แล้ว และยังถูกพอร์ตไปยังภาษาโปรแกรมอื่นอีกหลายภาษา รวมถึงแสดงอีมูเลชันที่ชัดเจนบนหุ่นยนต์หลายตัวด้วย การทดลองตัดทำลายแสดงให้เห็นว่าระบบประสาทที่ถูกอีมูเลตนั้นสอดคล้องกับระบบประสาทชีวภาพผ่านพฤติกรรมที่สังเกตได้
บนเส้นต่อเนื่องทางวิวัฒนาการของระบบประสาท ด้านหนึ่งคือสมองของหนอน อีกด้านหนึ่งคือสมองของมนุษย์ แต่แม้เพียงระบบประสาทของหนอน เราก็มองเห็นประตูสู่ ปัญญาทั่วไป และ AGI ได้อย่างชัดเจน