deglib 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {deglib-0.2.1/src/deglib.egg-info → deglib-0.2.2}/PKG-INFO +8 -6
- {deglib-0.2.1 → deglib-0.2.2}/README.md +7 -5
- deglib-0.2.2/lib/deglib/include/deglib/optimization/quantization/scalar_quantize.h +743 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization.h +77 -16
- {deglib-0.2.1 → deglib-0.2.2}/src/deg_cpp/deglib_cpp.cpp +389 -71
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/__init__.py +1 -1
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/optimization.py +17 -33
- {deglib-0.2.1 → deglib-0.2.2/src/deglib.egg-info}/PKG-INFO +8 -6
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib.egg-info/SOURCES.txt +1 -0
- deglib-0.2.2/tests/test_scalar_quantizer.py +222 -0
- deglib-0.2.1/lib/deglib/include/deglib/optimization/quantization/scalar_quantize.h +0 -422
- {deglib-0.2.1 → deglib-0.2.2}/CMakeLists.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/LICENSE +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/MANIFEST.in +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/CMakeLists.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/CMakeLists.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/benchmark.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/build.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/dataset.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/file_io.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/logging.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/repository.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/stats.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/bench/include/stopwatch.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/cmake_modules/DetectCPUFeatures.cmake +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/CMakeLists.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/analysis.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/builder.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/concurrent.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/config.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/deglib.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/evp_ip.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/fp16.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/fp16_ip.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/fp16_l2.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/fp32.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/fp32_ip.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/fp32_l2.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/int8.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/int8_ip.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/int8_l2.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/residual_mode.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/uint8.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/uint8_ip.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distance/uint8_l2.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/distances.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/filter.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/dynamic_graph.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/internal_graph.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/intrusive_list.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/mutable_graph.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/readonly_graph.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/sizebounded_graph.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph/visited_list_pool.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/graph.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization/flas/fast_linear_assignment_sorter.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization/flas/fast_linear_assignment_sorter_mt.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization/flas/junker_volgenant_solver.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization/pruning.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization/quantization/evp_quantize.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/optimization/transform.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/search.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/utils/cpu.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/utils/memory.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/deglib/include/deglib/utils/random.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/test/CMakeLists.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/lib/test/src/common/test_helpers.h +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/pyproject.toml +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/setup.cfg +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/setup.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/analysis.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/builder.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/cpu.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/distances.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/graph.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/search.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib/utils.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib.egg-info/dependency_links.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib.egg-info/requires.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/src/deglib.egg-info/top_level.txt +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_analysis.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_builder.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_filter.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_graph.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_presort.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_rerank.py +0 -0
- {deglib-0.2.1 → deglib-0.2.2}/tests/test_transform.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deglib
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Python bindings for the Dynamic Exploration Graph library by Nico Hezel
|
|
5
5
|
Author: Nico Hezel
|
|
6
6
|
Author-email: Bruno Schilling <bruno.schilling@htw-berlin.de>
|
|
@@ -221,7 +221,7 @@ A complete end-to-end pipeline demonstrating **FLAS pre-sorting**, **multithread
|
|
|
221
221
|
```python
|
|
222
222
|
import numpy as np
|
|
223
223
|
import deglib
|
|
224
|
-
from deglib.optimization import presort, prune_non_rng_edges,
|
|
224
|
+
from deglib.optimization import presort, prune_non_rng_edges, ScalarQuantizerInt8
|
|
225
225
|
from deglib.search import rerank
|
|
226
226
|
|
|
227
227
|
num_vectors, dims = 10_000, 128
|
|
@@ -244,15 +244,17 @@ graph = deglib.builder.build_from_data(
|
|
|
244
244
|
pruned_count = prune_non_rng_edges(graph)
|
|
245
245
|
print(f"Pruned {pruned_count} redundant edges.")
|
|
246
246
|
|
|
247
|
-
# 4.
|
|
248
|
-
|
|
247
|
+
# 4. Fit Int8 quantizer on base dataset and quantize features for memory reduction and ultra-fast search
|
|
248
|
+
quantizer = ScalarQuantizerInt8()
|
|
249
|
+
quantizer.fit(sorted_data)
|
|
250
|
+
quant_int8_data = quantizer.quantize(sorted_data)
|
|
249
251
|
int8_space = deglib.FloatSpace.create(dims, deglib.Metric.Int8_InnerProduct)
|
|
250
252
|
|
|
251
253
|
# 5. Convert mutable graph to a compact ReadOnlyGraph equipped with the quantized features
|
|
252
254
|
readonly_graph = graph.to_readonly(feature_space=int8_space, custom_features=quant_int8_data)
|
|
253
255
|
|
|
254
|
-
# 6.
|
|
255
|
-
quant_query =
|
|
256
|
+
# 6. Quantize query using the EXACT SAME calibrated scale, then search
|
|
257
|
+
quant_query = quantizer.quantize(query)
|
|
256
258
|
candidate_indices = readonly_graph.search(quant_query, k=20, eps=0.1, return_distances=False)
|
|
257
259
|
|
|
258
260
|
# 7. Exact distance reranking of top candidates on original float32 data
|
|
@@ -193,7 +193,7 @@ A complete end-to-end pipeline demonstrating **FLAS pre-sorting**, **multithread
|
|
|
193
193
|
```python
|
|
194
194
|
import numpy as np
|
|
195
195
|
import deglib
|
|
196
|
-
from deglib.optimization import presort, prune_non_rng_edges,
|
|
196
|
+
from deglib.optimization import presort, prune_non_rng_edges, ScalarQuantizerInt8
|
|
197
197
|
from deglib.search import rerank
|
|
198
198
|
|
|
199
199
|
num_vectors, dims = 10_000, 128
|
|
@@ -216,15 +216,17 @@ graph = deglib.builder.build_from_data(
|
|
|
216
216
|
pruned_count = prune_non_rng_edges(graph)
|
|
217
217
|
print(f"Pruned {pruned_count} redundant edges.")
|
|
218
218
|
|
|
219
|
-
# 4.
|
|
220
|
-
|
|
219
|
+
# 4. Fit Int8 quantizer on base dataset and quantize features for memory reduction and ultra-fast search
|
|
220
|
+
quantizer = ScalarQuantizerInt8()
|
|
221
|
+
quantizer.fit(sorted_data)
|
|
222
|
+
quant_int8_data = quantizer.quantize(sorted_data)
|
|
221
223
|
int8_space = deglib.FloatSpace.create(dims, deglib.Metric.Int8_InnerProduct)
|
|
222
224
|
|
|
223
225
|
# 5. Convert mutable graph to a compact ReadOnlyGraph equipped with the quantized features
|
|
224
226
|
readonly_graph = graph.to_readonly(feature_space=int8_space, custom_features=quant_int8_data)
|
|
225
227
|
|
|
226
|
-
# 6.
|
|
227
|
-
quant_query =
|
|
228
|
+
# 6. Quantize query using the EXACT SAME calibrated scale, then search
|
|
229
|
+
quant_query = quantizer.quantize(query)
|
|
228
230
|
candidate_indices = readonly_graph.search(quant_query, k=20, eps=0.1, return_distances=False)
|
|
229
231
|
|
|
230
232
|
# 7. Exact distance reranking of top candidates on original float32 data
|