7 Days to End with Youというゲームをやってみた。 このゲーム、ジャンルとしてはテキストアドベンチャーになるけど、ゲーム内で使われているのが未知の言語であり、それを読解しながら進めていくという大きな特徴がある。
このゲームの未知の言語は、記号のような文字を使って表現される。
「赤髪の人」がパートナーとなってくれて、クリックしたものが何かを未知の言語で教えてくれたり、短い会話が発生したりする。 そういったコミュニケーションをヒントに、未知の言語が何なのかを少しずつ読み解いていくのがこのゲームの流れになる。
その性質上、一度プレイしただけでは最初から最後までのストーリーを理解することは難しく、何周もプレイして謎を解いていくのが前提になる。 最初はほとんど何も分からなかったけど、二週目には何を言っているのか少し理解できるようになっていたり、何を聞かれているのか分からなかったりしたシーンで受け答えができるようになっていくと楽しい。 そして、言語が分かるようになっていくと「主人公」や「赤髪の人」の秘密が徐々に明らかになっていく、という構造になっている。
言語モデルが言語を習得する方法
このゲームをプレイしていて、昨今流行しているGPTのような言語モデルを思い出した。 厳密には言語モデルと言うか、(たぶん)その根底にある考え方である統計的意味論について。
GPTのような言語モデルは、語の体系的な意味や文法構造などをデータとして持っているわけではなく、あくまで大量のテキストデータを読み込んで統計的な特徴を捉えることで言語を扱っている。例えば「冷たい○○を飲む」というテキストが与えられたら、「○○」に入るのは「ビール」「コーヒー」のような冷やして飲む物をあらわす語ではないかと推測される。これは「ビール」という語が「冷たい」や「飲む」といった語と共起(同時に登場)する傾向があるといえる。この共起という関係は、大量のテキストデータがあれば機械的に集められる。大量のテキストを読み込む中で、「ビール」と「コーヒー」はともに似たような語と共起する関係にあるという事がわかり、「ビール」と「コーヒー」は似ているとする。こういう作業をすべての語に対して機械的に繰り返すことで、どの語とどの語が似ているのか・似ていないかというのをデータ(ベクトル)にしていくというのが、言語モデルを支える大元のアイデアになっている。
7 Days to End with Youというゲームは、未知の言語が与えられて、単語をクリックすると同じ単語が使われていたシーンをすぐに回想できる。この単語は別のシーンで別の語と共起していたな、と回想しながら意味を推測していく。この作業が、GPTのような言語モデルが学習する過程に似ているような気がする、と感じた。
※ここから先はゲーム内の具体例を挙げていくので、ネタバレを含む。7 Days to End with Youはネタバレが厳禁なゲーム内容なので、プレイ予定の人がいたらここで引き返してほしい。
7 Days to End with Youにおいて言語を習得する方法
7 Days to End with Youにおいて未知の言語を学習していく過程はGPTのようなニューラル言語モデルのそれと同じかと言われると、そうではない。むしろ先に述べたように共起関係を回想しながら調べていくパターンの方が少ないかもしれない。7 Days to End with Youは機械学習ではなく人間があそぶゲームなので、当たり前ながらテキストデータだけではなく画像と音声によるマルチモーダルな表現があり、プレイヤーが画面をクリックする操作に対してインタラクティブに反応してくれる。例えばコーヒーのような液体が入ったマグカップをクリックしたときに、未知の言語で「○○ △△」と2語で言われたとする。すると2語のうちどちらかは「飲み物」で、どちらかは「入れ物」を指すのではないかと推測できる。別のシーンで、空の瓶に対して「△△」と1語で言われていたとしたら、「△△」の方が「入れ物」で、「○○」は「飲み物」だな、と読み解ける。「○○ △△」と2語が共起関係にあるという情報は使っているが、それだけでなく画面のグラフィックやクリックした時の反応など、様々な情報を組み合わせて未知の言語を読み解いていくゲームになっている。
もう少し具体的に言うと、7 Days to End with Youにおいて未知の言語を習得する方法はだいたい以下のパターンに分類されると思う。
- 夢の中で分かる言葉
- 「思い出」「忘れる」「求める」「戦争」「罪」
- ゲーム内で、単語の意味の"正解"を推測ではなく確実に知る唯一の方法
- 図表で示される言葉
- 数字(カレンダー)
- 日月(新聞)
- 何らかの行動をした後に起きたことで分かる
- 「実行」、「完了」、「失敗」、「正解」、「もう1回」、など
- 画面上の見た目で分かる言葉
- 色、数字(個数)
- 草、鏡、絵など大半の物
- 「昼」「夜」「夕方」
- ゲームのメタ的な要素で分かる言葉
- 赤髪の人の名前(メッセージウインドウに同じ文字) プレイヤーの常識を使う
- 暖炉の火は「触る」と「熱い」
- 人の体をジロジロ見ると「嫌がる」
- 共起関係で分かる
- 「草+??+4」「草+??+2」といったパターンから、??は草の特徴(形や色など)を指す語が来ていると推測できる
こういう色々なヒントを組み合わせることで、未知の言語を理解するという作業をパズルゲームのように仕上げている。開発者インタビューによると、言語学者が未知の言語を習得する時の方法を参考にしているらしい。
対義語の扱いと言語モデルの未来
GPTのような言語モデルの話にすこしだけ戻ると、共起関係によって語の意味を統計的に捉える試みは万能ではなくて、いくつか弱点がある。そのうちひとつが「対義語を同じ意味と捉えてしまう」という事がある。「このコーヒーは○○」という文が与えられた時に、○○には「熱い」も「冷たい」も入るので、「熱い」と「冷たい」は似た意味であるとされてしまう。本当は反対の意味なのに、それらが区別されずに似た意味であるとされてしまう。
対義語の扱いにおいて、7 Days to End with Youでは特徴的なシーンがあった。7 Days to End with Youでは簡単な「料理」ができるようになっている。どの材料を使うのかというメモが与えられて、その指示通りに行動できたら成功、できなければ失敗という単純なミニゲームのようなものである。「料理」が完了したあとに赤髪のパートナーが何かを喋るのだけど、その言葉だけでは「料理」が「成功」したのか「失敗」したのか分からない。でも「料理」の完了後に喋ることなので、「料理」した結果を表現する言葉であるという事までは統計的に捉えられる。テキストを見るだけでは「成功」か「失敗」かは分からないけど、なにか結果を表す言葉という意味で一括りにされてしまう。「成功」か「失敗」かでは意味が正反対なのでどちらなのかは重要な違いだけど、テキストを統計的に見るだけでは、このふたつを似たものとして捉えてしまう。
ところが7 Days to End with Youはゲームであり、テキストファイルではない。実際に料理をすると、赤髪のパートナーが表情豊かに「成功」か「失敗」かを視覚的に表現してくれる。テキストを見るだけでは「成功」か「失敗」かはよく分からず判別が難しいはずだけど、実際にゲームをやっているとそんな事で迷う事は無く、一発で分かる。
また5日目に来訪者が来るシーンでは、赤髪の人が主人公を置いて部屋を出てしまい、それまで穏やかだったのが急に不穏なBGMに切り替わり、打撃のような効果音が鳴ったりする。「赤髪の人を助けに行かなければ」みたいなメッセージも出る。このシーンでは新規に登場する語も多く、テキストだけを見ていてもどういう状況なのかはよく分からない。しかし画面の演出やBGM・効果音といった要素をヒントにして、赤髪の人が危険な状態なんだろうと推測して、言語を読み解いていく。 ...と思いきやこれらの演出はミスリードであり、物語を読み解いていくと実際に赤髪の人は殴られているのではなく殴る側だということが分かったりする。こういうところは、ゲームであるところを逆手に取った演出だと思う。言語モデルで言うところの敵対的学習とでも言うべきか。
このように、7 Days to End with Youはテキストだけでなくゲーム内の様々な表現からヒントを得ることで、未知の言語の学習を効率的に進められるようになっている。 2023年現在主流のGPTのような言語モデルは、基本的にその学習の過程においてテキストデータしか見ていないと言われている。一方で機械学習研究においては画像など様々なデータを用いるマルチモーダルな手法の研究が盛んになっていると感じる。7 Days to End with Youをやっていて、言語モデルの未来も、テキストデータだけではなく様々な情報を使うことで飛躍的な進化を遂げたりするのかな、と思った。言語モデルは、まだまだ革新的な進歩を複数残している、まだまだ面白くなると思った。
GPTの最新のモデルに使われている技術のひとつはInstructGPUと呼ばれるもの。これは簡単に言うと、言語モデルの生成した文章に対して人間が良いか悪いかフィードバックを与える強化学習の手法のようである。7 Days to End with Youにおいてプレイヤーの行動が正解か失敗かをフィードバックすることで、未知の言語の学習が進むことに似ていると感じた。
7 Days to End with Youの最後と言語モデルの変化
7 Days to End with Youは他のアドベンチャーゲームと同様、特定の行動をすることで結末が分岐していく。7 Days to End with Youは最後の最後に赤い髪のパートナーがしてくる質問に対して未知の言語で応答を求められるシーンがあり、ここで"正解"となる語を発言できたかどうかが分岐に関わっていく。このゲーム内でやることはここまでほとんどテキストを読むだけで、理解を楽しむものだったけど、最後にはそれまで理解した言語を使って会話をすることを求められる。ゲーム用語で言えば、これがラスボス戦と言える。言語モデルで言えば、今までBERTを作っていたけど最後にはGPTになる事を求められるようなもの、と言えるかもしれない...?
この最後の会話には、真のエンディングに分岐するための"正解"となる語が設定されている。一方で、正解以外の語を選ぶと基本的にはパートナーに理解されずに、物語が幕を閉じてしまう。ただし正解以外の語の中でも重要そうなキーワードを発するとパートナーの回答に変化があらわれるなど、ちょっとした対話を楽しめるようになっている。
GPTというモデルはテキストを入力としてその続きを生成される用途が一般的だったが、「ChatGPT」と呼ばれる、質問を入力すると回答を生成するインターフェースを持つものが登場して大ブレイクした。7 Days to End with Youで未知の言語を理解した果てにあるのがパートナーとの会話というのは、GPTがChatGPTとなる変化に通じるものがあったかもしれない。
私は結局、何度やっても"正解"の語を見つけ出せずにエンディングが分岐することなく物語が終わってしまった。だけど、自分が獲得した未知の言語でパートナーと簡単な対話を成立させられただけで満足で、かげがえのない経験になった。このゲームは冒頭に「このゲームに正解は無く、あなたが解釈した物語が正しい」と提示される。(その割には明らかな正解のようなルート分岐が用意されている点は少し不満ではあるものの)未知の言語の解釈において、その言語を自身の手で見て、理解して、発して、感じた経験がこのゲームにおけるすべてなのだと思った。
このゲームをプレイしたあとにSNSなどを検索してみると、もちろんゲームの謎を解き明かして完全な"正解"を見つけたという情報もある一方で、実に様々な解釈の過程にあるゲームプレイの記録が見えて、楽しくなった。分かりやすいもので言えば、パートナーの会話をすべて関西弁として解釈している、というようなものである。実際にどういう言葉で会話しているか、正解は与えられていないのである。
GPTは、語の体系的な意味や文法構造といった"正解"の知識をもとに言語を理解しているわけではない。学習データとして与えられたテキストがすべてであり、学習データから得た統計的な特徴に正解や間違いは無い。GPTは私達の使う英語や日本語といった「自然言語」を見て、どのように解釈しているのか。もしかしたら中身は全部関西弁で考えていたりするかもしれない、と思った。