Vietnamese Embedding
专为越南语设计的嵌入模型,基于PhoBERT优化,能将越南语句子编码为768维向量空间,适用于语义搜索、文本聚类等多种场景。
下载量 6,063
发布时间 : 4/20/2024
模型简介
该模型基于PhoBERT(采用RoBERTa架构的预训练语言模型)进行优化,能够精准捕捉越南语的词汇和上下文语义层次,生成高质量的句子嵌入向量。
模型特点
越南语优化
专门针对越南语设计和优化,能够更好地处理越南语的词汇和语法结构。
多阶段训练
通过四个阶段的训练流程逐步优化,包括初始训练、持续微调、STS基准微调和高级数据增强微调。
高性能
在越南语STS数据集上表现出色,皮尔逊和斯皮尔曼相关系数均超过88%。
语义捕捉能力强
能够精准捕捉越南语句子的语义层次和上下文关系。
模型能力
句子嵌入
语义搜索
文本聚类
句子相似度计算
使用案例
自然语言处理
语义搜索
用于构建越南语语义搜索引擎,提高搜索结果的相关性。
能够更准确地匹配查询和文档的语义
文本聚类
对越南语文本进行聚类分析,发现文本中的主题和模式。
生成高质量的文本聚类结果
句子相似度计算
计算两个越南语句子之间的语义相似度。
皮尔逊相关系数达到88.33%
🚀 越南语句子嵌入模型
vietnamese-embedding 是专门为越南语设计的句子嵌入模型。该模型基于 PhoBERT(一种基于 RoBERTa 架构的预训练语言模型),能够将越南语句子编码为 768 维的向量空间,可广泛应用于语义搜索、文本聚类等领域。
✨ 主要特性
- 专为越南语设计,能够捕捉越南语句子的细微语义。
- 基于 PhoBERT 架构,具有强大的语言理解能力。
- 经过多阶段的训练和微调,在越南语语义文本相似度任务上表现出色。
📦 安装指南
使用此模型前,你需要安装 sentence-transformers 和 pyvi
:
pip install -U sentence-transformers
pip install -q pyvi
💻 使用示例
基础用法
from sentence_transformers import SentenceTransformer
from pyvi.ViTokenizer import tokenize
sentences = ["Hà Nội là thủ đô của Việt Nam", "Đà Nẵng là thành phố du lịch"]
tokenizer_sent = [tokenize(sent) for sent in sentences]
model = SentenceTransformer('dangvantuan/vietnamese-embedding')
embeddings = model.encode(tokenizer_sent)
print(embeddings)
📚 详细文档
模型描述
vietnamese-embedding 是越南语的嵌入模型。该模型是专门为越南语训练的句子嵌入模型,利用了基于 RoBERTa 架构的预训练语言模型 PhoBERT 的强大能力。 该模型使用 PhoBERT 将越南语句子编码到 768 维的向量空间中,便于从语义搜索到文本聚类等广泛应用。嵌入能够捕捉越南语句子的细微含义,反映语言的词汇和上下文层面。
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: RobertaModel
(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})
)
训练和微调过程
该模型经过了严格的四阶段训练和微调过程,每个阶段都旨在增强其为越南语生成精确且上下文相关的句子嵌入的能力。以下是这些阶段的概述:
阶段 1:初始训练
- 数据集:ViNLI-SimCSE-supervised
- 方法:使用 SimCSE 方法 进行训练,该方法采用监督对比学习框架。使用 Triplet Loss 对模型进行优化,以有效地从高质量的标注句子对中学习。
阶段 2:持续微调
- 数据集:XNLI-vn
- 方法:使用多负排名损失继续微调。此阶段专注于提高模型辨别和排名句子语义细微差异的能力。
阶段 3:在 STS 基准上进行语义文本相似度的持续微调
- 数据集:STSB-vn
- 方法:使用配置了
sentence-transformers
库的 Siamese BERT 网络,专门针对语义文本相似度基准进行微调。此阶段提高了模型在捕捉各种类型越南语文本语义相似度方面的精度。
阶段 4:高级增强微调
- 数据集:带有从 金样本生成的银样本 的 STSB-vn
- 方法:采用使用 增强 SBERT 和对采样策略的高级策略,集成了交叉编码器和双编码器模型。此阶段通过动态丰富训练数据进一步优化了嵌入,增强了模型在理解和处理复杂越南语结构方面的鲁棒性和准确性。
评估
可以在 越南语 STSB 数据集 上对模型进行如下评估:
from sentence_transformers import SentenceTransformer
from sentence_transformers import SentenceTransformer
from sentence_transformers.readers import InputExample
from datasets import load_dataset
from pyvi.ViTokenizer import tokenize
def convert_dataset(dataset):
dataset_samples = []
for df in dataset:
score = float(df['score']) / 5.0 # 归一化分数到 0 ... 1 范围
inp_example = InputExample(texts=[tokenize(df['sentence1']),
tokenize(df['sentence2'])], label=score)
dataset_samples.append(inp_example)
return dataset_samples
# 加载评估数据集
vi_sts = load_dataset("doanhieung/vi-stsbenchmark")["train"]
df_dev = vi_sts.filter(lambda example: example['split'] == 'dev')
df_test = vi_sts.filter(lambda example: example['split'] == 'test')
# 转换评估数据集
# 验证集
dev_samples = convert_dataset(df_dev)
val_evaluator = EmbeddingSimilarityEvaluator.from_input_examples(dev_samples, name='sts-dev')
val_evaluator(model, output_path="./")
# 测试集
test_samples = convert_dataset(df_test)
test_evaluator = EmbeddingSimilarityEvaluator.from_input_examples(test_samples, name='sts-test')
test_evaluator(model, output_path="./")
测试结果
使用 Pearson 和 Spearman 相关性来衡量性能:
验证集结果
模型 | Pearson 相关性 | Spearman 相关性 | 参数数量 |
---|---|---|---|
dangvantuan/vietnamese-embedding | 88.33 | 88.20 | 135M |
VoVanPhuc/sup-SimCSE-VietNamese-phobert-base | 84.65 | 84.59 | 135M |
keepitreal/vietnamese-sbert | 84.51 | 84.44 | 135M |
bkai-foundation-models/vietnamese-bi-encoder | 78.05 | 77.94 | 135M |
STS 基准上的语义文本相似度 所有数据集的指标
你可以在这个 Colab 上运行评估。
Pearson 分数
模型 | [STSB] | [STS12] | [STS13] | [STS14] | [STS15] | [STS16] | [SICK] | 平均 |
---|---|---|---|---|---|---|---|---|
dangvantuan/vietnamese-embedding | 84.87 | 87.23 | 85.39 | 82.94 | 86.91 | 79.39 | 82.77 | 84.21 |
VoVanPhuc/sup-SimCSE-VietNamese-phobert-base | 81.52 | 85.02 | 78.22 | 75.94 | 81.53 | 75.39 | 77.75 | 79.33 |
keepitreal/vietnamese-sbert | 80.54 | 78.58 | 80.75 | 76.98 | 82.57 | 73.21 | 80.16 | 78.97 |
bkai-foundation-models/vietnamese-bi-encoder | 73.30 | 67.84 | 71.69 | 69.80 | 78.40 | 74.29 | 76.01 | 73.04 |
Spearman 分数
模型 | [STSB] | [STS12] | [STS13] | [STS14] | [STS15] | [STS16] | [SICK] | 平均 |
---|---|---|---|---|---|---|---|---|
dangvantuan/vietnamese-embedding | 84.84 | 79.04 | 85.30 | 81.38 | 87.06 | 79.95 | 79.58 | 82.45 |
VoVanPhuc/sup-SimCSE-VietNamese-phobert-base | 81.43 | 76.51 | 79.19 | 74.91 | 81.72 | 76.57 | 76.45 | 78.11 |
keepitreal/vietnamese-sbert | 80.16 | 69.08 | 80.99 | 73.67 | 82.81 | 74.30 | 73.40 | 76.34 |
bkai-foundation-models/vietnamese-bi-encoder | 72.16 | 63.86 | 71.82 | 66.20 | 78.62 | 74.24 | 70.87 | 71.11 |
📄 许可证
本项目采用 Apache-2.0 许可证。
📚 引用
@article{reimers2019sentence,
title={Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks},
author={Nils Reimers, Iryna Gurevych},
journal={https://arxiv.org/abs/1908.10084},
year={2019}
}
@article{martin2020camembert,
title={CamemBERT: a Tasty French Language Mode},
author={Martin, Louis and Muller, Benjamin and Suárez, Pedro Javier Ortiz and Dupont, Yoann and Romary, Laurent and de la Clergerie, Éric Villemonte and Seddah, Djamé and Sagot, Benoît},
journal={Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics},
year={2020}
}
@article{thakur2020augmented,
title={Augmented SBERT: Data Augmentation Method for Improving Bi-Encoders for Pairwise Sentence Scoring Tasks},
author={Thakur, Nandan and Reimers, Nils and Daxenberger, Johannes and Gurevych, Iryna},
journal={arXiv e-prints},
pages={arXiv--2010},
year={2020}
}
Jina Embeddings V3
Jina Embeddings V3 是一个多语言句子嵌入模型,支持超过100种语言,专注于句子相似度和特征提取任务。
文本嵌入
Transformers 支持多种语言

J
jinaai
3.7M
911
Ms Marco MiniLM L6 V2
Apache-2.0
基于MS Marco段落排序任务训练的交叉编码器模型,用于信息检索中的查询-段落相关性评分
文本嵌入 英语
M
cross-encoder
2.5M
86
Opensearch Neural Sparse Encoding Doc V2 Distill
Apache-2.0
基于蒸馏技术的稀疏检索模型,专为OpenSearch优化,支持免推理文档编码,在搜索相关性和效率上优于V1版本
文本嵌入
Transformers 英语

O
opensearch-project
1.8M
7
Sapbert From PubMedBERT Fulltext
Apache-2.0
基于PubMedBERT的生物医学实体表征模型,通过自对齐预训练优化语义关系捕捉
文本嵌入 英语
S
cambridgeltl
1.7M
49
Gte Large
MIT
GTE-Large 是一个强大的句子转换器模型,专注于句子相似度和文本嵌入任务,在多个基准测试中表现出色。
文本嵌入 英语
G
thenlper
1.5M
278
Gte Base En V1.5
Apache-2.0
GTE-base-en-v1.5 是一个英文句子转换器模型,专注于句子相似度任务,在多个文本嵌入基准测试中表现优异。
文本嵌入
Transformers 支持多种语言

G
Alibaba-NLP
1.5M
63
Gte Multilingual Base
Apache-2.0
GTE Multilingual Base 是一个多语言的句子嵌入模型,支持超过50种语言,适用于句子相似度计算等任务。
文本嵌入
Transformers 支持多种语言

G
Alibaba-NLP
1.2M
246
Polybert
polyBERT是一个化学语言模型,旨在实现完全由机器驱动的超快聚合物信息学。它将PSMILES字符串映射为600维密集指纹,以数值形式表示聚合物化学结构。
文本嵌入
Transformers

P
kuelumbus
1.0M
5
Bert Base Turkish Cased Mean Nli Stsb Tr
Apache-2.0
基于土耳其语BERT的句子嵌入模型,专为语义相似度任务优化
文本嵌入
Transformers 其他

B
emrecan
1.0M
40
GIST Small Embedding V0
MIT
基于BAAI/bge-small-en-v1.5模型微调的文本嵌入模型,通过MEDI数据集与MTEB分类任务数据集训练,优化了检索任务的查询编码能力。
文本嵌入
Safetensors 英语
G
avsolatorio
945.68k
29
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98