Auto Classes
Auto Classes可以通过给定的预训练权重、配置、词汇表的名称或路径自动检索相关模型。
通过传入预训练模型的名称或路径来实例化AutoConfig、AutoModel或AutoTokenizer,将直接创建相关模型架构。例如:
from openmind import AutoModel
model = AutoModel.from_pretrained("PyTorch-NPU/bert_base_cased")
将创建一个模型,该模型是BertModel的一个实例。
并且,每个任务对应每个后端框架(PyTorch、MindSpore)都有一个AutoModel类。具体每个类支持的框架情况可查看下图:
| 接口 | PyTorch | MindSpore |
|---|---|---|
| AutoConfig | ✅ | ✅ |
| AutoTokenizer | ✅ | ✅ |
| AutoProcessor | ✅ | ✅ |
| AutoImageProcessor | ✅ | ✅ |
| AutoFeatureExtractor | ✅ | ❌ |
| AutoModel | ✅ | ✅ |
| AutoModelForCausalLM | ✅ | ✅ |
| AutoModelForSequenceClassification | ✅ | ✅ |
扩展Auto Classes
每个Auto Class都有一个方法可用于自定义类进行扩展。例如,如果定义了一个自定义模型类NewModel,只需确保有一个NewModelConfig,就可以将它们添加到自动类中:
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_path(
str或os.PathLike):- 字符串,即托管在openMind模型库中的
model id。 - 包含configuration文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。 - 指向保存configuration.json文件的路径或URL,例如,
./my_model_directory/configuration.json。
- 字符串,即托管在openMind模型库中的
yaml_name_or_path (
str):- 仅支持MindSpore,且如果设置了
pretrained_model_name_or_path,yaml_name_or_path就会失效。 - 字符串,一个支持的模型名称或一个模型配置文件(.yaml)的路径。
- 仅支持MindSpore,且如果设置了
cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型configuration缓存到的cache_dir指定的路径。force_download(
bool,可选,默认为False): 是否强制(重新)下载模型权重和configuration文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。return_unused_kwargs(
bool,可选,默认为False): 如果为False,则此函数仅返回最终配置对象。如果为
True,则此函数返回Tuple(config, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非configuration的属性。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。kwargs(其他关键字参数,可选): 对于
kwargs中任何key的所对应的value,如果这些key是configuration的属性,将其对应的value覆盖configuration对应的属性。如果key不是configuration的属性,则由return_unused_kwargs关键字参数控制。use_auth_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。
例子:
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_type(
str):模型类型,例如bert或gpt2。 - config(
PretrainedConfig):需要注册的配置文件。
约束说明
这个类不能直接使用__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_path(
str或os.PathLike):- 字符串,即托管在openMind模型库中的
model id。 - 包含tokenizer所需词表文件的文件夹路径,例如,使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。 - 指向保存单个词表文件的路径或URL,当且仅当tokenizer只需要单个词表文件(如Bert或者XLNet),例如,
./my_model_directory/vocab.txt。(并不适用所有派生类)
- 字符串,即托管在openMind模型库中的
yaml_name_or_path (
str):- 仅支持MindSpore,且如果设置了
pretrained_model_name_or_path,yaml_name_or_path就会失效。 - 字符串,一个支持的模型名称或一个模型配置文件(.yaml)的路径。
- 仅支持MindSpore,且如果设置了
inputs(附加位置参数,可选): 将传递给
Tokenizer.__init__()方法。config([
PretrainedConfig],可选): 用于确定要实例化的分词器类的配置对象。cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型configuration缓存到的cache_dir指定的路径。force_download(
bool,可选,默认为False): 是否强制(重新)下载模型权重和configuration文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。subfolder(
str,可选): 如果相关文件位于openMind模型库的子文件夹中,请在此处指定。use_fast(
bool,可选,默认为True): 如果给定模型支持快速的基于Rust的tokenizer,则使用它。如果给定模型不支持,则返回基于的Python的tokenizer。tokenizer_type(
str,可选): 被加载的tokenizer的类型。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。kwargs(其他关键字参数,可选): 将传递给
Tokenizer.__init__()方法。可用于设置特殊标记,如bos_token、eos_token、unk_token、sep_token、pad_token、cls_token、mask_token、additional_special_tokens。有关更多详细信息,请参见__init__()中的参数。use_auth_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。
例子:
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_class(
str):需要注册的模型对应的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_path(
str或os.PathLike):- 字符串,即托管在openMind模型库中的
model id。 - 包含processor文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。
- 字符串,即托管在openMind模型库中的
yaml_name_or_path (
str):- 仅支持MindSpore,且如果设置了
pretrained_model_name_or_path,yaml_name_or_path就会失效。 - 字符串,一个支持的模型名称或一个模型配置文件(.yaml)的路径。
- 仅支持MindSpore,且如果设置了
cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的feature extractor缓存到的cache_dir指定的路径。force_download(
bool,可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。return_unused_kwargs(
bool,可选,默认为False): 如果为False,则此函数仅返回最终的feature extractor对象。如果为True,则此函数返回一个元组(feature extractor, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非feature extractor属性,即kwargs中未用于更新feature extractor且被忽略的key。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。kwargs(其他关键字参数,可选): 对于
kwargs中任何key的所对应的value,如果这些key是processor的属性,将其对应的value覆盖processor对应的属性。如果key不是processor的属性,则由return_unused_kwargs关键字参数控制。- use_auth_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。
- use_auth_token(
register方法
register(config_class, processor_class, exist_ok=False):注册一个新的processor。
参数:
config_class(
str):需要注册的模型对应的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_path(
str或os.PathLike):- 字符串,即托管在openMind模型库中的
model id。 - 包含image processor文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。 - 指向保存image processor JSON文件的路径或URL,例如,
./my_model_directory/preprocessor_config.json。
- 字符串,即托管在openMind模型库中的
cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的image processor缓存到的cache_dir指定的路径。force_download(
bool,可选,默认为False): 是否强制(重新)下载image processor文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。return_unused_kwargs(
bool,可选,默认为False): 如果为False,则此函数仅返回最终的image processor对象。如果为True,则此函数返回一个元组(image processor, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非image processor属性,即kwargs中未用于更新image processor且被忽略的key。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。kwargs(其他关键字参数,可选): 对于
kwargs中任何key的所对应的value,如果这些key是image processor的属性,将其对应的value覆盖image processor对应的属性。如果key不是image processor的属性,则由return_unused_kwargs关键字参数控制。- use_auth_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。
- use_auth_token(
register方法
register(config_class, image_processor_class, exist_ok=False):注册一个新的image processor。
参数:
config_class(
str):需要注册的模型对应的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_path(
str或os.PathLike):- 字符串,即托管在openMind模型库中的
model id。 - 包含feature extractor文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。 - 指向保存feature extractor JSON文件的路径或URL,例如,
./my_model_directory/preprocessor_config.json。
- 字符串,即托管在openMind模型库中的
cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的feature extractor缓存到的cache_dir指定的路径。force_download(
bool,可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。return_unused_kwargs(
bool,可选,默认为False):如果为False,则此函数仅返回最终的feature extractor对象。如果为True,则此函数返回一个元组(feature_extractor, unused_kwargs),其中unused_kwargs是一个字典,由key/value对组成,key为非feature extractor属性,即kwargs中未用于更新feature extractor且被忽略的key。
trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。kwargs(其他关键字参数,可选): 对于
kwargs中任何key的所对应的value,如果这些key是feature extractor的属性,将其对应的value覆盖feature extractor对应的属性。如果key不是feature extractor的属性,则由return_unused_kwargs关键字参数控制。- use_auth_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。
- use_auth_token(
register方法
register(config_class, feature_extractor_class, exist_ok=False):注册一个新的feature extractor。
参数:
config_class(
str):需要注册的模型对应的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_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。download_checkpoint(
bool,可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。
例子:
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_path(
str或os.PathLike):- 字符串,openMind模型库中托管的预训练模型的
model id。 - 包含模型权重文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。
- 字符串,openMind模型库中托管的预训练模型的
model_args(额外的位置参数,可选): 将传递给基础模型的
__init__()方法。config(
PretrainedConfig,可选): 用于替代自动加载的configuration。当以下情况时,可以自动加载configuration:- 模型是库提供的模型(使用预训练模型的
model id字段加载)。 - 模型是通过
save_pretrained()进行保存的,并通过已保存目录来重新加载。 - 模型是通过提供本地目录作为
pretrained_model_name_or_path并在目录中存在config.json。
- 模型是库提供的模型(使用预训练模型的
state_dict(
Dict[str, torch.Tensor], 可选): 要使用的state dictionary,而不是从保存的权重文件加载的state dictionary。如果想使用预训练configuration创建模型,但是加载自己的权重,则可以使用此选项。
cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的configuration文件缓存到cache_dir指定的路径。from_tf(
bool,可选,默认为False)(openmind暂不支持): 从TensorFlow的checkpoint保存文件中加载权重(请参考pretrained_model_name_or_path的参数文档)。force_download(
bool,可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。output_loading_info(
bool,可选,默认为False): 是否需要返回一个包含缺失键、意外键和错误消息的字典。local_files_only(
bool,可选,默认为False): 是否仅查看本地文件(例如,不尝试下载模型)。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。code_revision(
str,可选,默认为"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_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。ignore_mismatched_sizes(
bool,可选,默认为False): 仅支持MindSpore。 是否在检查点中的某些权重大小与模型的权重大小不同时引发错误(例如,如果使用包含3个标签的检查点实例化一个包含10个标签的模型)。variant(
str,可选): 仅支持MindSpore。 如果指定了variant文件名,则从variant文件名加载权重。download_checkpoint(
bool,可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。
例子:
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_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。download_checkpoint(
bool,可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。
例子:
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_path(
str或os.PathLike):- 字符串,openMind模型库中托管的预训练模型的
model id。 - 包含模型权重文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。
- 字符串,openMind模型库中托管的预训练模型的
model_args(额外的位置参数,可选): 将传递给基础模型的
__init__()方法。config(
PretrainedConfig,可选): 用于替代自动加载的configuration。当以下情况时,可以自动加载configuration:- 模型是库提供的模型(使用预训练模型的
model id字段加载)。 - 模型是通过
save_pretrained()进行保存的,并通过已保存目录来重新加载。 - 模型是通过提供本地目录作为
pretrained_model_name_or_path并在目录中存在config.json。
- 模型是库提供的模型(使用预训练模型的
state_dict(
Dict[str, torch.Tensor], 可选): 要使用的state dictionary,而不是从保存的权重文件加载的state dictionary。如果想使用预训练configuration创建模型,但是加载自己的权重,则可以使用此选项。
cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的configuration文件缓存到cache_dir指定的路径。from_tf(
bool,可选,默认为False)(openmind暂不支持): 从TensorFlow的checkpoint保存文件中加载权重(请参考pretrained_model_name_or_path的参数文档)。force_download(
bool,可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。output_loading_info(
bool,可选,默认为False): 是否需要返回一个包含缺失键、意外键和错误消息的字典。local_files_only(
bool,可选,默认为False): 是否仅查看本地文件(例如,不尝试下载模型)。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。code_revision(
str,可选,默认为"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_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。ignore_mismatched_sizes(
bool,可选,默认为False): 仅支持MindSpore。 是否在检查点中的某些权重大小与模型的权重大小不同时引发错误(例如,如果使用包含3个标签的检查点实例化一个包含10个标签的模型)。variant(
str,可选): 仅支持MindSpore。 如果指定了variant文件名,则从variant文件名加载权重。download_checkpoint(
bool,可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。
例子:
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_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。download_checkpoint(
bool,可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。
例子:
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_path(
str或os.PathLike):- 字符串,openMind模型库中托管的预训练模型的
model id。 - 包含模型权重文件的文件夹路径,即使用
save_pretrained()方法保存的路径,例如,./my_model_directory/。
- 字符串,openMind模型库中托管的预训练模型的
model_args(额外的位置参数,可选): 将传递给基础模型的
__init__()方法。config(
PretrainedConfig,可选): 用于替代自动加载的configuration。当以下情况时,可以自动加载configuration:- 模型是库提供的模型(使用预训练模型的
model id字段加载)。 - 模型是通过
save_pretrained()进行保存的,并通过已保存目录来重新加载。 - 模型是通过提供本地目录作为
pretrained_model_name_or_path并在目录中存在config.json。
- 模型是库提供的模型(使用预训练模型的
state_dict(
Dict[str, torch.Tensor], 可选): 要使用的state dictionary,而不是从保存的权重文件加载的state dictionary。如果想使用预训练configuration创建模型但加载自己的权重,则可以使用此选项。建议查询是否可使用
save_pretrained()和from_pretrained()。cache_dir(
str或os.PathLike,可选): 如果不使用默认的缓存路径,则应将下载的预训练模型的configuration文件缓存到cache_dir指定的路径。from_tf(
bool,可选,默认为False)(openmind暂不支持): 从TensorFlow的checkpoint保存文件中加载权重(请参考pretrained_model_name_or_path的参数文档)。force_download(
bool,可选,默认为False): 是否强制(重新)下载feature extractor文件,并覆盖存在的缓存版本。resume_download(
bool,可选,默认为False): 是否恢复下载之前不完全接收的文件。proxies(
Dict[str, str],可选): 按协议或端点设置的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。如果设置,则将在每个请求上使用该代理。output_loading_info(
bool,可选,默认为False): 是否需要返回一个包含缺失键、意外键和错误消息的字典。local_files_only(
bool,可选,默认为False): 是否仅查看本地文件(例如,不尝试下载模型)。revision(
str,可选,默认为"main"): 指定要使用的模型版本。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以revision可以是git允许的任何标识符。trust_remote_code(
bool,可选,默认为False): 是否允许在模型库的模型文件中自定义模型。此选项仅应在您信任该模型库并且已阅读代码时设置为True,因为它将在您的本地机器上执行模型库上存在的代码。code_revision(
str,可选,默认为"main"): 模型库上特定版本的代码,如果代码位于与模型其余部分不同的存储库中。它可以是分支名称、标签名称或提交ID,因为openMind Library上使用基于git的系统来存储模型和其他文件,所以修订可以是git允许的任何标识符。ignore_mismatched_sizes(
bool,可选,默认为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_token(
str,可选)(待废弃): 访问hub非公开数据时需要的用户访问令牌。token(
str,可选): 访问hub非公开数据时需要的用户访问令牌(访问非公开数据时use_auth_token和token必须配置一个,建议配置token)。variant(
str,可选): 仅支持MindSpore。 如果指定了variant文件名,则从variant文件名加载权重。download_checkpoint(
bool,可选,默认为True): 仅支持MindSpore。(仅支持origin_mode。) 是否下载模型的检查点文件。
例子:
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
'''