Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails以外の開発一般

ChatGPTのしくみとAI理論の根源に迫る(15/16)意味文法と「計算言語」のパワー(翻訳)

概要

原文サイトのCreative Commons BY-NC-SA 4.0を継承する形で翻訳・公開いたします。

日本語タイトルは内容に即したものにしました。原文が長大なので、章ごとに16分割して公開します。
スタイルについては、かっこ書きを注釈にする、図をblockquoteにするなどフォーマットを適宜改善し、文面に適宜強調も加えています。

元記事は、2023年2月の公開時点における、ChatGPTを題材とした生成AIの基本概念について解説したものです。実際の商用AIでは有害コンテンツのフィルタなどさまざまな制御も加えられているため、そうした商用の生成AIが確率をベースとしつつ、確率以外の制御も加わっていることを知っておいてください。

本記事の原文を開いて、そこに掲載されている図版をクリックすると、自分のコンピュータでもすぐに実行して試せるWolfram言語コードが自動的にクリップボードにコピーされるようになっています。

コモンズ証 - 表示 - 非営利 - 継承 4.0 国際 - Creative Commons

前回: (14/16)意味空間と「意味論的な」運動法則

ChatGPTのしくみとAI理論の根源に迫る(15/16)意味文法と「計算言語」のパワー(翻訳)

人間の「意味を持つ言語」を生成するには、何が必要なのでしょうか?かつては、人間の脳がなければ到底無理だろうと考えられていた時代もあります。しかし今や、ChatGPTのニューラルネットを用いることで、相当なレベルで実現できることがわかってきました。

とはいうものの、もしかしたらこれが限界かもしれませんし、人間が理解可能な技術としてはこれ以上シンプルなものは存在しないかもしれないという可能性もあります。しかし私は、ChatGPTの成功は、ある重要な「科学的」事実を暗黙のうちに明らかにしたのだと私は強く信じています。それは、人間の「意味を持つ言語」には、人間がこれまで見落としていたような構造やシンプルさがまだ潜んでいる可能性があること、そして最終的には、そのような「意味を持つ言語」を構成する方法を記述できる、現在よりさらにシンプルな規則が存在する可能性すらありうる、という信念です。


これまでに述べたように、構文文法(syntactic grammar)は、さまざまな品詞に対応する語(word)を人間の言語でどのように組立てるかについてのルールを与えます。しかしそれはあくまで形の上での構文であり、言語で意味を扱うには、そこからさらに踏み込む必要があります。

その方法の1つが、構文文法に加えて意味文法(semantic grammar)、すなわち意味を表現するための文法についても考察することです。

私たちは、構文上の目的のために、名詞や動詞などの品詞を識別しますが、意味上の目的のためには、それよりも「もっと細かいグラデーション」が必要です。

たとえば私たちは、「動く」という概念を識別することも、位置にかかわらず同一性を維持する「物体(object)」という概念を識別することもできます。このような「意味概念」の具体例をリストアップしていたらきりがありませんが、意味文法という観点からは、基本的に「"物体"は"動く"ことがある」という何らかの一般的なルールがあれば十分です。これが機能するしくみについては別記事でもある程度説明しましたが、ここでは、今後の道筋を示すいくつかの考察を述べるにとどめておきます。

ここで指摘しておきたいのは、ある文が、たとえ文法的には完璧だったとしても、意味文法に照らし合わせたときに、それが現実に起きたことと一致する(あるいは起きる可能性がある)とは限らないことです。
「そのゾウは月に旅をした(The elephant traveled to the Moon)」という文章は、私たちの意味文法に照らし合わせれば文句無しに「合格」しますが、それが現実世界で(少なくとも過去に)起きたことを意味していないのは明らかです(もちろんフィクションの世界であれば何の問題もありません)。

こういう「意味文法」の話を始めると、たちまち「その意味文法を支えているものは一体何なのか?」「そこではどんな"世界モデル"を仮定しているのか?」という疑問が持ち上がります。構文文法は、あくまで語の組み立てについてのルールを述べているに過ぎませんが、意味文法では、どうしても何らかの「世界モデル」(つまり実際の語を積み重ねたものを土台としてその上に構築される「骨格」として存在するもの)と関わりを持つことになります。


ごく最近まで、そうした「世界モデル」を記述する一般的な手段は、(人間の)言語以外には存在しないと思われてきたことでしょう。ほんの数世紀前に、特に数学の特定の分野では「形式化(formalization)」が開始されていましたが、現在の私たちは、それよりもずっと汎用性の高い形式化である計算言語(computational language)を手にしているのです。

そしてこの計算言語こそ、私が40年以上に渡って取り組んできたビッグプロジェクトであり、それがWolfram言語に結実しています。Wolfram言語の目的は、世界で起きているあまたの事象と、人間が関心を寄せる抽象的な事象をできる限り精密に記述できる記号表現を開発することです。実際、Wolfram言語では、「都市 」「分子」「画像」「 ニューラルネットワーク」などの記号化表現が用意されており、それらについて計算を行うのに必要な知識もそこに組み込まれています。

私たちは数十年におよび同プロジェクトの取り組みの結果、多くの分野をカバーしてきましたが、「日常の会話」についてはカバーしていません。たとえば「私は2ポンドのリンゴを買った(I bought two pounds of apples)」という文を例にすると、「2ポンドのリンゴ」の部分についてはそのための記号化表現が既に用意されていますが、「私は買った(I bought)」を表す記号表現は(今のところ)ありません。

今の話は、どれも意味文法というアイデア、すなわち概念を汎用的に表現する記号の「組み立てキット」を提供するという目標と結びついています。この記号組み立てキットは、そこから「何と何をどう組み合わせれば意味が適切になるか」を示すルールや、ひいてはそれが人間の言語に変換されるときの「フロー」のルールを得られることが期待されます。


しかし、仮にそうした「記号化された会話言語」というものが手に入ったとして、それで何ができるでしょうか?最初のうちは「局所的に意味のあるテキスト」を生成して満足していても、いずれ「よりグローバルに意味のあるテキスト」が欲しくなるものです。つまり、現実世界(もしくは辻褄の合うフィクションの世界)で実際に起き得ることをさらに深く計算しなければならなくなるということです。

現時点のWolfram言語には、さまざまな事物を対象とする膨大な計算知識が組み込まれています。しかし会話言語の記号化を完全なものにするには、現実世界に存在する一般的な事物を扱うための「計算方法」を新たに構築しなければならなくなるでしょう(例: ある物体をAからBに移動し、次にBからCに移動すると、最終的にAからCに移動したことになる)。

仮に記号化された会話言語が手に入れば、私たちはそれを用いて「単独の文面」を記述するだけでなく、あるときは私の「Wolram Alpha」のようなスタイルで世界について質問することも可能でしょうし1、またあるときは何らかの外部駆動メカニズムを用いて「こうしたい、ああしたい」と指示することも可能でしょう。またあるときは、現実世界であろうとフィクションの世界などであろうと構わずに何らかの主張を行うことも可能でしょう。


そもそも人間の言語は、根本的に精度が低いものです。その理由は、人間の言語は特定の計算処理実装に「縛られている」ものではなく、基本的に、言語を使う人間たちの間で暗黙のうちに交わされている「社会的契約」によってのみ定義されているからです。

しかし逆に、計算言語は根本的にある程度高精度なものです。その理由は、計算言語は常に「コンピュータ上で曖昧さなしに実行される」ものだからです。

人間の言語は、適度に曖昧さを含んでいるのが普通です(「惑星」と言ったときに、太陽系外惑星を含むのか含まないのか、など)が、計算言語では、人間普段行っているあらゆる区別を厳密かつ明確な形で行わなければならなくなります。

計算言語でも、変数名や関数名などを人間の言語(ここでは英語)で命名できると便利なことがよくあります。しかし計算言語における命名は、必然的に厳密にならざるを得ません。そして、それが人間の言語で典型的に見られるような意味上の「含み」「含意」までカバーしていることもあれば、そうでないこともあるでしょう。

一般的な「記号化された会話言語」にふさわしい「オントロジー(ontology: ここでは知識を体系化するための仕様)」を果たして見いだせるかというと、まあ普通に難しいでしょう。二千年以上も昔に哲学者アリストテレスが手がけた初期のオントロジー研究がほとんど進んでいない理由も、おそらくそのせいです。しかし現代では、世界を「計算的に」考える方法は非常に役立っています(だからこそ、私たちが手掛けているWolfram物理プロジェクトや私が提唱するRuliadという概念2から得た「基礎的な形而上学」も決して無駄ではありません)。

しかし、これらはChatGPTの文脈において一体何を意味しているのでしょうか?
ChatGPTは、トレーニングによって、ある程度の(というよりかなりの)量の意味文法的なものを効果的に「組み立てて」きました。しかしChatGPTの成功そのものが、そうしたものを計算言語らしい形式で、より完全に構築できてもおかしくないと考える根拠を与えてくれています。そして、これまでChatGPTの内部について解明されてきた結果と異なる、人間にとって理解しやすい計算言語を設計できることが期待できそうです。


さて、意味文法について、いわゆる三段論法(syllogistic logic)とのアナロジーが考えられます。
古代ギリシャで三段論法が最初に登場したときは、本質的に人間の言語で表現される文(statements)の規則の集合でした。しかし(もちろん二千年後)形式論理(formal logic)が開発されたことで、三段論法にもともとあった基本要素を用いて、たとえば現代のデジタル回路の操作といった壮大な「形式の塔(formal tower)」を構築できるようになったのです。

であれば、三段論法よりずっと一般性の高い意味文法でも同じことが期待できるでしょう。最初のうちは、たとえばテキストで表現されたシンプルなパターンを扱うのが精一杯かもしれません。しかし計算言語のフレームワーク全体が構築されれば、それを用いて「汎化意味論ロジック(generalized semantic logic)」の巨大な塔を建設することも可能となり、それによって、従来ならどうやっても曖昧にならざるを得ない人間の言語を介して「基礎の基礎レベル」でアクセスするしかなかったあらゆる事物を、厳密かつ形式的に扱うことが可能になるでしょう。


計算言語(と意味文法)の構築は、言ってみれば事物を表現するときの究極の圧縮とみなすことも可能です。それが実現できれば、たとえば普通の人間の言語に存在する「ありとあらゆる凝った言い回し」を扱わなくても、何らかの可能性の本質だけをズバリ表現できるようになります。

そして、ChatGPTの強みも、それと少し似ている面があります。ChatGPTはある意味で「突き抜けている」ので、どんな凝った言い回しがありうるかという可能性を気にすることなく、「意味のある形で言語を組み立てられる」からです。

では、それらの基礎となる計算言語にChatGPTを適用したら3、何が起きるでしょうか?
計算言語は、「何が可能であるか?」を記述できますが、Web上のあらゆるコンテンツに基づいて「人気があるのはどれか?」という感覚をChatGPTに付け加えることも可能になります。

しかし、ChatGPTの背後で計算言語を扱うようになれば、潜在的に縮約不可能な計算を利用するための究極ツールに、即座に、かつ本質的にアクセス可能になります。すなわち、ChatGPTが単に「適切なテキストを生成する」だけのツールにとどまらず、テキストが世界について(あるいはテキストが語るべきあらゆる内容について)本当に「正しい」ことを述べているかどうかを、厳密かつ計算的に判断できることが期待できます。

次回: (16/16)結局ChatGPTはなぜ、どのように動くのか?

訳注

近年のGPT-5 Proは、数学的な発見まで行うようになっているそうです。

関連記事

ChatGPTのしくみとAI理論の根源に迫る:(1/16)実は語を1個ずつ後ろに追加しているだけ(翻訳)

ChatGPTのしくみとAI理論の根源に迫る:(2/16)その確率は「どこから」来たのか?(翻訳)

ChatGPTのしくみとAI理論の根源に迫る:(3/16)AIの「モデル」とは何か(翻訳)


  1. 訳注: Wolram Alphaでたとえば「地震 日本 2011年」を検索してみるとよいでしょう。 
  2. 訳注: 推測止まりですが、Ruliadはおそらくルール(rule)とイーリアス(illiad)を組み合わせた造語と思われます。 
  3. 訳注: これは、ChatGPTからWolfram Alpha(およびWolfram言語)に今で言うMCP的に連携させることを指していると考えられます(元記事執筆当時はMCPはありませんでした)。 

CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。