我正在尝试使用 Transformer 包的 BertTokenizer 部分。首先我安装如下。
pip install transformers
Run Code Online (Sandbox Code Playgroud)
这说明它成功了。
当我尝试导入如下所示的包的某些部分时,我得到以下信息。
from transformers import BertTokenizer
Traceback (most recent call last):
File "<ipython-input-2-89505a24ece6>", line 1, in <module>
from transformers import BertTokenizer
File "C:\Users\User\anaconda3\lib\site-packages\transformers\__init__.py", line 22, in <module>
from .integrations import ( # isort:skip
File "C:\Users\User\anaconda3\lib\site-packages\transformers\integrations.py", line 42, in <module>
from .trainer_utils import PREFIX_CHECKPOINT_DIR, BestRun # isort:skip
File "C:\Users\User\anaconda3\lib\site-packages\transformers\trainer_utils.py", line 10, in <module>
from .tokenization_utils_base import ExplicitEnum
File "C:\Users\User\anaconda3\lib\site-packages\transformers\tokenization_utils_base.py", line 31, in <module>
from tokenizers import AddedToken
File "C:\Users\User\anaconda3\lib\site-packages\tokenizers\__init__.py", line 17, in <module> …Run Code Online (Sandbox Code Playgroud) 我正在处理一个巨大的文本数据集以进行内容分类。我已经实现了 distilbert 模型和 distilberttokenizer.from_pretrained() tokenizer。这个 tokenizer 花费了非常长的时间来对我的文本数据进行 tokenizer 大约 7 分钟,只有 14k 记录,这是因为它在我的 CPU 上运行。
有什么方法可以强制标记器在我的 GPU 上运行。
nlp deep-learning huggingface-transformers huggingface-tokenizers
在 Transformers 库中,Pegasus 模型的单词和/或句子的最大输入长度是多少?我在 Pegasus 研究论文中读到最多有 512 个标记,但那是多少个单词和/或句子呢?另外,可以增加512个代币的最大数量吗?
python nlp machine-learning pytorch huggingface-transformers
我正在使用变压器并且我已经加载了一个模型并且它工作正常:
from transformers import AutoModelForSequenceClassification
from transformers import AutoTokenizer
task='sentiment'
MODEL = "cardiffnlp/twitter-roberta-base-{task}"
tokenizer = AutoTokenizer.from_pretrained(MODEL)
# PT
model = AutoModelForSequenceClassification.from_pretrained(MODEL)
model.save_pretrained(MODEL)
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试加载另一个任务,例如“情感”或“仇恨”,我会收到此错误:
from transformers import AutoModelForSequenceClassification
from transformers import AutoTokenizer
task='emotion'
MODEL = "cardiffnlp/twitter-roberta-base-{task}"
tokenizer = AutoTokenizer.from_pretrained(MODEL)
# PT
model = AutoModelForSequenceClassification.from_pretrained(MODEL) ## Here I get the error
model.save_pretrained(MODEL)
Run Code Online (Sandbox Code Playgroud)
这个错误:
OSError: Can't load weights for 'cardiffnlp/twitter-roberta-base-emotion'. Make sure that:
- 'cardiffnlp/twitter-roberta-base-emotion' is a correct model identifier listed on 'https://huggingface.co/models'
- or 'cardiffnlp/twitter-roberta-base-emotion' is the correct path to a directory …Run Code Online (Sandbox Code Playgroud) 我想使用预先训练的 BERT 模型,以便将其用于文本分类任务(我正在使用 Huggingface 库)。然而,预训练模型是在与我的不同的领域进行训练的,并且我有一个大型未注释的数据集,可用于对其进行微调。如果我仅使用标记的示例并在特定任务(BertForSequenceClassification)训练时“随时”对其进行微调,则数据集太小,无法适应特定领域的语言模型。这样做的最好方法是什么?谢谢!
nlp text-classification bert-language-model huggingface-transformers pytorch-lightning
我正在尝试导入 AutoTokenizer 和 AutoModelWithLMHead,但出现以下错误:
ImportError:无法从部分初始化的模块“transformers”导入名称“AutoTokenizer”(很可能是由于循环导入)
首先,我安装变压器:pip install transformers然后实现以下代码:
from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("t5-base")
model = AutoModelWithLMHead.from_pretrained("t5-base")
Run Code Online (Sandbox Code Playgroud) BertTokenizer可以将一个句子标记为标记列表,其中一些长单词(例如“embeddings”)被分成几个子词,即“em”、“##bed”、“##ding”和“##s”。
有没有办法找到子词?例如,
t = BertTokenizer.from_pretrained('bert-base-uncased')
tokens = t('word embeddings', add_special_tokens=False)
location = locate_subwords(tokens)
Run Code Online (Sandbox Code Playgroud)
我想要对应于 的locationbe like ,其中 0 表示普通单词,1 表示子单词。[0, 1, 1, 1, 1]['word', 'em', '##bed', '##ding', '##s']
我已使用命令“ conda install -c conda-forge transformers”从 Anaconda 管理员控制台在我的 Jupyter Notebook 中成功安装了 Transformer 包。
但是,当我尝试使用“ ”命令在 Jupyter 笔记本中加载 Transformer 包时import transformers,出现错误'ValueError: got_ver is None'。
我不知道如何解决这个问题。感谢任何投入。
下面是完整的错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-58-279c49635b32> in <module>
----> 1 import transformers
C:\ProgramData\Anaconda3\lib\site-packages\transformers\__init__.py in <module>
41
42 # Check the dependencies satisfy the minimal versions required.
---> 43 from . import dependency_versions_check
44 from .file_utils import (
45 _LazyModule,
C:\ProgramData\Anaconda3\lib\site-packages\transformers\dependency_versions_check.py in <module>
39 continue # not required, check …Run Code Online (Sandbox Code Playgroud) 是否有关于如何微调 HuggingFace BERT模型进行文本分类的分步说明?
我使用tokenizer = RobertaTokenizerFast.from_pretrained('roberta-base',add_prefix_space=True)在英语数据上训练的 roberta-base 分词器来对孟加拉语进行分词,只是为了看看它的行为如何。当我尝试对孟加拉语字符进行编码时tokenizer.encode('\xe0\xa6\xac\xe0\xa6\xbe'),我得到[0, 1437, 35861, 11582, 35861, 4726, 2]的结果是,即使在英语上进行训练,它也会在词汇表中找到一些与孟加拉语字符匹配的标记。经过进一步探索,我发现这些都是特殊字符['<s>', '\xc4\xa0', '\xc3\xa0\xc2\xa6', '\xc2\xac', '\xc3\xa0\xc2\xa6', '\xc2\xbe', '</s>']。我的问题是为什么会发生这种情况,当应用于新语言时,它不应该输出未知的标记吗?非常感谢任何帮助
huggingface-transformers huggingface-tokenizers roberta-language-model