以前に実は水(トークン)を貯めるのは「チャット」という「栓のついているタンク」と再確認しました。
そして、そのタンクのAIが一回の回答を作るときに扱える容量が「コンテキストウィンドウ」と話を進めてきました。それをおさらいしながら、メリットとデメリットのお話をしましょう。


コンテキストウィンドウ?という人のために、前回記事を貼っておきます。

コンテキストウィンドウとは

コンテキストウィンドウはタンクの容量

前回の最後で、とても重要なことをお話ししました。

AIが一回の回答を作るときに扱えるタンクの容量。
これを「コンテキストウィンドウ」と呼びます。

よって、この容量の管理をしながら、AI会社がちゃんと古いデータと思われるものから捨ててくれるので、AIはタンクが満杯になりながらも、タンク内でやりくり出来るのです。

でも、前回のときの最後に出てきた、この図を思い出してください。

左上の女性が何か言っています。

「新しい回答が返ってきた。でも、なんだか最初の頃と少し違うような…」

きっと、彼女は最初に似た質問をしたのでしょう。
でも、返ってきた回答はちょっとずれている。

また事例で考える

具体的に考えてみましょう

例で言うと、こんな感じ。

レシピタンクに最初にした質問がこうだとしましょう。

「シチューが食べたいんだけど、ホワイトシチューのレシピ教えて」

そう聞いたら、AIはちゃんとホワイトシチューのレシピを教えてくれました。
「市販のルーは使いますか?それともルーから作りますか?」
と言うように。

その後、何回もAIに質問したりしてAIを使っていました。
そうしたら、いつの間にかレシピタンクは満杯状態になって、AI会社がデータを入れるために1回目の古いデータも流しました。

その満杯になった状態でまたホワイトシチューが食べたくなりました。

だから、こう質問します。
「この前と同じホワイトシチューが食べたいから、レシピをもう一度教えて」

そうしたら、AIはこう答えました。
「この前のホワイトシチューとはなんでしょうか?教えてください」

ここで、なんで覚えていないんだろうか?忘れてしまったのか?
またいちから聞かれるの?とか。

コンテキストウィンドウを意識することの重要性

コンテキストウィンドウを意識しないと起こる弊害(デメリット)

もうおわかりですね。
最初の頃から何回もAIとやり取りをしていたので、タンクが一杯になってしまった。
よって、最初のホワイトシチューのやり取りのデータが、栓からAI会社によって流れ出てしまっていたのです。

だから、AIは思い出せないので、
「この前のホワイトシチューとはなんでしょうか?教えてください」
と返したのです。

これがよくAIについて言われる

AIは過去のことを忘れる

の正体なのです。

コンテキストウィンドウを意識しなくてもいいところ(メリット)

では、AIのタンクのメリットってないの?ということになります。
もちろんあります。

タンクが小さくても、AI会社が栓のコントロールをしてくれているおかげで、いつでも新しい話に対応できるし、会話を続けられる。古いことは流れてしまう可能性はあるけれど、直近の会話は覚えている。タンクにある限り。

ポイントは、「タンクにある限り」なのです。
ここも重要ポイントです。

チャットに戻って考える

タンクを元のチャットに戻すと見えてくるもの

タンクは比喩でしたので、チャットに戻って考えてみましょう。
つまり、同じチャットを長く使っていると、当然、そのチャットのコンテキストウィンドウに近づいていきます。
コンテキストウィンドウは容量ですから。

ちょっと専門的な話レベルで言うと、こんな感じです。

あるAIでは、ひとつのチャットで10万トークン扱えるとします。
そこにボンボントークンを入れていくと、5万トークンになりました。
そうすると、こう言います
「チャットのコンテキストウィンドウの半分を消費した。」

そしてそのチャットがいよいよ10万トークンまで入れられたときに、AI会社の様々な仕様(条件など)によって、10万トークンを超えないように、古いものがそのチャットの参照範囲から溢れるようにになってしまいます。

対応策はないのか

つまり、人間が行う質問の質にもよってくるのです。

まず、1つ目の方法

古い会話を忘れていると感じたら、また新しく質問(プロンプト)すれば良いのです。

先ほどのシチューの例で言えば、
AI
「この前のホワイトシチューとはなんでしょうか?教えてください」

そこで、質問した人は違和感を感じて、あれ?忘れたのかな?と思い、

人間
「改めて、シチューが食べたいんだけど、ホワイトシチューのレシピ教えて」

と問えば、また同じ回答(レシピ)を教えてくれるのです。


そうなってくると、ぜひこれを思い出してください。

「プロンプト」はAIへの『お願い(指示・質問)』のこと

つまり、プロンプトの仕方によって、AIの回答はかなり変わります。

また、シチューの話にしましょう。

前回もホワイトシチューだったけど、豚肉だったな。今回は鶏もも肉でつくりたいな。あと、そういえば缶のコーンもあったし、ちょっと粉チーズもあるから風味もつけたいな。

よって、プロンプトにもっと細かく指示をします。
「前にホワイトシチューのレシピを教えてもらったんだけど、前回は豚肉だったのを鶏もも肉に変えて。そして、缶のコーンも入れたい。そして粉チーズがあるから、それを入れるタイミングも含めて教えて」

こうすると、AIは基本のレシピを単純に引っ張ってくるのではなく、あなたの指示した内容に応じてレシピを出します。

当然、こうなるとプロンプトを分解したトークンが多くなります。指示が細かくなれば流れていく分量も多くなります。
でも、何度もプロンプトのラリーをすると、「やっぱり」「〇〇に変えて欲しい」など、修正するための余計な文言も増えていきます。それらもトークンになるため、必要な条件を最初からまとめて伝えた方が、やり取り全体で使うトークンを減らせる場合があります。
それを理解した上で、一番知りたいことを適切にすることで、コンテキストウィンドウの適切な使い方になる可能性が高くなります。

場合によっては、それがコンテキストウィンドウから流れてしまう量を減らすことにもつながります。

次に2つ目の方法

以前に説明したこの方法を使うのです。

つまり、ひとつのチャットのコンテキストウィンドウが満杯にならないように、分散化することです

要はひとつのタンクに次々入れていき、コンテキストウィンドウに近づけてしまうよりも、用途別に分けてしまえばそれぞれのコンテキストウィンドウが満杯にならないように維持管理出来ます。

しかも、この方法は人間側でコントロール出来る話なので、コンテキストウィンドウに近づいていると感じれば(例えば一番最初の指示を忘れた回答をしてきたような予兆)、また、別チャットを作り、この回で例示したような方法をとってコンテキストウィンドウがかなり空いた状態でスタートすることができます。

ただし、この方法にも弱点はあります。
人間側のチャットのコントロールをきちんとすることが最重要
(管理対象が増えるので、このことに関してはこのチャット。別の話題に関してはこのチャットなど)


では、こうは思いませんか?

そもそも、コンテキストウィンドウって、それぞれのAIによって固定なの?
増やす方法ないの?
それがあると便利なのに。

では、次回はコンテキストウィンドウ最終回。

実は、今までお話ししてきた
「トークン」・「チャット」・「コンテキストウィンドウ」
この理解が進めば、課金するべきなのか、無課金でいいのかの分かれ目になります。

また次の記事でお目にかかりましょう。