Instructions to use seamon67/PPLX-Embed-v1-4B-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use seamon67/PPLX-Embed-v1-4B-GGUF with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("seamon67/PPLX-Embed-v1-4B-GGUF") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use seamon67/PPLX-Embed-v1-4B-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0 # Run inference directly in the terminal: llama cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0 # Run inference directly in the terminal: llama cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
Use Docker
docker model run hf.co/seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
- LM Studio
- Jan
- Ollama
How to use seamon67/PPLX-Embed-v1-4B-GGUF with Ollama:
ollama run hf.co/seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
- Unsloth Studio
How to use seamon67/PPLX-Embed-v1-4B-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for seamon67/PPLX-Embed-v1-4B-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for seamon67/PPLX-Embed-v1-4B-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for seamon67/PPLX-Embed-v1-4B-GGUF to start chatting
- Docker Model Runner
How to use seamon67/PPLX-Embed-v1-4B-GGUF with Docker Model Runner:
docker model run hf.co/seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
- Lemonade
How to use seamon67/PPLX-Embed-v1-4B-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0
Run and chat with the model
lemonade run user.PPLX-Embed-v1-4B-GGUF-Q8_0
List all available models
lemonade list
- Atomic Chat
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0# Run inference directly in the terminal:
llama cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0Use pre-built binary
# Download pre-built binary from:
# https://github.com/ggerganov/llama.cpp/releases# Start a local OpenAI-compatible server with a web UI:
./llama-server -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0# Run inference directly in the terminal:
./llama-cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0Build from source code
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build
cmake --build build -j --target llama-server llama-cli# Start a local OpenAI-compatible server with a web UI:
./build/bin/llama-server -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0# Run inference directly in the terminal:
./build/bin/llama-cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0Use Docker
docker model run hf.co/seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0About
This model was converted to GGUF format from perplexity-ai/pplx-embed-v1-4b using a modified version of llama.cpp (release b10269). Refer to the original model card for more details on the model.
This is a working GGUF. It was tested and benchmarked against other Embedding Models.
PPLX Embed v1 is not supported by Llama CPP for conversion. This GGUF was created from a modified version of Llama CPP. You don't need the modified version for inference. Any new version of Llama CPP will work.
Also, unlike other Qwen based Embedding models, this one needs --pooling mean flag.
Original Model Card
pplx-embed-v1: Diffusion-Pretrained Dense and Contextual Embeddings
pplx-embed-v1 and pplx-embed-context-v1 are state-of-the-art text embedding models optimized for real-world, web-scale retrieval tasks.
- Use
pplx-embed-v1for independent text embedding (queries, documents, semantic search) - Use
pplx-embed-context-v1for document chunks in RAG systems where surrounding context matters
pplx-embed-v1andpplx-embed-context-v1natively produce unnormalized int8-quantized embeddings. Ensure that you compare them via cosine similarity.
Models
| Model | Dimensions | Context | MRL | Quantization | Instruction | Pooling |
|---|---|---|---|---|---|---|
pplx-embed-v1-0.6B |
1024 | 32K | Yes | INT8/BINARY | No | Mean |
pplx-embed-v1-4B |
2560 | 32K | Yes | INT8/BINARY | No | Mean |
pplx-embed-context-v1-0.6B |
1024 | 32K | Yes | INT8/BINARY | No | Mean |
pplx-embed-context-v1-4B |
2560 | 32K | Yes | INT8/BINARY | No | Mean |
All models are built on diffusion continued pre-trained Qwen3 at Perplexity AI.
Many modern embedding models rely on instruction tuning, where users prepend an instruction string to the text being embedded. This can yield a 2%-3% lift on benchmarks, but it also introduces prompt-selection overhead and can make indexing pipelines brittle (small instruction changes can shift embedding space). We deliberately avoid this requirement: you can embed the text you want to index directly, without having to choose or maintain an instruction prefix.
Usage
Via API
curl -X POST https://api.perplexity.ai/v1/embeddings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": [
"Scientists explore the universe driven by curiosity.",
"Children learn through curious exploration.",
"Historical discoveries began with curious questions.",
"Animals use curiosity to adapt and survive.",
"Philosophy examines the nature of curiosity."
],
"model": "pplx-embed-v1-4b"
}'
Using SentenceTransformers
from sentence_transformers import SentenceTransformer
model = SentenceTransformer(
"perplexity-ai/pplx-embed-v1-4B",
trust_remote_code=True
)
texts = [
"Scientists explore the universe driven by curiosity.",
"Children learn through curious exploration.",
"Historical discoveries began with curious questions.",
"Animals use curiosity to adapt and survive.",
"Philosophy examines the nature of curiosity.",
]
embeddings = model.encode(texts) # Shape: (5, 2560), quantized to int8
embeddings = model.encode(texts, quantization="binary") # Shape: (5, 2560), quantized to binary
Using ONNX models
import onnxruntime as ort
from transformers import AutoTokenizer
import numpy as np
tokenizer = AutoTokenizer.from_pretrained("perplexity-ai/pplx-embed-v1-4b", trust_remote_code=True)
session = ort.InferenceSession("onnx/model.onnx")
texts = [
"Scientists explore the universe driven by curiosity.",
"Children learn through curious exploration.",
"Historical discoveries began with curious questions.",
"Animals use curiosity to adapt and survive.",
"Philosophy examines the nature of curiosity.",
]
tokenized = tokenizer(
texts,
padding=True,
truncation=True,
return_tensors="np"
)
onnx_inputs = {
"input_ids": tokenized["input_ids"].astype(np.int64),
"attention_mask": tokenized["attention_mask"].astype(np.int64),
}
# Run inference
onnx_embeddings = session.run([out.name for out in session.get_outputs()], onnx_inputs)
# ONNX produces both int8 and binary precision embeddings:
int8_embeddings = onnx_embeddings[2]
binary_embeddings = onnx_embeddings[3]
packed_embeddings = np.packbits(binary_embeddings != -1, axis=-1)
Using Text Embeddings Inference (TEI)
Text Embeddings Inference v1.9.2+ is required.
Currently, only int8-quantized embeddings are available via TEI. Remember to use cosine similarity with unnormalized int8 embeddings.
- CPU w/ Candle:
docker run -p 8080:80 ghcr.io/huggingface/text-embeddings-inference:cpu-1.9 --model-id perplexity-ai/pplx-embed-v1-4B --dtype float32
- CPU w/ ORT (ONNX Runtime):
docker run -p 8080:80 ghcr.io/huggingface/text-embeddings-inference:cpu-1.9 --model-id onnx-community/pplx-embed-v1-4B --dtype float32
- GPU w/ CUDA:
docker run --gpus all --shm-size 1g -p 8080:80 ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id perplexity-ai/pplx-embed-v1-4B --dtype float32
If you hit OOM during warmup, lower --max-batch-tokens and --max-client-batch-size. Set --max-batch-tokens to max_sequence_length × batch_size (e.g., 2048 tokens × 8 sequences = 16384).
Alternatively, when running in CUDA you can use the architecture / compute capability specific container instead of the
cuda-1.9, as that includes the binaries for Turing, Ampere, Hopper and Blackwell, so using a dedicated container will be lighter e.g.,ampere-1.9.
And then you can send requests to it via cURL to /embed:
curl http://0.0.0.0:8080/embed \
-H "Content-Type: application/json" \
-d '{
"inputs": [
"Scientists explore the universe driven by curiosity.",
"Children learn through curious exploration.",
"Historical discoveries began with curious questions.",
"Animals use curiosity to adapt and survive.",
"Philosophy examines the nature of curiosity."
],
"normalize": false
}'
Technical Details
For comprehensive technical details and evaluation results, see our paper on arXiv: https://arxiv.org/abs/2602.11151.
- Downloads last month
- -
8-bit
Model tree for seamon67/PPLX-Embed-v1-4B-GGUF
Base model
perplexity-ai/pplx-embed-v1-4b
Install (macOS, Linux)
# Start a local OpenAI-compatible server with a web UI: llama serve -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0# Run inference directly in the terminal: llama cli -hf seamon67/PPLX-Embed-v1-4B-GGUF:Q8_0