【性能比較】日本語対応したBard(バード)とGPT-4の出力を比較してみた

## Bard、ついに日本語対応
昨日、生成系AIで遅れを取っていると見られていたGoogleがBardの日本語対応(多言語対応)を発表しました。
そこで、気になる日本語の性能についていくつか比較してみました。
業務でGUIによるChatGPTを利用されている方、無料版のChatGPTを使われている方は有料であるGPT-4との比較結果が気になるのではないでしょうか。

https://bard.google.com/

:::note warn
全て一発で生成したものですので、内容が不適切と感じられる場合があるかもしれません。
その点何卒ご了承くださいませ。
:::

## 比較した項目について
- [1. コード生成](#コード生成)
- [2. 推論](#推論)
- [3. 要約](#要約)
- [4. アイデア出し](#アイデア出し)
- [5. ショートショート](#ショートショート)

## コード生成
### prompt
```
以下の要件に沿う、AWS Lambdaで利用できるコードを生成してください。

## 要件
- Python 3.10で記載すること
- 指定のS3バケットに格納されたファイル一覧と合計ファイルサイズを、Slackの特定のチャンネルに通知する
- 前日の0:00から23:59までに格納されたものを、当日08:00に通知する
```
### Bard の出力
承知しました。以下が、お役に立てば幸いです。

```python
import boto3
import datetime
import json
import logging
import requests

# 設定
S3_BUCKET_NAME = "your-s3-bucket-name"
SLACK_CHANNEL_ID = "your-slack-channel-id"
SLACK_WEBHOOK_URL = "https://hooks.slack.com/services/your-slack-webhook-url"

# 関数：S3バケット内のファイル一覧と合計ファイルサイズを取得する
def get_s3_bucket_files(bucket_name):
  client = boto3.client("s3")
  response = client.list_objects(Bucket=bucket_name)
  files = response["Contents"]
  total_file_size = 0
  for file in files:
    total_file_size += file["Size"]
  return files, total_file_size

# 関数：Slackにメッセージを送信する
def send_slack_message(message):
  requests.post(SLACK_WEBHOOK_URL, json={"text": message})

# 関数：メイン関数
def lambda_handler(event, context):
  # 昨日の日付を取得する
  yesterday = datetime.datetime.now() - datetime.timedelta(days=1)

  # S3バケット内のファイル一覧と合計ファイルサイズを取得する
  files, total_file_size = get_s3_bucket_files(S3_BUCKET_NAME)

  # Slackにメッセージを送信する
  message = f"昨日の{S3_BUCKET_NAME}バケット内のファイル一覧です。\n\n" \
            f"ファイル数：{len(files)}\n" \
            f"合計ファイルサイズ：{total_file_size}バイト"
  send_slack_message(message)

```

お役に立てれば幸いです。

### ChatGPT(GPT-4) の出力
以下にPython 3.10でAWS Lambdaに適応するコードを示します。このコードは、指定のS3バケットに格納された前日のファイル一覧とその合計サイズを取得し、それをSlackの特定のチャンネルに投稿します。ただし、以下の環境変数を設定する必要があります：

- `BUCKET_NAME`: ファイル一覧とサイズを取得するS3バケットの名前
- `SLACK_WEBHOOK_URL`: SlackのWebhook URL

なお、AWS Lambdaのスケジュール設定についてはAWS CloudWatch Eventsを使用して08:00に通知するように設定してください。

```python
import os
import boto3
from datetime import datetime, timedelta, timezone
import requests

BUCKET_NAME = os.environ['BUCKET_NAME']
SLACK_WEBHOOK_URL = os.environ['SLACK_WEBHOOK_URL']

s3 = boto3.client('s3')

def lambda_handler(event, context):
    # 前日の0:00と23:59を取得
    today = datetime.now(timezone.utc).date()
    start_time = datetime(today.year, today.month, today.day, tzinfo=timezone.utc) - timedelta(days=1)
    end_time = start_time + timedelta(days=1)

    # S3バケット内の全ファイルをリストアップ
    files = s3.list_objects_v2(Bucket=BUCKET_NAME)['Contents']

    # 前日にアップロードされたファイルとその合計サイズを計算
    uploaded_files = [f for f in files if start_time <= f['LastModified'] < end_time]
    total_size = sum(f['Size'] for f in uploaded_files)

    # ファイル一覧と合計サイズをメッセージに整形
    file_list = '\n'.join(f"{f['Key']} ({f['Size']} bytes)" for f in uploaded_files)
    message = f"Yesterday's uploaded files in '{BUCKET_NAME}':\n{file_list}\nTotal size: {total_size} bytes"

    # メッセージをSlackに投稿
    requests.post(SLACK_WEBHOOK_URL, json={'text': message})
```

このコードはAWS Lambdaで実行するために設計されていますが、ローカルで実行する場合は適切なAWS認証情報が設定されていることを確認してください。

また、Slackにメッセージを投稿するためのWebhook URLを取得するには、あなたが所属するSlack WorkspaceでIncoming Webhookを設定する必要があります。設定方法についてはSlackの公式ドキュメンテーションを参照してください。

## 推論

### prompt
Aさんはもう結婚30年になる妻のBさんに頼み事をしました。
Aさん: ｢あれ、買ってきてほしいんだけど、いい?｣
Bさん: ｢あれまだあったでしょ。買わなくていい。｣
Aさん: ｢もういい。｣
それだけ言うとAさんは不機嫌になってしまいました。なぜですか。
### Bard の出力
> Aさんが不機嫌になった理由はいくつか考えられます。
>
>1. Aさんは、Bさんに頼み事をしたことを無下にされたと感じたのかもしれません。
>2. Aさんは、Bさんに自分の気持ちを理解してもらえないと感じたのかもしれません。
>3. Aさんは、Bさんにイライラしていたのかもしれません。
>
>この状況を改善するためには、AさんとBさんがお互いの気持ちを話し合うことが大切です。Aさんは、Bさんに頼み事をしたことをなぜ不機嫌になったのかを伝え、Bさんは、Aさんの気持ちを理解しようと努める必要があります。また、AさんとBさんは、お互いにイライラしないように、コミュニケーションをとるように心がけることも大切です。

### ChatGPT(GPT-4) の出力
> この会話の背景には、AさんとBさんの間における深い理解とコミュニケーションの不一致が存在します。具体的なアイテムを指定しないAさんの曖昧な要求に対し、Bさんは一見理解しているように見えますが、実際にはAさんの求めているものを理解していない可能性があります。
>
> Aさんが不機嫌になった理由として考えられるのは、彼が要求したものが本当に欠けていると感じていたにもかかわらず、Bさんがそれを無視または誤解したと感じたからかもしれません。30年間の結婚生活の中で、AさんはBさんが自分のニーズを理解して行動してくれることを期待していたかもしれません。しかし、この会話ではその期待が裏切られ、その結果として不機嫌になったと考えられます。
>
> このような状況は、長い関係の中でコミュニケーションがあいまいになりがちな場面でよく見られます。具体的なコミュニケーションを通じて期待と理解のギャップを埋めることが重要です。

## 要約

### prompt

<details><summary>下記の文章を要約してください。</summary>

## 本文
『資本論』を読んでの感想

私が最近読んだ本の中で、最も興味深かったのはカール・マルクスの『資本論』でした。この本は経済についての重要な著作であり、その深い洞察力と洗練された理論に驚かされました。

まず、マルクスは資本主義社会の本質的な問題を浮き彫りにしています。彼は資本主義が労働者を搾取し、不均等な経済的格差を生み出すと主張しています。この見解は、現代の経済における格差の問題にも通じるものがあります。実際、資本主義の基本原理によって生じる経済的な不公平さは、社会の中で深刻な問題となっています。

さらに、マルクスは商品の交換価値と使用価値の概念を探求しています。彼は、商品が交換価値としての労働時間に基づいて価値を持つと主張しています。これは、労働者の労働によって商品の価値が生まれるという重要な洞察です。この考え方は、経済活動の根本的な要素を理解する上で不可欠です。

さらに、マルクスは生産手段の私有制についても議論しています。彼は、生産手段の私有制が資本家と労働者の間に矛盾を生じさせ、階級闘争を引き起こすと主張しています。この視点は、経済の構造における権力関係や階級の存在を強調しています。

『資本論』を読むことで、私は経済システムがどのように機能し、なぜ格差や不公平が生じるのかについて深く考える機会を得ました。マルクスの理論は多くの議論を呼び起こすものですが、彼の洞察力と広範な知識には感銘を受けました。この本を読むことで、経済の本質についての理解を深めることができました。今後もさまざまな経済理論を学び、より広い視野で経済の問題に取り組むことが重要だと感じました。

『資本論』は非常に複雑で冗長な表現が多く、理解するのに苦労しました。しかし、その難解さもまた、マルクスの思想の重要性と深さを示していると思います。経済についての知識が限られている私にとっては、新しい概念や理論に直面することは挑戦でしたが、それを乗り越えることで多くの学びを得ることができました。

読書を通じて、経済における重要なテーマや問題について考えることができました。特に、格差や不公平の存在が社会全体に与える影響や、資本主義が労働者の搾取につながる仕組みについての洞察は、私の視野を広げるものでした。さらに、経済活動の基盤である労働の概念や商品の価値形成について考えることで、経済の仕組みをより深く理解することができました。

この本を通じて得た知識や洞察は、将来のキャリアや社会的な活動においても役立つと確信しています。経済の問題は日常生活や政策の決定に大きな影響を与えており、その背後にあるメカニズムを理解することは重要です。今後もさまざまな経済書を読み、経済に関する知識と理解を深めていきたいと思います。

経済についての知識は、私たちが生きる社会や世界を理解するための鍵です。『資本論』はその一部を探求するきっかけを与えてくれました。私たちは経済の仕組みや問題についての議論を通じて、より公正で持続可能な社会を築くために貢献していくべきです。
</details>

### Bard の出力
> 本文は、カール・マルクスの『資本論』についての読書感想です。著者は、この本が経済学についての重要な著作であり、その深い洞察力と洗練された理論に驚いたと述べています。
> 
> マルクスは、資本主義社会の本質的な問題を浮き彫りにし、商品の交換価値と使用価値の概念を探求し、生産手段の私有制について議論しています。著者は、『資本論』を読むことで、経済システムがどのように機能し、なぜ格差や不公平が生じるのかについて深く考える機会を得たと述べています。
>
> さらに、著者は、この本を通じて得た知識や洞察は、将来のキャリアや社会的な活動においても役立つと確信していると述べています。

### ChatGPT(GPT-4) の出力
> 『資本論』を読んだ感想として、著者カール・マルクスの洞察力と理論に感銘を受けた。マルクスの主張、特に資本主義が労働者を搾取し、経済的格差を生み出すという見解、商品の交換価値と使用価値に関する考察、また生産手段の私有制が資本家と労働者間に矛盾を生じ、階級闘争を引き起こすという視点は、経済システムの本質理解に寄与した。『資本論』は理解に苦労したが、その複雑さがマルクスの思想の重要性と深さを示すものだと感じた。この経験から経済の問題理解の深化や視野の拡大につながったとし、今後もさまざまな経済理論を学び、経済に関する知識と理解を深めていきたいとの意欲を述べている。

## アイデア出し

### prompt
街の清掃隊に任命されました。皆が思わず掃除をしたくなるキャッチフレーズを一つ20文字程度で、10個考えてください。
### Bard の出力
> 10個のキャッチフレーズは次のとおりです。
> 
> 1. さあ、掃除を始めましょう！
> 2. 私たちの街は、私たち全員の責任です。
> 3. 自分のゴミは自分で片付けましょう。
> 4. 少し掃除するだけで、大きな違いを生むことができます。
> 5. 掃除は私たちの街を美しく保つための小さな方法です。
> 6. さあ、掃除をして、誇りに思ってください！
> 7. 掃除は愛のしるしです。
> 8. 掃除は私たちの街を健康に保つための方法です。
> 9. 掃除は私たちのコミュニティをより良くする方法です。
> 10. 掃除は私たちの地球を守る方法です。
> 
> これらのキャッチフレーズはすべて、短く、覚えやすく、人々に街を掃除するように動機付けます。また、環境や健康への掃除の重要性についても触れています。

### ChatGPT(GPT-4) の出力
> おめでとうございます！以下、提案させていただくキャッチフレーズです：
> 
> 1. "キレイな街、始めよう！"
> 2. "ゴミなしの未来へ一歩"
> 3. "掃除で笑顔が増えよう"
> 4. "小さな行動、大きな変化"
> 5. "クリーンアップ、みんなの力"
> 6. "街を愛し、街を守ろう"
> 7. "清潔な街は心を照らす"
> 8. "一掃で、街が輝く"
> 9. "あなたの手で、街を美しく"
> 10. "掃除で、新しい風を" 
> 
> これらのフレーズは、皆が一緒に街をきれいに保つための動機付けとなることを目指しています。自分たちの行動が街の美観や環境にどのように影響するかを理解し、個々が自主的に掃除に参加したくなるようなメッセージを伝えています。

## ショートショート

### prompt
あなたはショートショート作家です。以下の情景で作品を1000文字程度で完成させてください。

## 情景
海の近くに灯台が一つ。そこに幾何学模様をした何かが浮いている。7歳の少年と79歳の老人が佇んでいる。
### Bard の出力
> 小さな漁村の入り口に立つ灯台は、何世紀にもわたってその場所に立っていました。嵐が吹き荒れ、波が岸に打ち寄せる中、灯台はしっかりと立っていました。それは航海者にとっての希望の灯火であり、村人たちにとっての誇りの象徴でした。
> 
> ある日、少年と老人が浜辺を歩いていました。彼らはいつも一緒に散歩をしていました。少年は7歳で、好奇心旺盛で冒険好きな少年でした。老人は79歳で、人生経験豊富で知恵のある老人でした。
> 
> 彼らが灯台に近づくと、少年は何か奇妙なものに気づきました。空中に物体が浮かんでいるのです。それは幾何学模様をしていて、光沢がありました。少年と老人は立ち止まって物体を見ました。彼らはかつて見たことのないものでした。
> 
> 「あれは何？」少年が尋ねた。
> 
> 「わからない」老人は言った。「しかし、それはここに属していないことは確かだ。」
> 
> 少年と老人は物体を見続けました。それはゆっくりと動いていました。灯台に向かって動いていました。
> 
> 「近づいてみよう」少年が言った。
> 
> 老人はためらった。「わからないな。安全かどうかわからない。」
> 
> 「大丈夫だ」少年は言った。「一緒に行くよ。」
> 
> 老人はため息をついた。「わかった。しかし、後で文句は言わせないぞ。」
> 
> 少年と老人は物体に近づきました。それは今、灯台のすぐそばにありました。その大きさはバスケットボールほどで、金属でできているように見えました。表面には奇妙な記号が刻まれていた。
> 
> 少年は物体に手を伸ばした。触れると、冷たく感じた。彼は物体に触れたまま、周りを見回した。老人は彼を心配そうに見つめていた。
> 
> 「何かわかる？」老人が尋ねた。
> 
> 少年は首を横に振った。「わからない。しかし、何か特別なものだとは思う。」
> 
> 少年は手を離すと、物体は光り始めた。光は明るく、きらめいていた。少年と老人は目を細めて光を見ました。
> 
> 光が消えると、物体は消えていました。少年と老人は周りを見回したが、物体はどこにも見当たらなかった。
> 
> 「どうしたんだ？」少年が尋ねた。
> 
> 「わからない」老人は言った。「しかし、それは決して忘れないだろう。」
> 
> 少年と老人は灯台に登り、頂上から村を見下ろした。彼らは物体のことを考えながら、長い間沈黙していた。
> 
> 「あの物体は何だったんだろう？」少年が尋ねた。
> 
> 「わからない」老人は言った。「しかし、きっと特別なものだったことは確かだ。」
> 
> 少年と老人はしばらく沈黙して村を見下ろした。それから、老人は立ち上がって歩き始めた。
> 
> 「家に帰ろう」老人は言った。「もう遅いぞ。」
> 
> 少年は立ち上がって老人を追いかけた。彼らは灯台を出て、浜辺を歩き始めた。
> 
> 少年は物体のことを考えながら歩いていた。彼はそれが何だったのか、そしてどこから来たのかわからなかった。しかし、彼はそれが特別なものであることはわかっていた。
> 
> 少年は老人が言ったことを思い出した。「きっと特別なものだったことは確かだ。」
> 
> 少年は同意した。それは特別なものだった。それは彼が一生忘れることのない特別なものだった。

### ChatGPT(GPT-4) の出力 
> 灯台と幾何学模様
> 
> 海辺に佇む7歳の少年、リオと79歳の老人、マスター。二人の視線の先に、灯台が一つ。その灯台の周囲に、複雑な幾何学模様をした何かが浮かんでいる。
> 
> 「それは何ですか、マスター？」少年の声は驚きと興奮で揺れていた。
> 
> マスターは静かに海を見つめた。「それは過去と未来をつなぐ鍵だ、リオ。」
> 
> リオはわからなかった。だが、彼の好奇心は火を噴いた。「どうやって使うんですか？」
> 
> 「それはね…」マスターはしばらく考えた後、少年に微笑んだ。「考えてみて。7歳の君と79歳の僕、差はいくつだ？」
> 
> リオは考え、答えた。「72歳です。」
> 
> マスターはうなずいた。「その通り。では、灯台の模様を数えてみて。」
> 
> リオは眉をひそめながら数え始めた。そして、「72個です」と報告した。
> 
> マスターの目は優しく輝いた。「その通り。僕たちは灯台の幾何学模様と同じ差を持っている。そして、その模様は過去と未来をつなぐ鍵だと言ったね。」
> 
> リオは理解しようとしたが、まだつかめなかった。「でも、それがどう関係しているんですか？」
> 
> マスターはしっとりと笑った。「それぞれの模様は、僕たちの生活の一部を表しているんだ。そして、それぞれがつながって、僕たちの時間を作っている。」
> 
> リオは一瞬、驚きの顔をしたが、すぐに考え込んだ。「だから、それが過去と未来をつなぐ鍵なんですね！」
> 
> マスターはうなずいた。「その通りだ。そして、君がそれを理解したことで、その鍵は次の世代へと受け継がれる。」
> 
> 灯台の幾何学模様は一瞬、より鮮やかに光った。そして、少年と老人は、過去と未来の間で繋がる新たな時間を共有した。
## まとめ
人によって捉えられ方は様々だと思いますが、有料のGPT-4に肉薄しているのではと感じました。
ぜひ参考にしていただいて、強力なツールとして使ってみてください。
この激変の時代をうまく楽しみましょう!

## 閲覧のお礼と追記(2023/06/07)
数ある記事の中から、たくさんの方にご覧いただき本当にありがとうございます。

昨日、Bardの更なるロジックと推論能力の強化が発表されました。また比較も追ってアップデートしたいと思います。

https://blog.google/technology/ai/bard-improved-reasoning-google-sheets-export/