幾行代碼,一窺上帝造物!帝國理工開源CAX,引爆人工生命新紀元
人工生命研究的新紀元!
「人工生命」(artificial life,或簡寫為ALife),旨在模擬生命的行為、特性和演化過程,理解生命的本質,涉及涌現現象、自組織系統或形態發生機制。
人工生命(ALife)的研究中,蘊含著能夠推動和加速AI進步的重要啟發和靈感。
人工生命中兩類不同的Lenia系統,見下圖。
對實驗人員而言,擁有高效的實現當然非常關鍵。
而開源工具CAX將人工生命的模擬速度,提升了最多2000倍!
倫敦帝國理工學院的博士生、做過Sakana AI的實習生Maxence Faldor,在X上激動地發布CAX v0.2.0!
開源工具庫CAX:專為加速人工生命研究而設計
CAX支持離散系統和連續系統,包括神經細胞自動機(Neural Cellular Automata,NCA),而且適用于任意維度。
不止于傳統的細胞自動機,它還能處理粒子系統等多種模型,所有功能都整合在一個直觀易用的統一API中。
X用戶JJ Walker星標推薦CAX,表示CAX將顛覆人工生命研究,更新后的版本既快又好用。
介紹CAX的論文,已經入選ICLR 2025 Oral。
論文鏈接:https://openreview.net/pdf?id=o2Igqm95SJ
項目鏈接:https://github.com/maxencefaldor/cax
更多人工生命的實例:
基于注意力機制的人工生命:神經細胞自動機
人工生命研究新紀元
如果你對涌現現象、自組織或形態發生機制感興趣,開源的CAX不容錯過。
CAX是基于JAX的高性能、靈活的軟件庫,專為加速細胞自動機研究而設計,包括離散細胞自動機,連續細胞自動機和神經細胞自動機。
圖1:CAX支持的多種細胞自動機
CAX提出了一種統一各類細胞自動機的框架。
這種靈活的架構由兩個核心模塊構成:感知模塊(perceive module)和更新模塊(update module)。
這兩個模塊共同定義了細胞自動機的局部規則。
圖2:CAX架構圖
從經典模型,比如基本細胞自動機和康威的生命游戲,到更高級的應用,比如可生長的神經細胞自動機和能自我分類的MNIST數字,CAX將模擬速度提升了最多2000倍。
圖3:CAX的性能基準測試
圖3左:CAX與CellPyLib在經典細胞自動機上的模擬速度對比。對于基本細胞自動機,CAX提升了1400倍的速度;對于康威生命游戲,提升了2000倍。
圖3右:CAX官方TensorFlow實現的神經細胞自動機實驗訓練速度對比。在自分類MNIST數字任務中,CAX實現了1.5倍的訓練加速。
幾行代碼,一窺上帝造物
為了展示CAX的靈活性,研究者展示了三個新穎的細胞自動機實驗。
得益于CAX的模塊化架構,每個實驗只用幾行代碼,就實現了。
實驗1: 擴散模型的啟發
研究團隊提出了一種新穎的神經細胞自動機(NCA)訓練方法,其靈感來源于擴散模型。
不同于傳統的基于生長(growth-based)的方法,新方法通過在固定步驟內訓練NCA去除圖像噪聲。
圖4:受到擴散模型的啟發,NCA學會在固定的步數內對圖像進行去噪
結果顯示,這種方法能帶來更穩定的動態表現。
當研究者引入人為破壞(例如切斷壁虎的尾巴)時,基于擴散的NCA展現出自發的再生能力,而傳統的生長型NCA則需要專門訓練才能實現類似效果。
圖5:與需要專門訓練才能實現再生和恢復能力的生長型NCA相比,基于擴散的NCA展現出自發的再生能力和更穩定的表現
實驗2:MNIST數字自編碼
在這次實驗中,研究者使用3D神經元胞自動機(3D NCA),并將一個面初始化一個MNIST手寫數字。
NCA的目標是學習一套規則,把這個MNIST數字復制到對面的那一面(紅色那面)。
不過,中間有一個掩膜(mask)區域,阻止細胞進行更新。
圖6:三維NCA以一個MNIST數字圖像作為初始輸入(左側);經過學習后,NCA能夠在對面的紅色面上重建出該數字(右側)
關鍵是,遮罩中間留了一個僅有一格寬的孔洞,作為信息傳遞的最小通道。
為了成功地在對面復制出MNIST數字,NCA必須發展出一套能夠對MNIST數字進行編碼和解碼的規則。
圖7:上排展示的是測試集中原始的數字圖像,下排則是對應的重建結果,這些重建圖像出現在NCA的紅色面上
實驗3:超過GPT-4的推理能力
最后,在1D-ARC數據集上訓練一個一維NCA。
這個數據集是ARC數據集(Abstraction and Reasoning Corpus,抽象與推理語料庫)的簡化版本。
原版NCA:左圖可以看到展示任務特點的輸入/輸出對;中間是當前的測試輸入網格;右側則是用來構建對應輸出網格的控制選項
NCA需要通過不斷應用自身的規則,將輸入圖案逐步轉化為目標圖案。
以下是每個任務的時空圖。
每張圖像的頂行像素是輸入。隨后的像素行展示了NCA在嘗試將輸入轉換為目標時的中間步驟。底行像素代表了NCA的最終輸出。
令人驚訝的是,1D-ARC NCA在這個數據集上的表現超過了GPT-4!
在1D-ARC簡化數據集上,NCA準確率達60.12%,優于GPT-4的41.56%。
NCA在涉及移動、模式復制和去噪的任務中表現出色,展示了其在抽象推理任務中的潛力。
人工生命:細胞自動機
細胞自動機(cellular automaton),也叫元胞自動機,是一種簡單的計算模型,由規則排列的單元格\細胞(cells)組成,每個單元格處于某種特定狀態。
這種網格可以具有任意有限維度。
在每個單元格周圍,會根據一定規則定義「鄰域」(neighborhood),即與它相關聯的一組單元格。
在每一個離散的時間步驟中,整個網格會根據一條固定的規則進行更新。
這個規則會依據每個單元格當前的狀態以及其鄰域中單元格的狀態,來決定該單元格在下一時刻的狀態。
比如,數學家John Conway創建了一種特殊的細胞自動機——生命游戲。
在生命游戲中,每個細胞(單元格)或死或活,其中黑色方塊代表活細胞,白色方塊代表死細胞。
隨著模擬運行,細胞在死和活之間的切換規則如下:
1. 如果周圍活細胞少于兩個,任何活細胞則死亡。
2. 如果周圍活細胞超過三個,任何活細胞則死亡。
3. 如果周圍有兩個或三個活細胞,任何活細胞則保持不變,傳遞到下一代。
4. 如果周圍恰好有三個活細胞,任何死細胞則會復活。
利用CAX,可以同時模擬多個生命游戲。
其中每個游戲,都可以統計存活「鄰居」的數量和生長率。
加速原理:可控元胞自動機
元胞自動機與循環卷積神經網絡(Recurrent Convolutional Neural Networks,R-CNN)之間的緊密聯系,已經被許多研究者觀察到。
例如,Mordvintsev等人提出的通用NCA架構可被概念化為一種「帶有逐單元dropout的循環殘差卷積神經網絡」。
文章鏈接:https://distill.pub/2020/growing-ca/
可控元胞自動機(Controllable Cellular Automaton,CCA)是元胞自動機(CA)的擴展,具備在每個時間步接受外部輸入的能力。
可控元胞自動機形式化了 Sudhakaran 等人提出的目標引導神經元胞自動機(Goal-Guided NCA)概念。
論文鏈接:https://arxiv.org/abs/2205.06806
外部輸入可以修改 CCA 的行為,從而使其能夠在保持元胞自動機基本原理的同時,動態響應不斷變化的條件或控制信號。
CCA通過引入對外部輸入的響應機制擴展了傳統細胞自動機的能力,其原理類似于循環神經網絡處理序列數據。
可控元胞自動機架起了循環卷積神經網絡與元胞自動機之間的橋梁,開辟了模擬復雜系統的新可能性,這些系統既具備自主的涌現行為,又能響應外部控制。
CAX利用了元胞自動機與循環卷積神經網絡(R-CNN)之間已建立的緊密聯系。
這種協同作用,讓CAX能夠借助機器學習領域的最新進展,用于加速元胞自動機研究。
為什么選擇CAX?
CAX具有多重設計目標:為復雜系統研究提供1.高速、2.高質量、3.文檔完備且4.高度靈活的系統實現。
CAX絕非僅是對現有細胞自動機(CAs)的硬件加速實現,而是一個完整的框架體系。
其中目標4通過統一抽象層實現——該架構不僅整合了各類復雜系統,更支持快速擴展或從零構建新系統。
CAX確實提供特定的抽象框架。
雖然底層采用JAX實現高效卷積運算,但其抽象層級具有更廣泛的適用性。
特別值得一提的是,更新后v0.2.0版本新增了靈活日志工具,可在保持JAX加速模擬的同時集成測量功能——這能滿足并行計算需求。
CAX支持離散系統和連續系統,包括神經細胞自動機,且適用于任意維度。不僅涵蓋傳統的細胞自動機,它還能處理粒子系統等模型,并將這一切整合在一個統一、直觀的API中。
CAX提供了超過15種可直接使用的系統。
從模擬一維基本細胞自動機,到訓練三維自編碼神經細胞自動機,甚至是創建精美的Lenia模擬,CAX都能為探索自組織系統的豐富世界,提供多功能的平臺。
CAX構建于JAX/Flax生態系統之上,擁有極高的運行速度和可擴展性。
它支持在CPU、GPU和TPU等各種硬件加速器上進行向量化和并行化操作。
用戶可以幾乎不用修改代碼,就能將實驗從小規模原型擴展到大規模模擬。