Bert系列:如何用bert模型输出文本的embedding

分类模型可以输出其文本的embedding吗?LM模型可以输出其文本的embedding吗?答案:可以。

假设你已经用自己的数据fine-tuing好模型。

主要工具设备型号:

python3.6、torch1.7、transformer4.2、macOS、

那么怎么取?用哪个方式获取文本embedding呢?对不起,这个问题也在困扰着我,方法们各有千秋,也不知道如何选择了。那就选择最容易落地、能快速上线的——第一种方式:直接用 CLS Token 的 Embedding 作为句子表征。

BertModel这个类初始化的模型,输出中有pooler_out,可以作为文本的embedding。bert系列的其他类,没有这个输出选项。

例子:

`
from transformers import BertTokenizer, BertModel
import torch

tokenizer = BertTokenizer.from_pretrained(‘bert-base-chinese’)
model = BertModel.from_pretrained(‘bert-base-chinese’)

inputs = tokenizer(‘我是一个好人’, return_tensors=’pt’)
outputs = model(**inputs)

last_hidden_states = outputs.last_hidden_state
print(‘last_hidden_states:’ ,last_hidden_states)
pooler_output = outputs.pooler_output
print(‘—pooler_output: ‘, pooler_output)
输出:768维,也就是768个数,太长了,这里简单看下效果即可,没有将embedding的值全部粘贴出来。

Original: https://blog.csdn.net/pearl8899/article/details/116354207
Author: 凝眸伏笔
Title: Bert系列:如何用bert模型输出文本的embedding

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531065/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球