2.3K Views
May 26, 23
スライド概要
2023/05/25 株式会社アルゴリズムにて行われたハンズオン勉強会の資料です。
AI(ChatGPT)を使ってゲームを作るに当たっての事前知識の共有としての内容となっています。
https://connpass.com/event/282985/
ウェブエンジニア。デザインエンジニアを目指して修行に励むことにしました。動物だいすき。好きな飲み物は牛乳。Vueが好き。個人開発で作ったもの http://anke.digital http://meeemo.space http://hyou.show http://quiz-maker.site 他。
2023/05/25 19:30 ~ 株式会社アルゴリズム
ハンズオンの事前準備 • npm、gitのコマンドが動作する環 境をご用意ください この内容がわからない方についてはこれからの事前説明の時間の間にスタッフがサポート します
AIが使用されているゲームの事例
いままでのゲームにも"AI"は搭載されている 例① 計算アルゴリズムに基づくもの 往年のオセロゲームのAIや戦略シミュレーションゲームなどはおおよそこれに該当するはず。 打った手について得点を付けて評価して行動判断している 例② 深層学習を使って行動学習をさせたもの プレイヤーの行動から学習して、NPCとしての行動を決定するもの。 古くはプレイステーションゲーム「がんばれ森川君2号」(1997年5月23日発売)の頃から 存在していた。 近年は格ゲーのNPCにプレイしているプレイヤーの癖を学ばせて動くものもあるとか。 https://automaton-media.com/devlog/report/20190511-91689/ 他にも色々...
いままでのゲームにも"AI"は搭載されている 例① 計算アルゴリズムに基づくもの 往年のオセロゲームのAIや戦略シミュレーションゲームなどはおおよそこれに該当するはず。 打った手について得点を付けて評価して行動判断している これは今回範囲外… 例② 深層学習を使って行動学習をさせたもの プレイヤーの行動から学習して、NPCとしての行動を決定するもの。 古くはプレイステーションゲーム「がんばれ森川君2号」(1997年5月23日発売)の頃から 存在していた。 近年は格ゲーのNPCにプレイしているプレイヤーの癖を学ばせた動きをするものもあると か。https://automaton-media.com/devlog/report/20190511-91689/ 他にも色々...
NLPやLLMが搭載されている ゲームの事例 多分無いとは思いますが、前提の誤解があった場合は申し訳ありません🙏
ポートピア連続殺人事件 SQUARE ENIX 2023 https://www.jp.square-enix.com/ai-tech-preview/portopia/jp/
AIバトラー @dala氏による個人開発 2023 https://ai-battle.alphabrend.com/
ドキドキAI尋問ゲーム(公開停止中) https://automaton-media.com/articles/newsjp/20230329-242319/
(番外編)AIのべりすとプロンプト共有 https://ai-novelist-share.geo.jp/
ゲームに自然言語による入力が 使えるようになり、ファジーさという 新しいゲーム体験を生み出すことが可能 になった
ゲームとは?
今回はここを目指す
あえて図で表すとこう
あえて図で表すとこう AIに指示を出す = プロンプティング
プロンプトエンジニアリングと LLMについて
定義についての引用 @ITより : https://atmarkit.itmedia.co.jp/ait/articles/2303/13/news013.html LLM(Large Language Models)とは何か 大量のテキストデータを使ってトレーニングされた 自然言語処理のモデル 📝 📝 📝 📝 数千億・数兆語にも及ぶテキスト \ウアアアーッ/ トレーニング 🧠 LLM
LLMは擬人化すると取っつきやすいかもしれない \33億語でトレーニングしました/ 📝 🧠 BERT \約5千億トークンでトレーニングしました/ 📝 📝 📝 🧠 GPT-3.5 🧠 \GPT-3.5さんよりもっと勉強しました/ GPT-4
定義についての引用 book.st-hakky.comより : https://book.st-hakky.com/docs/what-is-prompt-engineering/ プロンプトエンジニアリングとは何か AI に対して適切な質問や指示を与えることで、より 望ましい結果を引き出す技術
定義についての引用 book.st-hakky.comより : https://book.st-hakky.com/docs/what-is-prompt-engineering/ プロンプトエンジニアリングとは何か AI に対して適切な質問や指示を与えることで、より 望ましい結果を引き出す技術 この方法やテクニックに 手法名がついて呼ばれている
引用: https://www.promptingguide.ai/jp/techniques/zeroshot 代表的なプロンプティング手法 ① Zero-Shot モデルに任意の例を提供しないプロンプト 入力サンプル テキストを中立、否定的、または肯定的に分類してください。 テキスト: 休暇はまずまずでした。 所感:
ChatGPTのモデルごとの出力結果の比較 GPT-3.5-turbo GPT-4
注目すべき点 • Zero-shotでは同じプロンプトでもModel・パラ メータによって得られる出力が異なる ✴ 同じにしても毎回同じ出力になるとは限らない 比較する対象がないからよくわかんないけど 休日なんだから肯定的じゃないんですか? > GPT-3.5 🧠 🧠 まずまずって言ってるし、良くも悪くもなかったみたい < これは中立ってところかしら GPT-4
注目すべき点 Zero-shotでは同じプロンプトでもModel・パラ •毎回同じ答えになる保証が無いなら ゲームの処理としては メータによって得られる出力が異なる ✴ 同じにしても毎回同じ出力になるとは限らない 使えないじゃん?! 比較する対象がないからよくわかんないけど 休日なんだから肯定的じゃないんですか? > 🧠 🧠 まずまずって言ってるし、良くも悪くもなかったみたい < これは中立ってところかしら GPT-3.5 プロンプトを調整して対応する GPT-4
引用: https://www.promptingguide.ai/jp/techniques/fewshot 代表的なプロンプティング手法 ② Few-Shot モデルに任意の例を提供するプロンプト 入力サンプル これは素晴らしい! // ポジティブ これは酷い! // ネガティブ あの映画は最高だった! // ポジティブ なんてひどい番組なんだ! //
ChatGPTのモデルごとの出力結果の比較 GPT-3.5-turbo GPT-4
注目すべき点 • Model・パラメータを変更しても、期待した定型 文が返ってきやすくなった ✴ 100%毎回同じ形で定型文が返ってくるとは限らない 文脈とか例があったのでそれに倣いました > GPT-3.5 🧠 🧠 < 文脈に沿って回答しました GPT-4
注目すべき点 • Model・パラメータを変更しても、期待した定型 100%定形のレスポンスである 文が返ってきやすくなった 保証がないの!? ✴ 100%毎回同じ形で定型文が返ってくるとは限らない 文脈とか例があったのでそれに倣いました > 🧠 GPT-3.5 この話は後ほど 🧠 < 文脈に沿って回答しました GPT-4
引用: https://www.promptingguide.ai/jp/techniques/cot 代表的なプロンプティング手法 ③ Chain-of-Thought 例示と具体的な思考の過程をサンプルとして与えるプロンプト 入力サンプル このグループの奇数を合計すると偶数になります。: 4、8、9、15、12、2、1。 A: 奇数を全て加えると(9, 15, 1)25になります。答えはFalseです。 このグループの奇数を合計すると偶数になります。: 17、10、19、4、8、12、24。 A: 奇数を全て加えると(17, 19)36になります。答えはTrueです。 このグループの奇数を合計すると偶数になります。: 16、11、14、4、8、13、24。 A: 奇数を全て加えると(11, 13)24になります。答えはTrueです。 このグループの奇数を合計すると偶数になります。: 17、9、10、12、13、4、2。 A: 奇数を全て加えると(17, 9, 13)39になります。答えはFalseです。 このグループの奇数を合計すると偶数になります。: 15、32、5、13、82、7、1。 A:
ChatGPTのモデルごとの出力結果の比較 GPT-3.5-turbo GPT-4
ChatGPTのモデルごとの出力結果の比較 GPT-3.5-turbo GPT-4
ChatGPTのモデルごとの出力結果の比較 GPT-3.5-turbo GPT-3.5-Turboの答えが違うが!? (今回は何回やってもだめだったがパラメータ次第で期待した答えになることはあり得る) GPT-4 違うがそこは本質ではない
注目すべき点 • GPT-3.5の回答は期待した答えとは違ったが、過 • 程は倣わせる事ができている 複雑な内容も「やり方」を例示してあげることで AIにある程度以上対応させることができる わかるところとわからないところがあった > GPT-3.5 🧠 🧠 < 私は出来てましたけどね GPT-4
引用: https://www.promptingguide.ai/jp/techniques/cot 代表的なプロンプティングの工夫例 Zero-shot CoT AIに良い動きをさせるための魔法の一言:ステップバイステップで考えてみましょう。 入力サンプル 私は市場に行って10個のリンゴを買いました。隣人に2つ、修理工に2つ渡し ました。それから5つのリンゴを買って1つ食べました。残りは何個ですか? ステップバイステップで考えてみましょう。
ステップバイステップで〜の文言がないときのGPT-3.5-turbo GPT-3.5-turbo 出てきた数字を並べてそれらしく回答しているだけ
ステップバイステップで〜の文言があるときのGPT-3.5-turbo GPT-3.5-turbo えらい!!!!!!かしこいねぇ〜〜!!!!!!
その他の入力プロンプティング例は Prompt Engineering Guideを ごらんください https://www.promptingguide.ai/jp
ゲームを作るための プロンプティングと実装
前提として、回答の定型句を与えれば 基本的には期待した定形のレスポンスがされる
与えた定形の語句で答えられない 質問を与えたケースを与えた場合は 簡単に破綻してしまう
※期待通りに定形の回答を してくれる場合もある
注目すべき点 • Model・パラメータを変更しても、期待した定型 100%定形のレスポンスである 文が返ってきやすくなった 保証がないの!? ✴ 100%毎回同じ形で定型文が返ってくるとは限らない 文脈とか例があったのでそれに倣いました > 🧠 GPT-3.5 この話 🧠 < 文脈に沿って回答しました GPT-4
ChatGPTのレスポンスを 100%の定型文に近づける方法の案
回答させる値を テンプレートを与えて予め絞り込む
しかし入力値によっては 質問に勝手に回答しちゃったりする
現状のChatGPTにおいてプロンプトのみで 絶対確実100%の定形レスポンスを保証をする方 法はおそらく無い(自分が浅学なだけだったら申し訳ありません)
現状のChatGPTにおいてプロンプトのみで 絶対確実100%の定形レスポンスを保証をする方 法はおそらく無い(自分が浅学なだけだったら申し訳ありません) → AIを使った何らかの処理を実現する場合に、期待する 答えではないレスポンスだった場合、規定回数のリトライ や、入力のやり直しを要求するなど、実装によるカバーが 必要になる
その他の意識すべき部分のダイジェスト ・どのLLMを使う? ・性能? 早さ? 専門性? ・プロンプトインジェクションへの対抗 ・AIの応答待ち時間をどうする問題 ・streamingを使う ・ 演出でカバー etc... ・その他の例外対応…
ハンズオンでやってみよう
資料URL https://algorithms1.notion.site/ 2023-05-25AI-07d2e2a380724b61a23547e8725f4 4cf