Halong Embedding
Vietnamese text embedding model focused on RAG (Retrieval-Augmented Generation) and productivity, fine-tuned based on intfloat/multilingual-e5-base
Downloads 7,651
Release Time : 7/6/2024
Model Overview
Halong Embedding is a sentence-transformers model fine-tuned from intfloat/multilingual-e5-base, specializing in Vietnamese text embedding, supporting tasks such as semantic text similarity, semantic search, paraphrase mining, text classification, and clustering.
Model Features
Matryoshka embedding
Trained with Matryoshka loss function, allowing truncated embedding vectors with minimal performance loss, providing faster comparison speeds.
Multilingual support
Primarily Vietnamese, while also supporting multilingual processing.
Efficient retrieval
Focused on RAG (Retrieval-Augmented Generation) and productivity, optimizing information retrieval performance.
Model Capabilities
Semantic text similarity calculation
Semantic search
Paraphrase mining
Text classification
Cluster analysis
Use Cases
Information retrieval
Legal document retrieval
Evaluated model performance on the Zalo legal retrieval dataset for quickly finding relevant legal documents.
Accuracy@1 reached 0.8294, Accuracy@10 reached 0.9687
Health domain Q&A
Health benefits query
Retrieving football-related information about health benefits.
Relevant documents ranked by cosine similarity, highest similarity 0.7318
base_model: intfloat/multilingual-e5-base datasets: [] language:
- vi
- en library_name: sentence-transformers license: apache-2.0 metrics:
- cosine_accuracy@1
- cosine_accuracy@3
- cosine_accuracy@5
- cosine_accuracy@10
- cosine_precision@1
- cosine_precision@3
- cosine_precision@5
- cosine_precision@10
- cosine_recall@1
- cosine_recall@3
- cosine_recall@5
- cosine_recall@10
- cosine_ndcg@10
- cosine_mrr@10
- cosine_map@100 pipeline_tag: sentence-similarity tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- loss:MatryoshkaLoss
- loss:MultipleNegativesRankingLoss widget:
- source_sentence: Bóng đá có lợi ích gì cho sức khỏe?
sentences:
- Bóng đá giúp cải thiện sức khỏe tim mạch và tăng cường sức bền.
- Bóng đá là môn thể thao phổ biến nhất thế giới.
- Bóng đá có thể giúp bạn kết nối với nhiều người hơn.
model-index:
- name: Halong Embedding
results:
- task:
type: information-retrieval
name: Information Retrieval
dataset:
name: dim 768
type: dim_768
metrics:
- type: cosine_accuracy@1 value: 0.8294209702660407 name: Cosine Accuracy@1
- type: cosine_accuracy@3 value: 0.9233176838810642 name: Cosine Accuracy@3
- type: cosine_accuracy@5 value: 0.9436619718309859 name: Cosine Accuracy@5
- type: cosine_accuracy@10 value: 0.9687010954616588 name: Cosine Accuracy@10
- type: cosine_precision@1 value: 0.8294209702660407 name: Cosine Precision@1
- type: cosine_precision@3 value: 0.3145539906103286 name: Cosine Precision@3
- type: cosine_precision@5 value: 0.1931142410015649 name: Cosine Precision@5
- type: cosine_precision@10 value: 0.09906103286384975 name: Cosine Precision@10
- type: cosine_recall@1 value: 0.8145539906103286 name: Cosine Recall@1
- type: cosine_recall@3 value: 0.9178403755868545 name: Cosine Recall@3
- type: cosine_recall@5 value: 0.9389671361502347 name: Cosine Recall@5
- type: cosine_recall@10 value: 0.9640062597809077 name: Cosine Recall@10
- type: cosine_ndcg@10 value: 0.8976041381292648 name: Cosine Ndcg@10
- type: cosine_mrr@10 value: 0.879893558884169 name: Cosine Mrr@10
- type: cosine_map@100 value: 0.8763179130484675 name: Cosine Map@100
- task:
type: information-retrieval
name: Information Retrieval
dataset:
name: dim 768
type: dim_768
metrics:
Halong Embedding
Halong Embedding is a Vietnamese text embedding focused on RAG and production efficiency:
- 📚 Trained on a in house dataset consist of approximately 100,000 examples of question and related documents
- 🪆 Trained with a Matryoshka loss, allowing you to truncate embeddings with minimal performance loss: smaller embeddings are faster to compare.
This is a sentence-transformers model finetuned from intfloat/multilingual-e5-base. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
You can find eval, fine-tune scripts here as well as my seminar
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: intfloat/multilingual-e5-base
- Maximum Sequence Length: 512 tokens
- Output Dimensionality: 768 tokens
- Similarity Function: Cosine Similarity
- Language: vi-focused, multilingual
- License: apache-2.0
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: XLMRobertaModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Normalize()
)
Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import SentenceTransformer
import torch
# Download from the 🤗 Hub
model = SentenceTransformer("hiieu/halong_embedding")
# Define query and documents
query = "Bóng đá có lợi ích gì cho sức khỏe?"
docs = [
"Bóng đá giúp cải thiện sức khỏe tim mạch và tăng cường sức bền.",
"Bóng đá là môn thể thao phổ biến nhất thế giới.",
"Chơi bóng đá giúp giảm căng thẳng và cải thiện tâm lý.",
"Bóng đá có thể giúp bạn kết nối với nhiều người hơn.",
"Bóng đá không chỉ là môn thể thao mà còn là cách để giải trí."
]
# Encode query and documents
query_embedding = model.encode([query])
doc_embeddings = model.encode(docs)
similarities = model.similarity(query_embedding, doc_embeddings).flatten()
# Sort documents by cosine similarity
sorted_indices = torch.argsort(similarities, descending=True)
sorted_docs = [docs[idx] for idx in sorted_indices]
sorted_scores = [similarities[idx].item() for idx in sorted_indices]
# Print sorted documents with their cosine scores
for doc, score in zip(sorted_docs, sorted_scores):
print(f"Document: {doc} - Cosine Similarity: {score:.4f}")
# Document: Bóng đá giúp cải thiện sức khỏe tim mạch và tăng cường sức bền. - Cosine Similarity: 0.7318
# Document: Chơi bóng đá giúp giảm căng thẳng và cải thiện tâm lý. - Cosine Similarity: 0.6623
# Document: Bóng đá không chỉ là môn thể thao mà còn là cách để giải trí. - Cosine Similarity: 0.6102
# Document: Bóng đá có thể giúp bạn kết nối với nhiều người hơn. - Cosine Similarity: 0.4988
# Document: Bóng đá là môn thể thao phổ biến nhất thế giới. - Cosine Similarity: 0.4828
Matryoshka Embeddings Inference
from sentence_transformers import SentenceTransformer
import torch.nn.functional as F
import torch
matryoshka_dim = 64
model = SentenceTransformer(
"hiieu/halong_embedding",
truncate_dim=matryoshka_dim,
)
# Define query and documents
query = "Bóng đá có lợi ích gì cho sức khỏe?"
docs = [
"Bóng đá giúp cải thiện sức khỏe tim mạch và tăng cường sức bền.",
"Bóng đá là môn thể thao phổ biến nhất thế giới.",
"Chơi bóng đá giúp giảm căng thẳng và cải thiện tâm lý.",
"Bóng đá có thể giúp bạn kết nối với nhiều người hơn.",
"Bóng đá không chỉ là môn thể thao mà còn là cách để giải trí."
]
# Encode query and documents
query_embedding = model.encode([query])
doc_embeddings = model.encode(docs)
similarities = model.similarity(query_embedding, doc_embeddings).flatten()
# Sort documents by cosine similarity
sorted_indices = torch.argsort(similarities, descending=True)
sorted_docs = [docs[idx] for idx in sorted_indices]
sorted_scores = [similarities[idx].item() for idx in sorted_indices]
# Print sorted documents with their cosine scores
for doc, score in zip(sorted_docs, sorted_scores):
print(f"Document: {doc} - Cosine Similarity: {score:.4f}")
# Document: Bóng đá giúp cải thiện sức khỏe tim mạch và tăng cường sức bền. - Cosine Similarity: 0.8045
# Document: Chơi bóng đá giúp giảm căng thẳng và cải thiện tâm lý. - Cosine Similarity: 0.7676
# Document: Bóng đá không chỉ là môn thể thao mà còn là cách để giải trí. - Cosine Similarity: 0.6758
# Document: Bóng đá có thể giúp bạn kết nối với nhiều người hơn. - Cosine Similarity: 0.5931
# Document: Bóng đá là môn thể thao phổ biến nhất thế giới. - Cosine Similarity: 0.5105
Evaluation
Metrics
Information Retrieval
- Dataset: Zalo legal retrieval dataet
- note: We sampled 20% of the Zalo Legal train dataset for fast testing; our model did not train on this dataset.
- Evaluated with
InformationRetrievalEvaluator
Model | Accuracy@1 | Accuracy@3 | Accuracy@5 | Accuracy@10 | Precision@1 | Precision@3 | Precision@5 | Precision@10 | Recall@1 | Recall@3 | Recall@5 | Recall@10 | NDCG@10 | MRR@10 | MAP@100 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
vietnamese-bi-encoder | 0.8169 | 0.9108 | 0.9437 | 0.9640 | 0.8169 | 0.3099 | 0.1931 | 0.0987 | 0.8020 | 0.9045 | 0.9390 | 0.9601 | 0.8882 | 0.8685 | 0.8652 |
sup-SimCSE-VietNamese-phobert-base | 0.5540 | 0.7308 | 0.7981 | 0.8748 | 0.5540 | 0.2473 | 0.1621 | 0.0892 | 0.5446 | 0.7246 | 0.7903 | 0.8693 | 0.7068 | 0.6587 | 0.6592 |
halong_embedding (768) | 0.8294 | 0.9233 | 0.9437 | 0.9687 | 0.8294 | 0.3146 | 0.1931 | 0.0991 | 0.8146 | 0.9178 | 0.9390 | 0.9640 | 0.8976 | 0.8799 | 0.8763 |
halong_embedding (512) | 0.8138 | 0.9233 | 0.9390 | 0.9703 | 0.8138 | 0.3146 | 0.1922 | 0.0992 | 0.7989 | 0.9178 | 0.9343 | 0.9656 | 0.8917 | 0.8715 | 0.8678 |
halong_embedding (256) | 0.7934 | 0.8967 | 0.9280 | 0.9593 | 0.7934 | 0.3062 | 0.1900 | 0.0981 | 0.7786 | 0.8920 | 0.9233 | 0.9546 | 0.8743 | 0.8520 | 0.8489 |
halong_embedding (128) | 0.7840 | 0.8951 | 0.9264 | 0.9515 | 0.7840 | 0.3046 | 0.1894 | 0.0975 | 0.7707 | 0.8889 | 0.9210 | 0.9476 | 0.8669 | 0.8439 | 0.8412 |
halong_embedding (64) | 0.6980 | 0.8435 | 0.8920 | 0.9358 | 0.6980 | 0.2864 | 0.1815 | 0.0958 | 0.6854 | 0.8365 | 0.8842 | 0.9311 | 0.8145 | 0.7805 | 0.7775 |
Citation
You can cite our work as below:
@misc{HalongEmbedding,
title={HalongEmbedding: A Vietnamese Text Embedding},
author={Ngo Hieu},
year={2024},
publisher={Huggingface},
}
BibTeX
Sentence Transformers
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}
MatryoshkaLoss
@misc{kusupati2024matryoshka,
title={Matryoshka Representation Learning},
author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
year={2024},
eprint={2205.13147},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
MultipleNegativesRankingLoss
@misc{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Jina Embeddings V3
Jina Embeddings V3 is a multilingual sentence embedding model supporting over 100 languages, specializing in sentence similarity and feature extraction tasks.
Text Embedding
Transformers Supports Multiple Languages

J
jinaai
3.7M
911
Ms Marco MiniLM L6 V2
Apache-2.0
A cross-encoder model trained on the MS Marco passage ranking task for query-passage relevance scoring in information retrieval
Text Embedding English
M
cross-encoder
2.5M
86
Opensearch Neural Sparse Encoding Doc V2 Distill
Apache-2.0
A sparse retrieval model based on distillation technology, optimized for OpenSearch, supporting inference-free document encoding with improved search relevance and efficiency over V1
Text Embedding
Transformers English

O
opensearch-project
1.8M
7
Sapbert From PubMedBERT Fulltext
Apache-2.0
A biomedical entity representation model based on PubMedBERT, optimized for semantic relation capture through self-aligned pre-training
Text Embedding English
S
cambridgeltl
1.7M
49
Gte Large
MIT
GTE-Large is a powerful sentence transformer model focused on sentence similarity and text embedding tasks, excelling in multiple benchmark tests.
Text Embedding English
G
thenlper
1.5M
278
Gte Base En V1.5
Apache-2.0
GTE-base-en-v1.5 is an English sentence transformer model focused on sentence similarity tasks, excelling in multiple text embedding benchmarks.
Text Embedding
Transformers Supports Multiple Languages

G
Alibaba-NLP
1.5M
63
Gte Multilingual Base
Apache-2.0
GTE Multilingual Base is a multilingual sentence embedding model supporting over 50 languages, suitable for tasks like sentence similarity calculation.
Text Embedding
Transformers Supports Multiple Languages

G
Alibaba-NLP
1.2M
246
Polybert
polyBERT is a chemical language model designed to achieve fully machine-driven ultrafast polymer informatics. It maps PSMILES strings into 600-dimensional dense fingerprints to numerically represent polymer chemical structures.
Text Embedding
Transformers

P
kuelumbus
1.0M
5
Bert Base Turkish Cased Mean Nli Stsb Tr
Apache-2.0
A sentence embedding model based on Turkish BERT, optimized for semantic similarity tasks
Text Embedding
Transformers Other

B
emrecan
1.0M
40
GIST Small Embedding V0
MIT
A text embedding model fine-tuned based on BAAI/bge-small-en-v1.5, trained with the MEDI dataset and MTEB classification task datasets, optimized for query encoding in retrieval tasks.
Text Embedding
Safetensors English
G
avsolatorio
945.68k
29
Featured Recommended AI Models