Transformer
Transformerを知らずしてNLPは語れない。Transformerは、2017年12月の論文「Attention Is All You Need」で提案された。特に、自己注意機構が独特な構造を持っている。自己注意機構は、クエリQに対応するキーKを選択し、キーKに対応するバリューVを出力する。これにより、入力データに対して動的に変化するニューラルネットワークが誕生した。
GPT:Generative Pretrained Transformer
TransformerのDecoder側を用いて、入力した文章に対する、次の単語を予測することで、文章を生成する。
https://qiita.com/momo10/items/ebe861e994864c93d964
単語のトークンIDは、Open-AIやGoogleが用意したトークナイザーで事前に設計されたと想定する。そのため、単語のトークンIDは事前に与えられており、GPTが予測した各単語に対する算出値と、真の各単語のトークンIDの確率値から、Cross Entropy Lossを算出する。
Cross Entropy Lossが最小となるように、GPTのモデルのパラメータを推定する。
GPTのPyTorchのサンプル実装はGitHubにある。
RLHF:Reinforcement Learning from Human Feedback
Instruct-GPTは、GPT-3に対して強化学習を適用することで、ラベラーにとって望ましい文章を生成する。ラベラーにとって望ましい文章が、ユーザーに受け入れられのであれば、適切な文章が生成できていることになる。
DPO:Direct Preference Optimization:
RLHFは強化学習を用いるため、学習が不安定になってしまうことがある。そこで、DPOは、RLHFと数学的に等価なモデルを考えることで、より安定した学習を実現させた。
RAG:Retrieval-Augmented Generation
RAGは、プロンプトに関連する社内情報や秘匿情報にアクセスし、文章を生成する技術である。社内情報や秘匿情報は公開されていないため、多くの場合、LLMは学習されておらず、使い物にならない。LLMを触れない状況で、プロンプトエンジニアリングで対応が出来ないときに、RAGを検討するとよい。
検討する優先順位
- プロンプトエンジニアリング
- RAGの構築
- ファインチューニング
- LLMの作成
LLMのエラー対応