Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
signet::forge::QuantizationParams Struct Reference

Parameters that fully describe a quantization mapping. More...

#include <quantized_vector.hpp>

Public Member Functions

std::string serialize () const
 Serialize to a compact key-value string for Parquet metadata.
 
size_t bytes_per_vector () const
 Storage size per vector in bytes.
 

Static Public Member Functions

static QuantizationParams compute (const float *data, size_t num_vectors, uint32_t dim, QuantizationScheme scheme)
 Compute optimal quantization parameters from a batch of vectors.
 
static expected< QuantizationParamsdeserialize (const std::string &s)
 Deserialize from the key-value string produced by serialize().
 

Public Attributes

QuantizationScheme scheme
 Quantization scheme (symmetric/asymmetric, INT8/INT4).
 
float scale = 0.0f
 Scale factor (float units per quantization step).
 
float zero_point = 0.0f
 Offset (used by ASYMMETRIC_INT8 only).
 
uint32_t dimension = 0
 Vector dimension (number of float elements).
 

Detailed Description

Parameters that fully describe a quantization mapping.

Holds the scheme, scale factor, zero point, and vector dimension needed to quantize float32 vectors to INT8/INT4 and dequantize them back.

See also
Quantizer, Dequantizer, QuantizationScheme

Definition at line 76 of file quantized_vector.hpp.

Member Function Documentation

◆ bytes_per_vector()

size_t signet::forge::QuantizationParams::bytes_per_vector ( ) const
inline

Storage size per vector in bytes.

  • SYMMETRIC_INT8 / ASYMMETRIC_INT8: dim bytes.
  • SYMMETRIC_INT4: ceil(dim / 2) bytes.
Returns
Number of bytes needed to store one quantized vector.

Definition at line 540 of file quantized_vector.hpp.

◆ compute()

QuantizationParams signet::forge::QuantizationParams::compute ( const float *  data,
size_t  num_vectors,
uint32_t  dim,
QuantizationScheme  scheme 
)
inlinestatic

Compute optimal quantization parameters from a batch of vectors.

Scans all float values to determine min/max, then derives scale (and zero_point for asymmetric) accordingly.

Parameters
dataPointer to num_vectors * dim contiguous floats.
num_vectorsNumber of vectors in the batch.
dimDimensionality of each vector.
schemeDesired quantization scheme.
Returns
QuantizationParams ready for use with Quantizer/Dequantizer.

Definition at line 372 of file quantized_vector.hpp.

◆ deserialize()

expected< QuantizationParams > signet::forge::QuantizationParams::deserialize ( const std::string &  s)
inlinestatic

Deserialize from the key-value string produced by serialize().

Parameters
sThe serialized parameter string.
Returns
The parsed QuantizationParams, or an error if malformed.

Definition at line 454 of file quantized_vector.hpp.

◆ serialize()

std::string signet::forge::QuantizationParams::serialize ( ) const
inline

Serialize to a compact key-value string for Parquet metadata.

Format: "scheme=0;scale=0.001234;zero_point=0.0;dimension=768".

Returns
The serialized parameter string.

Definition at line 440 of file quantized_vector.hpp.

Member Data Documentation

◆ dimension

uint32_t signet::forge::QuantizationParams::dimension = 0

Vector dimension (number of float elements).

Definition at line 80 of file quantized_vector.hpp.

◆ scale

float signet::forge::QuantizationParams::scale = 0.0f

Scale factor (float units per quantization step).

Definition at line 78 of file quantized_vector.hpp.

◆ scheme

QuantizationScheme signet::forge::QuantizationParams::scheme

Quantization scheme (symmetric/asymmetric, INT8/INT4).

Definition at line 77 of file quantized_vector.hpp.

◆ zero_point

float signet::forge::QuantizationParams::zero_point = 0.0f

Offset (used by ASYMMETRIC_INT8 only).

Definition at line 79 of file quantized_vector.hpp.


The documentation for this struct was generated from the following file: