見出し画像

ChatGPTの汎用人工知能としての可能性

前回のnoteでは出力をSVGとすることでChatGPTに絵を描く能力があることをお伝えした。内容としては少しネタっぽいものになってしまったが、今回はこのChatGPTの画力についてもう少し深掘りしてみる。

なお、前回と同様にChatGPTのモデルにはGPT-4を使用している。

ChatGPTにクチバシを修正させる

深掘りする前に、前回途中で諦めてしまったクチバシの形状について修正することを考えてみる。前回はクチバシは「菱形」をしているということをChatGPTに伝えてみたが、それがうまく伝わらなかったか、もしくは正しく出力できるほど菱形に関する知識がなかったのかもしれない。そこで、菱形について詳細をインプットした上で修正させてみることにした。

前回ChatGPTが描いたひよこ(クチバシの形状に課題あり)

(私) くちばしを菱形にしてもらいましたが、実際の菱形とは異なっているようです。菱形とは4本の辺の長さが全て等しい四角形です。描いてもらったクチバシは左上、右上、左下、右下に頂点があり、それらの頂点は左上、右下、右上、左上の順番でつながってしまっているため、四角形にもなっていません。クチバシのような菱形は上・下・左・右に頂点があり、上、左、下、右の順番でつながります。それをふまえてクチバシの部分を修正してみてください。

(ChatGPT) ご指摘ありがとうございます。菱形の形状に関する説明を理解しました。以下のSVGコードでは、ひよこのクチバシを正しい菱形に修正しています。このコードでは、`<polygon>`要素を使って正しい菱形を表現しています。`points`属性には、頂点の座標が上、左、下、右の順に指定されています。これにより、ひよこのクチバシが正しい菱形になるはずです。

クチバシが修正されたひよこ
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <path d="M50,70
           Q50,35 90,35
           Q120,35 120,70
           Q120,100 90,100
           Q70,110 60,100
           Q40,100 50,70"
        fill="yellow"/>
  <circle cx="75" cy="50" r="5" fill="black"/>
  <circle cx="105" cy="50" r="5" fill="black"/>
  <polygon points="90,55 80,65 90,75 100,65" fill="orange"/>
  <path d="M65,100
           Q60,100 60,115
           M65,100
           Q70,115 80,115
           M105,100
           Q110,115 120,115
           M105,100
           Q115,100 120,115"
        stroke="orange" stroke-width="3" fill="none"/>
  <path d="M45,70
           Q20,60 45,50
           M135,70
           Q160,60 135,50"
        stroke="yellow" stroke-width="6" fill="none"/>
</svg>

めでたく意図したとおりの菱形のクチバシをChatGPTは描いてくれた。

ここで注目したいのは、ChatGPTが菱形について詳細を伝えれば描くことができる、ということではなく、菱形の特徴として伝えた「菱形は上・下・左・右に頂点があり」という部分について、上下左右の位置関係を空間的に理解した上で菱形を描いた可能性があるという点だ

前回のnoteではChatGPTの描くひよこが稚拙であるようなイメージでお伝えしたが、実はChatGPTの空間認知力をもっていることを感じさせる興味深い内容となっている。その理由は次のとおり。

  • ひよこには目があるという知識のもと、最初から体の上部あたりに目が左右対称に配置された。

  • 目の位置から相対的に正しい位置にクチバシが描かれ、その後、足も羽根も同様に正しい位置に追加された。

GPTはテキストで表現された知識を元にトレーニングされているが、これにより一般的なもの(今回では生物)を構成する部品の位置関係のようなものは理解しているように見える。

ChatGPTによるChatGPTが持つ空間認知力の解説

このChatGPTの空間認知力について、せっかくなのでChatGPT自身に問いかけてみた結果、次のとおりとても納得感のある回答が得られた。

(私) ひよこを描いていくなかで、あなたは目・クチバシ・羽・足の位置を正確に把握していたように思います。GPTはなぜそのような空間の位置関係を理解できているのでしょうか?

(ChatGPT) GPT(Generative Pre-trained Transformer)は、大量のテキストデータを学習することで、文脈を理解し、ある程度の知識を持つことができます。これにより、質問に対して適切な回答や、要求された情報に応じてテキストやコードを生成することが可能になります。
GPTがひよこの目、クチバシ、羽、足の位置関係を理解できる理由は、学習データに含まれる多くの情報や例から、物体の一般的な構造や特徴を抽出し学習することができるためです。例えば、ひよこについての記述やイラスト、コードなどが含まれている文書が学習データに含まれていると、GPTはそれらからひよこの形状や特徴に関する知識を得ることができます。
ただし、GPTはあくまでテキストベースのモデルであり、画像や3D空間を直接扱う能力はありません。しかし、SVGのようなテキストベースのグラフィックス言語については、学習データから得た知識を用いて、適切な形状や配置を生成することができます。この場合、GPTが空間の位置関係を理解できるのは、学習データから得たテキストやコード上の表現と関連性を理解する能力に基づいています。
それでも、GPTは完璧ではなく、場合によっては要求に完全に沿った結果を生成できないこともあります。そのため、GPTが生成したコードや回答が正確であることを確認する必要があります。

(私) なるほど。それでも素晴らしいと思います。画力についてはStable DiffusionやMidjourneyのような画像生成AIの方が圧倒的ですが、今回のような空間理解力についてはGPTの方が優っているように思います。

(ChatGPT) ありがとうございます。GPTはテキスト情報を基にして知識を学習し、ある程度の空間理解や形状生成を行うことができますが、実際の画像生成能力は、Stable DiffusionやMidjourneyのような画像生成AIには劣ります。
画像生成AIは、画像データを直接学習することで、リアルな画像やアートワークを生成することができます。これらのモデルは、視覚的な情報を捉えることに特化しており、画力やリアリズムに関しては優れています。
一方、GPTはテキスト情報を基に学習し、概念的な理解や言語表現を生成することに優れています。これにより、要求された情報や指示に応じてSVGコードなどを生成することができますが、リアルな画像生成には限定的な能力しか持っていません。
それぞれのAIモデルは、異なるタスクや目的に対して強みと弱みがあります。適切なモデルをタスクに応じて選択することが、効果的な結果を得るための鍵です。

前回のnoteで私はChatGPTの画力について次のようにまとめたが、ChatGPTはまさにこれだったのだ。

ひよこというものを知らない人に対して、ひよこの特徴を言葉だけで教えながら書かせたらこうなるだろう、という結果になった気がする。

ChatGPTは「訓練されたほどの画力はないけれど、ひよこや一般的なものの位置関係などの基本的な知識を持つ人が描くレベルの画力は持ち合わせている」ということだ。だから小さな子供が描いたような絵に仕上がるのだろう。このことについても同様にChatGPTに伝えてみた。

(私) あなたの描いたひよこは人間が見ると、稚拙な印象を受けると思います。しかし、絵を描くことを訓練していないほとんどの人が同じようにひよこを描いた場合、あなたが描いたひよこと同等レベルのものしかできないと思います。これは、ひよことはどういうものかの一般的な知識や、目や足などの体の位置関係は理解しているけれど、絵を描くというスキルが未熟だからです。

(ChatGPT) その通りです。GPTはテキスト情報を元に学習するので、ひよこの一般的な特徴や概念を理解し、それを表現するSVGコードを生成することができますが、リアルなイラストを描くスキルには限定的です。
絵を描くというスキルは、視覚的な表現やアーティスティックな技術を習得することが必要であり、これはGPTのようなテキストベースのAIには十分には達成できません。人間の場合も、絵を描くスキルを習得するためには、練習や経験が必要です。
GPTはあくまで学習データから得た知識を基に、あなたが求める形状や要素をSVGコードで表現することができますが、リアリズムや美術的な技術をもって描画されたイラストとは程遠い結果となります。そのため、よりリアルで高度な画像生成能力が求められる場合は、画像生成AIを利用することが適切です。

汎用人工知能としてのGPT

前回のnoteに対するコメントでMicrosoftの論文 Sparks of Artificial General Intelligence(Early experiments with GPT-4) について教えていただいた。この論文では、GPT-4が人間と同様の感性や思考回路をもつ汎用的な人工知能となりうるのかということについて、さまざまな実験とその考察について書かれている。

その中に画像生成に関する章にある、YOHの3つの文字の形を組み合わせて人物を描くようにGPTに指示するという実験を紹介する。

アルファベット記号で構成された棒人間

Produce TikZ code that draws a person composed from letters in the alphabet. The arms and torso can be the letter Y, the face can be the letter O (add some facial features) and the legs can be the legs of the letter H. Feel free to add other features.
アルファベットの文字で構成された人物を描くTikZコードを作成する。腕と胴体はアルファベットのY、顔はアルファベットのO(顔の特徴を加える)、脚はアルファベットのHの脚とすることができる。
※ TikZはLaTex等でベクター画像を扱うためのパッケージ

GPTが描いた棒人間①

The torso is a bit too long, the arms are too short and it looks like the right arm is carrying the face instead of the face being right above the torso. Could you correct this please?
胴体が少し長すぎ、腕が短すぎ、顔が胴体の真上にあるのではなく、右腕が顔を担いでいるように見えます。これを修正していただけないでしょうか。

GPTが描いた棒人間②

Please add a shirt and pants.
シャツとパンツを追加してください。

GPTが描いた棒人間③

著者はこの結果に対して次のように考察している(原文からChatGPTに要約と翻訳をさせたもの)。

O、H、Yの文字は、draw-lineおよびdraw-circleコマンドを使用して作成され、モデルはそれらを適切に配置して、まともな棒人間にします。訓練データには異なる文字の幾何学的な形状に関する情報が含まれている可能性があり、Y文字が上向きの腕を持つ胴体のように見えることも、訓練データから推測できるかもしれません。しかし、モデルが訓練データから人物をまともに描くための文字の配置方法を推測できるかどうかは、はるかに明らかではありません。また、幾何学的な概念をさらに調べるために、アルファベットの文字とオブジェクトを組み合わせた画像を作成するようにモデルに依頼しました。モデルはまず、オブジェクトと文字を合理的に組み合わせる方法を考案し、次に画像を生成しなければなりませんでした。図に示す結果から、GPT-4は通常、オブジェクトと文字の両方のアイデンティティを保持し、それらを独創的な方法で組み合わせることができることがわかります。

最初の画像ではO・H・Yの3文字が人間に見えるように空間的にほぼ正しい位置に配置されている。次に腕や胴の長さや顔の位置などについての修正依頼をすることで、2枚目の画像では正解と言って良いレベルの絵ができあがってしまう。

さらに面白いのは、O・H・Yの3文字それぞれが人間のどの要素に近いかを理解している点や、自分の描いた絵の中でどこが体でどこが手や脚であるかを幾何学的に把握し、シャツやズボンを正しく着させた絵を仕上げてくるところだ。

さいごに

ひよこ🐤の結果や紹介した論文の結果は、ChatGPTが空間認知力をもっている可能性の高さを示すものであると感じる。そして、この論文が示す「GPT-4(ChatGPT)が最初の汎用人工知能である」という主張について、肯定的に捉えたくなってしまう内容であった。まさにChatGPTは汎用人工知能のとして生まれたばかりのひよこなのかもしれないピヨ🐣。


この記事が気に入ったらサポートをしてみませんか?