🚀 句子相似度模型
本項目致力於在超大規模的句子級數據集上,運用自監督對比學習目標來訓練句子嵌入模型。該模型能將輸入的句子轉化為向量,捕捉句子的語義信息,可用於信息檢索、聚類或句子相似度任務。
🚀 快速開始
本模型可作為句子編碼器使用,輸入句子後,它會輸出一個捕捉句子語義信息的向量。該句子向量可用於信息檢索、聚類或句子相似度任務。
✨ 主要特性
- 大規模數據訓練:在超過10億個句子對的數據集上進行微調,使模型能夠學習到豐富的語義信息。
- 對比學習目標:採用對比學習目標,增強模型對句子語義的理解和區分能力。
- 高效硬件支持:藉助7個TPU v3 - 8進行訓練,並得到Google的Flax、JAX和Cloud團隊成員在高效深度學習框架方面的支持。
📦 安裝指南
使用此模型前,你需要安裝 SentenceTransformers 庫。你可以使用以下命令進行安裝:
pip install sentence-transformers
💻 使用示例
基礎用法
以下是如何使用 SentenceTransformers 庫來獲取給定文本特徵的示例代碼:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('flax-sentence-embeddings/all_datasets_v4_mpnet-base')
text = "Replace me by any text you'd like."
text_embbedding = model.encode(text)
📚 詳細文檔
模型描述
項目旨在使用自監督對比學習目標,在非常大的句子級數據集上訓練句子嵌入模型。我們使用預訓練的 'mpnet-base' 模型,並在10億個句子對的數據集上進行微調。我們使用對比學習目標:給定一對中的一個句子,模型應該預測在一組隨機採樣的其他句子中,哪個實際上在我們的數據集中與它配對。
本模型是在Hugging Face組織的 使用JAX/Flax進行NLP和CV的社區周 期間開發的。作為 使用10億個訓練對訓練有史以來最好的句子嵌入模型 項目的一部分,我們受益於高效的硬件基礎設施(7個TPU v3 - 8),以及Google的Flax、JAX和Cloud團隊成員在高效深度學習框架方面的支持。
訓練過程
預訓練
我們使用預訓練的 'mpnet-base' 模型。有關預訓練過程的更詳細信息,請參考模型卡片。
微調
我們使用對比目標對模型進行微調。具體來說,我們計算批次中每個可能句子對的餘弦相似度,然後通過與真實對進行比較來應用交叉熵損失。
超參數
- 訓練步數:540k步
- 批次大小:1024(每個TPU核心128)
- 學習率預熱:500
- 序列長度:限制為128個標記
- 優化器:AdamW,學習率為2e - 5
完整的訓練腳本可在當前倉庫中獲取。
訓練數據
我們使用多個數據集的組合來微調模型,句子對總數超過10億。每個數據集根據加權概率進行採樣,具體配置詳見 data_config.json
文件。
數據集 |
論文 |
訓練元組數量 |
GOOAQ: Open Question Answering with Diverse Answer Types |
論文 |
3,012,496 |
Stack Exchange |
- |
364,001 |
Flickr 30k |
論文 |
317,695 |
[COCO 2020](COCO 2020) |
論文 |
828,395 |
Code Search |
- |
1,151,414 |
TriviaqQA |
- |
73,346 |
SQuAD2.0 |
論文 |
87,599 |
Natural Questions (NQ) |
論文 |
100,231 |
Simple Wikipedia |
論文 |
102,225 |
Quora Question Pairs |
- |
103,663 |
Altlex |
論文 |
112,696 |
Wikihow |
論文 |
128,542 |
Sentence Compression |
論文 |
180,000 |
AllNLI (SNLI and MultiNLI |
論文 SNLI,論文 MultiNLI |
277,230 |
Eli5 |
論文 |
325,475 |
SPECTER |
論文 |
684,100 |
S2ORC 標題/摘要 |
論文 |
41,769,185 |
S2ORC 引用/引用 |
論文 |
52,603,982 |
S2ORC 引用/摘要 |
論文 |
116,288,806 |
PAQ |
論文 |
64,371,441 |
WikiAnswers |
論文 |
77,427,422 |
SearchQA |
- |
582,261 |
Yahoo Answers 標題/答案 |
論文 |
1,198,260 |
Yahoo Answers 標題/問題 |
論文 |
659,896 |
Yahoo Answers 問題/答案 |
論文 |
681,164 |
MS MARCO |
論文 |
9,144,553 |
Reddit conversationnal |
論文 |
726,484,430 |
總計 |
|
1,097,953,922 |