ファインチューニング (機械学習)
From Wikipedia, the free encyclopedia
畳み込みニューラルネットワークなど、いくつかのアーキテクチャでは、浅い層(入力層に近い側)は低レベルの特徴を捉えるために凍結しておくのが一般的で、それより深い層(出力層に近い側)は、モデルが訓練されたタスクとより関連しうる高レベルの特徴を識別することがよくある[2][3]。
自然言語処理(NLP)、特に言語モデリングの分野では、ファインチューニングはよく行われる方法である。たとえば、OpenAIのGPT-2のような大規模言語モデルの場合、下流の自然言語処理タスクでファインチューニングを行うことで、事前学習モデルが通常達成するよりも優れた結果を得ることができる[4]。大規模かつ一般的なコーパスで事前訓練されたモデルは、通常、出発点としてモデルパラメータを再利用し、最初から訓練されたタスク固有の層を追加することでファインチューニングされる[5]。モデル全体をファインチューニングすることも一般的で、より良い結果が得られることが多いが、その代わりに計算量が多くなる[4]。また、完全なファインチューニングは過剰適合を起こしやすく、ファインチューニングで使用した訓練データの分布以外のデータに対してモデルの性能を低下させる可能性がある[6]。
ファインチューニングは通常、教師あり学習で行われるが、弱教師あり学習でモデルをファインチューニングする技術もある[7]。また、ChatGPT(GPT-3のファインチューニング版)やSparrowなどの言語モデルのファインチューニングには、人間のフィードバックによる強化学習が使用されている[8][9]。