From 1387e6c70c4af333eaccdf160dca55d7011c4730 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Mon, 12 Oct 2026 18:53:13 +0700 Subject: [PATCH 1/3] fix: accept avx2 and vnni outputs of int8 models in tests --- tests/misc/logo.png | Bin 0 -> 19374 bytes tests/test_image_onnx_embeddings.py | 27 +++++++++++++++++++-------- tests/test_text_cross_encoder.py | 5 +++-- tests/test_text_onnx_embeddings.py | 17 ++++++++++++----- 4 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 tests/misc/logo.png diff --git a/tests/misc/logo.png b/tests/misc/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8805f2b98a85ac615ad0ec22334ed681b1aa74b7 GIT binary patch literal 19374 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 Hu0mjfna~*1 literal 0 HcmV?d00001 diff --git a/tests/test_image_onnx_embeddings.py b/tests/test_image_onnx_embeddings.py index 2e5288118..5a9e64229 100644 --- a/tests/test_image_onnx_embeddings.py +++ b/tests/test_image_onnx_embeddings.py @@ -5,7 +5,6 @@ import numpy as np import pytest -import requests from PIL import Image from fastembed import ImageEmbedding @@ -29,8 +28,15 @@ "nomic-ai/nomic-embed-vision-v1.5": np.array( [0.0048, -0.0254, 0.0067, -0.0296, -0.0435, -0.0123, 0.0024, -0.0361, -0.0703, -0.0186] ), - "nomic-ai/nomic-embed-vision-v1.5-Q": np.array( - [-0.0011, -0.0477, 0.0024, -0.049, -0.0458, -0.0314, 0.017, -0.0383, -0.0537, -0.021] + # onnxruntime's avx2 int8 kernel saturates on this model's full-range int8 weights, while vnni + # and amx compute them exactly, ci runners come with either + "nomic-ai/nomic-embed-vision-v1.5-Q": ( + np.array( # x86-64 avx2 + [-0.0006, -0.0446, 0.0069, -0.0553, -0.0459, -0.0261, 0.0058, -0.0463, -0.0606, -0.019] + ), + np.array( # x86-64 vnni + [0.0020, -0.0376, 0.0094, -0.0402, -0.0457, -0.0216, 0.0100, -0.0378, -0.0650, -0.0205] + ), ), "google/siglip2-base-patch16-224": np.array( [-0.02095927, -0.0075177, -0.00144479, -0.0080948, 0.05031789] @@ -82,21 +88,26 @@ def test_embedding(model_cache, model_name: str) -> None: dim = model_desc.dim with model_cache(model_desc.model) as model: + # quantized models scale activations over the whole batch, so the first embedding + # depends on every image here, keep them local files images = [ TEST_MISC_DIR / "image.jpeg", str(TEST_MISC_DIR / "small_image.jpeg"), Image.open((TEST_MISC_DIR / "small_image.jpeg")), - Image.open(BytesIO(requests.get("https://qdrant.tech/img/logo.png").content)), + Image.open(BytesIO((TEST_MISC_DIR / "logo.png").read_bytes())), ] embeddings = list(model.embed(images)) embeddings = np.stack(embeddings, axis=0) assert embeddings.shape == (len(images), dim) canonical_vector = CANONICAL_VECTOR_VALUES[model_desc.model] - - assert np.allclose( - embeddings[0, : canonical_vector.shape[0]], canonical_vector, atol=1e-3 - ), model_desc.model + canonical_variants = ( + canonical_vector if isinstance(canonical_vector, tuple) else (canonical_vector,) + ) + prefix = embeddings[0, : canonical_variants[0].shape[0]] + assert any( + np.allclose(prefix, expected, atol=1e-3) for expected in canonical_variants + ), f"{model_desc.model}: {prefix}" assert np.allclose(embeddings[1], embeddings[2]), model_desc.model diff --git a/tests/test_text_cross_encoder.py b/tests/test_text_cross_encoder.py index 85988ca8f..b00cf862b 100644 --- a/tests/test_text_cross_encoder.py +++ b/tests/test_text_cross_encoder.py @@ -13,8 +13,9 @@ "BAAI/bge-reranker-base": np.array([6.15733337, -3.65939403]), "BAAI/bge-reranker-v2-m3": np.array([8.78182220, -5.46485329]), "BAAI/bge-reranker-v2-m3-int8": ( - np.array([8.59202957, -5.39362288]), # ONNX Runtime 1.27.0 - np.array([8.51154804, -5.56898642]), # ONNX Runtime 1.30.0 + np.array([8.59202957, -5.39362288]), # arm64, ONNX Runtime 1.27.0 + np.array([8.51154804, -5.56898642]), # arm64, ONNX Runtime 1.30.0 + np.array([8.85104847, -5.73784494]), # x86-64 avx2 and vnni, ONNX Runtime 1.30.0 ), "jinaai/jina-reranker-v1-tiny-en": np.array([2.5911, 0.1122]), "jinaai/jina-reranker-v1-turbo-en": np.array([1.8295, -2.8908]), diff --git a/tests/test_text_onnx_embeddings.py b/tests/test_text_onnx_embeddings.py index 632bb70cd..1d8e243e5 100644 --- a/tests/test_text_onnx_embeddings.py +++ b/tests/test_text_onnx_embeddings.py @@ -56,8 +56,11 @@ "nomic-ai/nomic-embed-text-v1.5": np.array( [-0.15407836, -0.03053198, -3.9138033, 0.1910364, 0.13224715] ), - "nomic-ai/nomic-embed-text-v1.5-Q": np.array( - [0.0802303, 0.3700881, -4.3053818, 0.4431803, -0.271572] + # onnxruntime's avx2 int8 kernel saturates on this model's full-range int8 weights, while vnni + # and amx compute them exactly, ci runners come with either + "nomic-ai/nomic-embed-text-v1.5-Q": ( + np.array([0.0802303, 0.3700881, -4.3053818, 0.4431803, -0.271572]), # x86-64 avx2 + np.array([0.12422204, 0.14779393, -3.8240886, 0.47303754, -0.14925367]), # x86-64 vnni ), "thenlper/gte-large": np.array( [-0.00986551, -0.00018734, 0.00605892, -0.03289612, -0.0387564], @@ -188,9 +191,13 @@ def test_embedding(model_cache, model_name: str) -> None: assert embeddings.shape == (2, dim) canonical_vector = CANONICAL_VECTOR_VALUES[model_desc.model] - assert np.allclose( - embeddings[0, : canonical_vector.shape[0]], canonical_vector, atol=1e-3 - ), model_desc.model + canonical_variants = ( + canonical_vector if isinstance(canonical_vector, tuple) else (canonical_vector,) + ) + prefix = embeddings[0, : canonical_variants[0].shape[0]] + assert any( + np.allclose(prefix, expected, atol=1e-3) for expected in canonical_variants + ), f"{model_desc.model}: {prefix}" def test_query_embedding(model_cache) -> None: From 7806a6a850a4a125aebc25007b45fe6b03ae9da0 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Mon, 12 Oct 2026 18:56:31 +0700 Subject: [PATCH 2/3] tests: add a temporary ci job for the int8 models on several runners --- .github/tmp/restrict_models.py | 18 ++++++++ .github/workflows/tmp-quantized-cpu-check.yml | 46 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 .github/tmp/restrict_models.py create mode 100644 .github/workflows/tmp-quantized-cpu-check.yml diff --git a/.github/tmp/restrict_models.py b/.github/tmp/restrict_models.py new file mode 100644 index 000000000..7889ddd58 --- /dev/null +++ b/.github/tmp/restrict_models.py @@ -0,0 +1,18 @@ +"""pytest -p restrict_models: limits the tests to the int8 models of #803, temporary""" + +from fastembed import ImageEmbedding, TextEmbedding +from fastembed.rerank.cross_encoder import TextCrossEncoder + +KEEP = { + "nomic-ai/nomic-embed-text-v1.5-Q", + "nomic-ai/nomic-embed-vision-v1.5-Q", + "BAAI/bge-reranker-v2-m3-int8", +} + +for cls in (TextEmbedding, ImageEmbedding, TextCrossEncoder): + original = cls._list_supported_models.__func__ + + def restricted(c, original=original): + return [m for m in original(c) if m.model in KEEP] + + cls._list_supported_models = classmethod(restricted) diff --git a/.github/workflows/tmp-quantized-cpu-check.yml b/.github/workflows/tmp-quantized-cpu-check.yml new file mode 100644 index 000000000..b817431b6 --- /dev/null +++ b/.github/workflows/tmp-quantized-cpu-check.yml @@ -0,0 +1,46 @@ +name: tmp quantized cpu check + +# temporary, remove before merging: samples several runners to check the per-cpu canonical values +# of the int8 models, see #803 +on: + pull_request: + branches: [ main ] + +permissions: + contents: read + +jobs: + check: + strategy: + fail-fast: false + matrix: + sample: [1, 2, 3, 4, 5, 6, 7, 8] + runs-on: ubuntu-latest + name: sample ${{ matrix.sample }} + + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Set up Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: '3.14.x' + - name: Install dependencies + run: | + python -m pip install poetry + poetry config virtualenvs.create false + poetry install --no-interaction --no-ansi --without dev,docs + - name: CPU + run: | + lscpu | grep -E 'Model name|^CPU\(s\)' + echo "int8 relevant flags: $(grep -m1 -owE 'avx2|avx512f|avx512_vnni|avx_vnni|amx_int8' /proc/cpuinfo | sort -u | tr '\n' ' ')" + - name: Run the int8 model tests + env: + CI: '' # local mode tests every model under 1 GB, restrict_models keeps the three int8 ones + PYTHONPATH: .github/tmp + run: | + poetry run pytest -p restrict_models -q --durations=0 \ + tests/test_text_onnx_embeddings.py::test_embedding \ + tests/test_image_onnx_embeddings.py::test_embedding \ + tests/test_text_cross_encoder.py::test_rerank From 37332b1e2b6915fb562fc3c58259559387994f78 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Mon, 12 Oct 2026 19:04:33 +0700 Subject: [PATCH 3/3] remove tmp ci --- .github/tmp/restrict_models.py | 18 -------- .github/workflows/tmp-quantized-cpu-check.yml | 46 ------------------- 2 files changed, 64 deletions(-) delete mode 100644 .github/tmp/restrict_models.py delete mode 100644 .github/workflows/tmp-quantized-cpu-check.yml diff --git a/.github/tmp/restrict_models.py b/.github/tmp/restrict_models.py deleted file mode 100644 index 7889ddd58..000000000 --- a/.github/tmp/restrict_models.py +++ /dev/null @@ -1,18 +0,0 @@ -"""pytest -p restrict_models: limits the tests to the int8 models of #803, temporary""" - -from fastembed import ImageEmbedding, TextEmbedding -from fastembed.rerank.cross_encoder import TextCrossEncoder - -KEEP = { - "nomic-ai/nomic-embed-text-v1.5-Q", - "nomic-ai/nomic-embed-vision-v1.5-Q", - "BAAI/bge-reranker-v2-m3-int8", -} - -for cls in (TextEmbedding, ImageEmbedding, TextCrossEncoder): - original = cls._list_supported_models.__func__ - - def restricted(c, original=original): - return [m for m in original(c) if m.model in KEEP] - - cls._list_supported_models = classmethod(restricted) diff --git a/.github/workflows/tmp-quantized-cpu-check.yml b/.github/workflows/tmp-quantized-cpu-check.yml deleted file mode 100644 index b817431b6..000000000 --- a/.github/workflows/tmp-quantized-cpu-check.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: tmp quantized cpu check - -# temporary, remove before merging: samples several runners to check the per-cpu canonical values -# of the int8 models, see #803 -on: - pull_request: - branches: [ main ] - -permissions: - contents: read - -jobs: - check: - strategy: - fail-fast: false - matrix: - sample: [1, 2, 3, 4, 5, 6, 7, 8] - runs-on: ubuntu-latest - name: sample ${{ matrix.sample }} - - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - name: Set up Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: '3.14.x' - - name: Install dependencies - run: | - python -m pip install poetry - poetry config virtualenvs.create false - poetry install --no-interaction --no-ansi --without dev,docs - - name: CPU - run: | - lscpu | grep -E 'Model name|^CPU\(s\)' - echo "int8 relevant flags: $(grep -m1 -owE 'avx2|avx512f|avx512_vnni|avx_vnni|amx_int8' /proc/cpuinfo | sort -u | tr '\n' ' ')" - - name: Run the int8 model tests - env: - CI: '' # local mode tests every model under 1 GB, restrict_models keeps the three int8 ones - PYTHONPATH: .github/tmp - run: | - poetry run pytest -p restrict_models -q --durations=0 \ - tests/test_text_onnx_embeddings.py::test_embedding \ - tests/test_image_onnx_embeddings.py::test_embedding \ - tests/test_text_cross_encoder.py::test_rerank