BingとBardにもSVGでお絵描きさせる
これまでChatGPTのお絵描き能力について検証してきたが、チャット型AIはChatGPTだけではない。頭脳としてGPTを組み込みウェブ検索などの別の能力も与えたMicrosoftのBing、そしてそれらに負けていないとAIへの注力をアピールするGoogleのBardについてはどうなのだろうか?
ChatGPTへの問いとほぼ同じ流れでBingとBardにもSVGでお絵描きさせてみることにした。
Microsoft Bing
MicrosoftのBingのチャット機能にはOpenAIのGPT-4が組み込まれており、それにBingでのウェブ検索能力やOpenAIの画像生成AIであるDALL-Eまで搭載しているというスペック的には期待が大きいチャット型AIだ。早速試してみよう。
<svg width="100" height="100">
<rect x="0" y="0" width="100" height="100" fill="#FF0000" />
</svg>
<svg width="100" height="100">
<polygon points="50,0 63,38 100,38 69,59 82,100 50,75 18,100 31,59 0,38 37,38" fill="#FFFF00" />
</svg>
ここで突然Bing Image Creatorが発動。DALL-Eがひよこのスケッチを始めた。さすが画像専門のAIが描いたひよこのイラストは素晴らしい。もしやDALL-Eが描いたひよこの絵をもとにSVGを生成するというのか。これは期待できる!?
<svg width="200" height="200">
<defs>
<radialGradient id="eye" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="black" />
<stop offset="80%" stop-color="white" />
</radialGradient>
</defs>
<path d="M100,10 Q50,100 100,190 Q150,100 100,10 Z" fill="#FFFF00" />
<path d="M100,10 Q70,30 75,70 Q80,110 100,190 Q120,110 125,70 Q130,30 100,10 Z" fill="#FFCC00" />
<path d="M75,70 Q65,80 55,90 Q45,100 35,105 Q25,110 15,115 Q5,120 5,130 Q5,140 15,145 Q25,150 35,155 Q45,160 55,165 Q65,170 75,180" fill="#FFFF00" />
<path d="M125,70 Q135,80 145,90 Q155,100 165,105 Q175,110 185,115 Q195,120 195,130 Q195,140 185,145 Q175,150 165,155 Q155,160 145,165 Q135,170 125,180" fill="#FFFF00" />
<circle cx="75" cy="60" r="5" fill="url(#eye)" />
<circle cx="125" cy="60" r="5" fill="url(#eye)" />
<path d="M95,90 C95,95 105,95 105,90 C105,85 95,85 95,90 Z" fill="#FF0000" />
</svg>
期待させておいてのこの落差がすごい。しかしDALL-Eの力も備えたBingならもっと先に行けるはずだ。
さっきのひよこにはすでに足が2本描かれていたという事実が判明。しかも「ひよこの足は2本で短くて太くて爪があるというイメージで描きました。」と。
ここでウェブ検索という最後の武器を使い、改めてひよことは何かを学習し始めた。同時にBing Image Creatorも発動。持てる力をすべてを総動員してSVGを描こうとしている。
<svg width="200" height="200">
<defs>
<radialGradient id="eye" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="black" />
<stop offset="80%" stop-color="white" />
</radialGradient>
</defs>
<path d="M100,10 Q50,100 100,190 Q150,100 100,10 Z" fill="#FFFF00" />
<path d="M100,10 Q70,30 75,70 Q80,110 100,190 Q120,110 125,70 Q130,30 100,10 Z" fill="#FFCC00" />
<path d="M75,70 Q65,80 55,90 Q45,100 35,105 Q25,110 15,115 Q5,120 5,130 Q5,140 15,145 Q25,150 35,155 Q45,160 55,165 Q65,170 75,180" fill="#FFFF00" />
<path d="M125,70 Q135,80 145,90 Q155,100 165,105 Q175,110 185,115 Q195,120 195,130 Q195,140 185,145 Q175,150 165,155 Q155,160 145,165 Q135,170 125,180" fill="#FFFF00" />
<circle cx="75" cy="60" r="5" fill="url(#eye)" />
<circle cx="125" cy="60" r="5" fill="url(#eye)" />
<path d="M95,90 C95,95 105,95 105,90 C105,85 95,85 95,90 Z" fill="#FF0000" />
<!-- 足の形を修正した部分 -->
<path d="M75,180 L65,200 L55,220 L45.230 L55.240 L65.250 L75.260 Z" fill="#808080"/>
<path d="M65.200 L60.210 L55.220 L50.230 L55.240 L60.250 L65.260 Z" fill="#808080"/>
<path d="M55.220 L50.230 L45.240 L40.250 L45.260 L50.270 L55.280 Z" fill="#808080"/>
<path d="M45.230 L40.240 L35.250 L30.260 L35.270 L40.280 L45.290 Z" fill="#808080"/>
<path d="M125.180 L135.200 L145.220 L155.230 L145.240 L135.250 L125.260 Z" fill="#808080"/>
<path d="M135.200 L140.210 L145.220 L150.230 L145.240 L140.250 L135.260 Z" fill="#808080"/>
<path d="M145.220 L150.230 L155.240 L160.250 L155.260 L150.270 L145.280 Z" fill="#808080"/>
<path d="M155.230 L160.240 L165.250 L170.260 L165.270 L160.280 L155.290 Z" fill="#808080"/>
</svg>
色々と工夫点を述べてくれてはいるが全く変化がない。これがBingの限界なのだろうか。しかしSVGのコードをよく見るとこんな記述が見つかった。
<!-- 足の形を修正した部分 -->
その後にいくつかの<path>があり、確かに何かを加えようとした形跡が見える。さらにコードをじっくり眺めると、次の2つの問題に気づいた。
指定された200x200のキャンバスからはみ出たパスになっている
パスの記述の中でXとY座標の区切りとなる文字がカンマではなくピリオドになっている
これらを修正し、Bingが描きたかった本当のひよこを復元してみた。
Bingの気持ちは伝わったが、私にはこれ以上この生物を育てる気力が湧いてこなかったため、ここで終わりにしようと思う。
Google Bard
GPTはGenerative Pre-trained Transformerの略称である。この最後に出てくるTransformerというのはGoogleが発表した深層学習モデルのことである。GPTはそのTransformerを自然言語処理に採用して構築された大規模言語モデルである。つまり何が言いたいかというと、GPTの基礎となる部分はGoogleの技術であるということだ。Googleは古くからAIに投資をしており、画像認識や翻訳、そして迷惑メールフィルタなどその技術が同社のサービスで活躍しているのだ。
しかしChatGPTの登場により、GoogleはAIの分野で遅れをとっているという風潮が生まれてしまっている。Googleはこれを払拭するためか、先月(2023年5月)のGoogle I/O 2023にてこれでもかというくらいAIに関する発表を盛り込んできた。従来Googleが提供してきた大規模言語モデルPaLMをさらに進化させたPaLM2を発表、そしてそれをChatGPTのようなチャット型AIであるBardに組み込み、日本語にも対応した。
果たしてこのGoogleのBardのお絵描き能力はどんなものだろうか。
<svg viewBox="0 0 100 100">
<rect x="0" y="0" width="100" height="100" fill="red" />
</svg>
<svg viewBox="0 0 100 100">
<polygon points="50,50 75,25 75,75 25,75 25,25" fill="yellow" />
</svg>
Bardは星を描くことができなかった。しかし、Bardのご機嫌をとりながら先に進めることにした。
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="25" fill="yellow" />
<path d="M50,50 L75,25 L75,75 L25,75 L25,25 Z" fill="black" />
<circle cx="50" cy="25" r="5" fill="black" />
<circle cx="50" cy="75" r="5" fill="black" />
</svg>
残念ながらBardはクリエイティブな観点では大敗だ。Google I/OでピチャイCEOは、産業分野でのAI活用が想定されるため、AIには安全性と信頼性を重視しているというようなことを話していたそうだ。全世界への影響力を持つGoogleが担う社会的責任の大きさからすると、真っ当な回答だと思う。
さいごに
人間は安全性も信頼性も高くなく、とても曖昧な生物だ。ひよこなんて何十回も実物・写真・イラストなどで見ているはずなのに、それを正確に描くことはできる人は少ない。しかし正確に描くことができなかった不恰好で稚拙なひよこを見て、かわいらしさや面白さを感じてしまう。こんな不完全さが人間らしさではないか。
そんな人間らしさのようなものを垣間見ることができるChatGPTに僕は興味をそそられるのであった。