論文まとめ(第2回):自己教師あり学習法の比較とDistilling step-by-step
ミエリンです。GWも終わりそうですが、皆さんはGWを楽しく過ごせましたか? 私のGWっぽい思い出は自宅のコンロでマシュマロを焼いたぐらいですね。
今回紹介するのは、異なる自己教師あり学習法を用いたVision Transformerの特徴表現や下流タスクでの性能を比較する"What Do Self-Supervised Vision Transformers Learn?"と、LLMの新しい蒸留法を提案する"Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes"の2つです。
What Do Self-Supervised Vision Transformers Learn?(ICLR2023)
この論文では、Constrastive Learning(CL)とMasked Image Modeling (MIM)という2つの自己教師あり学習法が適用されたVision Transformer(ViT)を比較しています。
CLはいわゆる対照学習で、データ拡張を加えながらインスタンス分類を学習させることで、画像分類や物体検出等の下流タスクに有効な特徴表現を獲得する手法です。一方、MIMは入力画像をパッチに分割し、いくつかのパッチをマスクし、その他のパッチからマスク箇所を復元するタスクを学習させることで、有用な特徴表現を獲得する手法です。
Inpaintingによる自己教師あり学習法は以前から存在していましたが、教師あり学習に匹敵する手法として最初に脚光を浴びたのはCLでした。ただ、ViTと相性が良い(LLMとしてのTransformerは「穴埋め」で事前学習するのが主流です)MIMが最近は注目されている、といった感じですかね。
比較の結果、本論文で主張されている点は以下の3つです。
CLは物体形状のような大域的な特徴表現を獲得し、CLで得られる特徴は線形識別性に優れる。しかし、CLではトークン間の多様性が低下するため、物体検出のような密な予測を必要とするタスクには向かない。
CLは画像の空間周波数における低周波成分を、MIMは高周波成分を利用する。すなわち、CLは物体の形状に、MIMはテクスチャに注目する。
CLでは最終層が、MIMでは入力に近い層が重要な役割を担う。
これらの主張は、図1のようにCLとMIMの性能を比較するほか、Self-Attentionによる注意マップの可視化や特徴マップのフーリエ解析などを駆使して検証されています。また、CLとMIMの損失関数を加重平均して学習を行うことで、両者の特性を取り入れられることが示されています。
上記の主張は一見意外に思えますが、CLとMIMそれぞれの学習法や従来のCNNにおける各層の役割を思い起こせば、それなりに納得がいくものではあります。著者らは主にNAVER AI Labの方で、周波数領域での分析法として同じ筆頭著者の論文が参照されていますから、気になる方はそちらの論文も読むといいでしょう。コードは公開されるようですが、今のところ準備中のようですね。
Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes(ACL 2023)
この論文では、大規模言語モデル(LLM)をより少ない学習データで、より小さなモデルに蒸留する方法として、Distilling step-by-stepを提案しています。蒸留(distillation)とは、データに付与された正解ラベルではなく、学習済みモデルの出力を対象として学習を行う方法です。パラメータ数の多い巨大なモデルや、複数のモデルを束ねるアンサンブルモデルの出力を、より軽量な単一のモデルに学習させることで、性能をそのままに計算効率を上げる、という目的で蒸留は主に用いられます。その他にも、ラベルの無いデータセットに学習済みモデルの出力を用いて擬似ラベルを与える手法を蒸留と呼ぶことがあります。
一般に、学習対象となる出力を提供するモデルは「教師モデル」、その出力を学習するモデルは「生徒モデル」と呼ばれます。図2を例に取れば、LLMとSmaller Modelがそれぞれ教師と生徒に相当し、教師の出力を対象として蒸留を行うことで、生徒に教師の知識が転移されます。ちなみに、「蒸留」という名前は、教師の持つ知識をどの程度生徒に転移させるかを調節するために、ソフトマックス関数の「温度」パラメータを調整していたことの名残です。
Distilling step-by-stepの特徴は、Chain-of-Thought (CoT)プロンプトを利用する点にあります。CoTとは、最終的な回答に至る中間的な推論であり、回答の根拠となるものです。図3のように、いくつかのCoTプロンプトを与えることで、LLMは入力された質問に対する回答を、その根拠とともに出力することが知られています。Distilling step-by-stepでは、LLMの出力する回答とともに、その根拠を蒸留の対象とします。なお、CoTプロンプトを与えるのは教師モデルのみであり、生徒モデルはprefixの異なる2つの入力に対して、回答と根拠という2つの出力を行います(図2の下部分参照)。
実験では、Distilling step-by-stepの性能をFine-tuningと通常の蒸留、そしてCoTプロンプトを与えられたLLMに対して、モデルとデータセットの大きさを変えながら比較しています。データセットごとの結果のばらつきがなかなか大きいですが、概ね比較対象よりも優れた精度を達成しているように見えます。
Distilling step-by-stepの課題としては、CoTプロンプトの作成を人手で行う必要がある点が挙げられています。ただし、この欠点はアノテーション不要のzero-shot CoTによって緩和できるとしています。また、より複雑なタスクでは、LLMは推論やプランニングに失敗する可能性があることから、LLMの示す根拠の質がDistilling step-by-stepに与える影響を検証することも課題として挙げられています。
恥ずかしながら、この論文でCoTプロンプトというものを初めて知りましたが、なかなか面白いLLMの特性だと思いました。第1回ではメモリトークンを介して入力トークン数を増加させる手法を紹介しましたが、CoTのような中間的な推論結果としてトークンを圧縮できれば、計算効率と性能を両取りすることも可能かもしれませんね。
データセットの詳細は付録にあったものの、実験コードの公開は特にされてないようでした。著者らの所属機関はワシントン大学とGoogle Cloud AI Research、Google Researchの3つです。後ろ2つはどう違うんでしょうね。
おわりに
貴重な連休を使って何をしてるんだろう、という気持ちになってきました。こんなに短い(3378文字だそうですが、今増えました)日本語の記事を書くのに時間を費やしすぎているのでとても反省しています。多分。
どうでもいいですが、各記事のヘッダーはStable Diffusionを用いて適当に「出力」しています。そんなしょうもない話題もあったこの一週間でした。
この記事が気に入ったらサポートをしてみませんか?