selective-peft-toolkitへようこそ、 「大規模な言語モデルのパラメーター効率の高い微調整のためのステップバイステップのマスキング」の公式実装。このツールキットは、異なる選択的パラメーター効率の高い微調整(PEFT)メソッドを使用して、選択的に微調整する大きな言語モデルの柔軟なフレームワークを提供します。
ツールキットには、次のPEFTメソッドが含まれています。
これらの方法は、PIPを介してインストールできるselective_optimizersと呼ばれるパッケージを介して公開されます。
pip install selective_optimizers選択的オプティマイザー:モデル内の予算の数のパラメーターを選択的に更新する標準的なオプティマイザー(Torch.optim.optimizerのサブクラス)に関するラッパー。
ヒューリスティックベースの選択:さまざまなヒューリスティックおよび選択戦略に従って、選択的オプティマザーがパラメーターを更新します。
トランスとの統合:既存のパイプラインへの簡単な統合のために、Transformers.Trainerと互換性があります。
効率的なストレージ:O(b)スペースのみを占める要約オブジェクトに変更されたウェイトを保存します。ここで、Bは予算です。
selective_optimizersパッケージをインストールするには、単に実行するだけです。
pip install selective-optimizers選択的なオプティマイザーを使用したトレーニングのための基本的なワークフローは次のとおりです。
from selective_optimizers . wrap import get_selective_optimizer
from selective_optimizers . load_store import write_summary_to_disk
from torch . optim import AdamW
# Choose your base optimizer
opt = AdamW
# Specify the PEFT method to use (can be one of “fft”, “id3”, “bitfit”, or “pafi”)
peft_to_use = "id3"
# Get the selective optimizer class
optimizer_class = get_selective_optimizer ( opt , peft_to_use )
# Initialize the optimizer with additional selective parameters
optimizer = optimizer_class (
params = model . parameters (),
lr = 0.0001 ,
budget = 100000 ,
exp = 0 ,
eps = 1e-3 ,
max_steps = 1000
)
# Usual training loop
...
...
# Optional post-training work for validation
optimizer . post_train_work ()
print ( "Budget used:" , optimizer . get_budget_used ())
# Save the summary of modified weights
summary = optimizer . get_summary ( model )
write_summary_to_disk ( "path/to/summary.pth" , summary ) from selective_optimizers . load_store import load_summary_from_disk , load_weights_from_summary
# Load your model as usual
...
model = ...
...
# Load the summary from disk
summary = load_summary_from_disk ( "path/to/summary.pth" )
# Apply the modified weights from the summary to the model
load_weights_from_summary ( model , summary )
# Usual inference code
...
...Transformers.Trainerクラスは外部オプティマイザーを受け入れ、選択的オプティマイザーをワークフローに簡単に統合できます。
Selective_optimizersパッケージへの貢献を歓迎します!新しい選択的オプティマイザーを追加したい場合は、次の手順に従ってください。
このプロジェクトは、MITライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。
このツールキットを調査で使用している場合は、私たちの論文を引用してください。
@article{Agarwal2024_step_by_step,
title = {Step - by - Step Unmasking for Parameter - Efficient Fine - tuning of Large Language Models},
author = {Aradhye Agarwal and Suhas Kamasetty Ramesh and Ayan Sengupta and Tanmoy Chakraborty}
journal = {arXiv preprint arXiv: 2408 . 14470 },
year = { 2024 },
}
質問や問題については、GitHubリポジトリで問題を公開するか、直接お問い合わせください。