知识库问答 · 中文选型解读

all-mpnet-base-v2

Hugging Faceapache-2.0

这是一款面向英文的文本向量生成模型,可将句子、段落转换为768维稠密向量,支持语义搜索、文本聚类等相关任务。

25.9M次下载最近更新于 347 天前维护状态apache-2.0 · 可评估商用商用提醒
在 Hugging Face 查看官方项目
适合解决把企业文档和数据变成可追溯的 AI 问答能力
更适合有文档沉淀、客服或内部知识复用需求的团队
投入判断上手门槛:需评估。通常需要整理数据、配置模型与权限
一分钟看懂

这个项目值得继续研究吗?

AI 依据上游资料解读 · 2026/8/2

这是一款面向英文的文本向量生成模型,可将句子、段落转换为768维稠密向量,支持语义搜索、文本聚类等相关任务。

解决什么问题
企业搭建知识库问答、语义检索、文本分类系统时,传统关键词匹配无法识别语义相近内容,召回准确率低,难以满足用户精准查找内容的需求。
适合什么团队
适合需要开发英文语义搜索、文本聚类、知识库问答等业务系统,具备AI技术落地能力的企业团队使用。
使用前注意
该模型仅支持英文文本,采用Apache-2.0开源许可,若不使用配套的sentence-transformers库,需自行实现向量后处理逻辑。

本页用于缩短初步筛选时间,不构成技术、采购或法律结论。 正式使用前请在真实业务数据上验证,并以官方说明与许可证为准。

可核对的事实层

官方资料与来源

查看来源 →
  • sentence-transformers
  • pytorch
  • onnx
  • safetensors
  • openvino
  • mpnet
  • fill-mask
  • feature-extraction
  • sentence-similarity
  • transformers
  • text-embeddings-inference
  • en
查看上游原始说明节选

任务类型:sentence-similarity

# all-mpnet-base-v2
This is a [sentence-transformers](https://www.SBERT.net) model: It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search.

## Usage (Sentence-Transformers)
Using this model becomes easy when you have [sentence-transformers](https://www.SBERT.net) installed:

```
pip install -U sentence-transformers
```

Then you can use the model like this:
```python
from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]

model = SentenceTransformer('sentence-transformers/all-mpnet-base-v2')
embeddings = model.encode(sentences)
print(embeddings)
```

## Usage (HuggingFace Transformers)
Without [sentence-transformers](https://www.SBERT.net), you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.

```python
from transformers import AutoTokenizer, AutoModel
import torch
import torch.nn.functional as F

#Mean Pooling - Take attention mask into account for correct averaging
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] #First element of model_output contains all token embeddings
    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)


# Sentences we want sentence embeddings for
sentences = ['This is an example sentence', 'Each sentence is converted']

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-mpnet-base-v2')
model = AutoModel.from_pretrained('sentence-transformers/all-mpnet-base-v2')

# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

# Compute token embeddings
with torch.no_grad():
    model_output = model(**encoded_input)

# Perform pooling
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

# Normalize embeddings
sentence_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)

print("Sentence embeddings:")
print(sentence_embeddings)
```

## Usage (Text Embeddings Inference (TEI))

[Text Embeddings Inference (TEI)](https://github.com/huggingface/text-embeddings-inference) is a blazing fast inference solution for text embedding models.

- CPU:
```bash
docker run -p 8080:80 -v hf_cache:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cpu-latest --model-id sentence-transformers/all-mpnet-base-v2 --pooling mean --dtype float16
```

- NVIDIA GPU:
```bash
docker run --gpus all -p 8080:80 -v hf_cache:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-latest --model-id sentence-transformers/all-mpnet-base-v2 --pooling mean --dtype float16
```

Send a request to `/v1/embeddings` to generate embeddings via the [OpenAI Embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create):
```bash
curl http://localhost:8080/v1/embeddings \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "sentence-transformers/all-mpnet-base-v2",
    "input": ["This is an example sentence", "Each sentence is converted"]
  }'
```

Or check the [Text Embeddings Inference API specification](https://huggingface.github.io/text-embeddings-inference/) instead.

------

## Background

The project aims to train sentence embedding models on very large sentence level datasets using a self-supervised 
contrastive learning objective. We used the pretrained [`microsoft/mpnet-base`](https://huggingface.co/microsoft/mpnet-base) model and fine-tuned in on a 
1B sentence pairs dataset. We use a contrastive learning objective: given a sentence from the pair, the model should predict which out of a set of randomly sampled other sentences, was actually paired with it in our dataset.

We develope

上游文档较长,此处为节选。完整内容见官方项目。