SIerがGemini Advancedの性能を冷静に分析してみる


# はじめに
こんにちは！SIer に勤めるヤマゾーです。普段は AI のシステム開発に携わっています。

ついに今月 Google が最高性能の生成 AI「[Gemini Advanced](https://japan.googleblog.com/2024/02/bard-gemini-ultra-10-gemini.html)」を提供開始しましたね。早速 X (旧 Twitter) ではかなりの反響がありましたが、一部では **ChatGPT の方が性能が良い**、**普通の Gemini とあまり変わらない**という声も上がっているようです。

本記事ではこの Gemini Advanced の能力が実際にどの程度のものなのか、独自のテストを行いながら初学者向けに解説してみようと思います。

---- 2024/07/16 追記 ----
ChatGPT、Gemini、Claude の最新モデルを徹底検証して記事にまとめました。
是非こちらも併せてご参照ください！

https://qiita.com/yamazombie/items/b7b76ea3f0103fc0f41b


# サマリ 
### 本記事の目次
- [Gemini Advanced とは](#gemini-advanced-とは)
  - [Gemini Advanced って何？](#gemini-advanced-って何)
  - [Gemini Advanced の始め方](#gemini-advanced-の始め方)
- [Gemini Advanced の実力をテスト](#gemini-advanced-の実力をテスト)
  - [Q1. 旅程の1日目を説明してください](#q1-旅程の1日目を説明してください)
  - [Q2. 私の画像を復元してください](#q2-私の画像を復元してください)
  - [Q3. 「Bad and Red」の画像を生成してください](#q3-bad-and-redの画像を生成してください)
- [Gemini に対する噂について](#gemini-に対する噂について)
  - [Gemini に写真を送ると場所を特定されてしまう？](#gemini-に写真を送ると場所を特定されてしまう)
  - [Gemini はどのモデルを使っているか教えてくれる？](#gemini-はどのモデルを使っているか教えてくれる)
  - [Gemini は日本語で画像を出力できない？](#gemini-は日本語で画像を出力できない)

### 本記事の想定読者
- Gemini Advanced の性能 (ChatGPT との比較) に興味がある人
- 画像とテキストを組み合わせたタスクの例を知りたい人
- 生成 AI の最新動向をキャッチアップしたい人

# Gemini Advanced とは
### Gemini Advanced って何？
Gemini Advanced の話に入る前に、そもそも Gemini とは何だったかを簡単におさらいします。詳しく知りたい方は是非こちらの解説記事も併せてご参照ください。

https://qiita.com/yamazombie/items/f3e8f5e25cf40bb84bbd

　
Gemini (ジェミニ) とは Google が開発した生成 AI で、Google CEO が**これまでで最も高性能かつ汎用的な AI** とうたうほどの能力を持っています。Gemini は現時点で 3 種類のモデルがあり、サイズの大きい順に Gemini Ultra、Gemini Pro、Gemini Nano と呼ばれます。
　
その中でも最も性能が高い **Gemini Ultra** は ChatGPT を超える AI として非常に注目されていたのですが、これまで一般ユーザは利用できませんでした。しかし、その Gemini Ultra (1.0) を裏側に搭載した有料版 AI チャットサービスが「Gemini Advanced」として今月ついに提供開始された、というのが今の状況です。まさに生成 AI の今後が左右される歴史的な瞬間と言えます。

まとめると、Gemini Advanced とは **Gemini Ultra が搭載された有料版 AI チャットサービス**のことです。

:::note warn
Google は Gemini Advanced の発表に続き、100 万トークンを扱える次世代モデル「[Gemini 1.5 Pro](https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf)」も発表しました。また別の機会があれば詳しく解説します。
:::





### Gemini Advanced の始め方
Gemini Advanced を利用するには「[Google One AI Premium Plan](https://one.google.com/explore-plan/gemini-advanced)」という有料のサブスクリプションサービスに加入する必要があります。料金は月額 2,900 円で、最初の 2 ヶ月は無料トライアル期間になっています。また本サービスに加入すると Google ドライブ、Gmail、Google フォト共通のストレージを 2 TB 使えるようにもなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/65d585e8-10ad-b95b-d677-0609d6571776.png)


サービス加入後は [Gemini](https://gemini.google.com/app) の画面左上から Gemini Advanced (Gemini Ultra 1.0) と Gemini (Gemini Pro 1.0) を切り替えられるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/cba6bab2-f131-f171-f56d-64e64e30c210.png)

:::note warn
Gemini Advanced の登場に伴い、これまで Bard と呼ばれていた無料版 AI チャットサービスも Gemini に名称変更されました。
:::


# Gemini Advanced の実力をテスト
それでは実際に Gemini Advanced の実力がどれ程のものなのか、早速いくつかテストしてみましょう。同じ問題を OpenAI の最高傑作である GPT-4 版 ChatGPT にも解かせて結果を比較します。なお、本検証は厳密には **Gemini Advanced と ChatGPT の比較** (もしくは **Gemini Ultra と GPT-4 の比較**) に当たるのですが、以下では便宜上単に **Gemini と ChatGPT の比較** と表記します。

:::note warn
各テストの試行回数は 5 回程度行っていますが、特に断りのない限りは典型的な挙動の結果を選んで載せています。 
:::

### Q1. 旅程の1日目を説明してください。

最初のテストでは画像から情報を抽出させてみましょう。筆者が鹿児島旅行を企画した際に作った旅程の画像を使用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/9ad908fe-73a7-07d2-b061-91caa0cc2691.png)

この画像に基づき、旅行 1 日目はどこに行くのか、移動時間は何分かかるのかを Gemini に読み取ってもらいましょう。
<details><summary>使用した指示文 (プロンプト)</summary>

```
この画像は2泊3日の旅程を表しています。
・1日目、2日目、3日目で矢印は色分けされています
・丸枠の数字は移動にかかる時間(単位は分)です
・四角枠は観光地名です。
・旅行中は公園近くのホテルに宿泊する予定です

1日目の旅程について、どの観光地に行くのか、それぞれ移動時間はどの程度かかるのか、可能な限り詳細に教えてください。
```
</details>

結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/c24a0eff-eb82-b9f3-ec00-9aa4a4d57533.png)


ご丁寧に具体的なタイムテーブルまで提案してくれました。出力結果を見てみると、画像中の日本語で書かれた目的地を正確に抽出できていますね。移動経路についても神社に到着するところまでは完璧ですが、その後に回る順番や移動時間を間違えてしまいました。

それでは同じ問題を ChatGPT にも解かせてみましょう。結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/d1e924c5-f0c1-14e8-f9bb-fbf67f0deeaf.png)

なんと ChatGPT は目的地を殆ど抽出できませんでした。唯一挙げられた公園も指示文で与えているため偶然当たっただけの可能性があります。その後何度試してみても、あれほど日本語が流暢だったはずの ChatGPT は画像中の日本語を全然識別できず、この問題については **Gemini の圧勝**という結果になりました。

それでは英語の場合だとどうなるか見てみましょう。
先ほどの画像の英語版を用意しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/ec08ec24-e367-10c5-9aa1-35001d502aad.png)

さらに指示文も英語版で与えてみます。

<details><summary>使用した指示文 (プロンプト)</summary>

```
This image represents a 3-day, 2-night itinerary.

- The arrows are color-coded for Day 1, Day 2, and Day 3.
- The numbers within circles indicate the travel time (in minutes).
- The names within squares are sightseeing spots.
- They will stay at a hotel near the park during their trip..

For the itinerary of Day 1, Describe in as much detail as possible which sightseeing spots will be visited and how long it will take to travel to each location.
```
</details>


まずは Gemini に再度読み込ませましょう。結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/0c18fc11-8266-e7e2-f94b-f24fc5bffafc.png)

日本語の時と同様に画像中の目的地を正確に識別できており、加えて今度は移動経路もほぼ完璧になりました。最終的な目的地である公園が漏れてしまい、また移動時間もいくつか間違えていますが、全体的に英語の方が精度よく回答できるようです。

それでは ChatGPT にも解かせてみましょう。結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/5dd8d9f8-b430-8898-41fc-363ee2ff5945.png)

日本語の時とはうってかわって、ほぼ満点の回答が返ってきました。英語だと Gemini よりも ChatGPTの方が正確に回答できています。この他にも日本語の画像を与えて英語で指示したり、英語の画像を与えて日本語で指示したり試しながら何度か検証したところ、指示文の言語に関係なく**入力画像が英語の時は ChatGPT が強く、入力画像が日本語の時は Gemini が強い**という結果が得られました。

画像に基づく論理的思考力は全体的に ChatGPT の方が優位であるものの、画像中の日本語抽出能力に限ると Gemini の方が上、ということが言えそうです。

### Q2. 私の画像を復元してください
次は画像の復元テストです。筆者の X (旧 Twitter) アイコンを使用します。

![myicon.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/66db979e-5ea2-cd09-6cd5-5d515852ffac.jpeg)

この画像を Gemini に読み込ませ、後で復元できるように説明文を考えてもらいます。その後、Gemini が出力した説明文を別の Gemini に与えて実際に画像を生成させる、いわば逆変換を行います。生成された画像が最初のアイコンに近いほど再現能力が高いということになります。この手順で Gemini と ChatGPT に画像を 3 枚ずつ生成させて結果を比較してみましょう。ただし後述するように Gemini に日本語の説明文で画像を生成させるのは少し工夫が必要になるので、今回は説明文を英語で出力してもらうことにします。

<details><summary>使用した指示文 (プロンプト)</summary>

- 画像の説明を依頼する指示文
```
Describe this image in as much detail as possible.
Explain each aspect, including colors, shapes, positions, background colors, etc.
Your description will be used to recreate this image.
```

- 画像の復元を依頼する指示文
````
Draw an illustration strictly following the description below.
```
<ここに説明文を入力>
```
````

</details>


このテストでは**画像の特徴を説明する能力**と**画像を指示通りに作成する能力**の両方が試されます。まずは最終的な結果を比較してみましょう。それぞれ以下のようになりました。

Gemini の出力画像　※複数出力された場合は右上の画像を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/a85dd716-d80f-5201-e70f-0f3ca04c4ed7.png)

ChatGPT の出力画像 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/3d626add-9ef4-a6d6-b919-6ce443857266.png)



Gemini の方はピンクや紫など明らかに違う色が混じったり、突然ルービックキューブ調になったりと、出力がかなり不安定に見えます。一方、ChatGPT が生成した画像は 3 枚とも一貫して分子構造のような形状をしており、球の配色も元の画像に近いです。判定基準が難しいところですが、出力の安定性と構成要素の再現力で勝っている **ChatGPT の勝ち**に見えます。


それでは、実際に Gemini と ChatGPT の説明文がどのように出力されていたのか、それぞれ真ん中の画像が生成された時の説明文を見てみましょう。
まずは Gemini の説明文です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/7c0b64b5-119a-1846-2e0c-673148da427b.png)

画像が 3D の分子モデルである点、球体が立方体を形成している点を簡潔に説明できていますね。色については中央の球の赤色、背景の白色は合っているのですが、周辺の球体で本来存在しない色を大量に羅列してしまいました。生成された画像の中にピンクやオレンジの球体が入っていましたが、どうやら説明文の時点で嘘が紛れてしまったようです。

続いて ChatGPT の説明文を見てみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/4eb2a769-9391-e273-28f2-56c014801ae1.png)

Gemini と比較するとかなりの文量ですが、驚いたことに誤りは殆どありません。球体の総数こそ数え間違えてしまったものの、各球体の色 (maroon は赤茶色、teal は青緑色の一種) を全て的確に説明しています。白い背景色やグレーの骨格だけでなく、光沢の向きから背景色のグラデーションまで詳細に説明できているのは素晴らしいです。

画像の特徴を説明する能力は**ChatGPTの圧勝**ですね。
最終的な再現能力の違いもこの説明能力の差に起因していそうです。

それでは、もし説明文を揃えた場合はどうなるのか検証してみましょう。
アイコンの生みの親である筆者が直々に画像の説明文を考えてみました。

<details><summary>使用した指示文 (プロンプト)</summary>

```
Draw an illustration strictly following the description below:
- A simple illustration of face-centered cubic.
- Atoms are represented as three types of glossy spheres:
  - 1) Eight blue spheres are located at each vertex of the cube.
  - 2) Twelve yellow spheres are situated at the midpoints of each edge of the cube.
  - 3) One large red sphere is located at the center.
- The spheres are connected orthogonally arranged in a lattice.
- The background is white, but the floor surface reflects the spheres at the base, resembling a water surface.
Caution: Never mistake with the number of spheres, as it is very important.
```
</details>



この説明文を Gemini と ChatGPT に与え、それぞれ画像を生成させます。
まずは Gemini の出力を見てみましょう。結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/5b0de4d3-8e8a-54fe-c85e-e4ba91c47529.png)

続いて ChatGPT の結果は以下になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/f89bd46a-3194-e81e-d1cb-77cd61057e31.png)

今回も勝敗の判定が非常に難しいところですが、強いて言えば Gemini が生成した画像の方が青球と黄球の位置関係や赤球の大きさが一貫しているため、画像を指示通りに作成する能力については **Gemini が優勢**に見えます。

また Gemini や ChatGPT に逆変換させた時よりも断然よい画像を生成できたことから、画像の説明力勝負に筆者も加わると以下の強弱関係がありそうです。

**Gemini < ChatGPT <<< (超えられない壁) <<< 筆者**

冗談はさておき、検証した限りだと画像生成の説明文は簡潔に箇条書きで書くと良さそうです。このように自分で何度も試しながら指示文のコツを学べるのは人間の強みですね。

ちなみに Gemini や ChatGPT が画像を出力後、生成 AI 自身に説明文と矛盾が無いかチェックさせてもみたのですが、残念ながら大きな効果は得られませんでした。

:::note warn
生成 AI 自身に出力を見直させるテクニックを Self-Refine と呼びます。
:::


### Q3. 「Bad and Red」の画像を生成してください
最後は入力画像を参考にオリジナル画像を生成してもらいましょう。
先日ラスベガスの re:Invent で配布された LEGO の画像を使います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/f97602fb-eb63-dbc7-f4ed-2529b05cd0b5.png)

この画像に「Good and Blue」という題名をつけて Gemini に読み込ませます。それを踏まえたうえで、Gemini に「Bad and Red」というオリジナル画像を生成してもらいましょう。

<details><summary>使用した指示文 (プロンプト)</summary>

```
This picture is named "Good and Blue". Following this example, draw an original image named "Bad and Red" with in the same style as much as possible.
```
</details>

結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/f2e32a15-f323-7bbb-e024-bbe970aa68f2.png)

今回は画像の詳細を明示的に伝えませんでしたが、筆者がイメージしていた通り赤い LEGO の画像を出力してくれました。どの画像もまさに "Bad" といった表情を浮かべていますね。また驚くべきことに、胸のマークまでチェックマーク (アメリカでは **Good の意味**) からクロスマーク (アメリカでは **Bad の意味**) に変更してくれました。画像中の細部までタイトルとの対応関係を汲み取り、意味的に辻褄が合うように変更できているのは素晴らしいですね。

それでは ChatGPT にも生成させてみましょう。結果は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/e343ed49-567d-47de-c7a8-078fa9136b73.png)

確かに題名通り赤くて悪そうなキャラクターではありますが、残念ながら元の画像とは全く違うテイストになってしまいました。その後も何度か試してみたのですが、稀に LEGO のような画像も出力できたものの生成画像のバラつきが激しく、胸のチェックマークも殆ど加味できていなかったため、この問題においては **Gemini の圧勝**という結果になりました。

このような結果になったのは **Gemini と ChatGPT で画像生成のメカニズムが違うから**だと考えられます。Gemini は単体でも画像を入力して画像を出力できるのに対し、ChatGPT は単体だと**画像を出力できない**ため、実は裏側で別の AI モデル (DALL·E 3) にテキストで画像生成を指示しています。したがって、例えば生成する画像の言語化が難しい場合は ChatGPT が画像生成 AI にうまく指示を伝えられず、期待通りの画像を生成できなくなってしまいます。

一方 Gemini は画像の入力から出力までワンストップで担えるため、入力画像の言語化できない意味情報まで読み取り、細かいニュアンスまで汲んでくれたと予想できます。入力画像のテイストやスタイルなど、複雑な情報を踏襲させて画像を出力させるようなケースにおいては Gemini の方が向いていそうです。

:::note warn
ただし、Gemini に画像の反転や色の変換など、直接的な画像の加工処理を依頼しても断られてしまいます。
:::

# Gemini に対する噂について
Gemini と ChatGPT の比較テストは以上で終了ですが、この章では X (旧 Twitter) でよく見かける Gemini の噂についてもいくつか触れておきます。

### Gemini に写真を送ると場所を特定されてしまう？
Gemini に適当な風景の写真を入力すると、その写真を撮影した場所を特定されたというツイートが話題になっていました。このことから、**Gemini は Web ページや Google マップの情報から世界中の風景を丸暗記しているのではないか**という意見をちらほら見かけます。

これに対して筆者はかなり懐疑的です。[前回の記事](https://qiita.com/yamazombie/items/f3e8f5e25cf40bb84bbd#q3-%E5%86%99%E7%9C%9F%E3%81%AB%E4%BD%95%E3%81%8C%E5%86%99%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E8%AA%B0%E3%81%8C%E6%8A%95%E7%A8%BF%E3%81%97%E3%81%9F%E3%82%82%E3%81%AE%E3%81%8B%E7%AD%94%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84)でも検証した通り、Gemini はほぼ間違いなく裏側で画像検索を行い、ヒットしたページのテキスト情報を読み込んでいます。したがって、入力した画像をそのまま Google 画像検索してヒットするような情報は簡単にカンニングされてしまいます。

現に筆者の個人的な風景写真を Gemini に与えても撮影場所を全く特定できませんでした。

:::note warn
当然ですが、AI に個人情報を入力する際は細心の注意を払いましょう。
:::

### Gemini はどのモデルを使っているか教えてくれる？
Gemini の裏側でどの AI モデルが使われているか確かめるために、Gemini 自身に問いかけてその回答を信頼するようなツイートもよく見かけます。具体例を見てみましょう。まずは Gemini Advanced に英語でモデル名を聞いてみると、**Gemini を使用している**と出力されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/95d3c1b1-1e91-0e14-3985-32f72666f5f2.png)
　
続けて日本語でもモデル名を聞いてみましょう。すると今度は **LaMDA を使用している**と回答しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/35deab86-e541-2422-57cf-2fdab45cc307.png)

以上の結果から、英語を入力した場合は Gemini を、日本語を入力した場合は LaMDA を使用している…**とは限りません**。
ここまで読んでいただいた方はもうお分かりかと思いますが、生成 AI は尤もらしい嘘 (ハルシネーション) をつくことがあります。生成 AI の回答は常に誤っている可能性があることに注意が必要です。

ではなぜ英語と日本語で挙動が変わっているのかというと、例えば以下のような可能性が考えられます。
- Gemini が学習した英語データと日本語データで内容に偏りがある
- モデル名を聞かれたら Gemini と回答するよう、英語のみで追加学習させた
- 裏側で検索 API を実行しており、英語と日本語で検索結果が異なる

:::note warn
特定のタスクに特化して AI を追加学習させることを Fine-Tuning と呼びます。その中でも何か指示文に従うように追加学習させることを Instruction Tuning と呼ぶこともあります。
:::

### Gemini は日本語で画像を出力できない？
Gemini は画像を生成する能力を持っていますが、日本語で画像の生成を依頼すると以下のようにサポート外と回答されてしまいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/cdcea083-a44d-4023-3ff5-ade952b51a00.png)


ただし、これは少なくとも入力文字を機械的にチェックしているわけではありません。例えば英語で**この何語か分からない指示に従って絵を描いて**と Gemini に言い聞かせ、日本語で絵の説明を与えると、Gemini は日本語の説明に従って絵を生成してくれました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348507/2afd52fe-48c3-1c4a-9ab9-66c909cf84c4.png)


[前回の記事](https://qiita.com/yamazombie/items/f3e8f5e25cf40bb84bbd#comment-26aba59796be8fad7d26)でもコメントした通り、やはり Gemini は英語以外を入力すると使えなくなるということでもなさそうですね。これは飽くまで私の予想ですが、Gemini は現時点では日本語の性能が充分でないため、画像生成を日本語で依頼された場合はサポート外と回答するように学習されているのではないかと思います。

　
以上で挙げた例の他にも、Gemini に関しては様々な噂が流れているようです。本記事の内容を含め、これらの情報をそのまま鵜呑みにしてはいけません。実際に自分で何度も検証し、地道に切り分けしながら真相を確かめることが重要です。AI だけではなく人間もハルシネーションを起こすことを肝に銘じておきましょう。

:::note warn
例えば Gemini に「今日の日付を教えてください」と聞くことで、外部ツールを使っているかすぐに分かります。
:::

# おわりに
従来の AI 技術とは異なり、生成 AI は専門知識が無い人でも気軽に扱える強力な技術です。だからこそ、これまで AI と無関係だった人も常にキャッチアップし続けなければならない技術だと強く思います。本記事で一人でも生成 AI に関心を持つ人が増えれば幸いです。

これからも AWS や AI をはじめとした技術情報を初学者に分かりやすく発信できるように精進しますので、引き続きよろしくお願いします。まだフォローされていない方は是非 [Twitter](https://twitter.com/yamazombie1) の方もよろしくお願いします！

最後まで読んでいただき、ありがとうございました。