初始化项目,由ModelHub XC社区提供模型
Model: upskyy/e5-small-korean Source: Original Platform
This commit is contained in:
36
.gitattributes
vendored
Normal file
36
.gitattributes
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
||||
10
1_Pooling/config.json
Normal file
10
1_Pooling/config.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"word_embedding_dimension": 384,
|
||||
"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
|
||||
}
|
||||
358
README.md
Normal file
358
README.md
Normal file
@@ -0,0 +1,358 @@
|
||||
---
|
||||
language:
|
||||
- multilingual
|
||||
- af
|
||||
- am
|
||||
- ar
|
||||
- as
|
||||
- az
|
||||
- be
|
||||
- bg
|
||||
- bn
|
||||
- br
|
||||
- bs
|
||||
- ca
|
||||
- cs
|
||||
- cy
|
||||
- da
|
||||
- de
|
||||
- el
|
||||
- en
|
||||
- eo
|
||||
- es
|
||||
- et
|
||||
- eu
|
||||
- fa
|
||||
- fi
|
||||
- fr
|
||||
- fy
|
||||
- ga
|
||||
- gd
|
||||
- gl
|
||||
- gu
|
||||
- ha
|
||||
- he
|
||||
- hi
|
||||
- hr
|
||||
- hu
|
||||
- hy
|
||||
- id
|
||||
- is
|
||||
- it
|
||||
- ja
|
||||
- jv
|
||||
- ka
|
||||
- kk
|
||||
- km
|
||||
- kn
|
||||
- ko
|
||||
- ku
|
||||
- ky
|
||||
- la
|
||||
- lo
|
||||
- lt
|
||||
- lv
|
||||
- mg
|
||||
- mk
|
||||
- ml
|
||||
- mn
|
||||
- mr
|
||||
- ms
|
||||
- my
|
||||
- ne
|
||||
- nl
|
||||
- 'no'
|
||||
- om
|
||||
- or
|
||||
- pa
|
||||
- pl
|
||||
- ps
|
||||
- pt
|
||||
- ro
|
||||
- ru
|
||||
- sa
|
||||
- sd
|
||||
- si
|
||||
- sk
|
||||
- sl
|
||||
- so
|
||||
- sq
|
||||
- sr
|
||||
- su
|
||||
- sv
|
||||
- sw
|
||||
- ta
|
||||
- te
|
||||
- th
|
||||
- tl
|
||||
- tr
|
||||
- ug
|
||||
- uk
|
||||
- ur
|
||||
- uz
|
||||
- vi
|
||||
- xh
|
||||
- yi
|
||||
- zh
|
||||
license: mit
|
||||
library_name: sentence-transformers
|
||||
tags:
|
||||
- korean
|
||||
- sentence-transformers
|
||||
- transformers
|
||||
- multilingual
|
||||
- sentence-transformers
|
||||
- sentence-similarity
|
||||
- feature-extraction
|
||||
base_model: intfloat/multilingual-e5-small
|
||||
datasets: []
|
||||
metrics:
|
||||
- pearson_cosine
|
||||
- spearman_cosine
|
||||
- pearson_manhattan
|
||||
- spearman_manhattan
|
||||
- pearson_euclidean
|
||||
- spearman_euclidean
|
||||
- pearson_dot
|
||||
- spearman_dot
|
||||
- pearson_max
|
||||
- spearman_max
|
||||
widget:
|
||||
- source_sentence: 이집트 군대가 형제애를 단속하다
|
||||
sentences:
|
||||
- 이집트의 군대가 무슬림 형제애를 단속하다
|
||||
- 아르헨티나의 기예르모 코리아와 네덜란드의 마틴 버커크의 또 다른 준결승전도 매력적이다.
|
||||
- 그것이 사실일 수도 있다고 생각하는 것은 재미있다.
|
||||
- source_sentence: 오, 그리고 다시 결혼은 근본적인 인권이라고 주장한다.
|
||||
sentences:
|
||||
- 특히 결혼은 근본적인 인권이라고 말한 후에.
|
||||
- 해변에 있는 흑인과 그의 개...
|
||||
- 이란은 핵 프로그램이 평화적인 목적을 위한 것이라고 주장한다
|
||||
- source_sentence: 한 소년이 파란 플라스틱 슬라이드 위에서 뛰어내린다.
|
||||
sentences:
|
||||
- 아이들이 놀고 있다
|
||||
- 한 소년이 빨간 플라스틱 사다리 꼭대기에서 뛰어내린다.
|
||||
- 슬라이드가 있다.
|
||||
- source_sentence: 감각주의자들은 일부러 오르가즘 없이 섹스를 한다. 그녀는 촛불을 좋아하고, 몸에 기름을 바른 히보스에 대해 쓰고
|
||||
있다.
|
||||
sentences:
|
||||
- 감각주의자들은 섹스하는 동안 오르가즘을 느끼고 싶어한다.
|
||||
- 하지만 밤마다 드로잉을 하는 것보다 전국적으로 방송되는 대질심문을 하는 것이 훨씬 더 힘든 일이다, 그래서 미스.
|
||||
- 감각주의자들은 일부러 오르가즘 없이 섹스를 한다.
|
||||
- source_sentence: 조지 샤힌은 안데르센 컨설팅 사업부에서 일했다.
|
||||
sentences:
|
||||
- 심장 박동이 빨라졌다.
|
||||
- 안데르센 컨설팅은 여전히 번창하는 사업이다.
|
||||
- 이것은 내가 영국의 아서 안데르센 사업부의 파트너인 짐 와디아를 아서 안데르센 경영진이 선택한 것보다 래리 웨인바흐를 안데르센 월드와이드의
|
||||
경영 파트너로 승계하기 위해 안데르센 컨설팅 사업부(현재의 엑센츄어라고 알려져 있음)의 전 관리 파트너인 조지 샤힌에 대한 지지를 표명했을
|
||||
때 가장 명백했다.
|
||||
pipeline_tag: sentence-similarity
|
||||
model-index:
|
||||
- name: upskyy/e5-small-korean
|
||||
results:
|
||||
- task:
|
||||
type: semantic-similarity
|
||||
name: Semantic Similarity
|
||||
dataset:
|
||||
name: sts dev
|
||||
type: sts-dev
|
||||
metrics:
|
||||
- type: pearson_cosine
|
||||
value: 0.8479945412588525
|
||||
name: Pearson Cosine
|
||||
- type: spearman_cosine
|
||||
value: 0.8466656037931976
|
||||
name: Spearman Cosine
|
||||
- type: pearson_manhattan
|
||||
value: 0.8309207821128262
|
||||
name: Pearson Manhattan
|
||||
- type: spearman_manhattan
|
||||
value: 0.8372540023545114
|
||||
name: Spearman Manhattan
|
||||
- type: pearson_euclidean
|
||||
value: 0.8328087877425099
|
||||
name: Pearson Euclidean
|
||||
- type: spearman_euclidean
|
||||
value: 0.8395342346643203
|
||||
name: Spearman Euclidean
|
||||
- type: pearson_dot
|
||||
value: 0.8212157223150336
|
||||
name: Pearson Dot
|
||||
- type: spearman_dot
|
||||
value: 0.8225569441483638
|
||||
name: Spearman Dot
|
||||
- type: pearson_max
|
||||
value: 0.8479945412588525
|
||||
name: Pearson Max
|
||||
- type: spearman_max
|
||||
value: 0.8466656037931976
|
||||
name: Spearman Max
|
||||
---
|
||||
|
||||
# upskyy/e5-small-korean
|
||||
|
||||
This model is korsts and kornli finetuning model from [intfloat/multilingual-e5-small](https://huggingface.co/intfloat/multilingual-e5-small). It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
|
||||
|
||||
## Model Details
|
||||
|
||||
### Model Description
|
||||
- **Model Type:** Sentence Transformer
|
||||
- **Base model:** [intfloat/multilingual-e5-small](https://huggingface.co/intfloat/multilingual-e5-small) <!-- at revision fd1525a9fd15316a2d503bf26ab031a61d056e98 -->
|
||||
- **Maximum Sequence Length:** 512 tokens
|
||||
- **Output Dimensionality:** 384 tokens
|
||||
- **Similarity Function:** Cosine Similarity
|
||||
<!-- - **Training Dataset:** Unknown -->
|
||||
<!-- - **Language:** Unknown -->
|
||||
<!-- - **License:** Unknown -->
|
||||
|
||||
### Full Model Architecture
|
||||
|
||||
```
|
||||
SentenceTransformer(
|
||||
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
|
||||
(1): Pooling({'word_embedding_dimension': 384, '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})
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
### Usage (Sentence-Transformers)
|
||||
|
||||
|
||||
First install the Sentence Transformers library:
|
||||
|
||||
```bash
|
||||
pip install -U sentence-transformers
|
||||
```
|
||||
|
||||
Then you can load this model and run inference.
|
||||
```python
|
||||
from sentence_transformers import SentenceTransformer
|
||||
|
||||
# Download from the 🤗 Hub
|
||||
model = SentenceTransformer("upskyy/e5-small-korean")
|
||||
|
||||
# Run inference
|
||||
sentences = [
|
||||
'아이를 가진 엄마가 해변을 걷는다.',
|
||||
'두 사람이 해변을 걷는다.',
|
||||
'한 남자가 해변에서 개를 산책시킨다.',
|
||||
]
|
||||
embeddings = model.encode(sentences)
|
||||
print(embeddings.shape)
|
||||
# [3, 384]
|
||||
|
||||
# Get the similarity scores for the embeddings
|
||||
similarities = model.similarity(embeddings, embeddings)
|
||||
print(similarities.shape)
|
||||
# [3, 3]
|
||||
```
|
||||
|
||||
### Usage (HuggingFace Transformers)
|
||||
|
||||
Without sentence-transformers, you can use the model like this:
|
||||
First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.
|
||||
|
||||
```python
|
||||
from transformers import AutoTokenizer, AutoModel
|
||||
import torch
|
||||
|
||||
|
||||
# Mean Pooling - Take attention mask into account for correct averaging
|
||||
def mean_pooling(model_output, attention_mask):
|
||||
token_embeddings = model_output[0] # First element of model_output contains all token embeddings
|
||||
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
|
||||
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
|
||||
|
||||
|
||||
# Sentences we want sentence embeddings for
|
||||
sentences = ["안녕하세요?", "한국어 문장 임베딩을 위한 버트 모델입니다."]
|
||||
|
||||
# Load model from HuggingFace Hub
|
||||
tokenizer = AutoTokenizer.from_pretrained("upskyy/e5-small-korean")
|
||||
model = AutoModel.from_pretrained("upskyy/e5-small-korean")
|
||||
|
||||
# Tokenize sentences
|
||||
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors="pt")
|
||||
|
||||
# Compute token embeddings
|
||||
with torch.no_grad():
|
||||
model_output = model(**encoded_input)
|
||||
|
||||
# Perform pooling. In this case, mean pooling.
|
||||
sentence_embeddings = mean_pooling(model_output, encoded_input["attention_mask"])
|
||||
|
||||
print("Sentence embeddings:")
|
||||
print(sentence_embeddings)
|
||||
```
|
||||
|
||||
|
||||
## Evaluation
|
||||
|
||||
### Metrics
|
||||
|
||||
#### Semantic Similarity
|
||||
* Dataset: `sts-dev`
|
||||
* Evaluated with [<code>EmbeddingSimilarityEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.EmbeddingSimilarityEvaluator)
|
||||
|
||||
| Metric | Value |
|
||||
| :----------------- | :--------- |
|
||||
| pearson_cosine | 0.848 |
|
||||
| spearman_cosine | 0.8467 |
|
||||
| pearson_manhattan | 0.8309 |
|
||||
| spearman_manhattan | 0.8373 |
|
||||
| pearson_euclidean | 0.8328 |
|
||||
| spearman_euclidean | 0.8395 |
|
||||
| pearson_dot | 0.8212 |
|
||||
| spearman_dot | 0.8226 |
|
||||
| **pearson_max** | **0.848** |
|
||||
| **spearman_max** | **0.8467** |
|
||||
|
||||
<!--
|
||||
## Bias, Risks and Limitations
|
||||
|
||||
*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
|
||||
-->
|
||||
|
||||
<!--
|
||||
### Recommendations
|
||||
|
||||
*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
|
||||
-->
|
||||
|
||||
|
||||
|
||||
### Framework Versions
|
||||
- Python: 3.10.13
|
||||
- Sentence Transformers: 3.0.1
|
||||
- Transformers: 4.42.4
|
||||
- PyTorch: 2.3.0+cu121
|
||||
- Accelerate: 0.30.1
|
||||
- Datasets: 2.16.1
|
||||
- Tokenizers: 0.19.1
|
||||
|
||||
## Citation
|
||||
|
||||
### BibTeX
|
||||
|
||||
```bibtex
|
||||
@article{wang2024multilingual,
|
||||
title={Multilingual E5 Text Embeddings: A Technical Report},
|
||||
author={Wang, Liang and Yang, Nan and Huang, Xiaolong and Yang, Linjun and Majumder, Rangan and Wei, Furu},
|
||||
journal={arXiv preprint arXiv:2402.05672},
|
||||
year={2024}
|
||||
}
|
||||
```
|
||||
|
||||
```bibtex
|
||||
@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",
|
||||
}
|
||||
```
|
||||
25
config.json
Normal file
25
config.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"architectures": [
|
||||
"BertModel"
|
||||
],
|
||||
"attention_probs_dropout_prob": 0.1,
|
||||
"classifier_dropout": null,
|
||||
"hidden_act": "gelu",
|
||||
"hidden_dropout_prob": 0.1,
|
||||
"hidden_size": 384,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 1536,
|
||||
"layer_norm_eps": 1e-12,
|
||||
"max_position_embeddings": 512,
|
||||
"model_type": "bert",
|
||||
"num_attention_heads": 12,
|
||||
"num_hidden_layers": 12,
|
||||
"pad_token_id": 0,
|
||||
"position_embedding_type": "absolute",
|
||||
"tokenizer_class": "XLMRobertaTokenizer",
|
||||
"torch_dtype": "float32",
|
||||
"transformers_version": "4.42.4",
|
||||
"type_vocab_size": 2,
|
||||
"use_cache": true,
|
||||
"vocab_size": 250037
|
||||
}
|
||||
3
model.safetensors
Normal file
3
model.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f8014bb534e1618ce4d80b4dd29b1553665169cec216113b8839f10dfa5a83a5
|
||||
size 470637416
|
||||
14
modules.json
Normal file
14
modules.json
Normal file
@@ -0,0 +1,14 @@
|
||||
[
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "0",
|
||||
"path": "",
|
||||
"type": "sentence_transformers.models.Transformer"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"name": "1",
|
||||
"path": "1_Pooling",
|
||||
"type": "sentence_transformers.models.Pooling"
|
||||
}
|
||||
]
|
||||
4
sentence_bert_config.json
Normal file
4
sentence_bert_config.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"max_seq_length": 512,
|
||||
"do_lower_case": false
|
||||
}
|
||||
3
sentencepiece.bpe.model
Normal file
3
sentencepiece.bpe.model
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cfc8146abe2a0488e9e2a0c56de7952f7c11ab059eca145a0a727afce0db2865
|
||||
size 5069051
|
||||
51
special_tokens_map.json
Normal file
51
special_tokens_map.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"bos_token": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"cls_token": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"eos_token": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"mask_token": {
|
||||
"content": "<mask>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"pad_token": {
|
||||
"content": "<pad>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"sep_token": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"unk_token": {
|
||||
"content": "<unk>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
}
|
||||
}
|
||||
3
tokenizer.json
Normal file
3
tokenizer.json
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ef04f2b385d1514f500e779207ace0f53e30895ce37563179e29f4022d28ca38
|
||||
size 17083053
|
||||
55
tokenizer_config.json
Normal file
55
tokenizer_config.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"added_tokens_decoder": {
|
||||
"0": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"1": {
|
||||
"content": "<pad>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"2": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"3": {
|
||||
"content": "<unk>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"250001": {
|
||||
"content": "<mask>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
}
|
||||
},
|
||||
"bos_token": "<s>",
|
||||
"clean_up_tokenization_spaces": true,
|
||||
"cls_token": "<s>",
|
||||
"eos_token": "</s>",
|
||||
"mask_token": "<mask>",
|
||||
"model_max_length": 512,
|
||||
"pad_token": "<pad>",
|
||||
"sep_token": "</s>",
|
||||
"sp_model_kwargs": {},
|
||||
"tokenizer_class": "XLMRobertaTokenizer",
|
||||
"unk_token": "<unk>"
|
||||
}
|
||||
Reference in New Issue
Block a user