[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 で、より少ないメモリを使用したい場合は QLora を使用できます。Q は Quantized を意味します。
長いシーケンスの要件があるがメモリが不足している場合は、Unsloth + Flash Attention 2 を検討できます。
Llama_factory は非常に多くの微調整技術を提供しており、選択できます。
フレームワークのドキュメントに従う#
微調整の一般的な技術#
- RoPE スケーリング
- 任意の長さの微調整をサポートしています。例えば Llama3 は 8K 長さで事前学習されていますが、これを使用することで任意の長さで微調整できます。
- FlashAttention
- トレーニング時間とメモリ使用量を削減します。
問題解決のためのソリューション:
- リポジトリ内の issue