ゲームデザイナーにも知っておいて欲しい!ChatGPTの基本とキーポイント
AI技術、特に話題のChatGPTを効果的に活用するためには、その基本原理を理解し、適切な使い方を身につけることが重要です。本記事では、AI技術の基本概念や使いこなすためのポイント、そして学習のためのキーワードを解説していきます。ここで紹介する内容は、ChatGPTを中心に説明しますが、他の大規模言語モデル(LLM)にも適用できる知識です。
ゲームデザイナーの業務でもゲーム制作フローの効率化だったり、ゲームへの組み込みなどAIを扱うことが多くなると予測されます。
特にAIをゲームに組み込む場合は、AIに望んだ挙動をさせるのはゲームデザイナーの仕事になる可能性が高いです。
ChatGPTを使うにあたって重要だと思ったことをまとめたので、
AIはプログラマの領域と躊躇せずに踏み込んでいって欲しいです。
ChatGPTの基本
ChatGPTは文章を補完するAIである
ChatGPTは、インターネット上の情報を大量に学習し、文章の続きを予測できるAIです。
例えば、「吾輩は」と入力すると
吾輩は続きを推測するとこうなります。
猫である。名前はまだ無い。この推測は確率的な判断に基づいているため、一般的な普通の返答が返ってくることが多いです。
AIへのリクエストとして渡すテキストをプロンプトと言います。ブレインストーミングや創作など、独創的な出力を求める場合は、プロンプトに工夫を加える必要があります。この工夫次第で、AIの価値が何十倍も変わってくることがあります。
例えば、「吾輩は」の後に独創的な文章を生成させたい場合、次のように具体的なプロンプトにすることで、魅力的な文章を生成する確率が高まります。
ミステリー作家として、「吾輩は」で始まる文を書きなさい。吾輩は、この部屋の片隅に潜んでいた。
暗闇に紛れて、人々の様子をじっと窺っていた。
しかし、今夜は何かが違う。
何かが起こる予感がするのだ。ちょっとわくわくする文章が出力されました。
理屈としては「ミステリー作家として」という文言があった場合、続く文章いはミステリー作家が書きそうな文章がある確率が高いため、そのような文章が出力されているだけです。
AIと会話していると、人間相手に指示を出しているように錯覚しますが、根本的には「文章の続きが欲しい出力になってそうなプロンプト」を書いていると理解しておきましょう。
プロンプトエンジニアリングの活用
AIに指示を与える入力テキストをプロンプトと呼びます。イラストAIやChatGPTなど、さまざまなAIに指示を出す際にプロンプトが使用されます。
プロンプトエンジニアリングは、プロンプトを効果的に利用し、変数やプログラミングの技法を駆使してAIの性能を引き出す新しい分野です。
例えば、次のようなプロンプトを使用することで、再利用性が高く効率的な指示が可能です。
#命令:
{T1}というテーマの会議を{S1}に開催します。
参加者への招待メールを書いてください。
#{S1} = 2023/4/1
#{T1} = ChatGPTを使った次世代どこでもいっしょの開発についてここで、S1は開催日時、T1は会議のテーマを表します。同様の指示が繰り返される場合、このような形式を用いることで、パラメータの中身だけを書き換えれば済みます。
プログラム的な書き方ですが、日本語で指示しているだけです。
プログラム言語のように文法や、関数などを学ぶ必要がないので、
是非ゲームデザイナーなどの非プログラマーも積極的にトライしてもらいたいです。
プログラマーじゃないから…と二の足踏んでいるとAIに乗り遅れてしまいます。
ここでは細かく触れませんが、プロンプトエンジニアリングは、AIの効果的な使い方を学ぶ際に重要なキーワードです。ChatGPTの使いかたを学習するときは、このキーワードで検索しましょう。
プロンプトエンジニアリングに興味を持った人はこちらもチェックすると良いでしょう
- 【徹底解説】これからのエンジニアの必携スキル、プロンプトエンジニアリングの手引「Prompt Engineering Guide」を読んでまとめてみた
- Prompt-Engineering-Guide
コンテキストの重要性
コンテキストは、AIとユーザー間の対話の文脈を意味します。AIは、コンテキストをもとに返答を生成するため、適切なコンテキスト理解が重要です。コンテキストに関連して覚えておくべき2つの要素があります。
システムコンテキストの役割
システムコンテキストは、ユーザー入力より前に設定される、AIに対する指示や制約です。
例えば、ChatGPTで「猫が」と入力しても続きの文章を出力しません。
猫が猫が何をするかは状況によって異なります。
一般的に、猫は休憩したり、遊んだり、餌を食べたりすることが多いです。
また、猫は狩猟本能が強く、鳥やネズミなどの小動物を追いかけたり、
捕まえたりすることもあります。
ただし、猫の性格や個性はそれぞれ異なるため、
行動は猫によって異なることに注意してください。これは、ユーザー入力の前に次のような指示が与えられているからだと考えられます。
※実際のシステムコンテキストは非公開なのでイメージです。
あなたはユーザーのリクエストに答えるAIアシスタントです。
法律に違反することや、公序良俗違反になるようなことはやってはいけません。実例として、VSCodeのChatGPT Rebornというプラグインを見てみましょう
このプラグインは設定から各種プロンプトを確認することができます。
※わかりやすいように日本語に翻訳してあります。
あなたはChatGPTでユーザーのコーディングのお手伝いをしています。
あなたは知的で、親切で、専門的な開発者です、
常に正しい答えを出し、指示されたことだけを行う人。
ユーザーがコード変更や新しいコードを要求している場合、
は、新しいコードで応答し、説明はしない。
次のプロンプトに応答する場合、
回答はGithub Flavored Markdownを使用して適切にスタイル設定するようにしてください。
見出しのようなものにはマークダウン構文を使用してください、
リスト、カラーテキスト、コードブロック、ハイライトなど。
実際の回答では、マークダウンやスタイリングについて言及しないように注意してください。選択したコードから、バグ見つけるプロンプトです
以下のコードで問題を見つけてください。
<エディタで選択しているテキスト>選択したコードにコメントを付けるプロンプト
次のコードにコードコメントを挿入して、コードをわかりやすくしてください。
<エディタで選択しているテキスト>システムコンテキストは毎回同じで、機能ごとに別のプロンプトを実行しています。
システムコンテキストとプロンプトは、ChatGPTを組み込んだサービス作成において重要な要素です。多くのサービスは、ChatGPTを直接呼び出すだけでなく、独自のシステムコンテキストとプロンプトを工夫して様々な機能を実現しています。AIサービスの価値は、「ChatGPTと他の要素を組み合わせる + 独自のシステムコンテキストやプロンプト」にあると言えます。
ChatGPTで何かアイデアを思いついたら、そのアイデアを実現できるかプロンプトを試してみるといいでしょう。100%意図した返答をしてくれるのであればサービスやゲームの一部に組み込めるかもしれません。
コンテキスト量の制約
AIは、ユーザーとの会話を無限に記憶することはできません。GPT-3.5は4000トークン、GPT-4は8000~32000トークンまでしか記憶できません。トークンはテキストを分解した最小単位であり、英語では単語単位ですが、日本語は1文字単位に分解されることが多いです。
コンテキスト量が制限を超えると、AIは以前の会話内容を忘れてしまいます。そのため、ルールを指定しても、一定量の会話が進むとルールが無視されることがあります。
例えばChatGPT4 ノベルゲームの多くは(体験版)と付いており、コンテキストが長くなるとChatGPTがルールを守らなくなることがあります。
ChatGPT4 本格RPG「チャット転生 〜 死んだはずの幼馴染が異世界で勇者になっていた件」(体験版)
人間の記憶と比較すると、コンテキストは短期記憶に相当し、事前学習済みデータは長期記憶に該当します。現時点では、コンテキスト内容を長期記憶に学習させる機能が存在しないため、コンテキストが溢れる前に、これまでのあらすじを生成して会話をやり直すなどの工夫が必要です。
現時点では、2つの対処方法がありそうです。
① コンテキストが長くならないように、必要な会話以外を削除する。
長い文章を書く場合、最初の会話で登場人物、世界観、あらすじや章構成を入力。
以降を章ごとに分割して執筆してもらうイメージです。
- 1章執筆依頼 → 出力
- 1章の会話ログを削除
- 2章執筆依頼 → 出力 …
といった感じで、執筆に必要な情報 + 分割した章がコンテキストを超えないようにします。
各章の大まかな整合性などはあらすじや章構成で担保できます。
② コンテキストがあふれる前にAIに文章要約をさせ、会話をリセットする。
今までの最初の命令と、今までの要約を入力して会話再開する方法。
厳密なことを覚えておく必要がなければ、こちらも可能ですが要約の質で会話リセット後の言動がだいぶ変わってきます。
まとめ
・ChatGPTは、入力した文章の続きを考えるAIである。
何も考えないと一般的≒普通で平凡な出力をする傾向にある
入力する文章を工夫することで、専門家のような出力や、突飛なアイデアを出せる
プロンプトエンジニアリングという分野がある
エンジニアリングとつくけど、日本語で指示を出すようなもの
プログラマーじゃないから…と二の足踏んでいるとAIに乗り遅れるぞ
細かい理論や、論文は理解しなくて良いのでキーポイントだけ抑えておくとChatGPTとの付き合いが楽しくなります。
ゲームデザイナーのみなさんも、是非ChatGPTに挑戦してみてください。
興味が湧いた人はこの動画から始めるといいでしょう
VSCodeでプログラム補助に使うならコレがおすすめ
-
前の記事
ChatGPTでゲーム制作が変わる!ゲームデザインへのAI活用アイデア 2023.03.31
-
次の記事
Node.jsからStable Diffusionを呼び出す!プログラムに画像生成を組み込もう! 2023.04.25