当前位置:   article > 正文

Hugging Face Transformers 之 AutoConfig 、AutoTokenizer、AutoModel from_pretrained()参数详解_trust remote code

trust remote code

一、AutoConfig.from_pretrained()

`AutoConfig.from_pretrained()` 是 Hugging Face Transformers 库中的一个函数,用于根据预训练模型的名称或路径创建配置对象。预训练模型的配置包含了关于模型架构、超参数和其他重要信息的设置。以下是 `AutoConfig.from_pretrained()` 方法的主要参数的详细说明:

1. **pretrained_model_name_or_path** (str, optional):
   - 指定要加载的预训练模型的名称或路径。这可以是模型的名称(例如,'bert-base-uncased'),也可以是模型的本地路径。

2. **cache_dir** (str, optional):
   - 指定用于缓存预训练模型配置文件的目录路径。如果设置为 `None`,将使用默认缓存目录。

3. **force_download** (bool, optional):
   - 如果设置为 `True`,将强制重新下载模型配置,覆盖任何现有的缓存。

4.  **resume_download** (bool, optional):

    - 这是可选参数,如果设置为 True,则在下载过程中重新开始下载,即使部分文件已经存在。

5. **proxies** (`Dict[str, str]`, *optional*)

   proxies(可选参数):这是一个字典,用于指定代理服务器的设置。代理服务器允许您在访问互联网资源时通过中继服务器进行请求,这对于在受限网络环境中使用 Transformers 库来加载模型配置信息非常有用。

            proxies = { "http": "http://your_http_proxy_url", "https": "https://your_https_proxy_url" }

6. **revision** (str, optional):
   - 指定要加载的模型的 Git 版本(通过提交哈希)。

7. **return_unused_kwargs** (bool, optional, 默认值为 False):

   - 如果将此参数设置为 True,函数将返回未使用的配置参数。这对于识别和检查传递给函数的不受支持或未识别的参数很有用。

8.  trust_remote_code (`bool`, *optional*, defaults to `False`)

  • trust_remote_code=True

    • 默认情况下,trust_remote_code 设置为 True。这意味着当您使用 from_pretrained() 方法加载模型配置文件时,它将下载来自 Hugging Face 模型中心或其他在线资源的配置文件。这是一个方便的默认行为,因为通常这些配置文件是由官方提供的,且是可信的。
  • trust_remote_code=False

    • 如果您将 trust_remote_code 设置为 False,则表示您不信任从远程下载的配置文件,希望加载本地的配置文件。这对于安全性或定制性要求较高的场景可能是有用的。

    • 在这种情况下,您需要提供一个本地文件路径,以明确指定要加载的配置文件

    • 总之,trust_remote_code 参数允许您在使用 Hugging Face Transformers 库时控制是否信任从远程下载的配置文件。默认情况下,它被设置为 True,以方便加载官方提供的配置文件,但您可以将其设置为 False 并提供本地配置文件的路径,以进行更精细的控制。

  1. Examples:
  2. ```python
  3. >>> from transformers import AutoConfig
  4. >>> # Download configuration from huggingface.co and cache.
  5. >>> config = AutoConfig.from_pretrained("bert-base-uncased")
  6. >>> # Download configuration from huggingface.co (user-uploaded) and cache.
  7. >>> config = AutoConfig.from_pretrained("dbmdz/bert-base-german-cased")
  8. >>> # If configuration file is in a directory (e.g., was saved using *save_pretrained('./test/saved_model/')*).
  9. >>> config = AutoConfig.from_pretrained("./test/bert_saved_model/")
  10. >>> # Load a specific configuration file.
  11. >>> config = AutoConfig.from_pretrained("./test/bert_saved_model/my_configuration.json")
  12. >>> # Change some config attributes when loading a pretrained config.
  13. >>> config = AutoConfig.from_pretrained("bert-base-uncased", output_attentions=True, foo=False)
  14. >>> config.output_attentions
  15. True
  16. >>> config, unused_kwargs = AutoConfig.from_pretrained(
  17. ... "bert-base-uncased", output_attentions=True, foo=False, return_unused_kwargs=True
  18. ... )
  19. >>> config.output_attentions
  20. True
  21. >>> unused_kwargs
  22. {'foo': False}

9. kwargs:

  • 其他配置参数,具体取决于所选择的预训练模型类型。这些参数可以因模型而异

以下是一个使用示例:

```python
from transformers import AutoConfig

# 加载一个预训练模型的配置
config = AutoConfig.from_pretrained('bert-base-uncased')
```

此示例中,`AutoConfig.from_pretrained()` 方法加载了 'bert-base-uncased' 模型的配置。您可以根据您要加载的特定模型来调整 `pretrained_model_name_or_path` 参数。配置对象包含了有关模型的详细信息,您可以使用它来构建模型或进行其他相关任务。

二、AutoTokenizer.from_pretrained()

AutoTokenizer.from_pretrained() 是 Hugging Face Transformers 库中的一个方法,用于加载预训练的文本处理模型(Tokenizer),以便将文本数据转换为模型可以接受的输入格式。这个方法接受多个参数,以下是这些参数的详细说明

1. pretrained_model_name_or_path (str):

     - 这是最重要的参数,指定要加载的预训练模型的名称或路径。可以是模型名称(例如 "bert-base-uncased")或模型文件夹的路径。

2.  inputs (additional positional arguments, *optional*)

     -它表示额外的位置参数,这些参数会传递给标记器(Tokenizer)的__init__()方法。这允许你进一步自定义标记器的初始化。

3.  config ([`PretrainedConfig`], *optional*)

    -这个配置对象用于确定要实例化的分词器类。

4.cache_dir (str, optional):

    - 用于缓存模型文件的目录路径

5. **force_download** (bool, optional):
   - 如果设置为 `True`,将强制重新下载模型配置,覆盖任何现有的缓存。

6.  **resume_download** (bool, optional):

    - 这是可选参数,如果设置为 True,则在下载过程中重新开始下载,即使部分文件已经存在。

7. **proxies** (`Dict[str, str]`, *optional*)

   proxies(可选参数):这是一个字典,用于指定代理服务器的设置。代理服务器允许您在访问互联网资源时通过中继服务器进行请求,这对于在受限网络环境中使用 Transformers 库来加载模型配置信息非常有用。

            proxies = { "http": "http://your_http_proxy_url", "https": "https://your_https_proxy_url" }

8. **revision** (str, optional):
   - 指定要加载的模型的 Git 版本(通过提交哈希)。

9. **subfolder** (`str`, *optional*)

   -如果相关文件位于 huggingface.co 模型仓库的子文件夹内(例如 facebook/rag-token-base),请在这里指定。

10. **use_fast** (`bool`, *optional*, defaults to `True`)

    -这是一个布尔值,指示是否强制使用 fast tokenizer,即使其不支持特定模型的功能。默认为 True

11. **tokenizer_type** (`str`, *optional*)

    - 参数用于指定要实例化的分词器的类型

12. **trust_remote_code** (`bool`, *optional*, defaults to `False`)

  • trust_remote_code=True

    • 默认情况下,trust_remote_code 设置为 True。这意味着当您使用 from_pretrained() 方法加载模型配置文件时,它将下载来自 Hugging Face 模型中心或其他在线资源的配置文件。这是一个方便的默认行为,因为通常这些配置文件是由官方提供的,且是可信的。
  • trust_remote_code=False

    • 如果您将 trust_remote_code 设置为 False,则表示您不信任从远程下载的配置文件,希望加载本地的配置文件。这对于安全性或定制性要求较高的场景可能是有用的。

    • 在这种情况下,您需要提供一个本地文件路径,以明确指定要加载的配置文件

    • 总之,trust_remote_code 参数允许您在使用 Hugging Face Transformers 库时控制是否信任从远程下载的配置文件。默认情况下,它被设置为 True,以方便加载官方提供的配置文件,但您可以将其设置为 False 并提供本地配置文件的路径,以进行更精细的控制。

  1. Examples:
  2. ```python
  3. >>> from transformers import AutoTokenizer
  4. >>> # Download vocabulary from huggingface.co and cache.
  5. >>> tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
  6. >>> # Download vocabulary from huggingface.co (user-uploaded) and cache.
  7. >>> tokenizer = AutoTokenizer.from_pretrained("dbmdz/bert-base-german-cased")
  8. >>> # If vocabulary files are in a directory (e.g. tokenizer was saved using *save_pretrained('./test/saved_model/')*)
  9. >>> tokenizer = AutoTokenizer.from_pretrained("./test/bert_saved_model/")
  10. >>> # Download vocabulary from huggingface.co and define model-specific arguments
  11. >>> tokenizer = AutoTokenizer.from_pretrained("roberta-base", add_prefix_space=True)

三、AutoModel.from_pretrained()

AutoModel.from_pretrained() 是 Hugging Face Transformers 库中的一个函数,用于加载预训练的深度学习模型。它允许你加载各种不同的模型,如BERT、GPT-2、RoBERTa 等,而无需为每个模型类型编写单独的加载代码。以下是 AutoModel.from_pretrained() 函数的主要参数:

1. pretrained_model_name_or_path (str):

      -  这是一个字符串参数,用于指定要加载的预训练模型的名称或路径。可以是模型的名称(如 "bert-base-uncased")或模型文件夹的路径。

2. *model_args

   - 直接传参的方式,传入配置项,例如,我们将编码器层数改为3层

model = AutoModel.from_pretrained("./models/bert-base-chinese", num_hidden_layers=3)

     加载模型时,指定配置类实例

model = AutoModel.from_pretrained("./models/bert-base-chinese", config=config)

3.

**trust_remote_code** (`bool`, *optional*, defaults to `False`)

  • trust_remote_code=True

    • 默认情况下,trust_remote_code 设置为 True。这意味着当您使用 from_pretrained() 方法加载模型配置文件时,它将下载来自 Hugging Face 模型中心或其他在线资源的配置文件。这是一个方便的默认行为,因为通常这些配置文件是由官方提供的,且是可信的。
  • trust_remote_code=False

    • 如果您将 trust_remote_code 设置为 False,则表示您不信任从远程下载的配置文件,希望加载本地的配置文件。这对于安全性或定制性要求较高的场景可能是有用的。

    • 在这种情况下,您需要提供一个本地文件路径,以明确指定要加载的配置文件

    • 总之,trust_remote_code 参数允许您在使用 Hugging Face Transformers 库时控制是否信任从远程下载的配置文件。默认情况下,它被设置为 True,以方便加载官方提供的配置文件,但您可以将其设置为 False 并提供本地配置文件的路径,以进行更精细的控制。

hub_kwargs_names  = [
    "cache_dir",  #同上面
    "force_download",#同上面
    "local_files_only",
    "proxies", #同上面
    "resume_download", #同上面
    "revision", #同上面
    "subfolder", #同上面
    "use_auth_token",
]

local_files_only:

 如果设置为True,将只尝试从本地文件系统加载模型。如果本地文件不存在,它将不会尝试从Hugging Face模型存储库下载模型文件。如果本地存在模型文件,它将从本地加载。如果设置为False(默认值),它将首先尝试从本地加载,如果本地不存在模型文件,它将尝试从Hugging Face模型存储库下载模型文件并缓存到本地,然后加载。

  1. from transformers import AutoModel
  2. model = AutoModel.from_pretrained("bert-base-uncased", local_files_only=True)

详解 use_auth_token 参数:

  1. 默认值:use_auth_token 参数的默认值通常为 None,这意味着在默认情况下不使用身份验证令牌。

  2. 作用:Hugging Face Model Hub 上的一些模型可能需要身份验证令牌才能访问。这通常是因为模型的创建者希望对其进行访问控制,或者出于其他原因需要进行身份验证。如果模型需要身份验证令牌,你可以在 use_auth_token 参数中提供有效的令牌,以便在下载模型时使用。

  3. 获取身份验证令牌:要获得有效的身份验证令牌,你需要注册并登录到 Hugging Face Model Hub,然后访问你的个人配置文件(profile),那里会提供一个 API 令牌(API token),你可以将其用作 use_auth_token 的值。

  1. from transformers import AutoModel
  2. # 使用身份验证令牌来加载模型
  3. model = AutoModel.from_pretrained('model_name', use_auth_token='your_auth_token')

大多数模型不需要身份验证令牌,并且可以在不提供 use_auth_token 参数的情况下加载。只有在你确实需要进行身份验证才需要使用此参数。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/830211
推荐阅读
相关标签
  

闽ICP备14008679号