大規模言語モデルの特徴とTai-Danaeの道具箱
【 Tai-Danaeはどんな概念装置を利用したか?】
このセッションでは、大規模言語モデルの特徴を捉えるために、彼女がどのような概念装置を利用したかを見ていきたいと思います。
今回、紹介するのはその概略です。
【 DisCoCatモデルとの比較】
彼女の大規模言語モデルの数学モデルの概要を理解するには、を、それをDisCoCatのモデルと比較するのがわかりやすいと思います。
DisCoCatのモデルというのは、SyntaxとSemanticsの対応を次のように捉えるものです。
𝐹𝑢𝑛𝑐𝑡𝑜𝑟 𝐹 : 𝑃𝑟𝑒𝐺𝑟𝑜𝑢𝑝 → 𝐹𝑉𝑒𝑐𝑡
ここで 𝑃𝑟𝑒𝐺𝑟𝑜𝑢𝑝は、LambekのPregroup文法のカテゴリーで、𝐹𝑉𝑒𝑐𝑡は、意味を表現する有限ベクトル空間のカテゴリー、𝐹𝑢𝑛𝑐𝑡𝑜𝑟 𝐹 は、カテゴリーからカテゴリーへの一般的なFunctorです。
【 大規模言語モデルの訓練用データはPreGroupではない 】
大規模言語モデルに与えられる訓練用データは、ただの平文で、文法構造が Pregroup文法で解析済みのものではありません。
ただ、これまでそうした平文の集まりは、「何の構造もない」と言ってきたのですが、文をフレーズに、フレーズを語に分解して、それらの全体を考えてみます。文・フレーズ・文を、文字の並びとして考えてみると、これらの文字列の間には、単純ですが、ある関係があることがわかります。
それは、文字列xが文字列yに含まれるという関係です。これを 𝑥 ≤ 𝑦 と表すことにします。
例えば、
”blue” ≤ “small blue” ≤ “small blue marbles”
という関係が成り立っています。
xがyの部分文字列であるという関係𝑥≤𝑦 をPreorderと言います。
𝑥 ≤ 𝑦 を𝑥→𝑦 で表すと、文字列の全体は、 𝑥→𝑦を射とするカテゴリーと考えることができます。
これを言語Lだと考えます。
言語は、Preorderを射とするカテゴリーということになります。
【 DisCoCatの意味を表現するFVectは?】
意味を表現するFVectは、どう変わったのでしょう?
彼女のモデルでは、”語の意味は、それが引きつれている仲間で決まる”というFirth流の意味論が採用されています。語”red”の意味は、先の図でredと矢印で結ばれている文字列全てで表現されることになります。
このカテゴリーを copresheaf と言います。
定義で言うと、カテゴリーC上のcopresheaf とは、カテゴリーCから集合のカテゴリーSetへのFunctor です。
𝑐𝑜𝑝𝑟𝑒𝑠ℎ𝑒𝑎𝑓 𝑐𝑝𝑠:𝐶→𝑆𝑒𝑡
これを、𝑆𝑒𝑡^𝐶 で表します。
copresheafが、Firth流の意味を表現するカテゴリーになりうることについては、後の章で詳しく説明したいと思います。
ここで重要な役割を果たすのは、「米田のレンマ Yoneda Lemma 」という定理です。
また、このカテゴリーは、大規模言語モデルの意味の世界に論理的な構造を導入する役割も果たします。
多分多くの人には見知らぬカテゴリーcopresheaf 𝑆𝑒𝑡^𝐶 ですが、構成はベクトルの構成と似ているところがあります。
ベクトルVというのは(実ベクトルなら)、ある集合Xから実数Rへの関数です。
𝑉 :𝑋→ℝ
これは、ℝ^𝑋と表すことができます。
FVect ℝ^𝑋の代わりに、 𝑆𝑒𝑡^𝐶 が登場しても、似ているところがあると思っていいのです。
【 DisCoCatのSyntaxとSemanticsを対応づけるFunctor は? 】
新しい枠組みでは、DisCoCatのFunctorの代わりに、Yoneda embeddingというのを使います。これもあとでcopresheafと一緒にきちんと説明します。
【 DisCoCatモデルと新しいモデル 】
DisCoCatのモデルというのは、SyntaxとSemanticsの対応を次のように捉えるものです。
𝐹𝑢𝑛𝑐𝑡𝑜𝑟
𝑃𝑟𝑒𝐺𝑟𝑜𝑢𝑝 → 𝐹𝑉𝑒𝑐𝑡
新しいモデルでは、SyntaxとSmanticsの関係はこうなります。
𝑌𝑜𝑛𝑒𝑑𝑎
𝑃𝑟𝑒𝑜𝑟𝑑𝑒𝑟 → 𝑐𝑜𝑝𝑟𝑒𝑠ℎ𝑒𝑎𝑓
【 ただ、それだけではないのです】
今までのがモデル構成の最初の段階です。次の段階があるのです。(実はもっとあるのですが)
それは、最初の言語Lを、preorder のカテゴリーと特徴づけたことと関連します。
それは元々は、 “red” → “red ocean” のような単純な射からなるカテゴリーだったのですが、この射に、確率を紐づけます。
0.24
“𝑟𝑒𝑑” → “𝑟𝑒𝑑 𝑜𝑐𝑒𝑎𝑛”
0.031
“𝑟𝑒𝑑” → “𝑟𝑒𝑑 𝑖𝑑𝑒𝑎”
一般に、あるカテゴリーの射がある性質を持つように拡張したカテゴリーを enriched category と呼びます。
彼女の新しいモデルは、このenriched category を用いて、大規模言語モデルの確率的性質を記述しようとするモデルなのです。
【 彼女が利用する概念装置】
彼女が利用する概念装置の概略(名前だけですが)をまとめてみました。
⚫️ preorder
⚫️ copresheaf
⚫️ Yoneda Lemma
⚫️ Yoneda embedding
⚫️ enriched category
つぎから、これらのカテゴリーの働きを、大規模言語モデルとの関係を含めて説明したいと思います。
--------------------------------
ショートムービー「 大規模言語モデルの特徴とTai-Danaeの道具箱 」を公開しました。
https://youtu.be/KX9Qe7vZexA?list=PLQIrJ0f9gMcPgnaymP8vC37oKdYa5pvDm
「 大規模言語モデルの特徴とTai-Danaeの道具箱 」のpdf資料
https://drive.google.com/file/d/1XcB4hTDPUf_BtFCCSWxe_JlCT8Z_vZS0/view?usp=sharing
https://drive.google.com/file/d/1XcB4hTDPUf_BtFCCSWxe_JlCT8Z_vZS0/view?usp=sharing
blog 「 Tai-Danaeはどんな概念装置を利用したか?」
https://maruyama097.blogspot.com/2023/11/tai-danae_0288700087.html
「大規模言語モデルの数学的構造」まとめページ
https://www.marulabo.net/docs/llm-math/
https://www.marulabo.net/docs/llm-math/
コメント
コメントを投稿