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

如何利用SentenceTransformer并行将10个字符串编码为Embeddings

使用SentenceTransformer实现批量句子的并行编码

SentenceTransformer的encode方法本身就支持批量句子输入,且内部已实现并行处理逻辑——无论是CPU还是GPU环境,都会自动利用硬件资源加速编码。你只需把所有待处理句子放到一个列表中传入即可,无需额外编写并行代码。

完整实现代码

!pip install -U sentence-transformers

from sentence_transformers import SentenceTransformer
import torch

# 定义需要处理的10个句子
sentences = [
    "This is an example sentence",
    "Each sentence is converted",
    "Learning new skills is an ongoing journey.",
    "The sky painted a mesmerizing array of colors at sunset.",
    "Technology continues to revolutionize the way we live.",
    "Understanding different perspectives fosters empathy.",
    "Nature's beauty often lies in its simplicity.",
    "Traveling opens doors to diverse cultures and traditions.",
    "Music has the power to evoke strong emotions.",
    "Kindness is a language that transcends barriers."
]

# 加载模型
model = SentenceTransformer('sentence-transformers/LaBSE')

# 批量并行编码(默认自动并行)
embeddings = model.encode(
    sentences,
    batch_size=10,  # 根据硬件内存调整批次大小,10个句子可直接设为10
    show_progress_bar=True,  # 可选:显示处理进度条
    device='cuda' if torch.cuda.is_available() else 'cpu'  # 可选:指定运行设备
)

# 查看结果形状:(句子数量, embedding维度),LaBSE的维度为768
print(embeddings.shape)

关键说明

  • 并行逻辑:encode方法会自动将句子列表分成批次,在CPU上利用多线程、在GPU上利用CUDA并行处理每个批次的编码,无需手动实现多进程/多线程。
  • 参数优化:
    • batch_size:若处理大量句子,可根据硬件内存调整该值避免内存溢出;针对10个句子,设为10即可一次性处理。
    • show_progress_bar:句子数量较多时,开启该参数可直观查看处理进度。
    • device:若有GPU,指定device='cuda'会大幅提升编码速度,模型会自动加载到GPU运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:25:06