如何禁用 TOKENIZERS_PARALLELISM=(true | false) 警告?

How to disable TOKENIZERS_PARALLELISM=(true | false) warning?

我用pytorch训练huggingface-transformers模型,但是每个epoch,总是输出警告:

The current process just got forked. Disabling parallelism to avoid deadlocks... To disable this warning, please explicitly set TOKENIZERS_PARALLELISM=(true | false)

如何禁用此警告?

我通过将 huggingface 的 transfomers 库版本从 3.0.0 降级到 2.11.0 并将 tokenizers 库版本从 0.8 降级来解决了这个问题.0rc4 到 0.7.0.

看来是huggingface的tokenizer库版本“0.8.0rc4”的问题。目前,似乎没有设置 TOKENIZERS_PARALLELISM=(true | false) as error message say.

的解决方案

参考:https://github.com/ThilinaRajapakse/simpletransformers/issues/515

设置环境变量为字符串"false"

或者

TOKENIZERS_PARALLELISM=false

在你的 shell

或通过:

import os
os.environ["TOKENIZERS_PARALLELISM"] = "false"

在 Python 脚本中

我将在此处留下此评论,以帮助任何想知道是否可以保持并行性并在训练期间节省宝贵时间的人。也因为它是直接在 Google.

上搜索错误时的第一个 Whosebug 页面

根据这个 comment on githubFastTokenizers 似乎是问题所在。 另外根据 another comment on gitmemory 你不应该在分叉进程之前使用标记器。 (这基本上意味着在迭代你的数据加载器之前)

所以解决方案是在 training/fine-tuning 使用普通分词器之前不要使用 FastTokenizers。

查看 huggingface 文档以了解您是否真的需要 FastTokenizer。