Skip to Content
We are live but in Staging 🎉
Knowledge BaseVector IngestionEmbedding Vector Type

Embedding Vector Type

Embedding Vector Type defines the numeric format used for the vectors produced by the embedding model and stored in VBase.

All options represent the same semantic content (the “meaning” of your data), but they differ in size, speed, and accuracy.

VNG can output one of these vector types:

  • Float (floating point)
  • UInt8 (unsigned 8-bit integer)
  • Int8 (signed 8-bit integer)

These map directly to VBase vector fields so you can store and search them efficiently.


Why this matters

Vector type impacts:

  • Storage: how much space vectors consume in VBase
  • Bandwidth: payload size when moving vectors between services
  • Speed: search can be faster with smaller vector types
  • Quality: quantized vectors (UInt8/Int8) may slightly reduce accuracy

Supported types

Float (VECTOR_TYPE_FLOAT)

What it is: Standard floating-point embeddings (commonly float32).

Resembles: “Highest quality / most faithful representation.”

Pros

  • Best retrieval quality in most cases
  • Widest compatibility across vector indexes and similarity metrics

Cons

  • Largest storage and bandwidth cost

Use when

  • You want maximum accuracy
  • Your collection is not extremely large, or quality matters more than cost

VBase mapping

  • Store in a Float vector field (e.g., FloatVector).

UInt8 (VECTOR_TYPE_UINT8)

What it is: 8-bit unsigned quantized embeddings (0 → 255).

Resembles: “Compressed vectors to reduce cost.”

Pros

  • ~4Ă— smaller than float32
  • Faster to move and often faster to search

Cons

  • Quantization can reduce accuracy compared to Float
  • Requires a VBase index / metric that supports this type

Use when

  • Your dataset is large and storage/bandwidth cost is a priority
  • You can accept a small quality tradeoff

VBase mapping

  • Store in a UInt8 vector field (e.g., Binary/QuantizedVector depending on your VBase schema).

Int8 (VECTOR_TYPE_INT8)

What it is: 8-bit signed quantized embeddings (-128 → 127).

Resembles: “Compressed vectors with signed range (common for symmetric quantization).”

Pros

  • ~4Ă— smaller than float32
  • Good performance/cost tradeoff for large-scale search

Cons

  • Quantization can reduce accuracy compared to Float
  • Requires a VBase index / metric that supports this type

Use when

  • You need high-scale vector search with lower storage cost
  • You want a common quantized format that works well for many embedding distributions

VBase mapping

  • Store in an Int8 vector field (e.g., Int8Vector / quantized vector field depending on your VBase schema).

Choosing the right vector type

A simple decision guide:

  • Start with Float for most projects (best quality, easiest).
  • Use Int8 / UInt8 when:
    • you are indexing at large scale
    • storage and throughput costs matter
    • you can accept a small accuracy tradeoff

If you’re not sure, choose Float first. You can always re-embed later into a new VBase collection using a quantized type.


Important note about compatibility

Your VBase collection/index must be created with the same vector type.

If you change the vector type later, you’ll need to:

  • create a new VBase collection with the new type, and
  • re-ingest / re-embed your content.

End-user mental model

  • Float = best quality, bigger vectors
  • UInt8 / Int8 = smaller vectors, faster/cheaper at scale, slight quality tradeoff
  • Pick the type that matches your cost/quality goals and your VBase collection settings
Last updated on