🚀 albert-small-kor-sbert-v1
このモデルはsentence-transformersを用いたもので、文章や段落を768次元の密ベクトル空間にマッピングし、クラスタリングや意味検索などのタスクに利用できます。
これはalbert-small-kor-v1モデルをSentenceBERTで構築したものです。
🚀 クイックスタート
✨ 主な機能
- 文章や段落を768次元の密ベクトル空間にマッピングする。
- クラスタリングや意味検索などのタスクに利用可能。
📦 インストール
sentence-transformersをインストールすることで、このモデルを簡単に使用できます。
pip install -U sentence-transformers
💻 使用例
基本的な使用法
from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]
model = SentenceTransformer('bongsoo/albert-small-kor-sbert-v1')
embeddings = model.encode(sentences)
print(embeddings)
高度な使用法
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
sentences = ['This is an example sentence', 'Each sentence is converted']
tokenizer = AutoTokenizer.from_pretrained('bongsoo/albert-small-kor-sbert-v1')
model = AutoModel.from_pretrained('bongsoo/albert-small-kor-sbert-v1')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
📚 ドキュメント
評価結果
- 性能測定には、以下の韓国語(kor)と英語(en)の評価コーパスを使用しました。
- 性能指標は cosin.spearman です。
- 評価測定コードはこちらを参照してください。
モデル |
korsts |
klue - sts |
glue(stsb) |
stsb_multi_mt(en) |
distiluse - base - multilingual - cased - v2 |
0.7475 |
0.7855 |
0.8193 |
0.8075 |
paraphrase - multilingual - mpnet - base - v2 |
0.8201 |
0.7993 |
0.8907 |
0.8682 |
bongsoo/moco - sentencedistilbertV2.1 |
0.8390 |
0.8767 |
0.8805 |
0.8548 |
bongsoo/albert - small - kor - sbert - v1 |
0.8305 |
0.8588 |
0.8419 |
0.7965 |
このモデルの自動評価については、Sentence Embeddings Benchmark: https://seb.sbert.net を参照してください。
トレーニング
モデルは以下のパラメータでトレーニングされました。
共通
- do_lower_case = 1, correct_bios = 0, polling_mode = cls
1. STS
- コーパス: korsts(5,749) + kluestsV1.1(11,668) + stsb_multi_mt(5,749) + mteb/sickr - sts(9,927) + glue stsb(5,749) (合計: 38,842)
- パラメータ: lr: 1e - 4, eps: 1e - 6, warm_step = 10%, epochs: 10, train_batch: 32, eval_batch: 64, max_token_len: 72
- トレーニングコードはこちらを参照してください。
2. distilation
- 教師モデル: paraphrase - multilingual - mpnet - base - v2(max_token_len: 128)
- コーパス: news_talk_en_ko_train.tsv (英語 - 韓国語の会話 - ニュースの並列コーパス: 1.38M)
- パラメータ: lr: 5e - 5, eps: 1e - 8, epochs: 10, train_batch: 32, eval/test_batch: 64, max_token_len: 128(教師モデルが128なので合わせる)
- トレーニングコードはこちらを参照してください。
3. NLI
- コーパス: トレーニング(967,852): kornli(550,152), kluenli(24,998), glue - mnli(392,702) / 評価(3,519): korsts(1,500), kluests(519), gluests(1,500)
- ハイパーパラメータ: lr: 3e - 5, eps: 1e - 8, warm_step = 10%, epochs: 3, train/eval_batch: 64, max_token_len: 128
- トレーニングコードはこちらを参照してください。
完全なモデルアーキテクチャ
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': True}) with Transformer model: AlbertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
📄 ライセンス
著作権者: bongsoo