大規模言語モデルのGPT-4に麻雀を教えてみました。その1 牌画像を教える

今回のブログは大規模言語モデルのGPT-4に麻雀をいろいろ教えていく、その1で、まずは牌画像を読み込んでもらいます。

GPT-4は最近マルチモーダル化していて、テキストだけでなく、画像を読み込んだり、画像を生成したり、雑談などの会話のやり取りができたりで、なんともすごいAIに進化しています。

これらの機能は有料バージョンのChatGPT Plusで課金しないとダメです。
これをクリアすると無料のGPT-3.5ではなく、GPT-4が使えるようになります。

すると上記のマルチモーダルがいろいろ利用できると。

おまけにテキストの応答の精度も格段に上がるので、仕事で使ったり、書きものをしたり、画像を作ったり、そんなことを常にしている人たちは、GPT-4をおすすめします。

さて、今回はこのGPT-4に麻雀を教えていきます。

結構単純な麻雀のルールは知っているようですが、全体的にはイマイチ。
役についてもよくわからんようです。

初回の今回は、まず牌の画像を読んでもらうこと。
日本語は英語よりも苦手な上、牌には漢字で文字が描かれていたりするので、一発での理解は難しいでしょう。

なので、教えながら、理解してもらう計画です。

GPT−4について知らない方もいると思うので、まずはこいつのいろんな機能を見ていきみましょう。

GPT-4とは

みなさん、GPT-4って聞いたことありますか?

これがすごいAIなんです。
OpenAIっていうチームが作ったんですけど、前に流行ったGPT-3なんかの後継機なんです。

名前の「GPT」、実は「Generative Pre-trained Transformer」の略なんですよ。難しそうな名前ですけど、要は「すごく賢い機械」ってことですね。

GPT-4、正直言ってスペックがとんでもない。文章を人間みたいにサラサラ書けるし、質問に答えたり、翻訳もバッチリです。

でも、一番のビックリポイントは、画像認識と生成もできるようになったこと!

テキストだけじゃなく、画像を見て、それに関する文章や画像もポンと生成できるんです。

で、何でこんなに賢いのかというと、裏側で動いてる「ディープラーニング」って技術のおかげです。

これ、ものすごくざっくり言うと、大量のデータをガツガツ食べて賢くなるっていう仕組みです。

GPT-4の登場で、これからのAIの世界、絶対に面白くなりそうですよね。

どんなことができるようになるのか、ワクワクしながら見守りたいです。

GPT-4の画像認識とは

さて、画像認識をまずいってみましょう。

画像認識っていうと、もしかして「AIが画像を見て、何が写ってるか分かる」ってイメージですか?

まあ、それも間違いじゃないですけど、GPT-4の場合はもっとスゴイ。

画像を見て、その内容に合わせて文章をサクッと生成することができるんです。

たとえば、猫の写真を見せると「この猫、めちゃくちゃ可愛いですね!」とか、富士山の画像には「富士山、雄大でキレイですね!」って感じで、文章を作ってくれるんです。

なんでこんなことができるのかというと、ものすごくシンプルな理由。

GPT-4は、膨大な量のテキストデータと、それに関連する画像データを学習してるんです。
だから、画像を見ても、それに関する知識や文脈が頭の中にギッシリ詰まってるわけですね。

この機能、考えてみれば使い道いっぱいで、例えば、あなたが旅行に行って撮った写真をGPT-4に見せれば、その写真の解説や背景をちょっとした文章で教えてくれるかもです。

画像を読み描きができれば、AIとのかなりの意思疎通ができるようになるってことです。

GPT-4の画像認識、これからの時代にかなり役立つ仕組みになるでしょう。

GPT-4に麻雀牌の画像を読んでもらう

では、早速GPT-4に麻雀牌の画像を読んでもらいましょう。

まずはこちら。

GPT-4に下記の画像を入れてみました。


ウーマン
チーピン
パーソウ

さてさて、認識できるのかチェックです。

プロンプト
この画像には何が描かれていますか?
左の画像から順番に答えてください。

GPT-4の回答
左の画像には「中」という文字が書かれた麻雀の牌が描かれています。これは赤い中の字牌です。
中央の画像には4つの麻雀の牌が描かれています。これは4つの白板牌です。
右の画像には緑の竹牌が描かれています。これは8筒の牌です。

最後はパーソウですね。パーピンと言ってますが、これでは不正解。惜しいですけど。

やはりこちらの予想通り、牌の読み込みは苦手なようです。

で、ここで、正解を教えます。

正解を教えます。
左から、
ウーマン
チーピン
パーソウ
と呼びます。

ここまで理解しましたか?

ChatGPT
はい、理解しました。指摘していただき、ありがとうございます。ウーマン、チーピン、パーソウと覚えておきます。次回から正しく答えられるようにします。

プロンプト
ではこれは何が描かれていますか?

ChatGPT
この画像には「ウーマン」という麻雀の牌が描かれています。

プロンプト
ではこれらの画像は何が描かれていますか?

ChatGPT
左の画像には「パーソウ」という麻雀の牌が描かれています。
右の画像には「チーピン」という麻雀の牌が描かれています。

お見事です。
教えたことは理解できているようです。

ここら辺までは、プロンプトチューニング、few shotなど、いろんな呼び名がありますが、まあそんな感じの攻め方ですね。

これらをファインチューニングのように記憶できればいいのですが、今のところGPT-4のファインチューニングはできない上、できても簡単な質問応答タスクのみなので、画像認識云々ができないですね。

なので、このプロンプトを記憶している間は、認識できます。
ここらあたりはGPT-4の今後の改善点かもですね。

ユーザー側で詳細の情報を入れられるようにできればいいのですが、言い換えれば、嘘の情報も入れられるとGPT側はまずいでしょうから難しいのかも。

とりあえず今回はここまで。
プロンプトで教えると、なんとか理解できるってことはわかりました。

この後もいろいろテストしてみたのですが、長くて。
正直言うと、麻雀牌の画像認識の精度は、そうですねえ、おおむね60〜80パーセントくらいの出来でしょうか。

やはり漢字は苦手ですかね。また白 ハツ 中あたりをたまに間違えますね。

その辺のところは、今後少しづつ書いていきまーす。
(その根気が続くのだろうか 笑)

大規模言語モデルXwin-LMとGPT-4の回答を比較してみました

Xwin-LMとは

Xwin-LMとは、中国科学院と精華大学の研究者によって開発された大規模言語モデルで、MetaのLlama 2を基盤にしたものです。

公開された3種類のモデルの中で、700億パラメータのモデルは、AlpacaEvalの評価でGPT-4を超えて第1位を取得したようですね。

早速、google colabで実装してみました。
モデルは70Bのやつですので、700億パラメータのものです。

下記にプロンプトをいれてのテキスト生成をやってみました。
比較用にGPT-4のやつも載せておきます。

体感ですが、やはりGPT-4の方が、正確で速いイメージです。
ただこの辺はGPUの性能も影響しているので何とも言えないところですが。

google colab
A100
ハイメモリ
での体感です。

では下記が回答です。

Xwin-LMとGPT-4の回答を比較してみました。機械学習系

Xwin-LM
質問 ニューラルネットワークのバックプロパゲーションの仕組みを詳しく説明してください

回答
バックプロパゲーションは、ニューラルネットワークの学習アルゴリズムの一つで、誤った予測や不適切な出力を生成した場合に、誤差を最小化するために適切な重みを調整する方法です。

バックプロパゲーションでは、誤差の値に基づいて、隠れ層のノードと出力層のノードとの間の重みを調整します。これにより、モデルは誤差を減らし、より正確な予測や出力を生成できるようになります。

バックプロパゲーションの仕組みは以下の通りです。

1. 教師データ(正解のラベル)と実際の出力を比較し、誤差を計算します。

2. 誤差を使用して、隠れ層のノードと出力層のノードとの間の重みを調整します。誤差が大きい場合、重みは大きく調整されます。

3. 隠れ層のノードの活性化値を更新し、出力層のノードに適用します。これにより、誤差が最小化されるように出力が調整されます。

4. 隠れ層のノードと入力層のノードとの間の重み→

*****

GPT-4
質問 上記と同じ

回答
バックプロパゲーション(Backpropagation)は、ニューラルネットワークを訓練する際の主要なアルゴリズムの一つです。このアルゴリズムは、ネットワークの出力と目標出力との間の誤差を最小化するために、ネットワークの重みを調整します。

以下に、バックプロパゲーションの基本的なステップを詳しく説明します:

順伝播(Forward Propagation)
入力データをネットワークの入力層から出力層まで伝播させ、各ニューロンの出力を計算します。
この際、各層のニューロンの出力は、重み付きの入力の合計に活性化関数を適用することで得られます。

誤差の計算
ネットワークの出力層での出力と目標出力との差(誤差)を計算します。
この誤差は、損失関数(例:平均二乗誤差)を用いて計算されることが多いです。
誤差の逆伝播(Backward Propagation)

出力層から入力層に向かって、誤差を逆伝播させます。
各ニューロンの誤差に対する貢献度(誤差に対する偏微分)を計算します。これは、連鎖律を使用して計算されます。

重みの更新
計算された偏微分を使用して、各重みを更新します。
重みの更新には、学習率というハイパーパラメータが使用されます。学習率は、重みの更新の大きさを制御します。
重みの更新式は、以下のようになります:

Xwin-LMとGPT-4の回答を比較してみました。文学系

もういっちょやってみます。
お次は文学系で。

Xwin-LM

質問
村上春樹の作品の中で、彼のスタイルやテーマが最も顕著に表れているものは何ですか?その理由も合わせて説明してください。

回答
村上春樹の作品で最もスタイルやテーマが顕著に表れているものは、『羊の歴史』です。この小説は、独自の文体と鋭い観察眼を武器に、現代社会の問題を問い直す作品です。

その理由は以下の通りです。

1. 文体: 村上春樹は、独特の文体で知られています。『羊の歴史』でも、独特の文体で現代社会の問題を浮き彫りにしています。

2. 観察眼: 村上春樹は、現代社会の問題を鋭い観察眼で捉えています。『羊の歴史』では、個人の自由と社会的責任のバランス、異文化間の対話、そして暴力と戦争の悲劇など、現代社会が直面する複雑な問題を描きます。

3. テーマ: この小説では、個人の自己実現という村上春樹の代表的なテーマが繰り広げられます。主人公の青年は、羊の皮をかぶった姿で暮らすことで、社会的な拘束から解放され、自己実現に向けて成長していきます。

このように、『羊の歴史』は→

*****

GPT-4
質問 同じ質問

回答
村上春樹は多くの作品を手がけており、彼のスタイルやテーマは多岐にわたりますが、特に「ノルウェイの森」や「1Q84」などが彼の代表的なスタイルやテーマを色濃く反映していると言われています。

ノルウェイの森:
この作品は、村上春樹の初期の作品であり、彼のリアルでありながらも夢のような文体や、孤独や愛、死といったテーマが織り交ぜられています。

青春時代の混乱や葛藤、そして成熟への過程を通じて、人間の心の奥深さや複雑さを描き出しています。

1Q84:
この作品は、村上春樹の後期の作品であり、彼の特徴的なマジックリアリズムや複雑な物語性が顕著に表れています。
二つの異なる世界や時間の流れ、そしてそれらの間で繋がり合う人々の運命や愛を中心に、彼の独特の哲学や世界観が展開されています。

理由:
村上春樹の作品は、日常の中に潜む非日常や神秘性を巧みに描き出すことで知られています。彼の作品には、現実と夢、意識と無意識の境界が曖昧になるような独特の雰囲気やリズムがあります。

また、彼の作品には、孤独や愛、死、運命といった普遍的なテーマが織り込まれており、それらのテーマを通じて人間の心の奥深さや複雑さを探求しています。

これらの理由から、特に「ノルウェイの森」や「1Q84」は、村上春樹のスタイルやテーマが最も顕著に表れている作品と言えるでしょう。

大規模言語モデルXwin-LMとGPT-4の回答を比較してみましたのまとめ

Xwin-LMは、結構レベルが高いですね。
Llama2を元に開発しただけあって、精度は高いかもです。

あとはスピードですかね。

トータルの評価だとまだまだGPT-4の方が上でしょうか。
パラメータの数が圧倒的に違うので、仕方がないかもです。

ただLlama2はちょっと気になる存在ですね。
オープンソースだし、いろいろいじっても無料ですしね。

今後も期待です。

#Xwin-LM #gpt4と比較 #llm #大規模言語モデル

PAGE TOP