我一直在尝试在 wikitext-2 数据集上微调 GPT2(只是为了帮助自己学习该过程),但我遇到了一条我以前从未见过的警告消息:
\n“未设置注意掩码和填充令牌 ID。因此,您可能会观察到意外行为。请传递您的输入attention_mask以获得可靠的结果。\n设置pad_token_id为eos_token_id:50256 以进行开放式生成。”
这看起来很奇怪,因为我在实例化 tokenizer 时在代码中明确指定了 EOS 令牌:
\ntokenizer = GPT2Tokenizer.from_pretrained(\'gpt2\', bos_token=\'<|startoftext|>\', eos_token=\'<|endoftext|>\', pad_token=\'<|pad|>\')\nRun Code Online (Sandbox Code Playgroud)\n训练在没有崩溃的情况下完成,我的损失在每个时期都有所改善,但是当我推断模型时,它输出绝对的乱码 - 有时只生成一个单词而没有其他任何东西。我认为我收到的警告消息与模型表现不佳之间存在联系。
\n我从这里获得了训练、有效、测试数据(我使用了 .raw 文件) - https://blog.salesforceairesearch.com/the-wikitext-long-term-dependency-language-modeling-dataset/
\n我在数据集的原始 txt 文件中手动添加了 <|startoftext|> 和 <|endoftext|> 。生成的训练数据类似于这两个示例(取自文本文件的中间):
\n...\n<|startoftext|>\n= Perfect Dark ( 2010 video game ) = \n \n Perfect Dark is a remastered release of the first @-@ person shooter video game by the same name . Developed by 4J Studios …Run Code Online (Sandbox Code Playgroud)