こう 聞かれます
- 「LLM の
トークンとは 何ですか」 - 「コンテキストの
長さ (コンテキストウィンドウ) とは 何ですか。 学習した データとは 違うのですか」 - 「一度に
入りきらない 長い 文書を 扱うには、 どうしますか」
面接官が 見ている点
- トークンを
「文字の数」と 同じだと 思っていないか - コンテキストの
長さを、 モデルが 学んだ 知識と 混ぜずに、 その 場の 作業の 記憶として話せるか - 長い
文書を、 全部入れる 以外の 手で 扱えるか。 手ごとの 弱点まで言えるか
短い答え
- トークンは
モデルが 文を 扱う 最小の 単位で、 語や 語の 一部、 文字に 当たります。 1 トークンが 何文字かは モデルと 言語で 変わるので、 正確な 数は モデルごとの 数える 仕組みで 数えます。 - コンテキストの
長さは、 モデルが 答えを 作る ときに 見返せる 量で、 学習に 使った データとは 別の 「作業の記憶」です。 指示、 渡した 資料、 会話の 履歴、 書く 答えが この 中に 収まる 必要が あります。 - 入りきらない
文書は、 分けて 要約してから まとめる、 要る 所だけを 探して 渡す (RAG)、 会話の 古い所は 要約して 要る 物だけ残す、の どれかで 扱います。
少し 詳しい答え
トークンとは
LLM は
多くの API は、
コンテキストの長さとは
コンテキストの
ここに
長い 文書の扱い方
架空の
1. 分けて要約する
文書を章ごとに分ける
→ 章ごとに要約する
→ 要約を集めて、もう一度まとめる
2. 要る所だけ探して渡す (RAG)
文書を前もって小さなかたまりに分けて保存する
→ 質問に近いかたまりを探す
→ 見つけた所だけを渡して答えさせる
3. 要る物だけ残す
会話が長くなったら、古いやり取りを要約に置きかえる
→ 決まったこと、名前、数字のような要る物だけを残す- 分けて要約する
全体の 要約や、 全体を 通した 傾向を 知りたい ときに 向きます。 そのかわり、 要約の 段で 細かい 数字や 言い 回しが 落ちる ことが あり、 呼ぶ回数が 増えるので 時間と 費用も かかります - 要る
所だけ探して渡す 「この 質問の 答えは どこか」を 知りたい ときに 向きます。 そのかわり、 探す段で 正しい 所を 拾えないと、 答えも 外れます。 文書全体を 見ないと 分からない 問いには弱いです - 要る
物だけ残すチャットのように 会話が 続く 機能で 使います。 そのかわり、 要約で 落とした 事が、 あとで 必要に なることがあります
トレードオフ
上限の
よく ある間違い
- トークンを
文字の 数と 同じだと思う 1 トークンの 文字の 数は モデルと 言語で 変わります。 数える ときは モデルの 仕組みで数えます - コンテキストに
入れた 物を、 モデルが 覚えて 次も 使うと思う コンテキストは その回の 作業の 記憶です。 次の 呼び出しで 使うなら、 もう 一度渡します - 答えの
分の 長さを 数え忘れる 上限には 書く 答えも 入ります。 資料で 上限いっぱいに すると、 答えを 書く 余地が なくなります
深掘りの問い
- 「会話の
履歴は、 毎回 どれだけ渡しますか」 直近の やり 取りは そのまま、 古い所は 要約にし、 決まった 事だけを 残す、と答えます - 「文書を
小さなかたまり (チャンク) に 分ける とき、 何に 気を つけますか」 見出しや 段落の 切れ目で 分け、 意味が 途中で 切れないように する、と答えます - 「上限が
大きい モデルが あれば、 RAG は 要りませんか」 毎回 全部を 読ませると 費用と 待ち時間が 増え、 文書が 更新される たびに 全部を 渡し直すことに なるので、 文書が 多いなら 探して 渡す形が 向く、と答えます