🚀 shibing624/text2vec-base-chinese-paraphrase
このモデルはCoSENT(Cosine Sentence)モデルであるshibing624/text2vec-base-chinese-paraphraseです。文章を768次元の密ベクトル空間にマッピングし、文章埋め込み、テキストマッチング、または意味検索などのタスクに使用できます。
🚀 クイックスタート
このモデルを使用するには、text2vecをインストールすると簡単に利用できます。
pip install -U text2vec
その後、以下のようにモデルを使用できます。
from text2vec import SentenceModel
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']
model = SentenceModel('shibing624/text2vec-base-chinese-paraphrase')
embeddings = model.encode(sentences)
print(embeddings)
✨ 主な機能
- 文章を768次元の密ベクトル空間にマッピングすることができます。
- 文章埋め込み、テキストマッチング、または意味検索などのタスクに使用できます。
📦 インストール
text2vecを使用する場合
pip install -U text2vec
HuggingFace Transformersを使用する場合
pip install transformers
sentence-transformersを使用する場合
pip install -U sentence-transformers
💻 使用例
text2vecを使用する場合
from text2vec import SentenceModel
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']
model = SentenceModel('shibing624/text2vec-base-chinese-paraphrase')
embeddings = model.encode(sentences)
print(embeddings)
HuggingFace Transformersを使用する場合
from transformers import BertTokenizer, BertModel
import torch
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
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)
tokenizer = BertTokenizer.from_pretrained('shibing624/text2vec-base-chinese-paraphrase')
model = BertModel.from_pretrained('shibing624/text2vec-base-chinese-paraphrase')
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
sentence-transformersを使用する場合
from sentence_transformers import SentenceTransformer
m = SentenceTransformer("shibing624/text2vec-base-chinese-paraphrase")
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']
sentence_embeddings = m.encode(sentences)
print("Sentence embeddings:")
print(sentence_embeddings)
📚 ドキュメント
モデル情報
プロパティ |
詳細 |
モデルタイプ |
CoSENT(Cosine Sentence)モデル |
訓練データセット |
https://huggingface.co/datasets/shibing624/nli-zh-all/tree/main/text2vec-base-chinese-paraphrase-dataset |
ベースモデル |
nghuyong/ernie-3.0-base-zh |
最大シーケンス長 |
256 |
最適エポック数 |
5 |
文章埋め込み次元数 |
768 |
評価
このモデルの自動評価については、Evaluation Benchmark: text2vecを参照してください。
リリースモデル
モデル説明
🔧 技術詳細
モデルアーキテクチャ
CoSENT(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: ErnieModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_mean_tokens': True})
)
訓練手順
事前訓練
事前訓練済みのnghuyong/ernie-3.0-base-zh
モデルを使用しています。事前訓練手順の詳細については、モデルカードを参照してください。
ファインチューニング
対照的な目的関数を使用してモデルをファインチューニングしています。形式的には、バッチ内のすべての可能な文章ペアからコサイン類似度を計算し、真のペアと偽のペアを比較することでランク損失を適用しています。
📄 ライセンス
このモデルはApache 2.0ライセンスの下で提供されています。
引用と著者
このモデルはtext2vecによって訓練されました。
このモデルが役に立った場合は、以下のように引用してください。
@software{text2vec,
author = {Ming Xu},
title = {text2vec: A Tool for Text to Vector},
year = {2023},
url = {https://github.com/shibing624/text2vec},
}