初始化项目,由ModelHub XC社区提供模型
Model: setu4993/LEALLA-base Source: Original Platform
This commit is contained in:
34
.gitattributes
vendored
Normal file
34
.gitattributes
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
*.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
|
||||
*.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
|
||||
230
README.md
Normal file
230
README.md
Normal file
@@ -0,0 +1,230 @@
|
||||
---
|
||||
pipeline_tag: sentence-similarity
|
||||
language:
|
||||
- af
|
||||
- am
|
||||
- ar
|
||||
- as
|
||||
- az
|
||||
- be
|
||||
- bg
|
||||
- bn
|
||||
- bo
|
||||
- bs
|
||||
- ca
|
||||
- ceb
|
||||
- co
|
||||
- cs
|
||||
- cy
|
||||
- da
|
||||
- de
|
||||
- el
|
||||
- en
|
||||
- eo
|
||||
- es
|
||||
- et
|
||||
- eu
|
||||
- fa
|
||||
- fi
|
||||
- fr
|
||||
- fy
|
||||
- ga
|
||||
- gd
|
||||
- gl
|
||||
- gu
|
||||
- ha
|
||||
- haw
|
||||
- he
|
||||
- hi
|
||||
- hmn
|
||||
- hr
|
||||
- ht
|
||||
- hu
|
||||
- hy
|
||||
- id
|
||||
- ig
|
||||
- is
|
||||
- it
|
||||
- ja
|
||||
- jv
|
||||
- ka
|
||||
- kk
|
||||
- km
|
||||
- kn
|
||||
- ko
|
||||
- ku
|
||||
- ky
|
||||
- la
|
||||
- lb
|
||||
- lo
|
||||
- lt
|
||||
- lv
|
||||
- mg
|
||||
- mi
|
||||
- mk
|
||||
- ml
|
||||
- mn
|
||||
- mr
|
||||
- ms
|
||||
- mt
|
||||
- my
|
||||
- ne
|
||||
- nl
|
||||
- no
|
||||
- ny
|
||||
- or
|
||||
- pa
|
||||
- pl
|
||||
- pt
|
||||
- ro
|
||||
- ru
|
||||
- rw
|
||||
- si
|
||||
- sk
|
||||
- sl
|
||||
- sm
|
||||
- sn
|
||||
- so
|
||||
- sq
|
||||
- sr
|
||||
- st
|
||||
- su
|
||||
- sv
|
||||
- sw
|
||||
- ta
|
||||
- te
|
||||
- tg
|
||||
- th
|
||||
- tk
|
||||
- tl
|
||||
- tr
|
||||
- tt
|
||||
- ug
|
||||
- uk
|
||||
- ur
|
||||
- uz
|
||||
- vi
|
||||
- wo
|
||||
- xh
|
||||
- yi
|
||||
- yo
|
||||
- zh
|
||||
- zu
|
||||
tags:
|
||||
- bert
|
||||
- sentence_embedding
|
||||
- multilingual
|
||||
- google
|
||||
- sentence-similarity
|
||||
- lealla
|
||||
- labse
|
||||
license: apache-2.0
|
||||
datasets:
|
||||
- CommonCrawl
|
||||
- Wikipedia
|
||||
---
|
||||
|
||||
# LEALLA-base
|
||||
|
||||
## Model description
|
||||
|
||||
LEALLA is a collection of lightweight language-agnostic sentence embedding models supporting 109 languages, distilled from [LaBSE](https://ai.googleblog.com/2020/08/language-agnostic-bert-sentence.html). The model is useful for getting multilingual sentence embeddings and for bi-text retrieval.
|
||||
|
||||
- Model: [HuggingFace's model hub](https://huggingface.co/setu4993/LEALLA-base).
|
||||
- Paper: [arXiv](https://arxiv.org/abs/2302.08387).
|
||||
- Original model: [TensorFlow Hub](https://tfhub.dev/google/LEALLA/LEALLA-base/1).
|
||||
- Conversion from TensorFlow to PyTorch: [GitHub](https://github.com/setu4993/convert-labse-tf-pt).
|
||||
|
||||
This is migrated from the v1 model on the TF Hub. The embeddings produced by both the versions of the model are [equivalent](https://github.com/setu4993/convert-labse-tf-pt/blob/c0d4fbce789b0709a9664464f032d2e9f5368a86/tests/test_conversion_lealla.py#L31). Though, for some of the languages (like Japanese), the LEALLA models appear to require higher tolerances when comparing embeddings and similarities.
|
||||
|
||||
## Usage
|
||||
|
||||
Using the model:
|
||||
|
||||
```python
|
||||
import torch
|
||||
from transformers import BertModel, BertTokenizerFast
|
||||
|
||||
|
||||
tokenizer = BertTokenizerFast.from_pretrained("setu4993/LEALLA-base")
|
||||
model = BertModel.from_pretrained("setu4993/LEALLA-base")
|
||||
model = model.eval()
|
||||
|
||||
english_sentences = [
|
||||
"dog",
|
||||
"Puppies are nice.",
|
||||
"I enjoy taking long walks along the beach with my dog.",
|
||||
]
|
||||
english_inputs = tokenizer(english_sentences, return_tensors="pt", padding=True)
|
||||
|
||||
with torch.no_grad():
|
||||
english_outputs = model(**english_inputs)
|
||||
```
|
||||
|
||||
To get the sentence embeddings, use the pooler output:
|
||||
|
||||
```python
|
||||
english_embeddings = english_outputs.pooler_output
|
||||
```
|
||||
|
||||
Output for other languages:
|
||||
|
||||
```python
|
||||
italian_sentences = [
|
||||
"cane",
|
||||
"I cuccioli sono carini.",
|
||||
"Mi piace fare lunghe passeggiate lungo la spiaggia con il mio cane.",
|
||||
]
|
||||
japanese_sentences = ["犬", "子犬はいいです", "私は犬と一緒にビーチを散歩するのが好きです"]
|
||||
italian_inputs = tokenizer(italian_sentences, return_tensors="pt", padding=True)
|
||||
japanese_inputs = tokenizer(japanese_sentences, return_tensors="pt", padding=True)
|
||||
|
||||
with torch.no_grad():
|
||||
italian_outputs = model(**italian_inputs)
|
||||
japanese_outputs = model(**japanese_inputs)
|
||||
|
||||
italian_embeddings = italian_outputs.pooler_output
|
||||
japanese_embeddings = japanese_outputs.pooler_output
|
||||
```
|
||||
|
||||
For similarity between sentences, an L2-norm is recommended before calculating the similarity:
|
||||
|
||||
```python
|
||||
import torch.nn.functional as F
|
||||
|
||||
|
||||
def similarity(embeddings_1, embeddings_2):
|
||||
normalized_embeddings_1 = F.normalize(embeddings_1, p=2)
|
||||
normalized_embeddings_2 = F.normalize(embeddings_2, p=2)
|
||||
return torch.matmul(
|
||||
normalized_embeddings_1, normalized_embeddings_2.transpose(0, 1)
|
||||
)
|
||||
|
||||
|
||||
print(similarity(english_embeddings, italian_embeddings))
|
||||
print(similarity(english_embeddings, japanese_embeddings))
|
||||
print(similarity(italian_embeddings, japanese_embeddings))
|
||||
```
|
||||
|
||||
## Details
|
||||
|
||||
Details about data, training, evaluation and performance metrics are available in the [original paper](https://arxiv.org/abs/2302.08387).
|
||||
|
||||
### BibTeX entry and citation info
|
||||
|
||||
```bibtex
|
||||
@inproceedings{mao-nakagawa-2023-lealla,
|
||||
title = "{LEALLA}: Learning Lightweight Language-agnostic Sentence Embeddings with Knowledge Distillation",
|
||||
author = "Mao, Zhuoyuan and
|
||||
Nakagawa, Tetsuji",
|
||||
booktitle = "Proceedings of the 17th Conference of the European Chapter of the Association for Computational Linguistics",
|
||||
month = may,
|
||||
year = "2023",
|
||||
address = "Dubrovnik, Croatia",
|
||||
publisher = "Association for Computational Linguistics",
|
||||
url = "https://aclanthology.org/2023.eacl-main.138",
|
||||
doi = "10.18653/v1/2023.eacl-main.138",
|
||||
pages = "1886--1894",
|
||||
abstract = "Large-scale language-agnostic sentence embedding models such as LaBSE (Feng et al., 2022) obtain state-of-the-art performance for parallel sentence alignment. However, these large-scale models can suffer from inference speed and computation overhead. This study systematically explores learning language-agnostic sentence embeddings with lightweight models. We demonstrate that a thin-deep encoder can construct robust low-dimensional sentence embeddings for 109 languages. With our proposed distillation methods, we achieve further improvements by incorporating knowledge from a teacher model. Empirical results on Tatoeba, United Nations, and BUCC show the effectiveness of our lightweight models. We release our lightweight language-agnostic sentence embedding models LEALLA on TensorFlow Hub.",
|
||||
}
|
||||
```
|
||||
23
config.json
Normal file
23
config.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"architectures": ["BertModel"],
|
||||
"attention_probs_dropout_prob": 0.1,
|
||||
"classifier_dropout": null,
|
||||
"gradient_checkpointing": false,
|
||||
"hidden_act": "gelu",
|
||||
"hidden_dropout_prob": 0.1,
|
||||
"hidden_size": 192,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 768,
|
||||
"layer_norm_eps": 1e-12,
|
||||
"max_position_embeddings": 512,
|
||||
"model_type": "bert",
|
||||
"num_attention_heads": 12,
|
||||
"num_hidden_layers": 24,
|
||||
"pad_token_id": 0,
|
||||
"position_embedding_type": "absolute",
|
||||
"torch_dtype": "float32",
|
||||
"transformers_version": "4.29.2",
|
||||
"type_vocab_size": 2,
|
||||
"use_cache": true,
|
||||
"vocab_size": 501153
|
||||
}
|
||||
3
flax_model.msgpack
Normal file
3
flax_model.msgpack
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ba34e247687324cdf54d6c82a8275277f18d4927035135ee5ec3b3819cbb9cc3
|
||||
size 428150477
|
||||
3
model.safetensors
Normal file
3
model.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:93e6a1dc1ecf5698375fbd7ad1ea74d85f354b56483b5cf9fe480a8316333ada
|
||||
size 428185272
|
||||
3
pytorch_model.bin
Normal file
3
pytorch_model.bin
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5fb7be2f8201f5296052846a34bded5f53971bb73036f54e3e56e9c0a885c82b
|
||||
size 428266797
|
||||
7
special_tokens_map.json
Normal file
7
special_tokens_map.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"cls_token": "[CLS]",
|
||||
"mask_token": "[MASK]",
|
||||
"pad_token": "[PAD]",
|
||||
"sep_token": "[SEP]",
|
||||
"unk_token": "[UNK]"
|
||||
}
|
||||
3
tf_model.h5
Normal file
3
tf_model.h5
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c295cd806afc9516e4f2a99192e1a0437d17163f4a82f05107ac7a5e7f91a882
|
||||
size 428702448
|
||||
501257
tokenizer.json
Normal file
501257
tokenizer.json
Normal file
File diff suppressed because it is too large
Load Diff
15
tokenizer_config.json
Normal file
15
tokenizer_config.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"clean_up_tokenization_spaces": true,
|
||||
"cls_token": "[CLS]",
|
||||
"do_basic_tokenize": true,
|
||||
"do_lower_case": false,
|
||||
"mask_token": "[MASK]",
|
||||
"model_max_length": 512,
|
||||
"never_split": null,
|
||||
"pad_token": "[PAD]",
|
||||
"sep_token": "[SEP]",
|
||||
"strip_accents": null,
|
||||
"tokenize_chinese_chars": true,
|
||||
"tokenizer_class": "BertTokenizer",
|
||||
"unk_token": "[UNK]"
|
||||
}
|
||||
Reference in New Issue
Block a user