# concrete.ml.quantization.quantizers.md

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L0)

## module `concrete.ml.quantization.quantizers`

Quantization utilities for a numpy array/tensor.

### **Global Variables**

* **STABILITY\_CONST**

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L16)

### function `fill_from_kwargs`

```python
fill_from_kwargs(obj, klass, **kwargs)
```

Fill a parameter set structure from kwargs parameters.

**Args:**

* `obj`: an object of type klass, if None the object is created if any of the type's members appear in the kwargs
* `klass`: the type of object to fill
* `kwargs`: parameter names and values to fill into an instance of the klass type

**Returns:**

* `obj`: an object of type klass
* `kwargs`: remaining parameter names and values that were not filled into obj

**Raises:**

* `TypeError`: if the types of the parameters in kwargs could not be converted to the corresponding types of members of klass

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L70)

### class `QuantizationOptions`

Options for quantization.

Determines the number of bits for quantization and the method of quantization of the values. Signed quantization allows negative quantized values. Symmetric quantization assumes the float values are distributed symmetrically around x=0 and assigns signed values around 0 to the float values. QAT (quantization aware training) quantization assumes the values are already quantized, taking a discrete set of values, and assigns these values to integers, computing only the scale.

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L102)

#### method `__init__`

```python
__init__(
    n_bits: 'int',
    is_signed: 'bool' = False,
    is_symmetric: 'bool' = False,
    is_qat: 'bool' = False
)
```

***

**property quant\_options**

Get a copy of the quantization parameters.

**Returns:**

* `UniformQuantizationParameters`: a copy of the current quantization parameters

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L178)

#### method `copy_opts`

```python
copy_opts(opts)
```

Copy the options from a different structure.

**Args:**

* `opts` (QuantizationOptions): structure to copy parameters from.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L170)

#### method `dump`

```python
dump(file: 'TextIO') → None
```

Dump itself to a file.

**Args:**

* `file` (TextIO): The file to dump the serialized object into.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L126)

#### method `dump_dict`

```python
dump_dict() → Dict
```

Dump itself to a dict.

**Returns:**

* `metadata` (Dict): Dict of serialized objects.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L162)

#### method `dumps`

```python
dumps() → str
```

Dump itself to a string.

**Returns:**

* `metadata` (str): String of the serialized object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L205)

#### method `is_equal`

```python
is_equal(opts, ignore_sign_qat: 'bool' = False) → bool
```

Compare two quantization options sets.

**Args:**

* `opts` (QuantizationOptions): options to compare this instance to
* `ignore_sign_qat` (bool): ignore sign comparison for QAT options

**Returns:**

* `bool`: whether the two quantization options compared are equivalent

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L142)

#### method `load_dict`

```python
load_dict(metadata: 'Dict')
```

Load itself from a string.

**Args:**

* `metadata` (Dict): Dict of serialized objects.

**Returns:**

* `QuantizationOptions`: The loaded object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L224)

### class `MinMaxQuantizationStats`

Calibration set statistics.

This class stores the statistics for the calibration set or for a calibration data batch. Currently we only store min/max to determine the quantization range. The min/max are computed from the calibration set.

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L236)

#### method `__init__`

```python
__init__(
    rmax: 'Optional[float]' = None,
    rmin: 'Optional[float]' = None,
    uvalues: 'Optional[ndarray]' = None
)
```

***

**property quant\_stats**

Get a copy of the calibration set statistics.

**Returns:**

* `MinMaxQuantizationStats`: a copy of the current quantization stats

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L345)

#### method `check_is_uniform_quantized`

```python
check_is_uniform_quantized(options: 'QuantizationOptions') → bool
```

Check if these statistics correspond to uniformly quantized values.

Determines whether the values represented by this QuantizedArray show a quantized structure that allows to infer the scale of quantization.

**Args:**

* `options` (QuantizationOptions): used to quantize the values in the QuantizedArray

**Returns:**

* `bool`: check result.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L301)

#### method `compute_quantization_stats`

```python
compute_quantization_stats(values: 'ndarray') → None
```

Compute the calibration set quantization statistics.

**Args:**

* `values` (numpy.ndarray): Calibration set on which to compute statistics.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L334)

#### method `copy_stats`

```python
copy_stats(stats) → None
```

Copy the statistics from a different structure.

**Args:**

* `stats` (MinMaxQuantizationStats): structure to copy statistics from.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L293)

#### method `dump`

```python
dump(file: 'TextIO') → None
```

Dump itself to a file.

**Args:**

* `file` (TextIO): The file to dump the serialized object into.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L254)

#### method `dump_dict`

```python
dump_dict() → Dict
```

Dump itself to a dict.

**Returns:**

* `metadata` (Dict): Dict of serialized objects.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L285)

#### method `dumps`

```python
dumps() → str
```

Dump itself to a string.

**Returns:**

* `metadata` (str): String of the serialized object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L267)

#### method `load_dict`

```python
load_dict(metadata: 'Dict')
```

Load itself from a string.

**Args:**

* `metadata` (Dict): Dict of serialized objects.

**Returns:**

* `QuantizationOptions`: The loaded object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L374)

### class `UniformQuantizationParameters`

Quantization parameters for uniform quantization.

This class stores the parameters used for quantizing real values to discrete integer values. The parameters are computed from quantization options and quantization statistics.

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L385)

#### method `__init__`

```python
__init__(
    scale: 'Optional[float64]' = None,
    zero_point: 'Optional[Union[int, float, ndarray]]' = None,
    offset: 'Optional[int]' = None
)
```

***

**property quant\_params**

Get a copy of the quantization parameters.

**Returns:**

* `UniformQuantizationParameters`: a copy of the current quantization parameters

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L472)

#### method `compute_quantization_parameters`

```python
compute_quantization_parameters(
    options: 'QuantizationOptions',
    stats: 'MinMaxQuantizationStats'
) → None
```

Compute the quantization parameters.

**Args:**

* `options` (QuantizationOptions): quantization options set
* `stats` (MinMaxQuantizationStats): calibrated statistics for quantization

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L448)

#### method `copy_params`

```python
copy_params(params) → None
```

Copy the parameters from a different structure.

**Args:**

* `params` (UniformQuantizationParameters): parameter structure to copy

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L440)

#### method `dump`

```python
dump(file: 'TextIO') → None
```

Dump itself to a file.

**Args:**

* `file` (TextIO): The file to dump the serialized object into.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L402)

#### method `dump_dict`

```python
dump_dict() → Dict
```

Dump itself to a dict.

**Returns:**

* `metadata` (Dict): Dict of serialized objects.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L432)

#### method `dumps`

```python
dumps() → str
```

Dump itself to a string.

**Returns:**

* `metadata` (str): String of the serialized object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L415)

#### method `load_dict`

```python
load_dict(metadata: 'Dict') → UniformQuantizationParameters
```

Load itself from a string.

**Args:**

* `metadata` (Dict): Dict of serialized objects.

**Returns:**

* `UniformQuantizationParameters`: The loaded object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L580)

### class `UniformQuantizer`

Uniform quantizer.

Contains all information necessary for uniform quantization and provides quantization/de-quantization functionality on numpy arrays.

**Args:**

* `options` (QuantizationOptions): Quantization options set
* `stats` (Optional\[MinMaxQuantizationStats]): Quantization batch statistics set
* `params` (Optional\[UniformQuantizationParameters]): Quantization parameters set (scale, zero-point)

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L594)

#### method `__init__`

```python
__init__(
    options: 'Optional[QuantizationOptions]' = None,
    stats: 'Optional[MinMaxQuantizationStats]' = None,
    params: 'Optional[UniformQuantizationParameters]' = None,
    no_clipping: 'bool' = False
)
```

***

**property quant\_options**

Get a copy of the quantization parameters.

**Returns:**

* `UniformQuantizationParameters`: a copy of the current quantization parameters

***

**property quant\_params**

Get a copy of the quantization parameters.

**Returns:**

* `UniformQuantizationParameters`: a copy of the current quantization parameters

***

**property quant\_stats**

Get a copy of the calibration set statistics.

**Returns:**

* `MinMaxQuantizationStats`: a copy of the current quantization stats

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L345)

#### method `check_is_uniform_quantized`

```python
check_is_uniform_quantized(options: 'QuantizationOptions') → bool
```

Check if these statistics correspond to uniformly quantized values.

Determines whether the values represented by this QuantizedArray show a quantized structure that allows to infer the scale of quantization.

**Args:**

* `options` (QuantizationOptions): used to quantize the values in the QuantizedArray

**Returns:**

* `bool`: check result.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L472)

#### method `compute_quantization_parameters`

```python
compute_quantization_parameters(
    options: 'QuantizationOptions',
    stats: 'MinMaxQuantizationStats'
) → None
```

Compute the quantization parameters.

**Args:**

* `options` (QuantizationOptions): quantization options set
* `stats` (MinMaxQuantizationStats): calibrated statistics for quantization

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L301)

#### method `compute_quantization_stats`

```python
compute_quantization_stats(values: 'ndarray') → None
```

Compute the calibration set quantization statistics.

**Args:**

* `values` (numpy.ndarray): Calibration set on which to compute statistics.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L178)

#### method `copy_opts`

```python
copy_opts(opts)
```

Copy the options from a different structure.

**Args:**

* `opts` (QuantizationOptions): structure to copy parameters from.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L448)

#### method `copy_params`

```python
copy_params(params) → None
```

Copy the parameters from a different structure.

**Args:**

* `params` (UniformQuantizationParameters): parameter structure to copy

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L334)

#### method `copy_stats`

```python
copy_stats(stats) → None
```

Copy the statistics from a different structure.

**Args:**

* `stats` (MinMaxQuantizationStats): structure to copy statistics from.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L765)

#### method `dequant`

```python
dequant(qvalues: 'ndarray') → Union[Any, ndarray]
```

De-quantize values.

**Args:**

* `qvalues` (numpy.ndarray): integer values to de-quantize

**Returns:**

* `Union[Any, numpy.ndarray]`: De-quantized float values.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L720)

#### method `dump`

```python
dump(file: 'TextIO') → None
```

Dump itself to a file.

**Args:**

* `file` (TextIO): The file to dump the serialized object into.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L646)

#### method `dump_dict`

```python
dump_dict() → Dict
```

Dump itself to a dict.

**Returns:**

* `metadata` (Dict): Dict of serialized objects.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L712)

#### method `dumps`

```python
dumps() → str
```

Dump itself to a string.

**Returns:**

* `metadata` (str): String of the serialized object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L205)

#### method `is_equal`

```python
is_equal(opts, ignore_sign_qat: 'bool' = False) → bool
```

Compare two quantization options sets.

**Args:**

* `opts` (QuantizationOptions): options to compare this instance to
* `ignore_sign_qat` (bool): ignore sign comparison for QAT options

**Returns:**

* `bool`: whether the two quantization options compared are equivalent

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L674)

#### method `load_dict`

```python
load_dict(metadata: 'Dict') → UniformQuantizer
```

Load itself from a string.

**Args:**

* `metadata` (Dict): Dict of serialized objects.

**Returns:**

* `UniformQuantizer`: The loaded object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L728)

#### method `quant`

```python
quant(values: 'ndarray') → ndarray
```

Quantize values.

**Args:**

* `values` (numpy.ndarray): float values to quantize

**Returns:**

* `numpy.ndarray`: Integer quantized values.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L792)

### class `QuantizedArray`

Abstraction of quantized array.

Contains float values and their quantized integer counter-parts. Quantization is performed by the quantizer member object. Float and int values are kept in sync. Having both types of values is useful since quantized operators in Concrete ML graphs might need one or the other depending on how the operator works (in float or in int). Moreover, when the encrypted function needs to return a value, it must return integer values.

See <https://arxiv.org/abs/1712.05877>.

**Args:**

* `values` (numpy.ndarray): Values to be quantized.
* `n_bits` (int): The number of bits to use for quantization.
* `value_is_float` (bool, optional): Whether the passed values are real (float) values or not. If False, the values will be quantized according to the passed scale and zero\_point. Defaults to True.
* `options` (QuantizationOptions): Quantization options set
* `stats` (Optional\[MinMaxQuantizationStats]): Quantization batch statistics set
* `params` (Optional\[UniformQuantizationParameters]): Quantization parameters set (scale, zero-point)
* `kwargs`: Any member of the options, stats, params sets as a key-value pair. The parameter sets need to be completely parametrized if their members appear in kwargs.

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L821)

#### method `__init__`

```python
__init__(
    n_bits,
    values: 'Optional[ndarray]',
    value_is_float: 'bool' = True,
    options: 'Optional[QuantizationOptions]' = None,
    stats: 'Optional[MinMaxQuantizationStats]' = None,
    params: 'Optional[UniformQuantizationParameters]' = None,
    **kwargs
)
```

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L1013)

#### method `dequant`

```python
dequant() → ndarray
```

De-quantize self.qvalues.

**Returns:**

* `numpy.ndarray`: De-quantized values.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L969)

#### method `dump`

```python
dump(file: 'TextIO') → None
```

Dump itself to a file.

**Args:**

* `file` (TextIO): The file to dump the serialized object into.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L929)

#### method `dump_dict`

```python
dump_dict() → Dict
```

Dump itself to a dict.

**Returns:**

* `metadata` (Dict): Dict of serialized objects.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L961)

#### method `dumps`

```python
dumps() → str
```

Dump itself to a string.

**Returns:**

* `metadata` (str): String of the serialized object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L943)

#### method `load_dict`

```python
load_dict(metadata: 'Dict') → QuantizedArray
```

Load itself from a string.

**Args:**

* `metadata` (Dict): Dict of serialized objects.

**Returns:**

* `QuantizedArray`: The loaded object.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L1003)

#### method `quant`

```python
quant() → Optional[ndarray]
```

Quantize self.values.

**Returns:**

* `numpy.ndarray`: Quantized values.

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L990)

#### method `update_quantized_values`

```python
update_quantized_values(qvalues: 'ndarray') → ndarray
```

Update qvalues to get their corresponding values using the related quantized parameters.

**Args:**

* `qvalues` (numpy.ndarray): Values to replace self.qvalues

**Returns:**

* `values` (numpy.ndarray): Corresponding values

***

[![](https://img.shields.io/badge/-source-cccccc?style=flat-square)](https://github.com/zama-ai/concrete-ml/blob/release/1.1.x/src/concrete/ml/quantization/quantizers.py#L977)

#### method `update_values`

```python
update_values(values: 'ndarray') → ndarray
```

Update values to get their corresponding qvalues using the related quantized parameters.

**Args:**

* `values` (numpy.ndarray): Values to replace self.values

**Returns:**

* `qvalues` (numpy.ndarray): Corresponding qvalues


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zama.org/concrete-ml/1.1/developer-guide/api/concrete.ml.quantization.quantizers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
