GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — docarray/scripts at docarray-v1-fixes · docarray/docarray

This repository was archived by the owner on Sep 9, 2026. It is now read-only.

Expand file tree

/

scripts

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
 
 
/

scripts

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
README.md
README.md
 
 
benchmarking.py
benchmarking.py
 
 
benchmarking_html.py
benchmarking_html.py
 
 
benchmarking_sift1m.py
benchmarking_sift1m.py
 
 
benchmarking_utils.py
benchmarking_utils.py
 
 
black.sh
black.sh
 
 
docker-compose.yml
docker-compose.yml
 
 
docstrings_lint.sh
docstrings_lint.sh
 
 
gen_doc_property_mixin.py
gen_doc_property_mixin.py
 
 
gen_ns_property_mixin.py
gen_ns_property_mixin.py
 
 
get-all-oldproto-test-paths.sh
get-all-oldproto-test-paths.sh
 
 
get-all-test-paths.sh
get-all-test-paths.sh
 
 
get-last-release-note.py
get-last-release-note.py
 
 
overload_docstrings.py
overload_docstrings.py
 
 
overload_docstrings.sh
overload_docstrings.sh
 
 
prepend_version_json.py
prepend_version_json.py
 
 
release.sh
release.sh
 
 
update-fluent-interface.py
update-fluent-interface.py
 
 

README.md

Outline

Scripts

Benchmarking on sift1m

Download dataset

wget http://ann-benchmarks.com/sift-128-euclidean.hdf5

Run storage backends

docker-compose up -d

Run benchmarking script

Install dependencies:

pip install "docarray[benchmark,qdrant,annlite,weaviate,elasticsearch,redis]"

Run the benchmark on sift1m or random dataset:

# sif1M
python benchmarking_sift1m.py [-h] [--exclude-backends EXCLUDE_BACKENDS] 

# random
python benchmarking.py [-h] [--fixed-hnsw] [--exclude-backends EXCLUDE_BACKENDS] 

options:
  -h, --help            show this help message and exit
  --fixed-hnsw          Whether to use default HNSW configurations for random dataset
  --exclude-backends EXCLUDE_BACKENDS
                        List of comma-separated backends to exclude from the benchmarks

Available storage backends include: memory, sqlite, annlite, qdrant, weaviate, elasticsearch, and redis.

The results of the benchmarks are stored in the current directory:

  • benchmark-seconds-{storage}.csv
  • benchmark-qps-{n}.csv
  • benchmark.png, a figure of of Recall@10/QPS for all storage backends

Generate the chart of Recall/QPS on sift1m dataset benchmarking results:

python benchmarking_html.py

Benchmark HNSW parameters

Current HNSW parameters are written in the function get_configuration_storage_backends of benchmarking_utils.py. Parameters include:

  • ef_construction/ef_construct: Number of maximum allowed potential outgoing edges candidates for each node in the graph, during the graph building.
  • max_connection/max_connections/m: Number of maximum allowed outgoing edges for each node in the graph in each layer.
  • ef_search/hnsw_ef/ef/num_candidates/ef_runtime: Number of maximum top candidates to hold during the KNN search.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.