Measured on real embedding models β€” RTX 5090 validation run

Your embeddings can't tell πŸ”₯ apart from πŸŽ‰ or δΉ° apart from 卖 β€” and that's drastically inflating your AI costs.

δΉ° buy and 卖 sell β€” opposite meanings, Chinese, Japanese, Korean (CJK) script β€” embed to cosine 1.0000 on MiniLM. Not similar: the identical vector. No ranker, threshold or reindex can separate them, because there is nothing left to separate. Through the gateway that pair drops to 0.9015 β€” distinguishable at last.

Popular embedding models collapse emoji and CJK text into near-identical vectors. 96.25% of distinct emoji collapsed into duplicates on MiniLM. 89.6% of compound emoji sequences collapsed on a Chinese-optimized model. Semantic Integrity Gateway is a drop-in middleware that fixes it before your embedder ever sees the input β€” no retraining, no model swap.

Why it costs you money: billing is per token, and non-English and emoji text tokenize far less efficiently. Measured on cl100k_base β€” the tokenizer OpenAI's text-embedding-3 models bill with β€” the same sentence costs +34% in Chinese, +110% in Japanese and +131% in Korean versus English, and emoji-dense text runs 2.8× plain English (a single πŸ”₯ is 3 tokens where sell is 1; πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ is 18). A 60%+ premium on non-English and emoji workloads is the conservative case. This is a known, published effect: tokenized lengths for the same text differ up to 15× between languages (Petrov et al., NeurIPS 2023), and API users of many languages are “overcharged while obtaining poorer results” (Ahia et al., EMNLP 2023). Re-run our numbers yourself: token_cost_evidence.py. Caveat we'll state plainly: on GPT-4o's newer o200k_base, Chinese is roughly at parity with English β€” the premium is largest for emoji, Japanese and Korean, and on the embedding tokenizers above.

Emoji: 96.25% β†’ 0% collapse Β· CJK: 3/3 identical-vector pairs broken Β· p99 152ms @ 1000 concurrent
Built for teams running
RAG pipelines Semantic search Content moderation Dedup & clustering Bilingual support tooling
01 β€” The Bug

Your embedding model is lying about similarity.

We ran independent neural validation on real embedding models (RTX 5090, full precision, no shortcuts). The result: emoji and CJK text routinely collapse into duplicate or near-duplicate vectors. If your product does search, retrieval, moderation, or dedup on this content, it is already misclassifying it β€” silently.

96.25%
of distinct emoji collapsed into duplicate vectors
MiniLM β€” only 18 of 480 test emoji produced genuinely distinct embeddings.
89.6%
of compound / ZWJ emoji sequences collapsed
bge-base-zh-v1.5 (Chinese-optimized) β€” plus 86.5% of simple emoji collapsed too.
50%
of simple emoji still collapsed on a stronger model
bge-m3 handled compound/ZWJ sequences perfectly (240/240 distinct) β€” but simple emoji still fail at a coin-flip rate.

Why this matters: if two visually and semantically different emoji β€” or two different Chinese phrases β€” produce the same or near-identical vector, your vector database can't tell them apart. Search returns the wrong result. Your RAG pipeline retrieves the wrong context. Your moderation model can't distinguish πŸ”₯ (hype) from πŸŽ‰ (celebration) from 🚨 (alert). This isn't a hypothetical edge case β€” it's a measured, repeatable failure mode in models you are probably already running in production.

Read the research on the underlying tokenizer/embedding collapse β†’
02 β€” The Fix

A gateway, not a model swap.

Semantic Integrity Gateway sits between your application and your embedding call. It applies a hardened semantic disambiguation layer to emoji, CJK, and bilingual text before the vector ever gets computed β€” preserving distinct meaning instead of losing it to collapse. No retraining. No new embedding model. No changes to your vector database.

1

Ingest

Your text hits the gateway exactly as it does today β€” same request shape, drop-in FastAPI layer in front of your existing embedding endpoint.

2

Disambiguate

Emoji, CJK spans, and bilingual mixes are detected and passed through a versioned semantic ruleset that resolves whole-sequence meaning β€” not code-point spelling.

3

Preserve original

The native input is never discarded. A provenance-bearing companion representation travels alongside it, restorable byte-for-byte.

4

Embed & ship

Your existing embedding model receives disambiguated input and produces vectors that actually separate distinct meaning β€” search, RAG, and moderation start working correctly.

before_after.diff
# before β€” direct call, silent collapse risk
- vector = embed_model.encode(user_text)

# after β€” one line, same interface
+ vector = sig_gateway.encode(user_text)
  # emoji + CJK + bilingual spans disambiguated first
  # original preserved, audit trail attached, then embedded
03 β€” Validation

Not a research toy. Production numbers.

We hold the gateway to the same bar as the models it protects: held-out accuracy tests and real concurrent load, not cherry-picked demos.

βœ“
100%
accuracy on unambiguous cases
40-item bilingual (English/Chinese mixed) holdout test.
βœ“
90%
accuracy on ambiguous, double-meaning cases
The hard cases β€” where a phrase or emoji genuinely carries two plausible meanings.
⚑
152ms
p99 latency at 1,000 concurrent requests
0 errors under sustained concurrent load β€” production-grade, not a notebook demo.
Emoji embedding collapse by model β€” before Semantic Integrity Gateway
Model Simple emoji collapse Compound / ZWJ collapse Notes
MiniLM 96.25% 96.25% Only 18/480 test emoji produced distinct embeddings.
bge-base-zh-v1.5 86.5% 89.6% Chinese-optimized model β€” still fails badly on emoji.
bge-m3 50% 0% (240/240 distinct) Best of the three, but a coin-flip on simple emoji.

CJK opposites β€” measured cosine, before and after the gateway

Eight semantic-opposite pairs, embedded with all-MiniLM-L6-v2 at full precision. "Before" is the raw pair. "After" is the same pair passed through /v1/normalize. Reproduce any row with a free key in one call.

CJK semantic-opposite pairs β€” cosine similarity, MiniLM (lower = more distinguishable)
Pair Meaning Before After Status
δΉ° / 卖 buy / sell 1.0000 0.9015 Total collapse broken
η›ˆεˆ© / 亏损 profit / loss 1.0000 0.7739 Total collapse broken
批准 / ι©³ε›ž approve / reject 1.0000 0.8548 Total collapse broken
上梨 / δΈ‹θ·Œ rise / fall 0.6256 0.6685 Already distinct β€” gloss added
登录 / ι€€ε‡Ί log in / log out 0.6465 0.7088 Already distinct β€” gloss added
δΉ°ε…₯ / 卖出 buy in / sell out 0.6465 0.6961 Already distinct β€” gloss added
εŒζ„ / 拒绝 agree / refuse 0.5404 0.5961 Already distinct β€” gloss added
做倚 / 做空 go long / go short 0.4676 0.6884 Already distinct β€” gloss added
Pairs at cosine β‰₯ 0.95 (unrecoverable) 3 / 8 0 / 8 Every total collapse eliminated

What we do not claim. Mean cosine across all eight pairs is essentially unchanged (0.7408 β†’ 0.7360). The gateway is not a general-purpose "push everything apart" trick, and pairs already separated can move slightly closer because the appended English gloss shares surface tokens. The specific, load-bearing claim is narrower and stronger: where a pair was mathematically indistinguishable β€” cosine 1.0000, the identical vector β€” it no longer is. That is the failure no amount of downstream ranking can fix. Characters whose sense is genuinely context-dependent (葌 hΓ‘ng/xΓ­ng) are deliberately left unglossed and flagged requires_multilingual_route rather than guessed at.

04 β€” Pricing

Priced like infrastructure, not like a feature.

Metered by characters processed through the gateway. No seat licenses, no per-request tax on top of your embedding bill β€” you pay for disambiguation, not for volume you'd be paying anyway.

Prices below are BTC/on-chain prices β€” our base price. Paying by credit card or fiat costs a flat 16.666% more (fiat price = BTC price Γ— 7/6). Pay on-chain or over Lightning and save 16.666%.

This toggle only changes the prices shown. To actually pay, hit Buy now below β€” you'll get a Bitcoin QR code and invoice, or card options.

Developer

$0/mo

For evaluation, prototyping, and low-volume production traffic.

  • Up to 10M characters / month
  • Full disambiguation ruleset (emoji + CJK + bilingual)
  • Sidecar & replace modes
  • Community support
Start free

Enterprise

$8,000/mo starting

Flat-rate contracts at scale, VPC / on-prem deployment, dedicated support.

  • Volume-committed flat monthly fee
  • On-prem / VPC deployment option
  • Model-version canary + migration tooling
  • Dedicated solutions engineer
Talk to sales Need it off our cloud? Three delivery models ↓
04b β€” Enterprise delivery

Three ways to run this that aren't our cloud.

The tiers above run on our multi-tenant SaaS. Plenty of enterprise buyers can't use that β€” the data can't leave their boundary, the network has no egress, or they need to ship it inside their own product. So pick the shape you actually need. Tell us which one and we'll scope it.

These are contracted, not self-service. Prices are indicative starting points for scoping β€” the real number depends on volume commitment, environment count, and support tier. Selecting a model below records your requirement and starts a conversation with a human engineer. It does not provision anything and does not charge you.

01

Dedicated BYOC

Your cloud account. Our operators.

from $12,000 /mo Β· annual commit

We deploy a single-tenant gateway into your own AWS, GCP, or Azure account and operate it for you. Your VPC, your KMS keys, your network policy, your cloud bill for the compute β€” text never crosses into our infrastructure or a shared tenant.

Data stays in
Your cloud account, your region
Who operates it
Us, via a scoped IAM role
Isolation
Single-tenant compute & storage
Typical lead time
2–4 weeks from order form
  • Terraform / Helm deploy, pinned image digests
  • No shared queues, no noisy neighbours
  • Your KMS keys β€” we hold no plaintext copy
  • PrivateLink / Private Service Connect / peering
  • 99.9% availability target, named escalation path
  • Quarterly model-version canary on your own corpus

Best for: regulated teams whose data can't leave their cloud boundary, but who don't want to staff an on-call rotation for a normalization layer.

03

OEM / Embedded License

Ship it inside your own product.

from $250,000 /yr + per-unit royalty

License the disambiguation engine as a library you link into your own product and redistribute to your customers under your brand. Source-available under a commercial OEM agreement, with the right to sublicense downstream.

Data stays in
Wherever your product runs
Who operates it
Your engineers, in-process
Isolation
In-process library, no network hop
Typical lead time
6–10 weeks incl. license terms
  • Source-available license to normalization + fusion core
  • Right to redistribute and sublicense to end customers
  • White-label / no-attribution option
  • Integration review + architecture enablement sessions
  • Patch stream + coordinated security disclosure
  • Your own version numbers and release cadence

Best for: platform, search, and RAG vendors who need this inside their own SKU rather than as an upstream dependency their customers can see.

Not sure which one fits? Staying on our multi-tenant SaaS? Nothing to request β€” just pick a tier above.

Real customer economics β€” 20B characters/month example

Computed directly from the published Growth-tier rates above β€” not rounded marketing math.

Monthly volume
20B characters
Baseline monthly spend
$400,000 at $20/M chars
Fraction of failures avoided
10% conservative estimate
Gross cost avoided
$40,000 / month
Gateway monthly fee
$300 Growth tier, 1B chars included
Gateway overage cost
$5,700 19,000 Γ— $0.30 per extra 1M
Net monthly savings
$34,000 / month
Customer ROI on gateway spend
6.7Γ— return
Break-even requires avoiding just 1.5% of failure-driven cost β€” the measured collapse rates above are an order of magnitude larger than that threshold.
05 β€” Details

Questions engineers actually ask.

Does this replace my embedding model?

No. It runs in front of it. You keep your existing model, vector database, and retrieval stack β€” the gateway just makes sure distinct emoji/CJK/bilingual input actually produces distinct vectors before it hits your embedder.

Do you ever discard or rewrite my original text?

Never. The native input is preserved byte-for-byte with a versioned, provenance-bearing companion representation traveling alongside it. Restoration is exact in 100% of tested cases.

What happens with emoji or characters you don't recognize?

Unknown sequences are preserved untouched and flagged rather than guessed at β€” a deliberate fail-safe for Unicode and model-version drift.

How was this validated?

Neural validation was run on real embedding models on an RTX 5090: MiniLM, bge-base-zh-v1.5, and bge-m3. Emoji fix accuracy was measured on a 40-item bilingual holdout set, and throughput was load-tested at 1,000 concurrent requests. CJK disambiguation was measured separately on eight semantic-opposite pairs with all-MiniLM-L6-v2 at full precision: three pairs sat at cosine 1.0000 (literally the same vector) and all three were broken, with zero pairs remaining above 0.95. We publish the pairs that barely moved alongside the ones that did β€” see the CJK table above and the "what we do not claim" note under it. Read the research for full methodology.

Does the CJK fix cover every Chinese character?

No, and that is deliberate. The built-in lexicon covers 130 high-confidence senses concentrated on the vocabulary where collapse does commercial damage β€” trading direction, money flow, account actions, and approve/reject decisions. Characters whose meaning genuinely depends on context (葌 hΓ‘ng "row/firm" vs xΓ­ng "walk/okay") are intentionally not guessed. Those spans come back untouched with requires_multilingual_route: true so you can route them to a multilingual embedder. A wrong gloss would move the vector somewhere confidently wrong, which is worse than an honest flag. You can override or extend any entry per-request with chinese_glosses, and a caller-supplied gloss always wins over ours.

Is this a translation service?

No. We don't translate or replace Chinese, Japanese, or Korean text with English. We preserve the native original and add a disambiguating semantic companion β€” native-language retrieval quality is never sacrificed.

What's the integration effort?

A drop-in FastAPI-compatible endpoint. Most teams swap one function call β€” embed_model.encode() β†’ sig_gateway.encode() β€” and ship the same day.

Stop shipping embeddings that can't tell your data apart.

Get an API key, run your own emoji/CJK collapse test, and see the difference in an afternoon.

Developer tier is free β€” no credit card, no payment. Paid tiers: pay by Bitcoin for instant automatic access (base price), or by card for 16.666% more. Cancel anytime.