下に引いて戻る
ArcFace埋め込みを16ビットのpgvector HALFVECに量子化する — 精度は本当に必要?

ArcFace埋め込みを16ビットのpgvector HALFVECに量子化する — 精度は本当に必要?

ArcFace embeddings quantized to 16-bit pgvector HALFVEC — does precision actually matter?

512次元の顔埋め込みを32ビット浮動小数点で保存すると2048バイトになり、PostgreSQLのTOAST閾値(2040バイト)をわずかに超えます。そうするとデータベースは自動的にそれらをTOASTテーブルに移動させ、インラインで保持しなくなるため、ポインタ参照と追加読み込みで I/O が倍増します。HNSWはこの問題を完全に回避できますが、本当の問題はArcFace埋め込みに32ビット精度が必要なのか、それとも16ビット HALFVECに安全に落とせてストレージを半減できるのかということです。

キーワード

embeddingsquantizationHALFVECTOASTHNSWface recognitionvector databasesperformance optimization