Show HN: 速度80%向上、メモリ使用量50%削減、精度劣化0%のLlamaファインチューニング
(github.com/unslothai)QLoRAモデルチューニングの効率向上
- QLoRA/LoRAモデルは、手動で導出された逆伝播ステップにより、80%高速化と50%少ないメモリ使用を実現する。
- OpenAIのTriton言語で書かれたすべてのカーネルは、精度劣化なしに最適化されている。
- ハードウェア変更なしで、NVIDIA GPU(2018年以降のモデル、CUDA 7.5+対応)で利用できる。
- Flash Attention対応と4ビットおよび16ビットLoRAファインチューニング対応により、効率的なモデルトレーニングが可能である。
- Slim Orcaモデルをローカル環境で、1301時間から260時間へと大幅に短縮した時間でトレーニングできる。
- オープンソース版は5倍高速なトレーニングを提供し、Unsloth ProとMaxのコードパスは最大30倍高速なトレーニングを提供する。
インストール手順
- UnslothはLinuxディストリビューションとPytorch 2.1以上のバージョンでのみサポートされる。
- CondaとPipでインストールでき、CUDAのバージョンに応じて適切なパッケージを選んでインストールする。
Alpacaモデルの例
- FastLlamaModelを使ってLlamaモデルを読み込み、4ビット量子化によってメモリ使用量を削減する。
- モデルのパッチ適用と高速なLoRA重みの追加により、性能を向上させる。
- HuggingfaceのTrainerとデータセット読み込みを使って、モデルトレーニングを行える。
将来の目標と制限
- メモリ使用量をさらに25%削減できるsqrtグラディエントチェックポインティングのサポートを予定している。
- 現時点ではLlamaモデルのみをサポートしているが、今後はほかのモデルにも対応する計画である。
性能比較
- Tesla T4 GPUを使用した場合、UnslothはHuggingfaceと比べて、はるかに短いエポック時間と低いメモリ使用量を示す。
- 単一GPUおよびマルチGPUシステムの両方で、UnslothのPro版とMax版がより高い性能を提供する。
トラブルシューティング
bitsandbytesまたはxformersが正しくリンクされない場合の対処方法を提供している。- 現在Windowsはサポートされておらず、XformersとTritonがWindowsを正式サポートすれば、Unslothも対応予定である。
- インストールに問題がある場合は、
pipを更新することが解決策になる可能性がある。
GN⁺の見解
この記事で最も重要な点は、QLoRA/LoRAモデルのチューニングが既存の方法よりはるかに高速で、メモリ効率も高いということだ。こうした最適化はAIモデルのトレーニング時間とコストを大幅に削減するため、初級ソフトウェアエンジニアにとっても魅力的なソリューションになり得る。また、この記事はオープンソース技術の発展と、それがどのように技術へのアクセス性を高めるかを示す興味深い事例も提供している。
まだコメントはありません。