ここで､ コンテキスト・ウィンドウと呼ばれるLMSの極めて重要な特性について､ 明確に説明したい｡
コンテキスト・ウィンドウは､ LLMが次のトークンを生成しようとしているときに､ その時点で検査できるトークンの総数を示している｡
LLMの仕事は､ 前に来たトークンの数が与えられたときに､ 次に来る可能性の高いトークンを生成することです｡
その予測をするために調べることのできるトークンの数は､ コンテキスト・ウィンドウによって制限されます｡
コンテキスト・ウィンドウは､ LLMのサイズ､ パラメータの数､ LLMのアーキテクチャによって制限されます｡
つまり､ どういうことなのか？
入力トークンがいくつあれば､ 出力トークンを作ることができるということですか？
そういうことだ｡
しかし､ それが実際に何を意味するのかを明確にする価値はある｡
最初のLLM､ つまり最初のOpenAIの呼び出しに取り組んだとき､ システムプロンプトとユーザープロンプトがあったのを覚えているだろう｡
これはすべてLLMへの入力の一部であり､ LLMは入力プロンプトの中で最も可能性の高い次のトークンを予測する｡
私たちはあるウェブサイトを見た｡
そして､ 最も可能性の高い次のトークンは､ そのウェブサイトの要約だった｡
さて､ ChatGPTのようなものでチャットをする場合､ いくつかの入力を渡すと､ 出力を生成し､
また別の質問をするかもしれません｡
実際､ ChatGPTはあなたが話していることを記憶しているようです｡
スレッド間の文脈は保たれるが､ これは幻想のようなものだ｡
ちょっとした呪術的なトリックだ｡
実際に起こっていることは､ ChatGPTと会話するたびに､ これまでの会話全体､
ユーザーが入力を促し､ その応答が長いプロンプトのように再び渡されるということです｡
そして､ ここまでの話を踏まえて､ 次に何が起こる可能性が高いか？
つまり､ コンテキスト・ウィンドウが教えてくれるのは､ これがトークンの総量だということだ｡
おそらくオリジナルのプロンプト､ システムプロンプトを含む情報の総量｡
ユーザはあなたがその応答をした質問を促した｡
あなたの次の質問､ それに対する返答､ その時と今のあなたの次の質問｡
新たな人脈､ 新たな人脈､ 新たなトークンを生み出さなければならないのだ｡
つまり､ コンテキスト・ウィンドウは､ これまでのすべての会話､ 入力､ そして次のトークンを予測するまでの後続の会話の合計となる｡
だから､ 最初に会話を始めるときには､ それを念頭に置くことが重要なんだ｡
コンテキストウィンドウは､ 現在のプロンプトだけにフィットすればよい｡
しかし､ 会話が続くにつれて､ その文脈を維持できるように､ 前に言われたことをどんどん合わせていく必要がある｡
マルチショット・プロンプトなどでは特に重要です｡
例えば､ シェークスピア全集について質問したい場合､
コンテキストウィンドウに1. 一度に200万トークンを獲得｡
そういうことだ｡
要するに､ これがコンテキスト・ウィンドウだ｡