ゼロ・ウィズ・ドット (オレグ・ジェロ): AIシステムのた... ノート

ゼロ・ウィズ・ドット (オレグ・ジェロ): AIシステムのためのテキスト・トゥ・ダイアグラム: LLMが正しく理解するDSLの設計

このテキストは、ソフトウェア開発におけるコミュニケーションの断絶に対するソリューションであるGnomonを紹介しています。この断絶は、異なるステークホルダーがシステムの記述を異なるように解釈することによって生じます。「請求書を修正するエージェントを構築しています」のような「修正」といった用語が、異なる理解やプロジェクトの失敗につながることを、著者は多様な経験に基づいて強調しています。大規模言語モデル(LLM)の台頭は、もっともらしいが潜在的に不正確なアーキテクチャ図を生成することで、これを悪化させています。Gnomonは、小さな言語であるgnomocodeと、オントロジーに対してステートメントを検証するコンパイラを提供することで、これに対処します。LLMは自然言語をgnomocodeに翻訳し、コンパイラはその有効性をチェックし、出力は視覚化、クエリ、または文章に変換することができます。Pythonで書かれたコンパイラは、Lark、rdflib、pySHACLを使用しています。Gnomonの背後にある動機は、話し言葉と実行可能な図との間のギャップを埋め、一貫性と説明責任を確保することです。会話からモデルへ、そしてコード/図から読みやすいテキストへの両方向での動作を目指しています。会話からモデルへの順方向が、この記事の主な焦点です。Gnomonの主要な要件には、曖昧さのない用語、最新のアーキテクチャ要素(LLM、メモリ、ツール)のネイティブサポート、人間とモデルの両方にとっての可読性、単一モデルからの複数のビュー、バージョン管理、不確実性を表現する能力が含まれます。このアプローチは、LLMに直接質問したり、構造化されたオブジェクトを使用したりするような、より単純な方法を試みた結果から進化しました。これらの方法は、アーキテクチャグラフの複雑さや欠落した情報に対処できませんでした。UMLやC4のような既存の表記法も、固定されたシンボル、"かもしれない"ステートメントの欠如、限られた意味論的チェックのために不十分であることがわかりました。コンパイラを備えたカスタム言語が、最も実行可能なソリューションであることが証明されました。コンパイラは、LLMにローカライズされたエラーとフィードバックを提供し、修正を可能にします。Gnomonの中核は、SKOS、PROV-O、DPVのような既存のRDF語彙に基づいたオントロジーです。57の用語と12のモジュールからなるこのカーネルは、関係とルールを定義し、一貫性を確保します。オントロジーは、語彙、コンパイラのエラーメッセージ、文章生成、図ビューを決定します。Gnomocode自体は、Markdown、Python、グラフクエリ言語から構文を借用した、可読性と精度を重視して設計されています。宣言、プロパティ割り当て、アクション、フローなどの概念をサポートしています。重要な機能は、事実に対する信頼度レベルを表現できることで、システムがさらなる確認を必要とする情報を特定できるようになります。Pythonで書かれたコンパイラは、解析にLarkを使用しています。その文法はオントロジーから直接生成されるため、言語の拡張はコードを変更するのではなく、データを変更することになります。このモジュール式の設計により、コアの解析ルールを変更することなく、柔軟な語彙拡張が可能になります。
CdXz5zHNQW_IUf3kDkWHC.png