Hugging Faceのチェックポイントから直接、LLM、VLM、拡散モデルをファインチューニング・事前学習できる、PyTorch DTensorネイティブのトレーニングライブラリ。
arcee-ai/mergekit
CPUまたはGPUで動作し、多彩なマージ手法を使って重みを組み合わせ、事前学習済み大規模言語モデルを統合するツールキット。
- スター
- 7,436
- フォーク
- 803
- 未解決の Issue
- 276
- 最終コミット
- 7 日前
これは何?
mergekitは、追加学習なしで事前学習済み言語モデルの重みを統合し、単一のモデルにします。テンソルを遅延読み込みするout-of-core方式で動作するため、複雑なマージもCPU、またはVRAMがわずか8 GBのGPUで実行できます。
マージの内容はYAML設定ファイルで指定します。設定ではマージ手法を選び、ソースモデルやレイヤーのスライスを指定し、重みや密度などのテンソル単位のパラメーターを設定します。linear、SLERP、TIES、DARE、DELLA、Model Stockをはじめ、幅広い手法に対応しています。また、レイヤーを積み重ねる(passthrough)マージ、LoRAの抽出、mixture-of-expertsの構築、語彙が異なるモデル間でのトークナイザーのアラインメントもサポートします。
メインの`mergekit-yaml`コマンドに加え、複数段階のマージワークフロー、PyTorchの生チェックポイントのマージ、トークナイザーの移植に使えるツールも含まれています。さらに、テンソルやstate dictにマージ手法を適用するための、メモリ上で動作するPython APIも備えています。
主な機能
- 01linear、SLERP、TIES、DARE、DELLA、Model Stockなど、多彩なマージ手法に対応
- 02テンソルを遅延読み込みし、CPUまたはVRAM約8 GBのGPUで実行可能
- 03テンソル単位のパラメーターを制御できるYAMLベースの設定
- 04レイヤーを積み重ねる(passthrough)マージとmixture-of-expertsの構築
- 05PEFT互換アダプターとしてLoRAを抽出
- 06語彙の異なるモデル間でトークナイザーをアラインメント
ユースケース
- 同じベースモデルを使った複数のファインチューニング済みチェックポイントを統合し、多用途なモデルを作る
- 異なるモデルのレイヤーを積み重ね、実験的なfrankenmergeを作る
- トークナイザーの移植により、投機的デコーディング用のドラフトモデルを生成する
- ファインチューニング済みモデルからベースモデルとの差分としてLoRAアダプターを抽出する
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/arcee-ai/mergekit.git - 2
プロジェクトディレクトリに移動する
cd mergekit - 3
パッケージを編集可能モードでインストールする
pip install -e . - 4
YAML設定ファイルを使ってmergeを実行する
mergekit-yaml path/to/your/config.yml ./output-model-directory
使う前に知っておきたいこと
- LGPL-3.0ライセンスのもとで公開されています。このコピーレフトライセンスの条件は、ライブラリコードの改変にも適用されます。
- READMEに記載されているのはpip install -e .によるソースからのインストールのみで、公開済みパッケージのインストール方法は示されていません。
トピック
よくある質問
- mergekit とは?
- CPUまたはGPUで動作し、多彩なマージ手法を使って重みを組み合わせ、事前学習済み大規模言語モデルを統合するツールキット。 mergekitは、追加学習なしで事前学習済み言語モデルの重みを統合し、単一のモデルにします。テンソルを遅延読み込みするout-of-core方式で動作するため、複雑なマージもCPU、またはVRAMがわずか8 GBのGPUで実行できます。
- mergekit は無料で使えますか?ライセンスは?
- mergekit は LGPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- mergekit は今もメンテナンスされていますか?
- 活発にメンテナンス中。mergekit の最終コミットは 2026年10月31日 です。
- mergekit は何に使えますか?
- 同じベースモデルを使った複数のファインチューニング済みチェックポイントを統合し、多用途なモデルを作る 異なるモデルのレイヤーを積み重ね、実験的なfrankenmergeを作る トークナイザーの移植により、投機的デコーディング用のドラフトモデルを生成する ファインチューニング済みモデルからベースモデルとの差分としてLoRAアダプターを抽出する
- mergekit のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/arcee-ai/mergekit.git プロジェクトディレクトリに移動する: cd mergekit パッケージを編集可能モードでインストールする: pip install -e . YAML設定ファイルを使ってmergeを実行する: mergekit-yaml path/to/your/config.yml ./output-model-directory
- mergekit はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/arcee-ai/mergekit
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
プロンプト、オープンソースモデル、LoRA設定を組み合わせたLLMのファインチューニング実験を実行・比較できる、出力テスト内蔵の設定駆動型CLIです。
AIコーディングエージェントに、学習、評価、データセット、Spacesなど、Hugging Face Hubのタスクに必要な手順やスクリプトを提供するAgent Skills集です。
SliceGPTは、重み行列の行と列をスライスしてLLMなどのTransformerモデルを縮小する、学習後圧縮手法です。
単一の24GB GPUで実行できる、小規模な中国語LLaMA2系モデル向けの事前学習・SFTパイプラインをゼロから構築。
センチメント分析、予測、金融NLPベンチマークなどの金融タスク向けにファインチューニングされた、オープンソースの大規模言語モデル。