大規模言語モデル入門 の輪読会を開催したので、発表に使った資料を一部修正して公開します。
質問応答とは
ユーザーが入力する自然言語の質問に対して、適切な回答を出力するタスク。
質問応答のシステムは2種類に大別される。
- オープンブック質問応答
- 質問文と回答の手掛かりとなる知識が書かれたテキストの両方を用いて、質問の回答を予測して出力する。
- 文書検索と解答生成の2つのモジュールを繋げた処理が必要となる。
- クローズドブック質問応答
- 知識源となる文書の検索や読解を必要とせず、システム(大規模言語モデル)に知識そのものを保持させることで質問応答を行う。(最近はこちらが多い。)
ChatGPTを使ったクイズ解答システムの実装
実際のコードについては、公式のレポジトリにまとまっているので割愛。
実装にあたり、実務でのヒントとなりそうな部分を自分なりに整理した。
- 今回はクローズドブック質問応答にあたるタスクとなる。
- 評価指標として何を使うべきか。
- よくある指標としては正解率やF値などがある。目的に応じて何が最適化を考えることが大事。
- 金額は入出力のトークン数で決まる。見積もりにはOpenAI製のtiktokenを使う。
- パラメータで入出力のトークン数を調整することで、安くすることが可能。
- 文脈内学習(第4章を参照)を活用して、正解率を高めるべし。
- 幻覚(Hallusilation)に注意する。第6章で取り上げたようなエラー分析などでどのようなケースにおいて間違いが発生しているのかを確かめるべし。
文書検索モデルの実装
前述と同じく割愛。
実装にあたり、実務でのヒントとなりそうな部分を自分なりに整理した。
- こちらはオープンブック質問応答にあたるタスクとなる。
- 文書検索モデルの代表例として、DPRとBPRがある。
- DPR(Dense Passage Retriever)
- 質問とパッセージをエンコーダ(BERT)を用いて、埋め込みに変化して、それらの内積が上位となるパッセージを検索結果とする文書検索モデル
- BPR(Binary Passage Retriver)
- パッセージの梅凝りをバイナリ化して計算を行うようにする。
- DPR(Dense Passage Retriever)