GLiNER PII and NuNER Zero
Two open models that find the personal data in a text, in one API call. superlinked/pii-redact
- Accuracy
SPIA, F1 · not measured as one model
- Time per request
61 ms
per document
- Serverless price
$0.08
per 1M tokens
-
Leave 32% less personal data exposed than AWS Comprehend, 79% cheaper
90.9%
Personal data masked · 660 documents
61 ms
Time per document
See the comparison on Redact (PII)$73
Cost per 1M documents
Call it
from sie_sdk import SIEClientclient = SIEClient(api_key="sk-sie-…")result = client.extract( "modelsuperlinked/pii-redact", {"text": "text{"date_time": "1978-03-29 17:28:13", "name": "Emma A. Platini", "street_address": "19325 John Motorway, Apt. 488"}
{"date_time": "2022-01-02 14:35:18", "name": "John D. Smith", "street_address": "456 Oakwood Avenue, Unit 3C"}
{"date_time": "2021-12-15 09:19:21", "name": "Alex N. Thompson", "street_address": "334 King's Cross, Flat 15B"}"},)for span in result["entities"]: print(span["label"], span["text"])import { SIEClient } from '@superlinked/sie-sdk';
const client = new SIEClient(undefined, { apiKey: 'sk-sie-…' });
const result = await client.extract(
'superlinked/pii-redact',
{ text: "{\"date_time\": \"1978-03-29 17:28:13\", \"name\": \"Emma A. Platini\", \"street_address\": \"19325 John Motorway, Apt. 488\"}\n{\"date_time\": \"2022-01-02 14:35:18\", \"name\": \"John D. Smith\", \"street_address\": \"456 Oakwood Avenue, Unit 3C\"}\n{\"date_time\": \"2021-12-15 09:19:21\", \"name\": \"Alex N. Thompson\", \"street_address\": \"334 King's Cross, Flat 15B\"}" },
{ labels: [] }, // the model's default types
);
console.log(result.entities);curl https://api.superlinked.com/v1/extract/superlinked%2Fpii-redact \
-H "Authorization: Bearer sk-sie-…" \
-H "Content-Type: application/json" \
-d "{\"items\":[{\"text\":\"{\\\"date_time\\\": \\\"1978-03-29 17:28:13\\\", \\\"name\\\": \\\"Emma A. Platini\\\", \\\"street_address\\\": \\\"19325 John Motorway, Apt. 488\\\"}\\n{\\\"date_time\\\": \\\"2022-01-02 14:35:18\\\", \\\"name\\\": \\\"John D. Smith\\\", \\\"street_address\\\": \\\"456 Oakwood Avenue, Unit 3C\\\"}\\n{\\\"date_time\\\": \\\"2021-12-15 09:19:21\\\", \\\"name\\\": \\\"Alex N. Thompson\\\", \\\"street_address\\\": \\\"334 King's Cross, Flat 15B\\\"}\"}]}"Build the "Find personal data to mask" 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: superlinked/pii-redact (SIE primitive: /extract). Keep the model id configurable.
Task
- Input: a block of text.
- Behaviour: return the spans of personal data found, each with its type and character offsets; my code masks them.
- 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. Edit the code and run it live Sign up to run this example.
Get started no credit card required
Output
entities · 6start–end
- person Emma A. Platini
46–61 - street address 19325 John Motorway, Apt. 488
83–112 - person John D. Smith
161–174 - street address 456 Oakwood Avenue, Unit 3C
196–223 - person Alex N. Thompson
272–288 - street address 334 King's Cross, Flat 15B
310–336
masked · 6
{"date_time": "1978-03-29 17:28:13", "name": "", "street_address": ""}
{"date_time": "2022-01-02 14:35:18", "name": "", "street_address": ""}
{"date_time": "2021-12-15 09:19:21", "name": "", "street_address": ""} Next to the other PII models
| Model | SPIA, F1 | Time per request | Serverless price | Size |
|---|---|---|---|---|
| GLiNER PII and NuNER Zero superlinked | Not measured | 61 ms per document | $0.08 per 1M tokens | Not listed |
| NuNER Zero numind | 0.463 | Not timed | $0.05 per 1M tokens | 449M |
| gliner multi pii v1 urchade | 0.377 | Not timed | $0.04 per 1M tokens | 289M |
Facts
- Endpoint
-
extract
Evaluation
- Accuracy
- Run on SIE against the public dataset named in each figure
- Time
- SIE timed on a GPU server with the client alongside, one request at a time
- Prices
- Serverless list prices
- Sources
- Task page runs and their inputs
Run GLiNER PII and NuNER Zero on Serverless or in your own cloud
SIE Serverless
We host the models; you call one API.
- No idle GPUs, pay for what you use
- Fits your stack: SDK, API, CLI, MCP
- Self-host the same open-source engine
- SOC 2 Type 2, US or EU data residency
- Create an account to try Serverless
SIE Cluster
Kubernetes in your own cloud, backed by our engineers.
- Terraform modules for your cloud
- Apache-2.0, same engine as Serverless
- GPU workers scale to zero between jobs
- Separate worker pools for each tenant
Agent prompt
Deploy SIE to our AWS account with the superlinked/sie/aws Terraform module. Docs: superlinked.com/docs/deployment.Deploy SIE to our Google Cloud project with the superlinked/sie/google Terraform module. Docs: superlinked.com/docs/deployment.Deploy SIE to our Azure subscription with the superlinked/sie/azure Terraform module. Docs: superlinked.com/docs/deployment.Deploy SIE to our Alibaba Cloud account with the superlinked/sie/alicloud Terraform module. Docs: superlinked.com/docs/deployment. SIE Local
The open-source server on your own machine.
- Runs on your NVIDIA GPU
- One container, no cluster
- Process your data fully offline
- Same SDK and model IDs as Serverless
docker run --gpus all -p 8080:8080 ghcr.io/superlinked/sie-server:latest-cuda12-default