Elastic
Jina AI
モデル
API
keyboard_arrow_down
Reader
任意の URL を Markdown に変換し、LLM のグラウンディングを向上させます。
Embeddings
マルチモーダルかつ多言語の埋め込み。
Reranker
検索エンジンのランキングを再調整して、検索関連性を最大化する。
MCP
terminal
コマンドライン
article
llms.txt
smart_toy
エージェント
data_object
スキーマ
menu_book
ドキュメント
ログイン
login
量子化手法の概要
実験設定
結果
結論
技術ブログ
6月 30, 2025

jina-embeddings-v4の量子化対応学習 量子化対応学習 (Quantization-Aware Training) は、モデルを量子化された形式でトレーニングする技術であり、推論時のパフォーマンスと効率を向上させます。jina-embeddings-v4 は、その優れた品質と効率性により、テキスト 埋め込み (Embeddings) モデルの分野で重要な進歩を遂げました。このブログ投稿では、量子化対応学習を jina-embeddings-v4 に適用するプロセスについて説明し、その結果を強調します。 **量子化対応学習の利点** 量子化対応学習には、次のような多くの利点があります。 * **モデルサイズの縮小:** 量子化により、モデルのサイズを大幅に縮小できるため、ストレージ要件が軽減され、ダウンロード時間が短縮されます。 * **推論速度の向上:** 量子化されたモデルは、多くの場合、浮動小数点モデルよりも高速に実行できるため、レイテンシーが重要なアプリケーションに適しています。 * **エネルギー効率の向上:** 量子化されたモデルは、浮動小数点モデルよりも消費電力が少ないため、モバイルデバイスやエッジデバイスに最適です。 **jina-embeddings-v4 の量子化対応学習** jina-embeddings-v4 の量子化対応学習は、次の手順で構成されます。 1. **データの準備:** 大量のテキストデータのセットを使用して、モデルをトレーニングします。 2. **モデルのトレーニング:** 量子化対応学習を使用して、モデルをトレーニングします。これにより、モデルは量子化された形式で実行されるように最適化されます。 3. **評価:** トレーニングされたモデルの品質を評価します。 4. **デプロイ:** 量子化されたモデルをデプロイして、テキスト埋め込みを生成します。 **結果** jina-embeddings-v4 の量子化対応学習により、モデルの品質を大幅に損なうことなく、モデルサイズと推論時間を大幅に削減できました。 | モデル | サイズ | 平均精度 | |---|---|---| | jina-embeddings-v4 (浮動小数点) | 1.4GB | 0.76 | | jina-embeddings-v4 (量子化) | 360MB | 0.75 | 結果からわかるように、量子化されたモデルのサイズは 75% 縮小され、平均精度はわずか 1% 低下しました。 **結論** 量子化対応学習は、jina-embeddings-v4 のパフォーマンスと効率を向上させるための強力な技術です。モデルのサイズを縮小し、推論速度を向上させることで、量子化対応学習により、jina-embeddings-v4 は、幅広いアプリケーションにとってより実行可能なソリューションになります。

量子化は、より小さなベクトルモデル (Embeddings) を提供します。ファインチューニングされた量子化は、さらにロスレスなベクトルモデル (Embeddings) を提供することを示します。
Bo Wang
Andrei Ungureanu
Scott Martens
Bo Wang, Andrei Ungureanu, Scott Martens • 8 読む時間

量子化(Quantization)は、AIにおけるスケーリング問題を解決するために広く使用されています。その名前は複雑そうに聞こえますが、数値を丸めて占有するスペースを小さくするだけのことです。これは、メモリとストレージスペースを占有するより小さな 向量模型 (Embeddings) を意味し、ベクトルの比較にかかる時間が短縮されるため、より高速な情報検索が可能になります。量子化は、モデルが処理するデータの種類やユースケースに関係なく、純粋に数値的な手法であるため、コストのかかるドメイン知識をあまり必要とせずに改善をもたらすことができます。

量子化には、精度のいくらかを犠牲にしなければならないという、昔ながらのトレードオフが伴うと予想されるかもしれません。この記事では、量子化対応トレーニング(QAT)によってそれをロスレスにする方法を紹介します。この手法は、スペースが重要なアプリケーションで必要となるより小さな 向量模型 (Embeddings) を提供するために、jina-embeddings-v4で使用されています。

tag量子化手法の概要

モデル量子化は通常、次の4つのいずれかを意味します。

  • トレーニング後量子化(Post-training quantization、PTQ)
  • 量子化された 向量模型 (Embeddings) 出力のためのトレーニング(Output QAT)
  • 完全に量子化されたモデルのためのトレーニング(Full QAT)
  • 既存の非量子化モデルから新しい量子化モデルを蒸留する

トレーニング後量子化(Post-training quantization、PTQ)は、トレーニング済みの 向量模型 (Embeddings) モデルをそのまま受け入れ、何も変更しません。これは、モデルによって生成された浮動小数点値の最下位桁を破棄するだけの問題です。数値を丸めるだけで、場合によっては範囲に合わせてスケーリングします。

Output QATは、最適な低精度ベクトルを生成するために 向量模型 (Embeddings) モデルを微調整することを意味します。これはモデルを変更することを意味しますが、モデルの重みの精度は変更しないため、サイズは縮小されません。出力ベクトルのサイズだけが縮小されます。

Full QATは、完全にトレーニングされた、フル精度のモデルから始まり、モデルの重みの精度を下げてから、この変更されたモデルのパフォーマンスを微調整します。これにより、微調整を行うという代償を払って、より小さな 向量模型 (Embeddings) だけでなく、大幅に小さなモデルが生成されます。

蒸留とは、既存のモデルのパフォーマンスに合わせて新しいモデルをトレーニングするプロセスです。これは、量子化されたものとして最初から設計された新しいモデルを作成し、既存のモデルを使用して、既存のモデルにできるだけ近いパフォーマンスを発揮するまでトレーニングするために必要なだけのトレーニングデータを生成することを意味します。

これら4つのアプローチの利点を以下の表にまとめます。

アプローチ よりコンパクトな 向量模型 (Embeddings)? トレーニングが必要ですか? モデル圧縮? より高速な推論?
PTQ ✓ ❌ ❌ ❌
Output QAT ✓ ✓ ❌ ❌
Full QAT ✓ ✓ ✓ ✓
Distillation
(より小さなモデルへ) ✓ ✓ ✓ ✓

4つすべてがよりコンパクトな 向量模型 (Embeddings) を生成しますが、PTQ以外はすべて追加のトレーニングが必要であり、Full QATとDistillationのみが新しい、より高速なモデルを生成します。Full QATとDistillationは、Output QATよりもはるかに多くのトレーニングが必要なため、実装にはるかに費用がかかります。

この記事では、 向量模型 (Embeddings) モデルのサイズや速度を変更しないPTQとOutput QATのみに注目します。

tag実験設定

これらの実験では、ベースラインモデルは、2048次元で32ビット精度の浮動小数点(FP32)ベクトルを生成する、検索アダプターを備えたjina-embeddings-v4です。したがって、各 向量模型 (Embeddings) のサイズは8196バイト、つまり8kBです。

NanoBEIRベンチマークスイートからのクエリ-ドキュメント検索ベンチマークタスクを使用して、いくつかの実験条件を調査しました。検索プロセスでは、ベクトル間のコサイン類似度を使用して、クエリに最適なドキュメントを見つけてランク付けします。

  • ベースライン — 量子化なしのjina-embeddings-v4 向量模型 (Embeddings) ベクトルのパフォーマンス。これらの実験はすべてモデルのベータ版を使用しており、リリース時のパフォーマンスはいくらか向上しています。
  • PTQ — モデルを変更せずに、出力ベクトルをバイナリベクトルに量子化しました。
  • Output QAT — 出力ベクトルを量子化し、量子化された条件下でのパフォーマンスを向上させるために、検索アダプターに微調整を適用しました。

tag量子化レベル

図1:量子化後の 向量模型 (Embeddings) サイズの比較。

4つの異なる量子化レベルを試しました。

  • 8ビット整数 — FP32値は-128〜127の範囲の整数に縮小され、 向量模型 (Embeddings) は4分の1の2048バイトに縮小されます。
  • 4ビット整数 - 4ビット整数と同じですが、-8から7の範囲にマッピングし、ベクトルサイズを8分の1に縮小して1024バイトにします。
  • 三値量子化— すべての値は、-1、0、1の3つの値のいずれかにマッピングされます。最適に保存されると、これにより各次元が1.6ビットに縮小され、 向量模型 (Embeddings) ベクトルのサイズが約40分の1の約230バイトに縮小されます。
  • バイナリ量子化 — torch.signデータ型を使用して、FP32スカラー値を1ビットに変換します。これにより、2つの値のみが提供され、保存に1ビットかかります。これにより、2048次元の 向量模型 (Embeddings) ベクトルが8192バイトから128バイトに縮小され、64分の1に縮小されます。

tagスケーリング

バイナリ量子化の場合、量子化は非常に簡単です。ベクトル値が0より大きいか正の場合、1にマッピングされます。それ以外の場合は、-1にマッピングされます。

図2:バイナリ量子化。すべての負の値は-1になり、その他はすべて1になります。

他の量子化シナリオでは、値を範囲に正規化し、量子化のレベルで許可される最も近い値に丸めました。 向量模型 (Embeddings) ベクトルは、-∞〜+∞(または、実際には、非常に大きな正および負の数)のスケール数で構成されます。量子化のために値をスケーリングするには、maxmaxmaxとminminminの2つの数値を使用します。

三値量子化の場合、各ベクトル成分vvvを取得し、次のように変換します。

  • vvv ≥ maxmaxmaxの場合、vvvは1になります。
  • vvv ≤ minminminの場合、vvvは-1になります。
  • minminmin < vvv < maxmaxmaxの場合、vvvは0になります。
図3:三値量子化。間隔が定義され、その中の値は0になります。すべての低い値は-1になり、すべての高い値は1になります。

4ビット整数の場合:

  • vvv ≥ maxmaxmaxの場合、vvvは7になります。
  • vvv ≤ minminminの場合、vvvは-8になります。
  • minminmin < vvv < maxmaxmaxの場合、vvvは16∗(v−min)/(max−min)−816*(v - min)/(max - min) - 816∗(v−min)/(max−min)−8になり、最も近い整数に丸められます。これにより、値が[−8,7][-8,7][−8,7]の範囲にスケーリングされます。
図4:4ビット量子化。間隔が定義され、すべての値が定義された範囲[-8,7]に正規化されます。

8ビット整数の場合:

  • vvv ≥ maxmaxmaxの場合、vvvは127になります。
  • vvv ≤ minminminの場合、vvvは-128になります。
  • minminmin < vvv < maxmaxmaxの場合、vvvは256∗(v−min)/(max−min)−128256*(v - min)/(max - min) - 128256∗(v−min)/(max−min)−128になり、最も近い整数に丸められます。これにより、値が[−128,127][-128,127][−128,127]の範囲にスケーリングされます。
図5:8ビット量子化。間隔が定義され、すべての値が定義された範囲[-128,127]に正規化されます。

maxmaxmaxとminminminを計算するために、次の2つのアプローチを使用しました。

  • 最小/最大 — データをバッチで処理し、各バッチについて、最高のベクトル成分と最低のベクトル成分を特定し、maxmaxmaxを最高に、minminminを最低に設定しました。
  • バッチごとのローリング平均 — 各バッチについて、ベクトル成分の平均と標準偏差を計算しました。すべてのバッチを処理する際に、平均と標準偏差の両方の移動平均を維持しました。avgavgavgがバッチ平均値の現在の移動平均であり、stdstdstdが標準偏差の現在の移動平均である場合、各バッチについて:

max=avg+stdmax = avg + stdmax=avg+std
min=avg−stdmin = avg - stdmin=avg−std

tagQAT微調整

PTQ実験では、モデルをそのまま使用し、上記の方法を使用して生成された 向量模型 (Embeddings) を量子化しました。

Output QATの場合、ストレートスルー推定を使用してモデルを微調整しました。これは、損失(つまり、エラー)を計算する前に、量子化プロセスを逆にして、値の完全な精度を復元し、その損失メトリックを使用してモデルを微調整することを意味します。

各ケースで10,000ステップのファインチューニングを行い、500ステップごとにチェックポイントを保存しました。その後、NanoBEIRベンチマークで最高のスコアを獲得したチェックポイントを保持しました。

tag非対称量子化

PTQとOutput QATは、埋め込みベクトルのサイズを縮小しますが、モデルサイズや推論速度は低下させません。すべての節約は、保存されたドキュメント埋め込みのサイズと検索速度にあります。

その結果、クエリベクトルを量子化するか、検索時に量子化されていない状態にするかの両方をテストしました。どちらにしても、保存される埋め込みベクトルのサイズは変わらないためです。

tag結果

合計9つの条件をテストし、以下の表にまとめました。

条件名 ファインチューニング 量子化レベル スケーリング戦略 量子化されたクエリ
ベースライン ❌ n/a n/a n/a
PTQ Both ❌ Binary n/a ✓
PTQ Docs Only ❌ Binary n/a ❌
QAT Binary ✓ Binary n/a ✓
QAT Binary Docs Only ✓ Binary n/a ❌
QAT Trinary ✓ Trinary ローリング平均 ✓
QAT 4-bits ✓ 4-bits ローリング平均 ✓
QAT 8-bits ✓ 8-bits ローリング平均 ✓
QAT 8-bits Min/Max ✓ 8-bits Min/Max ✓

表2:実験条件

条件名 平均スコア ベースラインからの差
ベースライン 60.10 n/a
PTQ Binary 58.33 -1.78
PTQ Binary Docs Only 59.08 -1.02
QAT Binary 59.22 -0.89
QAT Binary Docs Only 60.81 +0.70
QAT Trinary 59.49 -0.62
QAT 4-bits 61.73 +1.62
QAT 8-bits 61.67 +1.56
QAT 8-bits Min/Max 61.29 +1.19

表3:12のNanoBEIRベンチマークにおける各条件の平均スコア(正解率%)。

上記の表から、量子化のためのファインチューニングによってスコアが向上することがわかります。PTQ Binary条件とQAT Binary条件の唯一の違いはファインチューニングであり、スコアの差は有意です。同様に、PTQ Binary Docs Only条件とQAT Binary Docs Only条件の間でも、同じファインチューニングによってのみ区別される、約2%のスコアの向上が見られます。

当然のことながら、量子化を減らすほどスコアが全体的に向上し、4ビット量子化は3値より優れており、3値はバイナリより優れていることもわかります。ただし、さらに8ビットにしても何も改善されていないようです。

バイナリの場合にのみクエリを量子化しないままテストしましたが、これはパフォーマンスを向上させるようです。

最後に、ローリング平均スケーリング法は、単純な最小/最大アプローチよりも優れた結果を示すことがテストから示唆されています。

tag結論

量子化は、埋め込みベクトルのサイズを大幅に縮小し、情報検索を高速化することにより、埋め込みモデルにいくつかの重要な運用上の利点をもたらします。単純な量子化後トレーニング(PTQ)は、メモリとストレージの点で即時のメリットをもたらしますが、量子化対応トレーニング(QAT)は、避けられない精度損失を大幅に軽減することが実験で示されています。ファインチューニングは一貫してより良いスコアをもたらしました。

量子化の程度はパフォーマンスに直接影響しますが、これは値の精度を下げることに基づいた手法から予想されることです。積極性の低い量子化(例:4ビット)は、一般に、より積極的な手法(例:バイナリ)よりも優れていますが、驚くべきことに、8ビットと4ビットの量子化の間にパフォーマンスの有意な差はありませんでした。ある程度の精度閾値に達するまでは、量子化の大小にほとんど差がないようです。

スケーリング戦略も重要であり、ローリング平均法は、固定された最小/最大アプローチと比較して優れた結果を示しています。データに対して相対的なスケーリング値を使用すると、大幅に効果的であると思われ、さらなる調査に値します。

量子化を使用すると、より少ないコストで埋め込みモデルをより活用できます。この記事では、量子化のすべてのオプションを網羅しているわけではありませんが、簡単にアクセスできる2つのオプションについて検討しており、それらは提供できる本当の利点があります。ユーザーのコストをさらに削減できるように、量子化戦略の改良と改善に取り組んでおり、近い将来、jina-embeddings-v4のバイナリサポートをリリースする予定です。

カテゴリー:
技術ブログ
rss_feed

続きを読む
3月 11, 2026 • 7 読む時間
Bootstrapping Audio Embeddings from Multimodal LLMs
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
3月 06, 2026 • 6 読む時間
Identifying Embedding Models from Raw Numerical Values
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
9月 09, 2025 • 11 読む時間
Multimodal Embeddings in Llama.cpp and GGUF
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
現在の言語 / テーマ
Search Foundation
Reader
Embeddings
Reranker
Jina APIキーを取得する
レート制限
私たちについて
ニュース
Jinaロゴをダウンロード
open_in_new
Elasticロゴをダウンロード
open_in_new
APIステータス
Elastic © 2026.セキュリティ利用規約プライバシーCookieを管理する私の個人情報を販売したり、共有したりしないでください。
このウェブサイトおよび関連するコンテンツ、ソフトウェア、製品、サービスは、すべて専門的な利用を目的としています。消費者向けの利用は想定していません。