ここでは、2024/12/4にアップデートされた、Unslothの最新版 バージョン2024.12.2を使ったDPOでの学習方法を書いています。Google colab(T4)とLightning.ai(L4)での動いたコードを紹介したいと思います。
追記 Omnicampusの環境でも動きました。
unsloth_envを公式が出してくれている通りに進めていき、ターミナルでunsloth_envをactivateした状態で、 pip install --upgrade trl のコマンドでupgradeすることで動きました。
これまで、自分が学習されたファインチューニングモデルをHuggingFace上から読み込んで、DPOしようとするとエラーがでてうまくいかなかったのですが、今回はうまく最後までいきましたので紹介します。また今回のコードでは、おそらくファインチューニングしたサイズのLoRA部分だけをDPOで再学習しています。もしも、LoRAのサイズや学習させる層を変えたい場合(r,target_modules, lora_alphaなどのパラメータ)は、FTの時の方から同じにしておくのが良さそうです。※DPOの際にもLoRAのサイズなど変えれる可能性がありますが、まだ試していません。
今週中に、運営の方からDPOのサンプルコードが公開される予定らしいので、そちらも公開されたら参照しながら見てみてください。
DPOとはないかわからない方は、まずは、LLM講義の第7回を復習してみてください。
※DPOをやっても学習データ、学習パラメータの値によっては、性能が落ちることがあります。
以下はGoogleColabのNotebookへのリンクです。
https://colab.research.google.com/drive/1o7u3bpidqN5akVKK6bhV4tOE6YAGF4r4?usp=sharing
まずは、ライブラリをインストールします。
%%capture
!pip install unsloth
# Also get the latest nightly Unsloth!
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git