LLMファインチューニングのためのNLPと深層学習入門 #1 Encoder-Decoder ネットワーク
この記事は、CVMLエキスパートガイドのEncoder-Decoder ネットワーク [ディープラーニングの文脈で]から学んだ内容をまとめたものです。
LLMのファインチューニングをしているうちに、LLMの構造や原理などについて理解したいと思ったので、NLPの勉強を始めました。
できるだけ毎日最低1つの事柄について記事を書いていきます。
1. Encoder-Decoder ネットワークとは
EncoderとDecoderが対象構造をなして、もとの情報を変換、復元するネットワークのことをEncoder-Decoderモデル、Encoder-Decoderネットワークと呼びます。
2. Encoder-Decoder ネットワークの構成要素
Encoder-Decoderネットワークは、以下の2つのサブネットワークと、中間のボトルネック層から構成されます。(図1)
Encoder(前半):
入力を受け取り、低次元の潜在表現にするネットワーク。
入力画像や系列を解釈、符号化する。ボトルネック層(中間):
中間のzの部分。何も処理しないままDecoderにzを渡すことも多い。Decoder(後半):
低次元の潜在表現を受け取り、出力を生成するネットワーク。
中間表現をアップサンプリングして、出力を生成する。

(CVMLエキスパートガイドより)
3. 系列対系列変換が目的のEncoder-Decoder
機械翻訳やText-to-Speech、音声認識など、系列同士を変換する系列対系列変換が目的のEncoder-Decoderは当初seq2seqと名付けられ、その後アテンション中心で構成されたTransformerへと発展しました。(図2)

系列対系列変換では、入力系列も出力系列も、ともに系列長が可変なので、それに対応できるRNNモデルや、Transformerエンコーダ・デコーダなどが用いられます。
これらの系列対系列を扱う各タスク向けのEncoder-Decoderでは、アテンション機構を同時に利用することが標準的です。
アテンション機構を用いる seq2seq with attention や Transformer の場合、スキップ接続やアテンション重みを通じて、Encoder-Decoder間の各層間がかなり密につながり、2者間が複雑かつ適応的に作用します。
これは、動画や音声ファイルなどの圧縮伝送目的の、機能が完全に分離している古典的なEncoder-Decoderとは、異なる性質を持つ機構です。
4. Encoder-Decoder ネットワークと一般化言語モデル
一方で、BERTやGPTのような一般化言語モデルの自己教師あり事前学習だと、TransformerのEncoderもしくはDecoderの片方のみを用いていることが
多く、系列Encoder-Decoderではありません。(BERTはTransformerのエンコーダ部分、GPTはTransformerのデコーダ部分を利用しています。)
ただし、その後登場したBERTの改善手法であるBARTは、BERTとGPTの特性を組み合わせたモデルで、Transformerのエンコーダ部分とデコーダ部分の両方を使用します。
BARTは文全体を考慮し(BERTの特性)、自己回帰的に新しい単語を生成します(GPTの特性)。
今回はEncoder-Decoderネットワークについてまとめました。
間違っている部分などありましたらお気軽にお知らせください。
次はTransformerについて勉強しようと思います。
それでは。
参考
Encoder-Decoder ネットワーク [ディープラーニングの文脈で] , CVMLエキスパートガイド, 林 昌希, 2021