広告

実際に動く700KBの埋め込みモデル——0.7MBから125MBまでの静的モデル群のフルファミリを構築

Reddit r/LocalLLaMA / 2026/4/3

📰 ニュースSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • 著者は、model2vec および sentence-transformers と互換性のある、超小型の静的な文埋め込みルックアップテーブルモデル群(約125MBから約700KBまで)を「差し替え可能(drop-in)」な形で公開した。
  • これらのモデルは明確にトランスフォーマーではない。推論時は、トークナイズし、事前計算済みの埋め込みをルックアップし、平均プーリングを行い、ニューラルネットワークの順伝播を一切含まず NumPy だけでパイプラインを実行する。
  • 英語のみでの MTEB 評価(25タスク)では、約256Dモデルが平均スコア約70.98を達成し、CPU上で約15K文/秒のベンチマーク結果が示されている。これは、極めて高いスループットと大幅な小型化を実現しつつ、MiniLMに近い品質である。
  • 最小の約700KB「マイクロ」モデルは、29Kトークンの埋め込みを2Kのセントロイドにクラスタリングすることで語彙を量子化し、英語MTEBの全スイートで平均約68.12を達成している。
  • この投稿では、エッジ/WASM/組込みターゲット、大規模なCPUのみのコーパス埋め込み、低コスト、CLI/サーバレスの一回限りの埋め込みワークロードに対する高速な起動といった、ニッチだが実用的な導入シナリオに向けて本アプローチを位置づけている。

みなさんこんにちは、

昨日、model2vec + tokenlearn を使って取り組んでいた静的埋め込みモデルをいくつか共有しました。それ以降、改善を重ねていて、かなり面白いものに行き着きました。125MB から 700KB までの、model2vec および sentence-transformers とすべてドロップイン互換な、モデルのフルファミリーです。

ラインナップ:

Model Avg (25 tasks MTEB) Size Speed (CPU)
potion-mxbai-2m-512d 72.13 ~125MB ~16K sent/s
potion-mxbai-256d-v2 70.98 7.5MB ~15K sent/s
potion-mxbai-128d-v2 69.83 3.9MB ~18K sent/s
potion-mxbai-micro 68.12 0.7MB ~18K sent/s

25 タスクで評価(10 STS、12 Classification、3 PairClassification)。英語サブセットのみ。注: sent/s は私の i7-9750H での 1 秒あたりの文数です

これらはトランスフォーマーではありません!純粋なルックアップテーブルです。推論時にニューラルネットワークのフォワードパスはありません。トークナイズして、埋め込みをルックアップし、平均プーリングします。全体は numpy で動きます。

参考までに、all-MiniLM-L6-v2 は同じベンチマークで 74.65 の平均スコア、~80MB、~200 sent/sec です。つまり 256D モデルは MiniLM の品質の約 95% を、10 倍小さく、150 倍速く実現しています。

700KB のマイクロモデルが特に楽しみです。ボキャブラリ量子化(29K トークン埋め込みを 2K のセントロイドへクラスタリング)を使っており、フルの MTEB 英語スイートで 68.12 を出します。

でもなぜ…?

いい質問です。正直に言うと、これはややニッチな用途ではありますが:

  • エッジ/組み込み/WASM、ブラウザ拡張や ESP32 上で 400MB の ONNX モデルを読み込むのは大変です。ですが、これは numpy が動く場所ならどこでもそのまま使えます。また、独自ライブラリを作る必要もおそらく大したことではないでしょう。

  • 数百万ドキュメントのバッチ処理、コーパス全体を埋め込むとき、GPU なしで CPU で 15K sent/sec なら、単一コアで夜通しに 50M ドキュメントを処理できます。GPU のスケジューリングも、バッチ処理の悩みもありません。

  • コスト、これらは文字通り何にでも動きます。あらゆる e-waste を埋め込みサーバーとして再利用できます!(こちらで近々共有する予定の別プロジェクトとして、これらのモデルの 1 つを使って同様のことを行うためのカスタム FPGA も用意しています!)

  • 起動時間、トランスフォーマーモデルは読み込みに数秒かかります。これらはミリ秒で読み込みます。CLI ツールやサーバレス関数で単発の埋め込みをやるなら最高です。

  • プロトタイピング、インフラのことを考えずに、コード 3 行でセマンティック検索を動かしたいこともあります。model2vec をインストールしてモデルを読み込むだけで完了です。私は個人的に、まさにその理由で大きめのモデル側でも多くの用途を見つけました。

使い方:

```python from model2vec import StaticModel

サイズを選ぶ

model = StaticModel.from_pretrained("blobbybob/potion-mxbai-256d-v2")

または小さい方

model = StaticModel.from_pretrained("blobbybob/potion-mxbai-micro")

embeddings = model.encode(["your text here"]) ```

すべてのモデルは HuggingFace の blobbybob 配下にあります。MinishLab の model2vec と tokenlearn の上に構築されています。これらをまだ見ていないなら、ぜひチェックしてみてください。どちらも素晴らしいプロジェクトです。

質問には喜んで答えます。バックログにはまだいくつかアイデアがありますが、現時点がどんな感じかを共有したかったんです。

submitted by /u/ghgi_
[link] [comments]

広告