Model reference · open weights

deepx-embedding

Embeddings dxtech-asia Embeddings 1 build Open weights 2k dl/mo

deepx-embedding is an open-weight embedding model from dxtech-asia. deepx-embedding-v1 (BF16) weighs 973 MB; the smallest configuration that runs it is RTX 3060 12 GB.

  • DeepX Embedding v1.0 is a 772M parameter sentence-similarity model developed by dxtech-asia for Vietnamese legal document retrieval.
  • It supports a context length of 131,072 tokens and operates in Vietnamese and English.
  • The model is released under the Apache 2.0 license.

Summary of the dxtech-asia/deepx-embedding-v1 model card, 2026-10-01

What it is

Released bydxtech-asia
Released2026-08-09
VRAM973 MB for the weights

What it runs on

Memory and cards for deepx-embedding-v1 (BF16)

973 MBweights, file size
1.1 GBruntime overhead
CardRunsMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What dxtech-asia says about deepx-embedding

Read the model card

Vietnamese Legal Document Retrieval — State-of-the-Art

🌐 Blog Post | 💻 GitHub

DeepX Embedding v1.0 is a 772M parameter embedding model optimized for Vietnamese legal document retrieval. It combines Gated DeltaNet-2 linear attention (O(n)) with Hyperloop weight sharing to achieve strong retrieval quality while maintaining constant throughput regardless of sequence length.

nDCG@10 = 0.8162 on Zalo Legal Text Retrieval — surpassing previous SOTA (0.7813) by +4.5%.


Benchmark Results

ModelParamsnDCG@10
intfloat/multilingual-e5-large560M0.6660
mainguyen9/vietlegal-e5560M0.7310
mainguyen9/vietlegal-harrier-0.6b (prev SOTA)600M0.7813
DeepX Embedding v1.0772M0.8162

Key Features

  • Linear attention O(n) — Gated DeltaNet-2: processes 8K tokens with same VRAM as 512 tokens
  • Hyperloop architecture — 35 compute passes from only 9 unique layer parameter sets
  • Matryoshka embeddings — Quality at any dimension from 256d to 1536d
DimensionnDCG@10Quality vs Full
2560.78~96%
5120.79~97%
7680.80~98%
10240.81~99%
1536 (full)0.8162100%
  • ColBERT dual output — Single vector (1536d) for ANN search + token vectors (128d) for MaxSim reranking
  • Custom vocabulary — 186,046 tokens optimized for Vietnamese + English
  • YaRN RoPE — 8K tokens validated, 128K supported

Architecture

Input text
  → Custom Tokenizer (186,046 vocab)
  → Frozen Token Embedding (186046 × 1536)
  → Begin Block: 4 unique NarrowA layers
  → Phase1 Loop ×2: [WideA + NarrowA×4] per iteration = 10 passes
  → Phase2 Loop ×4: [NarrowB×4 + WideB] per iteration = 20 passes
  → End Block: 1 unique WideB layer
  → RMSNorm → Attention Pooling → 1536-d vector

Total: 35 compute passes. Per-loop LoRA + RoDE (Rotary Depth Embedding) differentiate each iteration.

Model Size

ComponentParameters
Token Embedding (frozen)286M
Backbone (trainable)486M
Total772M

Gated DeltaNet-2 (GDN-2)

Pure linear attention with O(n) complexity. Each layer maintains a running state updated via learned decay, erase, and write gates:

state_t = decay_t * state_{t-1}
state_t -= erase_t * (erase_t @ state_t - write_t * v_t)
output_t = q_t @ state_t

No KV cache, no quadratic slowdown. Uses FLA (flash-linear-attention) Triton kernels for efficient chunk-parallel training.


Training

SettingValue
GPUs2× RTX 5070 Ti 16GB (pipeline parallel)
PrecisionBF16
OptimizerAdamW 8-bit
Sequence length8192 max
LossInfoNCE (τ=0.07) + Matryoshka (256, 512, 768, 1024, 1536)
Total training~600 GPU-hours

Training pipeline: conservative training → long-sequence expose (4K-8K) → hard negative mining → domain boost.


Usage

import torch
from transformers import AutoTokenizer
from modeling.pipeline import DeepXPipeline
from config import DeepXConfig

# Load
tokenizer = AutoTokenizer.from_pretrained("dxtech-asia/deepx-embedding-v1")
config = DeepXConfig()
pipeline = DeepXPipeline.from_pretrained(config, "deepx_v1.0.pt")
pipeline.eval().cuda()

# Encode
text = "Mức phạt khi vượt đèn đỏ là bao nhiêu?"
inputs = tokenizer(text, return_tensors="pt", max_length=8192, truncation=True)
id_remap = torch.load("id_remap.pt")
input_ids = id_remap[inputs["input_ids"]]

with torch.no_grad():
    embedding = pipeline.encode(input_ids.cuda(), inputs["attention_mask"].cuda())
    # Shape: (1, 1536), L2-normalized

Inference Speed

Sequence LengthLatency (single doc)
512 tokens~0.1s
2048 tokens~0.2s
8192 tokens~0.8s

On RTX 5070 Ti, FP16 inference.


Citation

@misc{deepx2026embedding,
  title={DeepX Embedding v1.0: Vietnamese Legal Retrieval with Gated DeltaNet-2 Linear Attention},
  author={DX Tech Asia},
  year={2026},
  url={https://huggingface.co/dxtech-asia/deepx-embedding-v1}
}

License

Apache 2.0

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

Benchmarks

Reported results

As published on the model card: the maker's own numbers, not measured by AxForge.

TaskDatasetMetricScore
RetrievalZalo Legal Text Retrievalndcg_at_100.816
RetrievalZalo Legal Text Retrievalmrr_at_100.767
RetrievalZalo Legal Text Retrievalrecall_at_100.954
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms