Download tests/make_smoke_reference.py from EverPaper/embeddinggemma-2-coreai: direct link, hf CLI and curl.
- Browser
- Download file 2.7 kB
-
https://huggingface.co/EverPaper/embeddinggemma-2-coreai/resolve/main/tests/make_smoke_reference.py
- Command line
-
hf download hf://EverPaper/embeddinggemma-2-coreai/tests/make_smoke_reference.py
-
curl -L -o make_smoke_reference.py https://huggingface.co/EverPaper/embeddinggemma-2-coreai/resolve/main/tests/make_smoke_reference.py
2.7 kB
| #!/usr/bin/env python3 | |
| # Copyright 2026 Everpaper. Licensed under the Apache License, Version 2.0 (see ../LICENSE). | |
| """Regenerate `smoke-reference.json`: fp32 reference embeddings for three fictional sentences, computed with | |
| sentence-transformers on the ORIGINAL google/embeddinggemma-2 checkpoint (text only, CPU, float32). | |
| python3 make_smoke_reference.py --model google/embeddinggemma-2 --out smoke-reference.json | |
| Needs: sentence-transformers >= 6.1, transformers >= 5.19, torch, torchvision and pillow (the checkpoint's processor | |
| is multimodal and imports them even for text). The shipped file was produced with sentence-transformers 6.1.0 / | |
| transformers 5.19.0 / torch 2.14.1; torchvision 0.29.1 is the matching version (see ../python/requirements.lock). | |
| """ | |
| from __future__ import annotations | |
| import argparse | |
| import json | |
| from pathlib import Path | |
| CASES = [ | |
| {"kind": "search_query", "text": "When does the warehouse lease in Brindlemoor expire?"}, | |
| {"kind": "document", "text": "The warehouse lease in Brindlemoor runs until the last day of March; the landlord agreed to fix the window before then."}, | |
| {"kind": "document", "text": "Lista della spesa: latte d'avena, due limoni, riso basmati, coriandolo e croccantini per il cane."}, | |
| ] | |
| PROMPT_NAME = {"search_query": "query", "document": "document"} | |
| def main() -> None: | |
| ap = argparse.ArgumentParser(description=__doc__.splitlines()[0]) | |
| ap.add_argument("--model", default="google/embeddinggemma-2", help="HF id or local checkpoint folder") | |
| ap.add_argument("--out", default="smoke-reference.json") | |
| ap.add_argument("--threshold", type=float, default=0.999) | |
| args = ap.parse_args() | |
| import sentence_transformers | |
| import torch | |
| import transformers | |
| from sentence_transformers import SentenceTransformer | |
| model = SentenceTransformer(args.model, device="cpu", model_kwargs={"torch_dtype": torch.float32}) | |
| out = { | |
| "reference": "sentence-transformers fp32 on CPU, original checkpoint, text only", | |
| "versions": {"sentence_transformers": sentence_transformers.__version__, "transformers": transformers.__version__, | |
| "torch": torch.__version__}, | |
| "threshold_cosine": args.threshold, | |
| "cases": [], | |
| } | |
| for c in CASES: | |
| v = model.encode(c["text"], prompt_name=PROMPT_NAME[c["kind"]], normalize_embeddings=True, convert_to_numpy=True) | |
| out["cases"].append({**c, "embedding": [round(float(x), 7) for x in v.tolist()]}) | |
| print(c["kind"], len(v), c["text"][:50]) | |
| Path(args.out).write_text(json.dumps(out, ensure_ascii=False, indent=1), encoding="utf-8") | |
| print("wrote", args.out) | |
| if __name__ == "__main__": | |
| main() | |