中文
本页内容

Auto Classes

Auto Classes可以通过给定的预训练权重、配置、词汇表的名称或路径自动检索相关模型。

通过传入预训练模型的名称或路径来实例化AutoConfig、AutoModel或AutoTokenizer,将直接创建相关模型架构。例如:

Python
from openmind import AutoModel

model = AutoModel.from_pretrained("PyTorch-NPU/bert_base_cased")

将创建一个模型,该模型是BertModel的一个实例。

并且,每个任务对应每个后端框架(PyTorch、MindSpore)都有一个AutoModel类。具体每个类支持的框架情况可查看下图:

接口PyTorchMindSpore
AutoConfig
AutoTokenizer
AutoProcessor
AutoImageProcessor
AutoFeatureExtractor
AutoModel
AutoModelForCausalLM
AutoModelForSequenceClassification

扩展Auto Classes

每个Auto Class都有一个方法可用于自定义类进行扩展。例如,如果定义了一个自定义模型类NewModel,只需确保有一个NewModelConfig,就可以将它们添加到自动类中:

python
from openmind import AutoConfig, AutoModel

AutoConfig.register("new-model", NewModelConfig)
AutoModel.register(NewModelConfig, NewModel)

然后,就能通过传入预训练模型的名称或路径使用Auto Classes。

通用类

openmind.AutoConfig类

功能描述

这是一个通用的configuration类,当使用AutoConfig.from_pretrained类方法创建时,它将被实例化为已经注册的configuration类。

API接口

from_pretrained方法

from_pretrained(pretrained_model_name_or_path, **kwargs):从预训练模型配置中实例化库中的一个configuration类。要实例化的configuration类是根据加载的配置对象的model_type属性选择的。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,即托管在openMind模型库中的model id
    • 包含configuration文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
    • 指向保存configuration.json文件的路径或URL,例如,./my_model_directory/configuration.json
  • yaml_name_or_pathstr):

    • 仅支持MindSpore,且如果设置了pretrained_model_name_or_pathyaml_name_or_path就会失效。
    • 字符串,一个支持的模型名称或一个模型配置文件(.yaml)的路径。
  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型configuration缓存到的cache_dir指定的路径。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载模型权重和configuration文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • return_unused_kwargsbool可选,默认为False): 如果为False,则此函数仅返回最终配置对象。

    如果为True,则此函数返回Tuple(config, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非configuration的属性。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是configuration的属性,将其对应的value覆盖configuration对应的属性。如果key不是configuration的属性,则由return_unused_kwargs关键字参数控制。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

例子:

python
from openmind import AutoConfig

# 从openMind模型库下载configuration
config = AutoConfig.from_pretrained("PyTorch-NPU/bert_base_uncased")

# 如果使用了save_pretrained('./test/saved_model/')进行保存,可以通过如下方式加载
config = AutoConfig.from_pretrained("./test/bert_saved_model/")

# 如果使用了save_pretrained('./test/saved_model/')进行保存,可以通过如下方式加载指定的configuration文件
config = AutoConfig.from_pretrained("./test/bert_saved_model/my_configuration.json")

# 加载预训练config时改变config的属性
config = AutoConfig.from_pretrained("PyTorch-NPU/bert_base_uncased", output_attentions=True, foo=False)
config.output_attentions
'''
输出:
True
'''

config, unused_kwargs = AutoConfig.from_pretrained("PyTorch-NPU/bert_base_uncased", output_attentions=True, foo=False, return_unused_kwargs=True)
config.output_attentions
'''
输出:
True
'''

unused_kwargs
'''
输出:
{'foo': False}
'''
register方法

register(model_type, config, exist_ok=False):为这个类注册一个新的configuration。

参数:

  • model_typestr):模型类型,例如bert或gpt2。
  • configPretrainedConfig):需要注册的配置文件。

约束说明

这个类不能直接使用__init__()进行实例化,会抛出错误。

openmind.AutoTokenizer类

功能描述

这是一个通用的tokenizer类,当使用AutoTokenizer.from_pretrained类方法创建时,它将被实例化为已经注册的tokenizer类。

API接口

from_pretrained方法

from_pretrained(pretrained_model_name_or_path, *inputs, **kwargs):从预训练模型词汇表实例化库中的一个tokenizer类。要实例化的tokenizer类是根据配置对象的model_type属性选择的(可以作为参数传递,也可以从pretrained_model_name_or_path加载)。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,即托管在openMind模型库中的model id
    • 包含tokenizer所需词表文件的文件夹路径,例如,使用save_pretrained()方法保存的路径,例如,./my_model_directory/
    • 指向保存单个词表文件的路径或URL,当且仅当tokenizer只需要单个词表文件(如Bert或者XLNet),例如,./my_model_directory/vocab.txt。(并不适用所有派生类)
  • yaml_name_or_pathstr):

    • 仅支持MindSpore,且如果设置了pretrained_model_name_or_pathyaml_name_or_path就会失效。
    • 字符串,一个支持的模型名称或一个模型配置文件(.yaml)的路径。
  • inputs(附加位置参数,可选): 将传递给Tokenizer.__init__()方法。

  • config([PretrainedConfig],可选): 用于确定要实例化的分词器类的配置对象。

  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型configuration缓存到的cache_dir指定的路径。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载模型权重和configuration文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • subfolderstr可选): 如果相关文件位于openMind模型库的子文件夹中,请在此处指定。

  • use_fastbool可选,默认为True): 如果给定模型支持快速的基于Rust的tokenizer,则使用它。如果给定模型不支持,则返回基于的Python的tokenizer。

  • tokenizer_typestr可选): 被加载的tokenizer的类型。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • kwargs(其他关键字参数,可选): 将传递给Tokenizer.__init__()方法。可用于设置特殊标记,如bos_tokeneos_tokenunk_tokensep_tokenpad_tokencls_tokenmask_tokenadditional_special_tokens。有关更多详细信息,请参见__init__()中的参数。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

例子:

python
from openmind import AutoTokenizer

# 从openMind模型库下载词表
tokenizer = AutoTokenizer.from_pretrained("PyTorch-NPU/bert_base_uncased")

# 如果tokenizer使用了save_pretrained('./test/saved_model/')进行保存且词表文件在文件夹里,可以通过如下方式加载
tokenizer = AutoTokenizer.from_pretrained("./test/bert_saved_model/")
register方法

register(config_class, slow_tokenizer_class=None, fast_tokenizer_class=None, exist_ok=False):注册一个新的tokenizer。

参数:

  • config_classstr):需要注册的模型对应的configuration 。
  • slow_tokenizer_class (PretrainedTokenizer, 可选):待注册的slow tokenizer。
  • fast_tokenizer_class (PretrainedTokenizerFast, 可选):待注册的fast tokenizer。

约束说明

这个类不能直接使用__init__()进行实例化,会抛出错误。

openmind.AutoProcessor类

功能描述

这是一个通用的processor类,当使用AutoProcessor.from_pretrained类方法创建时,它将被实例化为已经注册的processor类。这个类不能直接使用__init__()进行实例化,会抛出错误。

API接口

from_pretrained方法

from_pretrained(pretrained_model_name_or_path, **kwargs):基于预训练模型词汇表实例化库中的一个processor类。要实例化的processor类是根据配置对象的model_type属性选择的(可以作为参数传递,也可以从pretrained_model_name_or_path加载)。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,即托管在openMind模型库中的model id
    • 包含processor文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
  • yaml_name_or_pathstr):

    • 仅支持MindSpore,且如果设置了pretrained_model_name_or_pathyaml_name_or_path就会失效。
    • 字符串,一个支持的模型名称或一个模型配置文件(.yaml)的路径。
  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的feature extractor缓存到的cache_dir指定的路径。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • return_unused_kwargsbool可选,默认为False): 如果为False,则此函数仅返回最终的feature extractor对象。如果为True,则此函数返回一个元组(feature extractor, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非feature extractor属性,即kwargs中未用于更新feature extractor且被忽略的key。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是processor的属性,将其对应的value覆盖processor对应的属性。如果key不是processor的属性,则由return_unused_kwargs关键字参数控制。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。
register方法

register(config_class, processor_class, exist_ok=False):注册一个新的processor。

参数:

  • config_classstr):需要注册的模型对应的configuration。

  • processor_class (FeatureExtractorMixin):待注册的processor。

openmind.AutoImageProcessor类

功能描述

这是一个通用的image processor类,当使用AutoImageProcessor.from_pretrained类方法创建时,它将被实例化为已经注册的image processor类。

API接口

from_pretrained方法

from_pretrained(pretrained_model_name_or_path, **kwargs):从预训练模型词汇表实例化库中的一个image processor类。要实例化的image processor类是根据配置对象的model_type属性选择的(可以作为参数传递,也可以从pretrained_model_name_or_path加载)。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,即托管在openMind模型库中的model id
    • 包含image processor文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
    • 指向保存image processor JSON文件的路径或URL,例如,./my_model_directory/preprocessor_config.json
  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的image processor缓存到的cache_dir指定的路径。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载image processor文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • return_unused_kwargsbool可选,默认为False): 如果为False,则此函数仅返回最终的image processor对象。如果为True,则此函数返回一个元组(image processor, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非image processor属性,即kwargs中未用于更新image processor且被忽略的key。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是image processor的属性,将其对应的value覆盖image processor对应的属性。如果key不是image processor的属性,则由return_unused_kwargs关键字参数控制。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。
register方法

register(config_class, image_processor_class, exist_ok=False):注册一个新的image processor。

参数:

  • config_classstr):需要注册的模型对应的configuration 。

  • image_processor_class (FeatureExtractorMixin):待注册的image processor。

约束说明

这个类不能直接使用__init__()进行实例化,会抛出错误。

openmind.AutoFeatureExtractor类(PyTorch)

MindSpore暂不支持此类

功能描述

这是一个通用的feature extractor类,当使用AutoFeatureExtractor.from_pretrained类方法创建时,它将被实例化为已经注册的feature extractor类。这个类不能直接使用__init__()进行实例化,会抛出错误。

API接口

from_pretrained方法

from_pretrained(pretrained_model_name_or_path, **kwargs):基于预训练模型词汇表实例化库中的一个feature extractor类。要实例化的feature extractor类根据是配置对象的model_type属性选择的(可以作为参数传递,也可以从pretrained_model_name_or_path加载)。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,即托管在openMind模型库中的model id
    • 包含feature extractor文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
    • 指向保存feature extractor JSON文件的路径或URL,例如,./my_model_directory/preprocessor_config.json
  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的feature extractor缓存到的cache_dir指定的路径。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • return_unused_kwargsbool可选,默认为False):

    如果为False,则此函数仅返回最终的feature extractor对象。如果为True,则此函数返回一个元组(feature_extractor, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非feature extractor属性,即kwargs中未用于更新feature extractor且被忽略的key。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是feature extractor的属性,将其对应的value覆盖feature extractor对应的属性。如果key不是feature extractor的属性,则由return_unused_kwargs关键字参数控制。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。
register方法

register(config_class, feature_extractor_class, exist_ok=False):注册一个新的feature extractor。

参数:

  • config_classstr):需要注册的模型对应的configuration。

  • feature_extractor_class (FeatureExtractorMixin):待注册的feature extractor。

通用模型类

以下自动类可用于实例化基础模型类而无需指定模型的head。

openmind.AutoModel类

功能描述

这是一个通用模型类,当使用from_pretrained()类方法或from_config()类方法创建时,它将被实例化为已经注册的基本模型类。这个类不能直接使用__init__()实例化,会抛出错误。

API接口

from_config方法

from_config(**kwargs):从configuration中实例化库中的基本模型类。注意:从configuration文件加载模型不会加载模型权重。它只影响模型的configuration。使用from_pretrained()加载模型权重。

参数:

  • config (PretrainedConfig) : 要实例化的模型类是根据已经注册的configuration类来进行选择的。

  • attn_implementation (str可选) : 仅支持PyTorch。 要在模型中使用的注意力实现(如果相关)。可以是eager(自定义attention)、sdpa(使用F.scaled_dot_product_attention)或flash_attention_2中的任何一个。默认情况下,如果可用,SDPA将用于torch>=2.1.1。否则默认为自定义eager实现。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是model的属性,将其对应的value覆盖model对应的属性。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

    • download_checkpointbool可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。

例子:

python
from openmind import AutoConfig, AutoModel

config = AutoConfig.from_pretrained("PyTorch-NPU/bert_base_cased")
model = AutoModel.from_config(config)
from_pretrained方法

from_pretrained(*model_args, **kwargs):从预训练模型实例化库中的基本模型类。要实例化的模型类是根据配置对象的model_type属性选择的(可以作为参数传递,也可以从pretrained_model_name_or_path加载)。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,openMind模型库中托管的预训练模型的model id
    • 包含模型权重文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
  • model_args(额外的位置参数,可选): 将传递给基础模型的__init__()方法。

  • configPretrainedConfig可选): 用于替代自动加载的configuration。当以下情况时,可以自动加载configuration:

    • 模型是库提供的模型(使用预训练模型的model id字段加载)。
    • 模型是通过save_pretrained()进行保存的,并通过已保存目录来重新加载。
    • 模型是通过提供本地目录作为pretrained_model_name_or_path并在目录中存在config.json。
  • state_dictDict[str, torch.Tensor], 可选): 要使用的state dictionary,而不是从保存的权重文件加载的state dictionary。

    如果想使用预训练configuration创建模型,但是加载自己的权重,则可以使用此选项。

  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的configuration文件缓存到cache_dir指定的路径。

  • from_tfbool可选,默认为False)(openmind暂不支持): 从TensorFlowcheckpoint保存文件中加载权重(请参考pretrained_model_name_or_path的参数文档)。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • output_loading_infobool可选,默认为False): 是否需要返回一个包含缺失键、意外键和错误消息的字典。

  • local_files_onlybool可选,默认为False): 是否仅查看本地文件(例如,不尝试下载模型)。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • code_revisionstr可选,默认为"main"): 模型库上特定版本的代码,如果代码位于与模型其余部分不同的存储库中。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以修订可以是git允许的任何标识符。

  • kwargs(其他关键字参数,可选): 可用于更新已加载的configuration对象并初始化模型(例如,output_attentions=True)。其行为取决于是否提供或自动加载了config:

    • 如果使用config提供了configuration,kwargs将直接传递给基础模型的__init__方法(我们假设对configuration的所有相关更新都已经完成)。

    • 如果没有提供configuration,kwargs将首先传递给configuration类的初始化函数(from_pretrained())。用kwargs的每个key对应的value覆盖configuration中与key相对应的属性。不对应于任何configuration属性的剩余key将被传递给底层模型的__init__函数。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

    • ignore_mismatched_sizesbool可选,默认为False): 仅支持MindSpore。 是否在检查点中的某些权重大小与模型的权重大小不同时引发错误(例如,如果使用包含3个标签的检查点实例化一个包含10个标签的模型)。

    • variantstr可选): 仅支持MindSpore。 如果指定了 variant 文件名,则从 variant 文件名加载权重。

    • download_checkpointbool可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。

例子:

python
from openmind import AutoConfig, AutoModel

# 从openMind模型库下载模型和configuration
model = AutoModel.from_pretrained("PyTorch-NPU/bert_base_cased")

# 在加载过程中更新configuration
model = AutoModel.from_pretrained("PyTorch-NPU/bert_base_cased", output_attentions=True)
model.config.output_attentions
'''
输出:
True
'''

自然语言处理

以下自动类可用于以下自然语言处理任务。

openmind.AutoModelForCausalLM类

功能描述

这是一个通用模型类,当使用from_pretrained()类方法或from_config()类方法创建时,它将被实例化为已经注册的模型类(带有因果语言模型的head)。这个类不能直接使用__init__()实例化,会抛出错误。

API接口

from_config方法

from_config(**kwargs):从configuration中实例化库中的基本模型类。注意:从configuration文件加载模型不会加载模型权重。它只影响模型的configuration。使用from_pretrained()加载模型权重。

参数:

  • config (PretrainedConfig) : 要实例化的模型类是根据已经注册的configuration类来进行选择的。

  • attn_implementation (str可选) : 仅支持PyTorch。 要在模型中使用的注意力实现(如果相关)。可以是eager(自定义attention)、sdpa(使用F.scaled_dot_product_attention)或flash_attention_2中的任何一个。默认情况下,如果可用,SDPA将用于torch>=2.1.1。否则默认为自定义eager实现。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是model的属性,将其对应的value覆盖model对应的属性。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

    • download_checkpointbool可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。

例子:

python
from openmind import AutoConfig, AutoModelForCausalLM

# 从openMind模型库下载configuration
config  = AutoConfig.from_pretrained("PyTorch-NPU/bert_base_cased")
model = AutoModelForCausalLM.from_config(config)
from_pretrained方法

from_pretrained(*model_args, **kwargs):从预训练模型实例化库中的模型类(带有因果语言模型的head)。要实例化的模型类是根据配置对象的model_type属性选择的(可以作为参数传递,也可以从pretrained_model_name_or_path加载)。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,openMind模型库中托管的预训练模型的model id
    • 包含模型权重文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
  • model_args(额外的位置参数,可选): 将传递给基础模型的__init__()方法。

  • configPretrainedConfig可选): 用于替代自动加载的configuration。当以下情况时,可以自动加载configuration:

    • 模型是库提供的模型(使用预训练模型的model id字段加载)。
    • 模型是通过save_pretrained()进行保存的,并通过已保存目录来重新加载。
    • 模型是通过提供本地目录作为pretrained_model_name_or_path并在目录中存在config.json。
  • state_dictDict[str, torch.Tensor], 可选): 要使用的state dictionary,而不是从保存的权重文件加载的state dictionary。

    如果想使用预训练configuration创建模型,但是加载自己的权重,则可以使用此选项。

  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的configuration文件缓存到cache_dir指定的路径。

  • from_tfbool可选,默认为False)(openmind暂不支持): 从TensorFlowcheckpoint保存文件中加载权重(请参考pretrained_model_name_or_path的参数文档)。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • output_loading_infobool可选,默认为False): 是否需要返回一个包含缺失键、意外键和错误消息的字典。

  • local_files_onlybool可选,默认为False): 是否仅查看本地文件(例如,不尝试下载模型)。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • code_revisionstr可选,默认为"main"): 模型库上特定版本的代码,如果代码位于与模型其余部分不同的存储库中。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以修订可以是git允许的任何标识符。

  • kwargs(其他关键字参数,可选): 可用于更新已加载的configuration对象并初始化模型(例如,output_attentions=True)。其行为取决于是否提供或自动加载了config:

    • 如果使用config提供了configuration,kwargs将直接传递给基础模型的__init__方法(我们假设对configuration的所有相关更新都已经完成)。

    • 如果没有提供configuration,kwargs将首先传递给configuration类的初始化函数(from_pretrained())。用kwargs的每个key对应的value覆盖configuration中与key相对应的属性。不对应于任何configuration属性的剩余key将被传递给底层模型的__init__函数。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

    • ignore_mismatched_sizesbool可选,默认为False): 仅支持MindSpore。 是否在检查点中的某些权重大小与模型的权重大小不同时引发错误(例如,如果使用包含3个标签的检查点实例化一个包含10个标签的模型)。

    • variantstr可选): 仅支持MindSpore。 如果指定了 variant 文件名,则从 variant 文件名加载权重。

    • download_checkpointbool可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。

例子:

python
from openmind import AutoConfig, AutoModelForCausalLM

# 从openMind模型库下载configuration
model  = AutoModelForCausalLM.from_pretrained("PyTorch-NPU/bert_base_cased")

# 在加载过程中更新configuration
model = AutoModelForCausalLM.from_pretrained("PyTorch-NPU/bert_base_cased", output_attentions=True)
model.config.output_attentions
'''
输出:
True
'''

openmind.AutoModelForSequenceClassification类

功能描述

这是一个通用模型类,当使用from_pretrained()类方法或from_config()类方法创建时,它将被实例化为已经注册的模型类,即带有序列分类的head。这个类不能直接使用__init__()实例化,会抛出错误。

API接口

from_config方法

from_config(**kwargs):从configuration中实例化库中的基本模型类。注意:从configuration文件加载模型不会加载模型权重。它只影响模型的configuration。使用from_pretrained()加载模型权重。

参数:

  • config (PretrainedConfig) : 要实例化的模型类是根据已经注册的configuration类来进行选择的。

  • attn_implementation (str可选) : 仅支持PyTorch。 要在模型中使用的注意力实现(如果相关)。可以是eager(自定义attention)、sdpa(使用F.scaled_dot_product_attention)或flash_attention_2中的任何一个。默认情况下,如果可用,SDPA将用于torch>=2.1.1。否则默认为自定义eager实现。

  • kwargs(其他关键字参数,可选): 对于kwargs中任何key的所对应的value,如果这些key是model的属性,将其对应的value覆盖model对应的属性。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

    • download_checkpointbool可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。

例子:

python
from openmind import AutoConfig, AutoModelForSequenceClassification

# 从openMind模型库下载configuration
config  = AutoConfig.from_pretrained("PyTorch-NPU/bert_base_cased")
model = AutoModelForSequenceClassification.from_config(config)
from_pretrained方法

from_pretrained(*model_args, **kwargs):从预训练模型实例化库中的模型类,即带有序列分类的head。要实例化的模型类是根据配置对象的model_type属性选择的,可以作为参数传递,也可以从pretrained_model_name_or_path加载。当其缺失时,回退到对pretrained_model_name_or_path进行匹配。

参数:

  • pretrained_model_name_or_pathstros.PathLike):

    • 字符串,openMind模型库中托管的预训练模型的model id
    • 包含模型权重文件的文件夹路径,即使用save_pretrained()方法保存的路径,例如,./my_model_directory/
  • model_args(额外的位置参数,可选): 将传递给基础模型的__init__()方法。

  • configPretrainedConfig可选): 用于替代自动加载的configuration。当以下情况时,可以自动加载configuration:

    • 模型是库提供的模型(使用预训练模型的model id字段加载)。
    • 模型是通过save_pretrained()进行保存的,并通过已保存目录来重新加载。
    • 模型是通过提供本地目录作为pretrained_model_name_or_path并在目录中存在config.json。
  • state_dictDict[str, torch.Tensor], 可选): 要使用的state dictionary,而不是从保存的权重文件加载的state dictionary。

    如果想使用预训练configuration创建模型但加载自己的权重,则可以使用此选项。建议查询是否可使用save_pretrained()from_pretrained()

  • cache_dirstros.PathLike可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的configuration文件缓存到cache_dir指定的路径。

  • from_tfbool可选,默认为False)(openmind暂不支持): 从TensorFlowcheckpoint保存文件中加载权重(请参考pretrained_model_name_or_path的参数文档)。

  • force_downloadbool可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。

  • resume_downloadbool可选,默认为False): 是否恢复下载之前不完全接收的文件。

  • proxiesDict[str, str]可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。

  • output_loading_infobool可选,默认为False): 是否需要返回一个包含缺失键、意外键和错误消息的字典。

  • local_files_onlybool可选,默认为False): 是否仅查看本地文件(例如,不尝试下载模型)。

  • revisionstr可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。

  • trust_remote_codebool可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。

  • code_revisionstr可选,默认为"main"): 模型库上特定版本的代码,如果代码位于与模型其余部分不同的存储库中。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以修订可以是git允许的任何标识符。

  • ignore_mismatched_sizesbool可选,默认为False): 仅支持MindSpore。 是否在检查点中的某些权重大小与模型的权重大小不同时引发错误(例如,如果使用包含3个标签的检查点实例化一个包含10个标签的模型)。

  • kwargs(其他关键字参数,可选): 可用于更新已加载的configuration对象并初始化模型(例如,output_attentions=True)。其行为取决于是否提供或自动加载了config:

    • 如果使用config提供了configuration,kwargs将直接传递给基础模型的__init__方法(我们假设对configuration的所有相关更新都已经完成)。

    • 如果没有提供configuration,kwargs将首先传递给configuration类的初始化函数(from_pretrained())。用kwargs的每个key对应的value覆盖configuration中与key相对应的属性。不对应于任何configuration属性的剩余key将被传递给底层模型的__init__函数。

    • use_auth_tokenstr可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。

    • tokenstr可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_tokentoken必须配置一个,建议配置token)。

    • variantstr可选): 仅支持MindSpore。 如果指定了 variant 文件名,则从 variant 文件名加载权重。

    • download_checkpointbool可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。

例子:

python
from openmind import AutoConfig, AutoModelForSequenceClassification

# 从openMind模型库下载configuration
model  = AutoModelForSequenceClassification.from_pretrained("PyTorch-NPU/bert_base_cased")

# 在加载过程中更新configuration
model = AutoModelForSequenceClassification.from_pretrained("PyTorch-NPU/bert_base_cased", output_attentions=True)
model.config.output_attentions
'''
输出:
True
'''