本稿では、疎なパラメータを用いて大規模言語モデルの部分的更新を行なうことで効率よくFine-Tuneする手法を提案する。大規模なコーパスで学習された事前学習済みの言語モデルを特定のタスクやドメインに対してFine-Tuneするには、事前学習済みモデルのパラメータを固定し、少量の追加パラメータのみを学習する手法(Parameter-EﬃcientFine-Tuning,PEFT)が主流である。しかし、通常のPEFTは学習時の計算リソースを抑える一方でパラメータをすべて更新するため、知識保持および編集が重要なタスクやドメインの性能が劣化したりモデル解釈性が失われたりする問題がある。そこで本稿では、疎なパラメータを用いることで計算リソースを抑えつつ、新たにモデル解釈性も備えた新しいPEFTを提案する。事前学習済みモデルとしてRoBERTaとLlama3-8Bに適用することで、言語理解と算術推論ベンチマークで性能が向上すること、およびモデル解釈が可能であることを示す。

深層学習を用いた言語モデルは大規模化が進んでいる。そのため、特定のタスクやドメインに対してモデルのパラメータをすべて更新する場合、大規模な計算リソースが必要である。例えば、更新するパラメータ数を𝜙としたとき、モデルの状態を16bit、Optimizerの状態を32bitで保持しようとすると、16𝜙byteの計算リソースが必要である1）。8BサイズのLlama3[1]の場合、16×8𝐵=128Gbyte必要である。この問題に対しては、更新するパラメータ数𝜙を減らして効率よくFine-TuneすることができるPEFT(Parameter-EﬃcientFine-Tuning)を用いることが主流である。PEFTは大きくSoft-Prompt型[2,3,4,5]1）https://huggingface.co/blog/Isayoften/optimization-rushௗ:Frozen:TrainableௗLoRAOurs௣௡×௠௥×ௗFrozenParametersௗ×ௗFrozenParametersௗ×ௗௗ×௥௩௞×ௗ௡×ௗ௠ௗௗのパラメータを上書きしてしまうが、右に示す提案手法では特定のパラメータ（ピンクの部分）のみを更新できる。右の図は、パラメータを行で𝑛=4個、列で𝑚=4個の計16個のブロックに切り分け、𝑊𝑝∈ℝ𝑛×𝑚の中で重要な𝑘=4個のブロック位置を特定し、そこにブロックパラメータ𝑊𝑣∈ℝ𝑘×𝑑/𝑛×𝑑/𝑚を挿入して、疎なパラメータを構築した状態を表している。とAdapter型[6,7,8,9,10,11,12,13]に分けられる。本稿で注目するAdapter型では、ベースモデルのパラメータを固定し、少数の追加パラメータのみを更新することでパラメータ数𝜙を減らしている。その中には、行列分解[6,7,11]や特殊な操作[12,13]によりパラメータ数𝜙を減らすものがある。これらは追加したパラメータを学習後に元のパラメータに統合できるという特徴があり、追加パラメータの計算による推論速度の低下を避けることができる。一方これらのPEFTは、対象とするモジュールのパラメータをすべて更新してしまう。先行研究[14]でも言及されているとおり、特定のタスクおよびドメインに寄与するパラメータは限定的であり、パラメータをすべて更新してしまうと、保持したい事前知識が失われたり、特定の事前知識の編集が困難になったりする。すなわち、(Q1)事前学習による優れた性能と(Q2)モデル解釈性が失われると考えられる。これらの課題に対して、先行研究[14]では重要.度に基づいて部分的にパラメータを更新するPEFTを提案しているが、強い制約を導入するために複雑な操作を必要としている。また更新されたパラメータの解釈に関しては無視されている。本稿では、図1に示すような疎のパラメータを用いることで、より単純かつモデル解釈可能なPEFTを提案する。実験の結果、(A1)モデルサイズに関わらず部分的なパラメータの更新でも性能が向上すること、(A2)学習ドメインに対して重要なパラメータを示せることを確認した。