Why did we open-source our inference engine? Read the post

Match the words your customers never typed

Superlinked gives your agent one API to expand search queries and support messages into weighted terms, so a sparse index matches listings that use different words.

Get started
Shopper query

color switching led lights

Product listing

ILC RGB LED Light Bulb, Color Changing Light Bulb, 40W Equivalent, 450LM, 2700K Warm White 5W E26 Screw Base RGBW, Flood Light Bulb- 12 Color Choices - Timing Infrared Remote Control (4 Pack)

Shared term Query Listing Match
led 1.908 1.449 2.765
color 1.916 1.345 2.577
lights 1.582 1.138 1.800
colors 1.299 1.352 1.755
light 1.359 1.237 1.682
change 0.882 1.316 1.161
bulb 0.651 1.708 1.112
11 more shared terms 1.146

Sparse match score 13.998

Words in both texts
5.342
Terms SPLADE added
8.656

Customer messages and product texts gain the vocabulary exact-match search misses

+ marks a term the model added. Everything else is a word the text already used.

View evidence
Card delivery

My card still hasn't arrived after 2 weeks. Is it lost?

  1. card 2.10
  2. added by the model week 1.72
  3. lost 1.65
  4. added by the model cards 1.61
  5. still 1.61
  6. weeks 1.56
  7. added by the model arrive 1.44
  8. 2 1.42
  9. added by the model years 1.14
  10. added by the model two 1.09
  11. added by the model loss 1.00
  12. after 0.95

SPLADE added 46 of its 56 terms

bge-m3 sparse added 0 of its 15

PolyAI BANKING77 test set, CC BY 4.0
Transfer

I transferred money but the recipient says it has not arrived. Why would this be?

  1. added by the model transfer 1.78
  2. added by the model arrive 1.76
  3. money 1.53
  4. not 1.42
  5. arrived 1.39
  6. transferred 1.38
  7. recipient 1.37
  8. added by the model because 1.23
  9. added by the model say 1.13
  10. added by the model arrival 1.13
  11. added by the model have 0.78
  12. added by the model said 0.77

SPLADE added 54 of its 65 terms

bge-m3 sparse added 0 of its 16

PolyAI BANKING77 test set, CC BY 4.0
Card freeze

Can you freeze my card because someone used it while I was out of town. I did not make these purchases.

  1. freeze 1.82
  2. added by the model frozen 1.52
  3. card 1.47
  4. town 1.27
  5. added by the model cards 1.20
  6. someone 1.15
  7. added by the model freezing 1.08
  8. because 0.98
  9. can 0.92
  10. not 0.92
  11. out 0.83
  12. added by the model use 0.79

SPLADE added 42 of its 56 terms

bge-m3 sparse added 0 of its 21

PolyAI BANKING77 test set, CC BY 4.0
ATM cash

I'm at an ATM and withdrew 30 pounds and was only given 10. What should I do?

  1. atm 2.03
  2. added by the model pound 1.41
  3. added by the model withdraw 1.38
  4. pounds 1.30
  5. added by the model weigh 1.28
  6. added by the model withdrawal 1.26
  7. 30 1.21
  8. added by the model much 1.13
  9. should 1.02
  10. 10 0.98
  11. withdrew 0.94
  12. added by the model weight 0.90

SPLADE added 44 of its 54 terms

bge-m3 sparse added 0 of its 18

PolyAI BANKING77 test set, CC BY 4.0
Product search

chrome notebook

  1. chrome 3.28
  2. notebook 2.91
  3. added by the model laptop 1.82
  4. added by the model ##book 0.93
  5. added by the model browser 0.82
  6. added by the model document 0.61
  7. added by the model my 0.57
  8. added by the model computer 0.44
  9. added by the model pen 0.43
  10. added by the model web 0.41
  11. added by the model computing 0.41
  12. added by the model device 0.40

SPLADE added 23 of its 25 terms

bge-m3 sparse added 0 of its 3

Amazon Shopping Queries Dataset, example 530782, Apache-2.0
Recall notice

The lithium-ion battery in the recalled power banks can overheat and ignite, posing fire and burn hazards to consumers.

  1. lithium 2.18
  2. recalled 2.04
  3. added by the model recall 1.97
  4. added by the model bank 1.95
  5. power 1.77
  6. ##hea 1.77
  7. battery 1.70
  8. banks 1.70
  9. fire 1.67
  10. added by the model batteries 1.55
  11. ion 1.51
  12. ign 1.50

SPLADE added 96 of its 113 terms

bge-m3 sparse added 0 of its 27

CPSC recall 25437, public domain

One encode call returns weighted terms ready for your inverted index

View on GitHub
from sie_sdk import SIEClient
client = SIEClient(
api_key="sk-sie-…",
base_url="https://api.superlinked.com",
)
res = client.encode(
"modelprithivida/Splade_PP_en_v2",
[{"text": "textDo ATM cash withdrawals carry a charge now? They've been free in the past, but all of a sudden I have to pay to make ATM withdrawals?"}],
output_types=["sparse"],
)
sparse = res[0]["sparse"] # indices = term ids, values = weights
pairs = zip(sparse["indices"], sparse["values"])
top = sorted(pairs, key=lambda p: -p[1])[:12]
for term_id, weight in top:
print(f"{float(weight):.2f} {term_id}")
import { SIEClient } from '@superlinked/sie-sdk';

const client = new SIEClient('https://api.superlinked.com', {
  apiKey: 'sk-sie-…',
});

const [res] = await client.encode(
  'prithivida/Splade_PP_en_v2',
  [{ text: "Do ATM cash withdrawals carry a charge now? They've been free in the past, but all of a sudden I have to pay to make ATM withdrawals?" }],
  { outputTypes: ['sparse'] },
);
// sparse: { indices, values }, mapping learned term ids to weights
const sparse = res!.sparse!;
const top = [...sparse.indices]
  .map((id, i) => ({ id, weight: sparse.values[i] }))
  .sort((a, b) => b.weight - a.weight);
console.log(top.slice(0, 12));
curl https://api.superlinked.com/v1/encode/prithivida%2FSplade_PP_en_v2 \
  -H "Authorization: Bearer sk-sie-…" \
  -H "Content-Type: application/json" \
  -d "{\"items\":[{\"text\":\"Do ATM cash withdrawals carry a charge now? They've been free in the past, but all of a sudden I have to pay to make ATM withdrawals?\"}],\"params\":{\"output_types\":[\"sparse\"]}}"
Build the "Sparse embeddings" capability into my app using the Superlinked Inference Engine (SIE).

Context
- SIE is an OpenAI-style inference API. Python SDK: `from sie_sdk import SIEClient`; TypeScript: `@superlinked/sie-sdk`.
- Base URL: https://api.superlinked.com (or my regional endpoint). Auth: Bearer key from env `SIE_API_KEY` (never hard-code it).
- Model: prithivida/Splade_PP_en_v2 (SIE primitive: /encode). Keep the model id configurable.

Task
- Input: a block of text.
- Behaviour: return the learned sparse term ids and weights, ordered by strongest activation
- Call the selected SIE primitive once per request and map the response into your domain type.

Deliverables
- A typed client wrapper, an application-level function for this task, error handling for timeouts/empty input, and unit tests with a stubbed client.
- Wire it into my existing stack (ask me which framework if unclear) and add a short usage example.
Output
27218atm
10534withdrawal
4287carry
2489free
3715charge
5356cash
10632withdrawexpanded
2085now
2025notexpanded
5571chargesexpanded
4755carryingexpanded
7408feeexpanded
44 active terms · 33 added by the model
  • Term ids and weights come from the encode call
  • Tokens decoded with the pinned SPLADE vocab.txt

Sparse retrieval quality and latency

PRICE
$ / 1M input tokens
$0.0256 SIE Splade PP
$0.0408 SIE bge-m3 sparse
Elastic ELSER $0.08
Pinecone sparse-english-v0 $0.08
QUALITY
nDCG@10 · NFCorpus
SIE Splade PP 0.33
0.30
0.30
SIE bge-m3 sparse 0.28
LATENCY
p50 ms
62ms
65ms
SIE Splade PP 144ms
SIE bge-m3 sparse 173ms

Deploy your way

Self-host with K8s

Easy & scalable deployment in your own cloud.

  • Terraform to your cloud in minutes
  • Apache-2.0, same engine as Cloud
  • Scales to zero, no bill between jobs
  • Per-tenant pools, no noisy neighbors
Agent prompt
Deploy SIE to our AWS account with the superlinked/sie/aws Terraform module. Docs: superlinked.com/docs/deploymentDeploy SIE to our GCP project with the superlinked/sie/google Terraform module. Docs: superlinked.com/docs/deploymentDeploy SIE to our Azure AKS cluster via helm install. Requirements: superlinked.com/docs/deployment
Deploy guide

Run locally

Run the same models on your own machine.

  • Runs on NVIDIA GPU or Apple Silicon
  • One command, no Docker or cluster
  • All 100+ Cloud models, fully offline
  • Same SDK and IDs, no code changes
pip install "sie-server[local]" && sie-server servepip install "sie-server[local]" && sie-server serve --device cuda
Quickstart

Contact us

Tell us about your use case and we'll get back to you shortly.

Apply for an inference grant

Free capacity on our hosted cluster for selected projects. Tell us what you run and we reply by email.