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…
Scores queries against text, images and document pages with a ColBERT-style model that keeps one small vector per token. For developers who build search over mixed documents.
pplx-embed-v2-late-0.6b 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 'sentence-transformers>=6.0.0' 'transformers>=5.4.0'
pplx-embed-v2-late-0.6b is the smaller model in perplexity-ai's pplx-embed-v2-late family of multimodal retrievers. It is built on Qwen3.5 and gives each token its own 128-dimension vector. A query and a document are then matched with MaxSim, a late-interaction score. It shares an embedding space with the 9B model, so this one can query an index built by the larger one.
Developers who build search over text, images and document pages, and who want token-level matching with a small model.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Software | Search engineers | Rank passages for a query with late interaction | Score a short question against a list of text passages |
| Document-heavy teams | Developers with scanned pages | Embed page images and match them to text queries | Find the page that answers a written question |
| Legal research | Search tool builders | Match legal questions to source passages | The source's own query asks what statute governs limitations |
Anyone who needs a chat model or text generation can skip it, because it only produces vectors and scores.
| Use case | Who | What they get back |
|---|---|---|
| Text retrieval | Search developers | MaxSim scores between each query and each passage |
| Page image retrieval | Developers with scanned pages | MaxSim scores between a text query and each page image |
| Cheap queries on a big index | Teams using the 9B model for indexing | A smaller model that can answer queries against that index |
What you need first:
pip install 'sentence-transformers>=6.0.0' 'transformers>=5.4.0'
pip install -U huggingface_hub hf download perplexity-ai/pplx-embed-v2-late-0.6b
Encode queries with encode_query and documents with encode_document, then call similarity to get MaxSim scores. Send text-only and image-only batches in separate calls, because a batch that mixes both is not supported. The export uses native Sentence Transformers modules, so it needs no custom Python code.
from PIL import Image
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder(
"perplexity-ai/pplx-embed-v2-late-0.6b", # or "perplexity-ai/pplx-embed-v2-late-9b"
device="cuda",
)
queries = model.encode_query(["what statute governs limitations?"])
documents = model.encode_document(["A document passage"])
scores = model.similarity(queries, documents) # MaxSim
image = Image.open("document.png").convert("RGB")
image_documents = model.encode_document([image])
image_scores = model.similarity(queries, image_documents)| Tool | What it does |
|---|---|
| MultiVectorEncoder | Loads the model with its multi-vector settings |
| encode_query | Turns queries into one vector per token |
| encode_document | Does the same for text passages or images |
| similarity | Scores queries against documents with MaxSim |
You ask "what statute governs limitations?" and compare it with a text passage and then with a scanned page opened as an image. Each comparison returns a MaxSim score. You keep text and image documents in separate encoding calls.
Most embedding models squeeze a whole text into one vector. This one keeps a small vector for every token, then lines up each query token with its best match in the document. A good first try is to run the sample code with one query and one short passage and read the score.
An internal ColBERT teacher with 18B parameters trained both sizes by distillation, with a token-level objective in the style of LEAF. In the 0.6B model, every weight was updated. In the 9B model, only the last eight transformer layers were updated in full and the rest used LoRA. PyLate puts query and document markers second, but this model expects them first.
The card compares the two sizes on a public page-retrieval benchmark.
Scores queries against text, images and document pages with a ColBERT-style model that keeps one small vector per token. For developers who build search over mixed documents.
Made by perplexity-ai 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: pplx-embed-v2-late-0.6b is the smaller model in perplexity-ai's pplx-embed-v2-late family of multimodal retrievers. It is built on Qwen3.5 and gives each token its own 128-dimension vector. A query and a document are then matched with MaxSim, a late-interaction score. It shares an embedding space with the 9B model, so this one can query an index built by the larger one.
Who it suits: Developers who build search over text, images and document pages, and who want token-level matching with a small model.
Industry | Who uses it | How they use it | Example
Software | Search engineers | Rank passages for a query with late interaction | Score a short question against a list of text passages
Document-heavy teams | Developers with scanned pages | Embed page images and match them to text queries | Find the page that answers a written question
Legal research | Search tool builders | Match legal questions to source passages | The source's own query asks what statute governs limitations
Anyone who needs a chat model or text generation can skip it, because it only produces vectors and scores.
Where to use it:
Use case | Who | What they get back
Text retrieval | Search developers | MaxSim scores between each query and each passage
Page image retrieval | Developers with scanned pages | MaxSim scores between a text query and each page image
Cheap queries on a big index | Teams using the 9B model for indexing | A smaller model that can answer queries against that index
How to set it up: What you need first:
pip install 'sentence-transformers>=6.0.0' 'transformers>=5.4.0'
pip install -U huggingface_hub
hf download perplexity-ai/pplx-embed-v2-late-0.6b
How to use it: Encode queries with encode_query and documents with encode_document, then call similarity to get MaxSim scores. Send text-only and image-only batches in separate calls, because a batch that mixes both is not supported. The export uses native Sentence Transformers modules, so it needs no custom Python code.
from PIL import Image
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder(
"perplexity-ai/pplx-embed-v2-late-0.6b", # or "perplexity-ai/pplx-embed-v2-late-9b"
device="cuda",
)
queries = model.encode_query(["what statute governs limitations?"])
documents = model.encode_document(["A document passage"])
scores = model.similarity(queries, documents) # MaxSim
image = Image.open("document.png").convert("RGB")
image_documents = model.encode_document([image])
image_scores = model.similarity(queries, image_documents)
Title: Calls the source shows
Tool | What it does
MultiVectorEncoder | Loads the model with its multi-vector settings
encode_query | Turns queries into one vector per token
encode_document | Does the same for text passages or images
similarity | Scores queries against documents with MaxSim
Example: You ask "what statute governs limitations?" and compare it with a text passage and then with a scanned page opened as an image. Each comparison returns a MaxSim score. You keep text and image documents in separate encoding calls.
For newcomers and experts: Most embedding models squeeze a whole text into one vector. This one keeps a small vector for every token, then lines up each query token with its best match in the document. A good first try is to run the sample code with one query and one short passage and read the score.
An internal ColBERT teacher with 18B parameters trained both sizes by distillation, with a token-level objective in the style of LEAF. In the 0.6B model, every weight was updated. In the 9B model, only the last eight transformer layers were updated in full and the rest used LoRA. PyLate puts query and document markers second, but this model expects them first.
Encode the query into one vector per token
Encode each document into one vector per token
Match every query token to its best document token
Sum the matches into a MaxSim score
Good to know: The card compares the two sizes on a public page-retrieval benchmark.
Title: ViDoRe v3 nDCG@10 on page images
0.6B model: 62.3 percent
9B model: 65.2 percent
Download its files with Hugging Face's command line:
pip install -U huggingface_hub
hf download perplexity-ai/pplx-embed-v2-late-0.6b
Then follow the usage in its model card. Nothing in this kit runs by itself.
README.md 6 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 |
|---|---|---|---|---|---|
| pplx-embed-v2-late-0.6b This page | 2,765 | 71 | 594M | mit | |
| multilingual-e5-largeShares mteb · sentence-similarity · sentence-transformers | 7,120,555 | 1,284 | 560M | mit | |
| bge-small-en-v1.5Shares mteb · sentence-similarity · sentence-transformers | 45,750,548 | 671 | 33.4M | mit | |
| nomic-embed-text-v1.5Shares mteb · sentence-similarity · sentence-transformers | 11,809,681 | 994 | 137M | apache-2.0 | |
| bge-base-en-v1.5Shares mteb · sentence-similarity · sentence-transformers | 8,508,165 | 542 | 109M | mit | |
| bge-small-en-v1.5-GGUFShares mteb · sentence-similarity · sentence-transformers | 165,239 | 10 | 33.2M | mit |
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
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.