Instructions to use KAUSTAcademy/RecipeMatching_V2_Qwen3-Embedding-0.6B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use KAUSTAcademy/RecipeMatching_V2_Qwen3-Embedding-0.6B with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("KAUSTAcademy/RecipeMatching_V2_Qwen3-Embedding-0.6B") sentences = [ "That is a happy person", "That is a happy dog", "That is a very happy person", "Today is a sunny day" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
RecipeMatching V2 (Qwen3-Embedding-0.6B)
One of the three models released with the paper Recipe-Matching, Not Equivalence (Ali Habibullah, Mohammad Alshiekh, Yazan Alshoibi, Salman Khan and Naeemullah Khan, 2026). Code, data and results: https://github.com/KAUST-Academy/recipe-matching-not-equivalence.
What it is. The paper's mixed-supervision model V2: Qwen3-Embedding-0.6B fine-tuned on a
mixture of 30,323 rows from four sources (8,747 computer-algebra-verified pair rows with
negatives capped at two per row, 12,000 problem-to-solution rows as replay, 4,576
cross-transform positives and 5,000 same-topic mid-difficulty negatives;
data/phase2/mixed_pairs.jsonl in the repository), with the task instruction below attached to
queries during training. Seed 42; the full training record is run_config.json in this
repository, and the training command is in the GitHub README.
Results of this checkpoint (seed 42, R@1 / R@5 / R@10, queries encoded with the instruction):
| Evaluation | R@1 | R@5 | R@10 |
|---|---|---|---|
| MathNet-Retrieve easy tier (15,000 queries, 117,088 documents) | 21.70 | 94.48 | 97.81 |
| MathNet-Retrieve medium tier | 2.71 | 67.25 | 82.06 |
| MathNet-Retrieve hard tier | 0.01 | 7.02 | 32.03 |
| Cross-language duplicates (strict) | 74.30 | 89.31 | 93.13 |
Usage. Encode queries with the task instruction, not the model's stored query prompt
(which is the base model's default and not what V2 was trained with).
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("KAUSTAcademy/RecipeMatching_V2_Qwen3-Embedding-0.6B")
instruction = "Instruct: Given a math problem, retrieve problems that are mathematically equivalent to it.\nQuery:"
q = model.encode(["Find all real x with x^2 = 2x."], prompt=instruction)
d = model.encode(["Determine every real solution of x^2 - 2x = 0."])
print(model.similarity(q, d))
Citation
@misc{habibullah2026recipematchingequivalence,
title={Recipe-Matching, Not Equivalence},
author={Ali Habibullah and Mohammad Alshiekh and Yazan Alshoibi and Salman Khan and Naeemullah Khan},
year={2026},
eprint={2609.31927},
archivePrefix={arXiv},
primaryClass={cs.IR},
url={https://arxiv.org/abs/2609.31927},
}
- Downloads last month
- 14