はじめに

ここでは、2024/12/4にアップデートされた、Unslothの最新版 バージョン2024.12.2を使ったDPOでの学習方法を書いています。Google colab(T4)とLightning.ai(L4)での動いたコードを紹介したいと思います。

これまで、自分が学習されたファインチューニングモデルを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