qdrant / qdrant/fastembed

[Bug]: wrong retriever from version 0.6.0

Open
#536 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.2k
Forks
248
Avg merge
4d 8h
Merged PRs (30d)
4

Description

What happened?

Hi, I implemented a prefech retriever.
I am using the model:
SparseTextEmbedding("Qdrant/bm25")
TextEmbedding("sentence-transformers/paraphrase-multilingual-mpnet-base-v2")
LateInteractionTextEmbedding("answerdotai/answerai-colbert-small-v1")

I tried the query: "Errore 0x000006D9"

This is the abnormal behaviour:
with fastembed version 0.5.1 it retrieves the right qdrant docuemnt
From fastembed 0.6.0 to 0.7.1 it retrieves the wrong qdrant document

instead, if the query is: "Erro 0x000006D9" or "Erro 0x000006D9" it works fine.

This is my function;

def retrieve_with_prf(query, limit=5, k_feedback=3):
    try:
        sparse_vec = list(sparse_embedding_model.embed([query]))[0]
        initial_results = client.query_points(
            collection_name=collection_name,
            query=models.SparseVector(**sparse_vec.as_object()),
            using=sparse_vector_name,
            with_payload=True,
            limit=k_feedback
        )

        if not initial_results or not initial_results.points:
            return []

        feedback_texts = [
            p.payload.get('text', '')[:1000]
            for p in initial_results.points
            if p.payload.get('text')
        ]
        if not feedback_texts:
            return []

        feedback_embeddings = list(dense_embedding_model.embed(feedback_texts))
        avg_vec = np.mean(feedback_embeddings, axis=0).tolist()

        return client.query_points(
            collection_name=collection_name,
            query=avg_vec,
            using=dense_vector_name,
            with_payload=True,
            limit=limit
        )
    except Exception:
        return []
What is the expected behaviour?

No response

A minimal reproducible example

No response

What Python version are you on? e.g. python --version

python 3.13

FastEmbed version

v0.7.1

What os are you seeing the problem on?

No response

Relevant stack traces and/or logs

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with retrieve_with_prf and reproduce the exact "Errore 0x000006D9" query using the listed embedding models, comparing fastembed 0.5.1 with 0.6.0-0.7.1. Confirm which retrieval stage changes and use the working shorter query as a comparison; done means the exact query retrieves the expected Qdrant document again, with a regression test if the repository exposes one.

Written by the indexing model from the issue text.

Assessment

Tech stack
numpy, python
Domain
machine-learning, search
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.