“AutoTokenizer.from_pretrained“参数说明

AutoTokenizer.from_pretrained 是 Hugging Face transformers 库中用于加载预训练分词器的常用方法之一。它支持多个参数,使得分词器加载过程具有灵活性,可以根据需要自定义加载方式。

1. pretrained_model_name_or_path

  • 类型: str

  • 描述: 预训练模型名称或模型目录路径。可以是 Hugging Face 模型库中模型的名称(如 bert-base-uncasedgpt2),或者是本地存储的分词器路径。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
    tokenizer = AutoTokenizer.from_pretrained("./my_local_tokenizer")
    

2. use_fast

  • 类型: bool, 可选

  • 默认值: True(优先使用快速分词器)

  • 描述: 是否使用基于 tokenizers 库的快速分词器。如果设置为 False,则加载基于 Python 实现的慢速分词器。如果模型不支持快速分词器,则无论此参数设置如何,都会使用慢速分词器。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased", use_fast=True)
    

3. tokenizer_type

  • 类型: str, 可选

  • 描述: 手动指定加载的分词器类型。如果你希望明确指定分词器的类型,可以通过该参数来设置。例如 BertTokenizerGPT2Tokenizer 等。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased", tokenizer_type="BertTokenizer")
    

4. revision

  • 类型: str, 可选

  • 默认值: "main"

  • 描述: 指定要加载的模型版本。如果在 Hugging Face 上的模型有多个版本分支,可以通过此参数加载特定的分支或标签。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased", revision="v1.0")
    

5. subfolder

  • 类型: str, 可选

  • 描述: 在加载模型或分词器时,指定 Hugging Face 仓库中的子文件夹路径。如果模型存储在特定子目录下,可以通过此参数指定路径。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("my_model", subfolder="tokenizer")
    

6. cache_dir

  • 类型: str, 可选

  • 描述: 指定缓存目录,用于下载和存储模型或分词器。如果你想要将下载的分词器文件存储到自定义的目录,可以通过此参数设置缓存路径。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("gpt2", cache_dir="./cache")
    

7. force_download

  • 类型: bool, 可选

  • 默认值: False

  • 描述: 是否强制重新下载分词器。即使分词器文件已经缓存,设置 force_download=True 也会重新下载并覆盖缓存文件。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("gpt2", force_download=True)
    

8. resume_download

  • 类型: bool, 可选

  • 默认值: False

  • 描述: 如果下载过程中发生中断,是否从中断点继续下载。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("gpt2", resume_download=True)
    

9. proxies

  • 类型: Dict[str, str], 可选

  • 描述: 用于配置网络代理的字典,帮助你通过代理服务器下载模型或分词器。典型格式为 {"http": "http://proxy.com", "https": "https://proxy.com"}

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("gpt2", proxies={"http": "http://proxy.com", "https": "https://proxy.com"})
    

10. local_files_only

  • 类型: bool, 可选

  • 默认值: False

  • 描述: 是否只从本地文件加载,而不尝试从 Hugging Face 模型库在线下载。若设置为 True,则会跳过远程下载,只从本地缓存或目录加载分词器。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("gpt2", local_files_only=True)
    

11. use_auth_token

  • 类型: Union[bool, str], 可选

  • 描述: 用于访问 Hugging Face 私有模型时的身份验证令牌。如果需要访问私有模型或分词器,可以传入令牌字符串,或者设置为 True 来自动读取 transformers 库的配置文件中的令牌。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("private-model", use_auth_token="your_token_here")
    

12. trust_remote_code

  • 类型: bool, 可选

  • 默认值: False

  • 描述: 如果加载的模型库中包含自定义代码并且需要执行它,则设置为 True。这个功能在 Hugging Face 上可能被用于一些自定义的模型实现,允许远程代码执行。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("custom-model", trust_remote_code=True)
    

13. revision

  • 类型: str, 可选

  • 描述: 指定模型分支或者版本号,比如你可以选择特定版本进行加载。

  • 示例:

    tokenizer = AutoTokenizer.from_pretrained("model_name", revision="main")
    

14. kwargs

  • 描述: 其他任何关键字参数(kwargs)会传递给 transformers.tokenization_utils_base.PreTrainedTokenizertransformers.tokenization_utils_base.PreTrainedTokenizerFast,它们可以包括自定义的行为、指定的路径或处理方式。

常见组合示例

  1. 加载本地分词器并指定缓存目录:

    tokenizer = AutoTokenizer.from_pretrained("./my_tokenizer", cache_dir="./cache")
    
  2. 使用代理服务器下载并从中断点恢复下载:

    tokenizer = AutoTokenizer.from_pretrained(
        "bert-base-uncased",
        proxies={"http": "http://proxy.com", "https": "https://proxy.com"},
        resume_download=True
    )
    
  3. 使用快速分词器并强制重新下载:

    tokenizer = AutoTokenizer.from_pretrained("gpt2", use_fast=True, force_download=True)
    
  4. 加载私有模型的分词器:

    tokenizer = AutoTokenizer.from_pretrained("private-model", use_auth_token="your_token_here")
    

总结

AutoTokenizer.from_pretrained 是 Hugging Face transformers 库中非常强大且灵活的接口,支持多种参数配置,允许用户从本地或远程库加载预训练分词器,并根据需求进行定制。

补充

tokenizer返回的结果通常是一个字典,它至少包含以下几项:

  • input_ids: 文本转化为的 token ID。
  • token_type_ids: 区分多个句子的 ID(用于双句子输入的模型)。
  • attention_mask: 掩码,表示哪些 token 是有效的(即非填充的)。

例如,以下是使用 encode_plus 的结果:

encoded_input = tokenizer.encode_plus(
    "Hello, how are you?", 
    "I am fine.", 
    return_tensors='pt'
)
print(encoded_input)

可能的输出字典包含:

{
  'input_ids': tensor([[  101,  7592,  1010,  2129,  2024,  2017,   102,  1045,  2572,  2986,  1012,   102]]),
  'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1]]),
  'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])
}

在这个示例中:

  • input_ids 是经过分词后的文本所对应的 token ID。
  • token_type_ids 是用来区分两个句子的,其中前 7 个 token 属于第一个句子,后 5 个 token 属于第二个句子。
  • attention_mask 用于区分有效的 token 和填充的 token,值为 1 的地方表示该位置是有效的 token。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值