2 章 LLM を理解する
#LLMのプロンプトエンジニアリング
LLMとは何か
文字列を入力すると文字列を返すサービス
参考資料
The Illustrated Transformer」(https://jalammar.github.io/illustratedtransformer)
LLMは「トレーニングデータセット」と呼ばれる大規模ドキュメントの集合を使ってトレーニングされる
「The Pile」
人気のオープンソースのトレーニングセット
https://pile.eleuther.ai/
https://gyazo.com/57611f92b2480bdb93c0c79068ac00cd
トレーニングした文章をそのまま丸暗記してなぞるのはLLMの目標ではない
見出したパターン、論理的な推論や展開のしかたを抽象化し、トレーニングデータとは異なるプロンプトに対しても柔軟に補完できることを目指す
過学習
モデルが事実やパターンを学習する代わりにテキストの一部を丸暗記してしまうことがある
「あるプロンプトがどんな補完を生み出すか知りたい場合、「合理的な人間ならどう応答するか」を想像するのではなく、」
ドキュメント補完
何を補完するかはトレーニングデータに依存する
ハルシネーション
事実と異なるがもっともらしく見える方法を、モデルが自信を持って生成してしまう現象
真実バイアス
モデルはプロンプトを正しいとみなす傾向がある
LLMが見る世界
トークナイザ
LLMはトークンを分解して再構築するような処理は苦手
そういうのは、前処理か後処理で行えないか検討
小文字のトークン
[str][ange][ new][ worlds]
大文字のトークン
[STR][ANGE[ NEW][ WOR][L][DS]
モデルは「コンテキストウインドウサイズ」より少ないトークン数のテキストを受け取り、補完結果もプロンプトと合わせてコンテキストウインドウサイズを超えないよう出力する
コンテキストウインドウサイズ → 通常は数千トークン(A4数ページから数十ページ)
1つのトークンずつ
https://gyazo.com/e83ae1b269e097c31d0035bc134fce57
一度トークンを出してしまうと、LLMはそのトークンを覆せない
パターンと繰り返し
temperatureと確率
logprob(大体 -2 〜 0 の間)
temperatureの典型的な