了解 gpt-2 如何标记字符串

Posted

技术标签:

【中文标题】了解 gpt-2 如何标记字符串【英文标题】:Understanding how gpt-2 tokenizes the strings 【发布时间】:2021-07-21 18:25:09 【问题描述】:

使用教程here,我写了如下代码:

from transformers import GPT2Tokenizer, GPT2Model
import torch

tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2Model.from_pretrained('gpt2')

inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)

last_hidden_states = outputs.last_hidden_state

所以我意识到“输入”由我句子的标记化项目组成。 但是我怎样才能得到标记化项目的值呢? (参见例如 ["hello", ",", "my", "dog", "is", "cute"])

我之所以这样问,是因为有时我认为如果该词不在其字典中(即来自另一种语言的词),它会分隔一个词。所以我想在我的代码中检查一下。

【问题讨论】:

价值观是什么意思?您是否正在寻找从 last_hidden_state 到每个(未标记的)单词的映射? 【参考方案1】:

您可以在分词器的输出上调用 tokenizer.decode 以从给定索引下的词汇表中获取单词:

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> list(map(tokenizer.decode, inputs.input_ids[0]))
['Hello', ',', ' my', ' dog', ' is', ' cute']

【讨论】:

以上是关于了解 gpt-2 如何标记字符串的主要内容,如果未能解决你的问题,请参考以下文章

快速了解 GPT 发展三阶段

JSTL if 标记相等的字符串

如何替换 Java 字符串中的一组标记?

如何通过分隔符标记字符串?

如何检查 XML 标记字符串?

如何从 MVC Razor 标记中获取查询字符串参数?