[5 月 29 日] 初始文档
利用可能な LLMs 微調整フレームワーク#
- LLaMA-Factory
- xtuner
- unsloth
簡単な紹介#
- Llama_Factory は最も多くの微調整方法を提供しており、最新の学術論文からの多くの手法が含まれています。LongLora なども含まれています;最新のフレームワークには Unsloth があります。
- Xtuner は比較的豊富なドキュメントと多くの最適化テクニックを提供していますが、微調整技術は比較的単純で、基本的な Lora と QLora のみです。
- Unsloth は良いドキュメントを提供していますが、同様に少数の微調整プランしか提供していません。
- あなたのニーズが非常に単純で、例えば 24G の GPU メモリを使用して Llama3 のような一般的なモデルで短い対話指示データセット(例えば alpaca)を微調整する場合、上記のいずれかのライブラリを使用することができます。
一般的な手順#
データセットの作成#
データセットはフォーマットに基づいて、基本的に alpaca と sharegpt の 2 種類に分けられます。
微調整のタイプに応じて、Supervised Fine-Tuning Dataset と Pretraining Dataset に分けられます。前者は指示微調整対話用、後者は増分事前学習用です。
データセットの作成方法については、LLaMA-Factory/data/README.md at main・hiyouga/LLaMA-Factory を参考にすることができます。
微調整技術の選択#
最も基本的な微調整方法は Lora です。より少ない GPU メモリを使用したい場合は QLora を使用できます。Q は Quantized を意味します。
長いシーケンスの要件があるが GPU メモリが不足している場合は、Unsloth + Flash Attention 2 を検討できます。
Llama_factory は非常に多くの微調整技術を提供しており、選択できます。
フレームワークのドキュメントに従う#
微調整の一般的な技術#
- RoPE スケーリング
- 任意の長さの微調整をサポートしています。例えば、Llama3 は 8K 長さで事前学習されていますが、これを使用することで任意の長さで微調整できます。
- FlashAttention
- 訓練時間と GPU メモリの使用量を削減します。
問題解決のためのソリューション:
- リポジトリ内の issue