有可能用谷歌的T5生成单词嵌入吗?
我想这是可能的。但是,我找不到我需要的代码,以便能够在相关的Github (https://github.com/google-research/text-to-text-transfer-transformer)或HuggingFace (doc/t5)页面上生成单词嵌入。
发布于 2022-06-02 21:11:46
是的,这是可能的。只需将单词的ids输入到单词嵌入层:
from transformers import T5TokenizerFast, T5EncoderModel
tokenizer = T5TokenizerFast.from_pretrained("t5-small")
model = T5EncoderModel.from_pretrained("t5-small")
i = tokenizer(
"This is a meaningless test sentence to show how you can get word embeddings", return_tensors="pt", return_attention_mask=False, add_special_tokens=False
)
o = model.encoder.embed_tokens(i.input_ids)输出张量具有以下形状:
#print(o.shape)
torch.Size([1, 19, 512])这19个向量是每个令牌的表示。根据任务的不同,您可以使用ids将它们映射回单个单词。
i.word_ids()输出:
[0, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 12, 12]https://stackoverflow.com/questions/72451171
复制相似问题