1 điểm bởi GN⁺ 2023-07-08 | 1 bình luận | Chia sẻ qua WhatsApp
  • OpenWorm là một dự án nhằm xây dựng mô hình tính toán toàn diện của Caenorhabditis elegans (C. elegans), một loài giun tròn hiển vi
  • Cách tiếp cận là mô hình hóa từ dưới lên, mô phỏng dữ liệu thu được từ các thí nghiệm khoa học trong 10 năm qua để quan sát liệu hành vi của giun có xuất hiện hay không
  • Container Docker là môi trường gói các thành phần chính của mô phỏng lại với nhau để chạy trên máy cục bộ
    • Chạy mô hình hệ thần kinh c302
    • Chạy song song mô hình cơ thể giun 3D Sibernetic bằng cách sử dụng đầu ra của mô hình hệ thần kinh
    • Tạo biểu đồ hoạt động của mô hình hệ thần kinh và cơ thể
    • Tạo video đầu ra của mô hình cơ thể
  • Thời gian chạy mô phỏng mặc định bị giới hạn để có thời gian thực thi hợp lý, và chỉ hiển thị đầu ra một phần tương ứng khoảng 5% thời gian chạy so với đầu ra ví dụ {p:5}
  • Yêu cầu chạy gồm tối thiểu 60GB dung lượng trống, tối thiểu 2GB RAM, môi trường có thể clone kho git và đã cài Docker
  • Luồng thực thi gồm git clone, tùy chọn ./build.sh, ./run.sh, stop.sh sau khi kết thúc, và kiểm tra thư mục output cục bộ
  • Nếu bỏ qua ./build.sh, hệ thống sẽ tải image Docker bản phát hành mới nhất từ OpenWorm Docker hub
  • Có thể thay đổi thời gian mô phỏng theo mili giây bằng tham số -d [num]; giá trị mặc định là 15, còn giá trị để tạo toàn bộ video ví dụ là 5000
  • ./run-shell-only.sh dùng để đăng nhập vào container trước khi chạy master_openworm.py, nhằm kiểm tra hoặc chỉnh sửa codebase đã checkout và hệ thống đã cài đặt bên trong
  • Để thay đổi các mục cài đặt, hãy sửa Dockerfile; để thay đổi các mục thực thi, hãy sửa master_openworm.py; sau đó cần chạy build.sh để build lại image cục bộ
  • Đầu ra mặc định chỉ xuất một số hình ảnh và video sang hệ thống host; toàn bộ đầu ra mô phỏng hoặc dữ liệu như worm_motion_log.txt phải được sao chép từ container Docker
  • stop.sh sẽ xóa container và các tệp liên quan, vì vậy không nên chạy nó trước khi lấy dữ liệu ra
  • Tài liệu bổ sung có tại http://docs.openworm.org, và kho lưu trữ có các high-level issues và milestones để theo dõi toàn bộ dự án

1 bình luận

 
GN⁺ 2023-07-08
Ý kiến trên Hacker News
  • 302 nơ-ron có thể không quá ấn tượng với những ai đã quen với mạng nơ-ron 7 tỷ+ tham số
    Nhưng điểm chung giữa các mạng như vậy và nơ-ron sinh học gần giống như điểm chung giữa xe đạp và ngựa. Cả hai đều có thể di chuyển khá nhanh, nhưng một bên là kết quả tiến hóa qua hơn 1 tỷ năm chọn lọc tự nhiên khắc nghiệt, còn bên kia là cỗ máy kim loại được tinh chỉnh cho một mục đích duy nhất
    Nơ-ron cũng vậy: đó là những cỗ máy sinh học cực kỳ tinh vi, mang hàng tỷ cặp base DNA điều khiển hành vi, và hành vi trồi hiện của nơ-ron trong cả hệ sinh học lẫn hệ AI đều rất đáng quan tâm

    • Ngoài ra, các nơ-ron này cũng khá khác với nơ-ron của động vật có vú
      “Các nơ-ron này không phát sinh điện thế hoạt động và cũng không biểu hiện kênh natri phụ thuộc điện thế” [1]
      Vì thế, việc chúng có thể bị nghiện nicotine lại càng thú vị hơn
      “C. elegans cũng có thể được dùng để nghiên cứu sự phụ thuộc nicotine vì nó thể hiện các phản ứng hành vi với nicotine tương tự động vật có vú, bao gồm phản ứng cấp tính, dung nạp, cai nghiện và mẫn cảm” [1]
      [1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
    • Tôi nói “hàng tỷ cặp base DNA điều khiển hành vi”, nhưng toàn bộ bộ gene của C. elegans chỉ có 100 triệu cặp base
    • Góc nhìn tốt nhất có lẽ là mỗi nơ-ron sinh học tự nó đã là một cỗ máy phức tạp, chứa đầy mạch điều khiển di truyền
      Ở vài khía cạnh, các mạch này giống mạng nơ-ron, và trên hết chúng có ký ức và trạng thái tồn tại trong cả ngắn hạn lẫn dài hạn. Mỗi nơ-ron gần giống một thực thể sống có khả năng học hỏi và hành vi hơn là một tham số trong mô hình
      Ngược lại, “nơ-ron” ảo chỉ là một phép trừu tượng toán học rất đơn giản, có độ phức tạp tính toán thấp áp đảo so với nơ-ron sinh học. Connectome chỉ là một tấm bản đồ rất thô về cách các nơ-ron được nối với nhau, chứ còn rất xa mới là bản thiết kế hoàn chỉnh của một “mạng nơ-ron”
      Có thể ta sẽ mô hình hóa được một nơ-ron sinh học như một mạng nơ-ron con có trạng thái bên trong một mạng lớn hơn, nhưng ngay cả khi giả sử chúng tương đương về mặt tính toán, ta hoàn toàn không biết cần bao nhiêu “nơ-ron” ảo để biểu diễn toàn bộ hành vi quan trọng về mặt tính toán của một nơ-ron sinh học
      Vì vậy, một con giun với 302 nơ-ron sinh học về mặt tính toán có thể tương đương với hàng tỷ nơ-ron ảo, và thực sự là không ai biết
      Vì nơ-ron có ký ức nên nó có thể hơi giống mạng LSTM, và vì mạng thần kinh sinh học không phải chỉ là truyền thẳng đơn giản, nên chắc chắn nó gần với mạng nơ-ron hồi quy hơn
      Vì thế, mỗi khi thấy ai đó nói về mind uploading tôi lại bật cười. Tôi sẽ còn cười cho đến khi nào chúng ta hiểu và mô hình hóa được những hành vi liên quan của nơ-ron sinh học, đồng thời có thể trích xuất trạng thái khả dụng từ nơ-ron sống. Hiện tại chuyện đó 100% là khoa học viễn tưởng, và những ai nghĩ rằng sắp có thể tải tâm trí lên máy là người không hiểu sinh học
    • Việc nơ-ron sinh học giống nơ-ron trong machine learning đến mức đó nghe cũng đã đủ ấn tượng rồi. Có lẽ sự quan tâm nghiên cứu nằm ở đó
      Nếu chúng hoạt động theo các nguyên lý tương tự, thì bằng cách nào con giun lại làm được những hành vi như vậy với nguồn lực nhỏ đến thế? Chẳng hạn, nếu người ta phát hiện rằng các đặc tính chi tiết của vật chất nền không phải là điều thiết yếu cho năng lực của con giun, thì đó có thể là tin tốt cho nghiên cứu AI
  • Tôi từng có cơ hội làm công việc lập trình trong phòng thí nghiệm của Ralph Siegel vào những năm 1990, và ông ấy cũng nghiên cứu kiểu mô hình connectome của giun như thế này
    https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
    Ông ấy dùng các phương trình Hodgkin-Huxley để mô phỏng phản ứng của nơ-ron trên connectome. Có người từng giải thích với tôi rằng mô hình Hodgkin-Huxley giống như mô hình hóa chân người thành ba khối cứng nối với nhau bằng bản lề. Nó đủ hữu ích cho nhiều mô hình, nhưng không phải là mô tả hoàn chỉnh
    Ngoài ra, nơ-ron của giun không tạo spike, còn các phương trình HH lại mô tả nơ-ron tạo chuỗi spike, nên có thể đây không phải là mô hình phù hợp cho nơ-ron giun. Kiểu nơ-ron đó tồn tại trong các hệ thần kinh phức tạp hơn
    Các phương trình HH được dùng trong mô phỏng vì đó là mô hình toán học mà chúng ta có, và có vẻ dự án OpenWorm vẫn còn dùng chúng. Những gì tôi biết về đặc tính nơ-ron của giun là nghe từ rất lâu rồi, nên thông tin có thể đã cũ
    Việc công việc này vẫn tiếp tục là điều tuyệt vời, và có thể mang lại hiểu biết về cách hệ thần kinh hoạt động. Nhưng độ khó là khổng lồ, và chúng ta đang tiến lên rất chậm chạp, vất vả trong một vùng đất đầy điều chưa biết

    • Đây là lần đầu tôi đọc rằng nơ-ron của giun không tạo spike, và điều đó thực sự thú vị
      Vậy chúng rất khác nơ-ron của người sao? Tôi tò mò không biết chúng hoạt động thế nào và có thể đọc thêm ở đâu
    • Hỏi vì tò mò thôi: không biết nghiên cứu này có từng nhắm tới ứng dụng thương mại nào không
  • Tôi thích kiểu cách tiếp cận từ dưới lên này. Vì nó cho thấy rất rõ là chúng ta vẫn còn chưa biết nhiều đến mức nào về sự sống
    Cũng đáng nhắc tới dự án tế bào tối thiểu syn3.0 của Craig Venter. Nhóm này đã tạo ra một tế bào tổng hợp sống gồm 473 gene, phần lớn được làm bằng thử-và-sai, và chức năng của nhiều gene trong số đó đến giờ vẫn chưa rõ
    Bài tổng quan gần đây của cùng nhóm ở đây: https://doi.org/10.1016/j.cell.2022.06.046

    • Tôi không chắc có thể gọi đó là cách tiếp cận từ dưới lên hay không. Dù họ quảng bá như vậy, nhưng thực tế nó gần với Jenga hơn
      Cách làm là xem có thể rút bỏ những mảnh nào mà hệ thống vẫn không sụp đổ
      Việc tổng hợp nhân tạo bộ gene là một thành tựu kỹ thuật, nhưng cũng hơi mang tính trình diễn, vì cuối cùng họ vẫn phải đưa nó vào một tế bào có sẵn
      Nó giống như sao chép một con chip hiện có, thay vài bit rồi tuyên bố đã chế tạo chiếc xe từ đầu chỉ vì “đèn xi-nhan không hoạt động nhưng đại khái vẫn lái được”
    • Một bài báo theo dõi 2.000 thế hệ tiến hóa của tế bào tối thiểu vừa được xuất bản: https://www.nature.com/articles/s41586-023-06288-x
  • Noam Chomsky nói rằng có hai loại AI.
    Loại nghiên cứu AI thứ nhất gần với kỹ thuật hơn, như xe tự lái, dịch ngôn ngữ, nhận diện vật thể.
    Loại nghiên cứu AI thứ hai là cố gắng tái tạo trí thông minh của sinh vật, chẳng hạn con người hay giun, theo cách nhất quán với các mô hình mà các nhà khoa học nhận thức học đưa ra.
    Ví dụ, một hệ thống có thể tiếp thu bất kỳ ngôn ngữ nào của con người chỉ với rất ít hướng dẫn, giống như trẻ em, sẽ thuộc kiểu này.
    OpenWorm có vẻ gần với loại thứ hai hơn. Nếu có tài liệu thú vị nào để tìm hiểu thêm về kiểu AI loại 2 này thì tôi rất muốn biết.
    [0]: https://youtu.be/TAP0xk-c4mk

  • Vài năm trước tôi đã xem qua dự án này, và lúc nào cũng hy vọng kiểu tận thế luận của Kurzweil có phần nào đó đúng.
    Trước tiên mô phỏng C. elegans, sau đó chỉ cần mở rộng quy mô là có thể mô phỏng con người, rồi điểm kỳ dị sẽ đến, đại loại vậy.
    Thực ra mô phỏng một con giun ngốc nghếch thì có gì khó đến thế? Ta đã có connectome, biết mọi nơ-ron và kết nối của chúng, nên tưởng là phải dễ chứ.
    Nhưng khi tìm hiểu thì tôi bị sốc. Nó không hoạt động. Có thể tái hiện được một vài chuyển động cơ bản, nhưng rất nhiều hành vi của con giun thật vẫn còn là điều bí ẩn. Ngay cả trong tài liệu cũng không thấy có vẻ như người ta sắp tìm ra câu trả lời, và vài năm sau nhìn lại thì dường như cuối cùng họ đã bỏ cuộc.
    Theo tôi biết thì dự án mô phỏng não bộ ở châu Âu từng được thổi phồng quá mức đó cũng đã khép lại giữa những nghi vấn tham nhũng.
    Chúng ta hoàn toàn chưa hiểu được chuyện này, và có vẻ vẫn còn cách rất xa. Có lẽ trước mắt phải quay lại với khoa học viễn tưởng thôi.

    • Bạn nói “ta đã có connectome và biết mọi nơ-ron cùng kết nối của chúng”, nhưng thực ra không phải vậy.
      Mỗi khớp thần kinh có chất dẫn truyền thần kinh riêng, và khoảng cách, kích thước, hình dạng, số lượng thụ thể, cùng tế bào thần kinh đệm liên quan đều ảnh hưởng rất lớn đến quá trình truyền tín hiệu. Khoảng cách và độ dày của sợi trục cũng ảnh hưởng đến cường độ tín hiệu được truyền, và tất cả những điều này đều cực kỳ khó đo lường.
      Nơ-ron cũng rất nhạy với cường độ và thời điểm của tín hiệu. Ví dụ, khớp thần kinh ức chế hoạt động bằng cách mở các lỗ trên màng tế bào để điện tích rò rỉ dần theo thời gian. Chỉ cần sai khác một chút về tốc độ đó thôi cũng có thể làm thay đổi mạnh hành vi của tế bào.
      Nói cách khác, connectome gần giống một mô hình trước huấn luyện cực kỳ phức tạp, và mỗi nơ-ron có nhiều trọng số để mô tả không chỉ phản ứng trực tiếp với tín hiệu mà cả hành vi theo thời gian. Không có những trọng số đó thì không thể mô phỏng được.
  • Làm tôi nhớ đến tập đầu tiên của Devs.
    https://www.imdb.com/title/tt8134186/
    Có một cảnh một kỹ sư AI trình diễn việc đồng bộ chuyển động của một con giun tròn rồi dự đoán chuyển động trong tương lai của nó. Nhân tiện, đây là một bộ phim truyền hình thực sự rất hay.

    • Nó còn hay hơn vì là tác phẩm ra đời trước khi LLM đi vào ý thức đại chúng.
      Khái niệm ngoại suy cực kỳ chính xác từ thông tin có sẵn là cốt lõi của bộ phim này, và tôi chỉ nói đến đây thôi.
  • Một mô hình connectome của não ruồi giấm gần đây đã được công bố[1].
    [1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...

    • Đây là điều tuyệt vời, nhưng connectome của C. elegans đã được công bố từ năm 1989, và chỉ cần xem qua dự án được liên kết một chút là có thể thấy họ còn chưa tiến gần đến việc làm cho toàn bộ tập hành vi của C. elegans xuất hiện một cách tự phát từ mô phỏng nơ-ron.
      Thậm chí còn rất xa mới chứng minh được rằng điều đó là khả thi.
      Vì vậy những dự án như neurokernel [1] có vẻ hơi quá tham vọng. Dù sao thì vẫn chúc may mắn cho họ.
      [1] http://neurokernel.github.io/
  • Vài năm trước tôi đã đến một sự kiện kiểu hội nghị nhỏ OpenWorm ở London.
    Đó là nơi người ta nói về vận động của giun trong vài ngày. Tôi hầu như chẳng hiểu gì vì không biết gì về giun hay vận động động vật nói chung, chỉ là một người ngoài cuộc hoàn toàn với chút quan tâm mang tính nghiệp dư đến mô phỏng sự sống.
    Dù vậy, nó thực sự rất thú vị, và gặp những người đầy nhiệt huyết với chủ đề này là một điều rất tuyệt.

  • Nếu dừng mô phỏng thì có phải là giết con giun không?

    • Nếu bạn đã lưu trạng thái của nó ở đâu đó thì không.
  • Là một thành viên sáng lập của OpenWorm, tôi đã mô phỏng connectome và áp dụng nó vào robot học gần 10 năm trước.
    https://youtu.be/YWQnzylhgHc
    Trong thí nghiệm này, mỗi nơ-ron được biểu diễn bằng một chương trình, và giao tiếp giữa các chương trình nơ-ron riêng lẻ sử dụng các thông điệp UDP. Có nhiều vấn đề, nhưng vấn đề lớn nhất là connectome có tính tuần hoàn rất cao, nên trong thí nghiệm đã xuất hiện hiện tượng chúng tôi gọi là “UDP stacking”. Tức là các thông điệp UDP mang tín hiệu kích hoạt đến nhanh hơn tốc độ mà chương trình có thể xử lý.
    Tôi hiện đang tải xuống connectome Drosophila đã hoàn thành cho đến nay để tạo một bản mô phỏng. Tôi đang khám phá hypervector để mô phỏng nơ-ron hoặc neuropil, nhưng vẫn mới ở giai đoạn định hình ý tưởng.
    Tôi cũng đã thử nhiều ý tưởng khác như ma trận kề, lập trình hàm, v.v. theo cách mà mỗi hàm đại diện cho một phần của hệ thần kinh động vật; chẳng hạn với C. elegans thì có thể xem nơ-ron cảm giác, nơ-ron trung gian và nơ-ron vận động là ba hàm và chương trình riêng biệt.
    Bản mô phỏng C. elegans cũng đã được triển khai thành một ứng dụng Python đơn lẻ và được chuyển sang nhiều ngôn ngữ lập trình khác, đồng thời cho thấy các mô phỏng rõ ràng trên nhiều robot. Các thí nghiệm cắt bỏ đã cho thấy hệ thần kinh được mô phỏng khớp với hệ thần kinh sinh học thông qua các hành vi có thể quan sát được.
    Trên dải liên tục tiến hóa của hệ thần kinh, ở một đầu là não của giun và ở đầu kia là não người. Nhưng ngay cả chỉ với hệ thần kinh của giun, người ta cũng có thể thấy rõ cánh cổng dẫn tới trí tuệ tổng quát và AGI.