2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HuggingFaceのTRLでGemmaをファインチューニングしてみました

Posted at

昨日、HuggingfaceのTRLライブラリを使って、finetuningしてみました。
TRL(Transformer Reinforcement Learning)はhuggingfaceのトレーニング用ライブラリで、RLHFなどの強化学習を簡単に行うことができます。もちろん、SFTなどのfinetuningも可能です。
初めての試しですが、非常に使いやすかったです。
また、flash-attentionも試してみました。Flash Attentionは、Transformerモデルのアテンション計算を高速化し、モデルのトレーニング速度を向上させる技術です。
具体的には、既存のTransformerの実装におけるアテンション層を、ほとんどモデルの構造やハイパーパラメータを変更することなく、シームレスに置き換えることができます。これにより、モデルの高速化を実現できます。
試した結果、学習速度が確かに速くなり、トレーニングにかかる時間を短縮することができました。

以下は今回試したfinetuningの流れです。

1.データセット

使用したデータセットは、HuggingFaceで見つけた、日本の官公庁のWebサイトに掲載されている「よくある質問」のQAデータです。30000件程度なので、今回の試しには最適だと思って使いました。(イメージは⇩です)

image.png

2.トレーニング結果

トレーニングは約1時間半で終わりました。(9000ステップを1時間半でこなすことができました。半年前に同じくらいの量をトレーニングしたときは、20時間ほどかかった記憶があります。もちろん、モデルの大きさやGPUの性能、パラメータの設定などの違いもありますが、それでも大幅に高速化されたと実感しています。)

(wandbでのlossは⇩、少しづつに下がりました。2.5⇒1くらいまで(3epoch終了時点))

image.png

3.検証結果

モデルの試し結果は⇩です。(finetuning前)

image.png

image.png

質問の内容は理解していますが、英語または日本語で一言を繰り返すようになっています。(ここで試したのはinstructionモデルではないので、このような繰り返しが起こるのは問題ないと言えます。むしろ、こういう課題を解決するためにfinetuningが必要です)

finetuning後の結果は⇩です。(パラメーターなどはすべて同じように設定しています)

image.png

モデルが日本語でこの質問に答えられるようになったことが確認できました。label(origianl answer)の回答とは異なりますが、それでも正しい内容となっていますので、finetuningは成功したと言えます。
もちろん精度上げたいなら色々改善点ありますが、今回はTRLの試しなのでこれで以上です。

興味ある方:

TRL:

ここでfinetuningしたモデル:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?