you*_*ung 7 multilingual distilbert huggingface-transformers huggingface-tokenizers
当我运行 demo.py 时
\nfrom transformers import AutoTokenizer, AutoModel\n \ntokenizer = AutoTokenizer.from_pretrained("distilbert-base-multilingual-cased")\nmodel = AutoModel.from_pretrained("distilbert-base-multilingual-cased", return_dict=True)\n# print(model)\ndef count_parameters(model):\n return sum(p.numel() for p in model.parameters() if p.requires_grad)\nprint(count_parameters(model))\ninputs = tokenizer("\xe5\x8f\xb2\xe5\xaf\x86\xe6\x96\xaf\xe5\x85\x88\xe7\x94\x9f\xe4\xb8\x8d\xe5\x9c\xa8\xef\xbc\x8c\xe4\xbb\x96\xe5\x8e\xbb\xe7\x9c\x8b\xe7\x94\xb5\xe5\xbd\xb1\xe4\xba\x86\xe3\x80\x82Mr Smith is not in. He ________ ________to the cinema", return_tensors="pt")\nprint(inputs)\noutputs = model(**inputs)\nprint(outputs)\nRun Code Online (Sandbox Code Playgroud)\n代码显示
\n{'input_ids': tensor([[ 101, 2759, 3417, 4332, 2431, 5600, 2080, 3031, 10064, 2196,\n 2724, 5765, 5614, 3756, 2146, 1882, 12916, 11673, 10124, 10472,\n 10106, 119, 10357, 168, 168, 168, 168, 168, 168, 168,\n 168, 168, 168, 168, 168, 168, 168, 168, 168, 10114,\n 10105, 18458, 119, 102]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\nRun Code Online (Sandbox Code Playgroud)\n使用bos_token,但尚未设置。\n使用eos_token,但尚未设置。\n为什么打印 bos_token?
\n__call__分词器的方法有一个add_special_tokens默认为 的属性True。这意味着在开头添加 BOS(句子开头)标记,在末尾添加 EOS(句子结尾)标记。如果不想使用这些符号,可以设置add_special_tokens为False。
但请注意,如果模型使用与训练时相同的标记化和特殊符号,则模型的性能最佳。从你的例子来看,在我看来你想为模型提供一对不同语言的句子。此类对通常由特殊标记分隔[SEP]。因此,您可能希望使用分词器的encode_plus方法来为您对句子对进行正确的编码。
| 归档时间: |
|
| 查看次数: |
13774 次 |
| 最近记录: |