anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Turns Persian text into 1,024-number embeddings for semantic search and retrieval. Built for developers who need to match Persian questions to the right passages.
Yalda Embedding is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.
pip install -U sentence-transformers transformers torch
Yalda Embedding turns Persian text into vectors of 1,024 numbers, so a search can match by meaning instead of exact words. It is a tuned copy of Qwen3-Embedding-0.6B, trained on over one million Persian pairs of a query and its matching document. Knowledge distilled from a larger teacher model, F2LLM-v2-8B, shaped the training too.
Developers and search teams who need retrieval over Persian text, and researchers who compare embedding models on Persian tasks.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Software | Backend developers | Add meaning-based search to a Persian document store | A user asks where Iran's capital is and gets the passage about Tehran |
| Education | Learning platform teams | Match student questions to Persian study passages | A question about autumn leaf colour finds the passage on chlorophyll breaking down |
| Research | NLP researchers | Use it as a retrieval baseline on Persian tasks | Compare scores on the FaMTEB retrieval tasks the card lists |
| Knowledge management | Data teams | Embed internal Persian documents once and index them for later queries | Precompute passage vectors and search them in a vector store |
You can skip it if your text is not Persian, because the card describes it as built and tested for Persian.
It runs wherever Python and the sentence-transformers library run.
| Use case | Who | What they get back |
|---|---|---|
| Semantic search | App developers | The passage closest in meaning to each query |
| Dense retrieval | Search teams | Passages ranked by cosine similarity |
| Model comparison | Researchers | Retrieval scores on Persian tasks to set beside other models |
You need Python with pip and room for the weights, which are about 2.4 GB in F32.
pip install -U sentence-transformers transformers torch
pip install -U huggingface_hub hf download Yaldat/Yalda-Embedding
Load the model, set left padding and a 512 token limit, then encode queries with the saved query prompt and passages with the document prompt. Normalize both sets, and multiply the two matrices to get similarity scores.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Yaldat/Yalda-Embedding")
model.tokenizer.padding_side = "left"
model.max_seq_length = 512
queries = [
"پایتخت ایران کجاست؟",
"چرا برگ درختان در پاییز تغییر رنگ میدهد؟",
]
documents = [
"تهران پایتخت ایران و یکی از بزرگترین شهرهای این کشور است.",
"در پاییز با کاهش نور خورشید، کلروفیل برگها تجزیه میشود و رنگدانههای دیگر نمایان میشوند.",
"کتابخانهها فضایی برای مطالعه و دسترسی به منابع علمی فراهم میکنند.",
]
query_embeddings = model.encode(
queries,
prompt_name="query",
normalize_embeddings=True,
)
document_embeddings = model.encode(
documents,
prompt_name="document",
normalize_embeddings=True,
)
scores = query_embeddings @ document_embeddings.T
for query, row in zip(queries, scores):
best_index = int(row.argmax())
print(f"Query: {query}")
print(f"Best passage: {documents[best_index]}")
print(f"Similarity: {row[best_index]:.4f}\n")| Tool | What it does |
|---|---|
| SentenceTransformer | Loads the model by its name |
| encode with prompt_name query | Adds the saved search instruction to each query |
| encode with prompt_name document | Embeds passages with no instruction added |
| normalize_embeddings=True | Makes the dot product equal the cosine similarity |
Take the question "پایتخت ایران کجاست؟", which asks where Iran's capital is, and three Persian passages. The script encodes all four texts, then prints the query, the best passage and its similarity score to four decimals. A passage that talks about Tehran is the natural match.
An embedding is a list of numbers that stands for what a text means. Two texts with similar meaning get lists that point the same way, and the cosine score tells you how close they are. Run the sample under How to use it first, then swap in your own Persian questions and passages.
Under the hood it is a decoder-only Transformer with 28 blocks and grouped-query attention. It reads text left to right and takes the last non-padding token as the vector, which is why the sample sets left padding. Training used relational knowledge distillation from F2LLM-v2-8B. The trade is size against reach: it keeps the 0.6B footprint and scores close to the 4B Qwen model on the card's eight tasks, but only 512 tokens were tested.
The numbers below come from the card's own evaluation, so read them as reported results.
Turns Persian text into 1,024-number embeddings for semantic search and retrieval. Built for developers who need to match Persian questions to the right passages.
Made by Yaldat on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.
What it is: Yalda Embedding turns Persian text into vectors of 1,024 numbers, so a search can match by meaning instead of exact words. It is a tuned copy of Qwen3-Embedding-0.6B, trained on over one million Persian pairs of a query and its matching document. Knowledge distilled from a larger teacher model, F2LLM-v2-8B, shaped the training too.
Who it suits: Developers and search teams who need retrieval over Persian text, and researchers who compare embedding models on Persian tasks.
Industry | Who uses it | How they use it | Example
Software | Backend developers | Add meaning-based search to a Persian document store | A user asks where Iran's capital is and gets the passage about Tehran
Education | Learning platform teams | Match student questions to Persian study passages | A question about autumn leaf colour finds the passage on chlorophyll breaking down
Research | NLP researchers | Use it as a retrieval baseline on Persian tasks | Compare scores on the FaMTEB retrieval tasks the card lists
Knowledge management | Data teams | Embed internal Persian documents once and index them for later queries | Precompute passage vectors and search them in a vector store
You can skip it if your text is not Persian, because the card describes it as built and tested for Persian.
Where to use it: It runs wherever Python and the sentence-transformers library run.
Use case | Who | What they get back
Semantic search | App developers | The passage closest in meaning to each query
Dense retrieval | Search teams | Passages ranked by cosine similarity
Model comparison | Researchers | Retrieval scores on Persian tasks to set beside other models
How to set it up: You need Python with pip and room for the weights, which are about 2.4 GB in F32.
pip install -U sentence-transformers transformers torch
pip install -U huggingface_hub
hf download Yaldat/Yalda-Embedding
How to use it: Load the model, set left padding and a 512 token limit, then encode queries with the saved query prompt and passages with the document prompt. Normalize both sets, and multiply the two matrices to get similarity scores.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Yaldat/Yalda-Embedding")
model.tokenizer.padding_side = "left"
model.max_seq_length = 512
queries = [
"پایتخت ایران کجاست؟",
"چرا برگ درختان در پاییز تغییر رنگ میدهد؟",
]
documents = [
"تهران پایتخت ایران و یکی از بزرگترین شهرهای این کشور است.",
"در پاییز با کاهش نور خورشید، کلروفیل برگها تجزیه میشود و رنگدانههای دیگر نمایان میشوند.",
"کتابخانهها فضایی برای مطالعه و دسترسی به منابع علمی فراهم میکنند.",
]
query_embeddings = model.encode(
queries,
prompt_name="query",
normalize_embeddings=True,
)
document_embeddings = model.encode(
documents,
prompt_name="document",
normalize_embeddings=True,
)
scores = query_embeddings @ document_embeddings.T
for query, row in zip(queries, scores):
best_index = int(row.argmax())
print(f"Query: {query}")
print(f"Best passage: {documents[best_index]}")
print(f"Similarity: {row[best_index]:.4f}\n")
Tool | What it does
SentenceTransformer | Loads the model by its name
encode with prompt_name query | Adds the saved search instruction to each query
encode with prompt_name document | Embeds passages with no instruction added
normalize_embeddings=True | Makes the dot product equal the cosine similarity
Example: Take the question "پایتخت ایران کجاست؟", which asks where Iran's capital is, and three Persian passages. The script encodes all four texts, then prints the query, the best passage and its similarity score to four decimals. A passage that talks about Tehran is the natural match.
For newcomers and experts: An embedding is a list of numbers that stands for what a text means. Two texts with similar meaning get lists that point the same way, and the cosine score tells you how close they are. Run the sample under How to use it first, then swap in your own Persian questions and passages.
Under the hood it is a decoder-only Transformer with 28 blocks and grouped-query attention. It reads text left to right and takes the last non-padding token as the vector, which is why the sample sets left padding. Training used relational knowledge distillation from F2LLM-v2-8B. The trade is size against reach: it keeps the 0.6B footprint and scores close to the 4B Qwen model on the card's eight tasks, but only 512 tokens were tested.
Persian text goes in
Add the query or document prompt
Encode with the 28-block transformer
Take the last token as the vector
Normalize it to unit length
Dot product gives the match score
Good to know: The numbers below come from the card's own evaluation, so read them as reported results.
Title: Mean retrieval score on eight Persian tasks
Qwen3-Embedding-4B: 0.5563 score
Yalda Embedding: 0.5488 score
F2LLM-v2-0.6B: 0.5063 score
Diba-Embed: 0.4788 score
Qwen3-Embedding-0.6B: 0.4713 score
Download its files with Hugging Face's command line:
pip install -U huggingface_hub
hf download Yaldat/Yalda-Embedding
Then follow the usage in its model card. Nothing in this kit runs by itself.
README.md 8 KB
Listed Hugging Face models in the same category that share the most tags with this one.
| Product | Downloads, last 30 days | Likes | Parameters | License | Last change |
|---|---|---|---|---|---|
| Yalda Embedding This page | 204 | 5 | 596M | apache-2.0 | |
| Qwen3-Embedding-0.6BShares sentence-similarity · sentence-transformers · qwen3 | 8,761,091 | 1,346 | 596M | apache-2.0 | |
| Qwen3-Embedding-4BShares sentence-similarity · sentence-transformers · qwen3 | 2,426,700 | 351 | 4B | apache-2.0 | |
| Qwen3-Embedding-8BShares sentence-similarity · sentence-transformers · qwen3 | 2,358,928 | 858 | 7.6B | apache-2.0 | |
| voyage-4-nanoShares sentence-transformers · qwen3 · feature-extraction | 90,118 | 152 | 346M | apache-2.0 | |
| all-MiniLM-L6-v2Shares sentence-similarity · sentence-transformers · feature-extraction | 174,740,184 | 6,104 | 22.7M | apache-2.0 |
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…
backnotprop · Kit
Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.