Repolode
arcee-ai

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. 1

    リポジトリをクローンする

    git clone https://github.com/arcee-ai/mergekit.git
  2. 2

    プロジェクトディレクトリに移動する

    cd mergekit
  3. 3

    パッケージを編集可能モードでインストールする

    pip install -e .
  4. 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 の数値は毎日更新されます。

関連プロジェクト