LLM Fine-Tuningの初心者ガイド
LLM Fine-Tuning初心者ガイド
Llamaおよび他のLLMを1つのツールで微調整する方法
大規模言語モデル(LLM)への関心の高まりにより、トレーニングプロセスを効率化するためのツールやラッパーが増加しています。
人気のあるオプションには、LMSYSのFastChat(Vicunaのトレーニングに使用)やHugging Faceのtransformers/trlライブラリ(前の記事で使用)があります。さらに、WizardLMなどの各大規模LLMプロジェクトは、元のAlpaca実装に触発された独自のトレーニングスクリプトを持つ傾向があります。
この記事では、OpenAccess AI Collectiveが作成したAxolotlというツールを使用します。これを使用して、Pythonコードの1,000サンプルからなるevol-instructデータセット上でCode Llama 7bモデルを微調整します。
🤔 なぜAxolotlを選ぶのか?
Axolotlの主な魅力は、多数の機能、モデルアーキテクチャ、そしてアクティブなコミュニティを備えたワンストップソリューションを提供している点です。以下は、私が気に入っている特徴のクイックリストです:
- 設定:LLMのトレーニングに使用されるすべてのパラメータがyamlの設定ファイルにきちんと保存されています。これにより、モデルの共有と再現が便利になります。Llama 2の例はこちらで確認できます。
- データセットの柔軟性:Axolotlでは、alpaca(
{"instruction": "...", "input": "...", "output": "..."}
)、sharegpt:chat({"conversations": [{"from": "...", "value": "..."}]}
)、およびraw completion({"text": "..."}
)など、様々なプロンプト形式を持つ複数のデータセットの指定が可能です。データセットの組み合わせはシームレスであり、プロンプト形式の統一の手間が省かれます。 - 機能:Axolotlには、FSDP、deepspeed、LoRA、QLoRA、ReLoRA、sample packing、GPTQ、FlashAttention、xformers、rope scalingなどのSOTA技術が搭載されています。
- ユーティリティ:特殊トークンの追加や変更、カスタムwandb設定など、多数のユーザーフレンドリーなユーティリティが統合されています。
このツールを使用してトレーニングされたいくつかの有名なモデルには、OpenAccess AI CollectiveのManticore-13bやEric HartfordのSamantha-1.11–70bなどがあります。他のラッパーと同様に、このツールもtransformersライブラリをベースに構築され、その多くの機能を使用しています。
⚙️ 独自の設定ファイルを作成する
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles