ファインチューニング (機械学習)

機械学習の文脈において、ファインチューニング（英: fine-tuning、微調整）は、事前学習したモデルの重みを新しいデータで訓練する転移学習の一つの手法である。ファインチューニングは、ニューラルネットワーク全体で行うことも、また一部の層に対してのみ行うこともできる。後者の場合、ファインチューニングを行わない層は「凍結」され、バックプロパゲーションの過程で更新されない。 畳み込みニューラルネットワークなど、いくつかのアーキテクチャでは、浅い層（入力層に最も近い側）は低レベルの特徴を捉えるために凍結しておくのが一般的で、それより深い層は、モデルが訓練されたタスクとより関連しうる高レベルの特徴を識別することがよくある。 自然言語処理（NLP）、特に言語モデリングの分野では、ファインチューニングはよく行われる方法である。たとえば、OpenAIのGPT-2のような大規模言語モデルの場合、下流のNLPタスクでファインチューニングを行うことで、事前学習モデルが通常達成するよりも優れた結果を得ることができる。大規模かつ一般的なコーパスで事前訓練されたモデルは、通常、出発点としてモデルパラメータを再利用し、最初から訓練されたタスク固有の層を追加することでファインチューニングされる。モデル全体をファインチューニングすることも一般的で、より良い結果が得られることが多いが、その代わりに計算量が多くなる。また、完全なファインチューニングは過剰適合を起こしやすく、ファインチューニングで使用した訓練データの分布以外のデータに対してモデルの性能を低下させる可能性がある。 ファインチューニングは通常、教師あり学習で行われるが、弱教師あり学習（英語版）でモデルをファインチューニングする技術もある。また、ChatGPT（GPT-3のファインチューニング版）やSparrow（英語版）などの言語モデルのファインチューニングには、人間のフィードバックによる強化学習が使用されている。低ランク適応（英: Low-Rank Adaptation, LoRA）は、既存の重みに追加する低ランク行列（英語版）（更新行列）を訓練するのに役立つ。基本的な考え方は次のとおりである。モデル内に N × N {\displaystyle N\times N} 行列 A {\displaystyle A} があり、 N {\displaystyle N} が大きい場合、 A {\displaystyle A} 自体を A ′ {\displaystyle A'} に修正するか、 A ′ := A + V W T {\displaystyle A':=A+VW^{T}} と定義して、 V , W {\displaystyle V,W} を訓練することができる。ここで、 V , W {\displaystyle V,W} はサイズ N × r {\displaystyle N\times r} であり、 r ≪ N {\displaystyle r\ll N} は更新行列 V W T {\displaystyle VW^{T}} の低ランクである。 LoRAは言語モデルによく使われるほか、画像モデルにも使われる。 転移学習 - 以前に学習した知識を、新しい問題に適用しようする機械学習の研究領域 大規模言語モデル - ニューラルネットワークで構成された言語モデル ^ Quinn, Joanne (2020). Dive into deep learning: tools for engagement. Thousand Oaks, California. p. 551. ISBN 978-1-5443-6137-6. オリジナルのJanuary 10, 2023時点におけるアーカイブ。. https://web.archive.org/web/20230110131250/https://d2l.ai/chapter_computer-vision/fine-tuning.html#steps January 10, 2023閲覧。  ^ a b “CS231n Convolutional Neural Networks for Visual Recognition”. cs231n.github.io. 9 March 2023閲覧。 ^ Zeiler, Matthew D; Fergus, Rob (2013). Visualizing and Understanding Convolutional Networks. arXiv:1311.2901.  ^ a b Dingliwal, Saket; Shenoy, Ashish; Bodapati, Sravan; Gandhe, Ankur; Gadde, Ravi Teja; Kirchhoff, Katrin (2021). Prompt Tuning GPT-2 language model for parameter-efficient domain adaptation of ASR systems. arXiv:2112.08718.  ^ Dodge, Jesse; Ilharco, Gabriel; Schwartz, Roy; Farhadi, Ali; Hajishirzi, Hannaneh; Smith, Noah (2020). Fine-Tuning Pretrained Language Models: Weight Initializations, Data Orders, and Early Stopping. arXiv:2002.06305.  ^ Kumar, Ananya; Raghunathan, Aditi; Jones, Robbie; Ma, Tengyu; Liang, Percy (2022). Fine-Tuning can Distort Pretrained Features and Underperform Out-of-Distribution. arXiv:2202.10054.  ^ Yu, Yue; Zuo, Simiao; Jiang, Haoming; Ren, Wendi; Zhao, Tuo; Zhang, Chao (2020). Fine-Tuning Pre-trained Language Model with Weak Supervision: A Contrastive-Regularized Self-Training Approach. arXiv:2010.07835.  ^ “Introducing ChatGPT”. openai.com. 9 March 2023閲覧。 ^ Glaese, Amelia; McAleese, Nat; Trębacz, Maja; Aslanides, John; Firoiu, Vlad; Ewalds, Timo; Rauh, Maribeth; Weidinger, Laura et al. (2022). Improving alignment of dialogue agents via targeted human judgements. arXiv:2209.14375.  ^ Hu, Edward J.; Shen, Yelong; Wallis, Phillip; Allen-Zhu, Zeyuan; Li, Yuanzhi; Wang, Shean; Wang, Lu; Chen, Weizhu (2021-10-16). “LoRA: Low-Rank Adaptation of Large Language Models”. arXiv:2106.09685 [cs]. https://arxiv.org/abs/2106.09685.  ^ Wu, Hecong (February 2023), ControlLoRA: A Light Neural Network To Control Stable Diffusion Spatial Information, https://github.com/HighCWu/ControlLoRA 2023年4月27日閲覧。  表示 編集