Builds the index using the specified training configuration. Required before efficient querying. Prior to calling this, all queries will be conducted using encrypted exhaustive search. After, they will be conducted using encrypted ANN search.
def train(self, 
          n_lists: int = 0,
          batch_size: int = 2048,
          max_iters: int = 100,
          tolerance: float = 1e-6,
          max_memory: int = 0)

Parameters

ParameterTypeDefaultDescription
n_listsint0(Optional) Number of inverted index lists to create in the index. If 0, it will auto-determine based on the number of vectors in the index.
batch_sizeint2048(Optional) Size of each batch for training.
max_itersint100(Optional) Maximum number of iterations for training.
tolerancefloat1e-6(Optional) Convergence tolerance for training.
max_memoryint0(Optional) Maximum memory to use for training. 0 sets no limit.
There must be at least 2 * n_lists or 10,000 (whichever is greater) vector embeddings in the index prior to to calling this function.

Exceptions

Example Usage

# Load index
index = client.load_index(
    index_name=index_name, 
    index_key=index_key
)

# Train the index with custom settings
index.train(
    batch_size=128, 
    max_iters=10, 
    tolerance=1e-4
)

# Train with default settings (auto-selected configuration)
index.train()