(args=None)
| 14 | QUANTIZATION_BITS = 0 # 0 for vanilla QG, or 4/8 for QG-quant |
| 15 | NUM_THREADS = 16 # number of threads for build |
| 16 | INIT = "pipnn" # "pipnn" or "random" initialization of SymphonyQG |
| 17 | # ────────────────────────────────────────────── |
| 18 | |
| 19 | |
| 20 | def main(args=None) -> None: |
| 21 | # 1. Load data |
| 22 | data = read_fvecs(args.data_file) |
| 23 | print(f"Data shape: {data.shape}") |
| 24 | |
| 25 | # 3. Build SymphonyQG index |
| 26 | n, dim = data.shape |
| 27 | print( |
| 28 | f"\nBuilding SymphonyQG index: n={n}, dim={dim}, MaxDegree={args.max_degree}, " |
| 29 | f"ef={args.ef_construction}, metric={args.metric}, " |
| 30 | f"quantization_bits={args.quantization_bits}, init={args.init}" |
| 31 | ) |
| 32 | |
| 33 | idx = SymqgIndex( |
| 34 | dim=dim, |
| 35 | max_degree=args.max_degree, |
| 36 | metric=args.metric, |
no test coverage detected