You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问mT5 Transformer编码器,处理句子对并计算余弦相似度

解决方案

1. 切换到mT5-based的SentenceTransformer模型

首先,你需要使用基于mT5的SentenceTransformer预训练模型,比如sentence-t5-base(或轻量版sentence-t5-small),这类模型针对句子对相似度任务做了优化,且封装了mT5编码器的调用逻辑,无需手动处理底层输入格式。

2. 单句对的相似度计算

你可以直接传入两个句子,通过模型编码后计算余弦相似度,或者更高效地使用模型内置的similarity方法直接计算,省去手动实现余弦公式的步骤:

from sentence_transformers import SentenceTransformer
import numpy as np
from numpy.linalg import norm

# 加载mT5-based的SentenceTransformer模型
model = SentenceTransformer('sentence-t5-base')

# 单句对示例
sentence_a = "This framework generates embeddings for each input sentence"
sentence_b = "This is an embedding for framework generation"

# 方法1:手动编码后计算相似度
emb_a = model.encode(sentence_a)
emb_b = model.encode(sentence_b)
cos_sim = np.dot(emb_a, emb_b) / (norm(emb_a) * norm(emb_b))
print(f"手动计算相似度:{cos_sim}")

# 方法2:使用模型内置similarity方法(更简洁高效)
cos_sim = model.similarity(sentence_a, sentence_b).item()
print(f"内置方法计算相似度:{cos_sim}")

3. 批量处理句子对数据集

如果你的数据集是多组句子对的列表(格式如[(sent1, sent2), (sent3, sent4), ...]),可以通过批量编码+逐对计算,或直接用内置方法批量处理:

# 示例句子对数据集
sentence_pairs = [
    ("The cat sits on the mat", "A cat is resting on the mat"),
    ("I love programming", "Coding is my passion"),
    ("The sky is blue", "Grass is green")
]

# 方式1:批量编码后逐对计算
all_sentences = [sent for pair in sentence_pairs for sent in pair]
embeddings = model.encode(all_sentences)

similarities = []
for i in range(0, len(embeddings), 2):
    emb_a = embeddings[i]
    emb_b = embeddings[i+1]
    cos_sim = np.dot(emb_a, emb_b) / (norm(emb_a) * norm(emb_b))
    similarities.append(cos_sim)

# 方式2:用内置方法批量计算(效率更高)
sents_a = [pair[0] for pair in sentence_pairs]
sents_b = [pair[1] for pair in sentence_pairs]
similarities = model.similarity(sents_a, sents_b).numpy().flatten()

print("批量计算的相似度结果:", similarities)

关键说明

  • SentenceTransformer已封装mT5的输入处理逻辑,传入原始句子即可,无需手动添加mT5要求的特殊token(如<s>、</s>)。
  • 内置similarity方法会利用模型的批量处理能力,在处理大量句子对时比手动计算更高效。

内容的提问来源于stack exchange,提问作者Maria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:35:15