LLMはプログラミング言語を代替できない理由

#Tech

生成AI(LLM)が構文的・意味的に正しいコードを生成できることで、プログラミング言語の必要性が疑問視されている。

しかし筆者は、過去の自然言語クエリインターフェースの検証(WikiEveなど)から、純粋なNL(自然言語)インターフェースには根本的な問題があると指摘する。

NLインターフェースは動作範囲が不明瞭であり、ユーザーが意図した結果を得るためには専門的な知識が必要となる「リーキー・アブストラクション」が生じる。

したがって、LLMは高度なコンパイラとなり得るものの、伝統的なプログラミング言語や明確なインターフェースは依然として不可欠である。

生成AIの進化に伴い、「プログラミング言語は不要になるのでは?」という議論が活発化しています。しかし、ロボティクス分野のプログラミング言語「Mech」の開発者であるCorey Montella氏は、LLM(大規模言語モデル)がコードを生成できるようになった今でも、従来のプログラミング言語の役割は不可欠であると主張しています。本記事では、その具体的な論点と、LLMが持つ限界について解説します。

LLMは高度なコンパイラと見なせる

LLM、特にChatGPTの登場は、文法的に正しく、かつ意味的にも正しいコードを生成できることを示し、プログラミング言語の必要性について大きな疑問を投げかけました。一部では、LLMをコンパイラとして利用し、自然言語の指示から最適化された機械語を直接生成できるという構想が提唱されています。これは、従来のパーサーや最適化コンパイラを迂回する「SF的なビジョン」と捉えられています。

しかし、Montella氏は、LLMを単なるチャットボットとしてではなく、高度に洗練されたコンパイラとして捉える視点から議論を進めています。この視点は、LLMが持つ潜在的な能力を深く理解した上で導き出された結論だそうです。

自然言語インターフェースの限界

Montella氏は、過去に開発した「WikiEve」という研究言語の経験を例に挙げ、自然言語によるクエリ実行の限界を指摘しています。WikiEveは、エンティティ・属性・値(EAV)というリレーショナルデータベース構造を持つシステムで、自然言語で質問を投げかけると、システムが適切なクエリプランを生成・実行する仕組みでした。

しかし、このシステムでも、自然言語の解釈(ヒューリスティクス)が失敗すると、ユーザーが意図した結果が得られないという問題が発生しました。これは、LLMや「ローコードソリューション」が抱える本質的な課題であり、必ずどこかの段階で従来のプログラミングインターフェース(エスケープハッチ)が必要になるという結論に至っています。

プログラミング言語の役割は代替不可能

Montella氏は、LLMがコードを生成できることは認めつつも、プログラミング言語の役割は代替不可能であると結論づけています。彼の主張は、単にコードを記述する手段としてだけでなく、システムが正確に動作するための「設計図」や「論理構造」を提供する点にあります。

LLMは、自然言語の曖昧さや文脈の複雑さを完全に処理することは困難です。特に、ロボティクスのような厳密な計算や物理的な制約が関わる分野では、明確で厳密な構文を持つプログラミング言語が不可欠であると説明しています。

結論

LLMは開発プロセスを強力に支援するツールとなることは間違いありませんが、プログラミング言語そのものを完全に置き換えることは難しいと見られています。LLMと従来の言語は、互いに補完し合う関係にあると結論づけています。

原文の冒頭を表示(英語・3段落のみ)

Corey Montella • January 9 2025

Welcome to 2025! It's been a while since the last blog post so this will be a packed update. Development has hit highs and lows over the past couple years so in this post I will cover all of it, including a discussion on the future of Mech and programming languages generally in a world of generative AI.

Mech development took a hiatus for a year, but we are back and more active than ever.

※ 著作権に配慮し、引用は冒頭3段落までです。続きは元記事をご覧ください。

元記事を読む ↗