
2026/07/08 0:11
AI の自動化を回避する
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
核心的な問題は、大容量言語モデルがさらに能力が高まっても本質的に信頼性がないことである。それは非決定論的であり、同じ入力に対して異なる出力を生じさせるからである。この不安定性のため、正確さが必須となる重要なタスクには適用できない。証拠として、LLM が厳格な禁止事項を繰り返し無視する例がある。例えばあるモデルが 1 日以内に 2 度も build ディレクトリをプロジェクトにコミットした事例や、明白なコーディング誤りを引き起こした事例などが挙げられる。対照的に、単純な決定論的パーサー(Ragel など)は瞬時に 10,000 行の完全に無誤なコードを生成できる。
この課題に対処するためには、将来の方向性は LLM を形式化された開発環境に統合し、那里では慣用的なスクリプティングを自動化するとともに安全で反復的なタスクを取り扱う一方、重いロジックと検証を安定した決定論的な C コードへオフロードすることで実現されるはずである。Beagle SCM プロジェクトはそのような転換を示す例となっている:ツール層およびワークフロー層は JavaScript を使用し(これにより LLM 自身が自分のルーチンをスクリプト生成できる)、一方でコア機能や重要なロジックは C で実装され、稀に変更される。このアプローチでは、可変的なツールを活用して反復的な動作シーケンスを自動化し、システム全体の正当性とセキュリティを保証するために失敗を検知する検証ステップを実行する。開発者は生のモデルの知能に依存することなく、信頼性の高い環境を設定し、単純な決定論的なツールが「重い負荷」を担当させることで、LLM を代替するのではなく、堅牢な形式的ワークフローへと取り込む。これにより、LLM は「自身を自動化する方向」へとシフトさせられるのである。
本文
LLM の自律性向上による自己自動化への道:Beagle SCM を通じた戦略
はじめに
AI 研究者である A. Karpathy 氏が指摘するように、モデルを進化させるプロセスは、**「開発者自身を自動化の道へ追いやる」**というパラドックスを含んでいます。現在 Anthropic の Fable モデルを用いて開発を進める「Beagle SCM」においてさえも例外ではありません。
- 卓越した能力:
- 膨大なコードの中から細部の不整合(ニッツ)を見逃さない。
- タスクチケットの作成や修正を自動実行する。
- 残存的な笨拙さ(非決定的性):
- 「build/」ディレクトリを意図せずプロジェクトに 2 回もコミットしてしまうなどのミス発生。
- 知能は高い反面、依然として手動操作が必要な部分への依存や予期せぬ動作が孕んでいる。
LLM の本質的課題:不正確性と非決定論性
大規模言語モデル(LLM)の特性上、この「笨拙さ」の問題は進化とともに解消されるどころか、むしろ先鋭化していく傾向があります。
- 決定的な違い:
- Ragelなどのパーサ生成器: 10 万行超のコード規模でも、形式的に正しいパーサーを瞬時に書き出せます(決定論的)。
- LLM (例:Claude): 本質的に不正確であり、非決定論的です。
- 具体的な事例:
- 「決して手動で何らもののパースを試さず」と明記された指示に対し、LLM はやむなく試みを繰り返すケースがある。
- 対処法として、コードベースをスキャンさせ、手動パースの痕跡を検知・削除させる指示を出しているが、依然として周期的な監視が必要。
結論:「卓越しつつも不整合で非決定論的」という性質が LLM に固有です。
解決戦略:二重のサンドイッチ構造
高価で遅く、かつ笨拙ながら卓越した LLM を対峙するためのアプローチは、その不完全な部分を補完することにあります。
- 基本コンセプト:
- LLM の「卓越性」のみを取り出し、「不整合」と「非決定論的」な側面からは解放される。
- 高速で強力かつ決定論的なツールを併用する。
- 全ての処理を決定論的な形式的ワークフローに組み込む。
- 実装手法:
- 二重のサンドイッチ構造による挟み込み。
- 下側: ツールの層(高速・決定論)。
- 中: LLM の層(卓越性を利用)。
- 上側: ワークフローの層(全体の統括)。
- 二重のサンドイッチ構造による挟み込み。
自動化と柔軟なワークフローの設計
使用するツールやワークフローは、状況に応じて動的かつ変化しうるように設計されます。
- 過剰実行への対応:
- 特定のアクション序列が頻繁に繰り返される場合 → それを自動的に実行する仕組みへ置き換える。
- 失敗への対応:
- タスクで繰り返し失敗する場合 → その検証ステップを自動化する。
要約すると、以下のアプローチを採用します。
LLM を用いて自らを自動化へと導きつつ、一方でシンプルで信頼性が高く決定論的なツールによって補完する
Beagle SCM の技術的実装
Beagle SCM では、上記の哲学を実践したハイブリッドな構造をとっています。
- スクリプト生成:
- LLM にJavaScript によるスクリプトの自己生成を許容する。
- 言語の役割分担:
- 重厚な実装部分:
で記述(ほぼ変更なし)。C - ツールの層 & ワークフローの層: 全て
で記述(Beagle SCM の本体)。JavaScript
- 重厚な実装部分:
- コードのロード方式:
- ファイルシステムから
方式でコードをロードする。node_modules
- ファイルシステムから
- Git フックとしての機能:
- ローダが以下の処理をほぼあらゆる言語に対して可能にします。
- ソースファイルをトークン化。
- ファイル履歴およびコミット履歴を検査。
- リンクの相互整合性を確認。
- Git 内部でアクセス可能な全てのデータに到達。
- ローダが以下の処理をほぼあらゆる言語に対して可能にします。
Beagle SCMは、このように決定論的なプロセスと LLM の柔軟性を統合した新しい開発ツールの代表例です。