bert预训练模型调用
时间: 2025-06-19 19:46:31 浏览: 15
### 如何加载和使用 BERT 预训练模型
PyTorch 提供了一个强大的工具包 `transformers` 来简化加载和使用预训练模型的过程。以下是关于如何通过 PyTorch 调用并使用 BERT 预训练模型的具体方法。
#### 安装必要的库
为了能够顺利运行代码,首先需要安装 Hugging Face 的 `transformers` 库以及 PyTorch:
```bash
pip install torch transformers
```
#### 加载 BERT 模型
Hugging Face 的 `transformers` 库提供了多种方式来加载预训练的 BERT 模型。以下是一个简单的例子展示如何加载 BERT 并获取其嵌入向量[^1]。
```python
from transformers import BertTokenizer, BertModel
import torch
# 初始化 tokenizer 和 model
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
# 输入文本
text = "This is an example sentence."
tokens = tokenizer(text, return_tensors='pt', padding=True, truncation=True)
# 获取最后一层隐藏状态
with torch.no_grad():
outputs = model(**tokens)
last_hidden_states = outputs.last_hidden_state # 形状为 (batch_size, sequence_length, hidden_size)
```
上述代码展示了如何利用 `BertTokenizer` 对输入文本进行分词处理,并将其转换成适合 BERT 模型的形式。随后,我们可以通过 `BertModel` 得到每一层的状态表示[^2]。
#### 计算文本相似度
如果目标是计算两个句子之间的相似度,则可以进一步提取句向量并通过余弦相似度衡量它们的关系。下面是一段用于计算两句话之间相似性的代码示例:
```python
from sklearn.metrics.pairwise import cosine_similarity
sentence_1 = "I love programming."
sentence_2 = "Programming makes me happy."
def get_sentence_embedding(sentence):
tokens = tokenizer(sentence, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
output = model(**tokens)
embeddings = output.pooler_output.numpy() # 使用 [CLS] token 表征整个句子
return embeddings.flatten()
embedding_1 = get_sentence_embedding(sentence_1)
embedding_2 = get_sentence_embedding(sentence_2)
similarity_score = cosine_similarity([embedding_1], [embedding_2])
print(f"Cosine Similarity Score: {similarity_score[0][0]}")
```
此部分实现了基于 `[CLS]` token 输出作为整句话表征的功能,并借助于 `cosine_similarity()` 函数完成最终得分评估。
---
###
阅读全文
相关推荐



















