ScienceDiscovery、木探索で科学コードを自律改良
導入
科学研究では、最初に生成したプログラムがそのまま完成するとは限らない。実装、実行、評価、修正というサイクルを何十回も繰り返して、ようやく実用的なコードになることが多い。OpenJiuwenのScienceDiscoveryは、この反復作業を検索システムに任せることを目指す。モデルを再学習したり、パラメータを調整したりするのではなく、毎回変わるのは生成された研究用コードである。
コードを木構造で進化させる
各バージョンを木のノードとして扱い、システムは既存ノードを選択してモデルに書き換えさせる。候補は隔離されたサンドボックスで実行され、スコアを付けられた後、新しい子ノードとして保存される。実行失敗、タイムアウト、無限ループも失敗ノードとして記録されるため、検索全体を止める必要はない。
選択規則は、現在の最良候補だけを延々と変更するものではない。高得点のノードにはより多くの改良機会を与えつつ、同じノードが繰り返し選ばれると重みを下げ、以前の分岐へ戻る。これにより、成果の出ている方向を深掘りしながら、別の可能性も探索できる。基盤には候補の並列生成、サンドボックス評価、結果の統合も用意され、課題ごとに初期成果物と評価関数を差し替えられる。
報告された事例
- 半無限区間の振動積分では、約2時間で236バージョンを生成。最終プログラムは247行で、発散や振動の特徴を判定して手法を切り替える。資料では、評価用19問の平均相対誤差が0.07%だったとしている。
- ガウス超幾何関数の倍精度計算では、48回の拡張を598秒で実施。未見の1,000点における平均の正しい桁数は9.836から11.771に向上した。
- AlgoTuneの154件のコード最適化課題では、2回の実行で平均2.279倍の高速化を達成した。
- 数値表だけから方程式を推定する課題では、111問中41.4%で正しい方程式を生成した。1問あたりのモデル呼び出しは平均16.5回だった。
意義と限界
重要なのは、モデルが一度で画期的なアルゴリズムを出すことではない。候補を作るモデル、実行可能な評価、過去の分岐を保持する検索を組み合わせ、手作業の試行錯誤を連続的な探索に変えた点にある。正確さや速度を数秒から数十秒で測定できる数値計算では、特に効果を発揮しやすい。
ただし、実験科学では検証に数日から数か月かかる場合があり、代理スコアが本来の科学的目標から外れる可能性もある。材料、生命、実験物理へ広げるには、高速シミュレーション、代理モデル、自動化実験設備、より厳密な検証が必要だ。科学向けRSIの実用性は、書き換え能力だけでなく、良し悪しをどれだけ速く、正確に判定できるかに左右される。
コメント
ログイン状態を確認中…
コメントを読み込み中…