适配器工具集

一组实用方法集合,主要涉及从Adapter-Hub搜索和加载适配器模块。

class adapters.utils.AdapterInfo(source: str, adapter_id: str, model_name: Optional[str] = None, task: Optional[str] = None, subtask: Optional[str] = None, username: Optional[str] = None, adapter_config: Optional[dict] = None, sha1_checksum: Optional[str] = None)

保存关于在Hub上公开可用的适配器信息。由list_adapters()返回。

Parameters
  • source (str) – 该适配器的来源仓库。对于HF模型中心上可用的适配器,始终为'hf'。

  • adapter_id (str) – 此适配器的唯一标识符。

  • model_name (str, optional) – 该适配器所训练模型的标识符。

  • task (str, optional) – 该适配器训练的目标任务。

  • subtask (str, optional) – 该适配器训练所用的子任务或数据集。

  • username (str, optional) – 此适配器作者的用户名。

  • adapter_config (dict, optional) – 该适配器的配置字典。

class adapters.utils.AdapterType(value)

涵盖当前所有可用的模型适配器类型。

adapters.utils.download_cached(url, checksum=None, checksum_algo='sha1', cache_dir=None, force_extract=False, **kwargs)

该方法会下载文件并进行缓存。

如需了解为何需要此操作,请参阅此拉取请求中的说明:https://github.com/adapter-hub/adapters/pull/750

adapters.utils.get_adapter_config_hash(config, length=16, ignore_params=[])

计算给定适配器配置的哈希值,用于标识该配置。

Returns

给定配置字典的哈希结果。

Return type

字符串

adapters.utils.get_adapter_info(adapter_id: str) Optional[AdapterInfo]

获取特定适配器的相关信息。

Parameters

adapter_id (str) – 要检索的适配器的标识符。

Returns

适配器信息,如果未找到适配器则为None。

Return type

AdapterInfo

adapters.utils.get_from_cache(url: str, cache_dir=None, force_download=False, proxies=None, etag_timeout=10, resume_download=False, user_agent: Optional[Union[Dict, str]] = None, use_auth_token: Optional[Union[bool, str]] = None, local_files_only=False) Optional[str]

给定一个URL,在本地缓存中查找对应的文件。如果不存在,则下载该文件。然后返回缓存文件的路径。

Returns

文件的本地路径(字符串),如果网络关闭则为磁盘上缓存的最后版本文件。

Raises

对于不可恢复的文件不存在无法访问的URL + 磁盘上没有缓存

adapters.utils.list_adapters(model_name: Optional[str] = None) List[AdapterInfo]

获取AdapterHub.ml或huggingface.co上所有公开可用适配器的列表。

Parameters

model_name (str, optional) - 如果指定,则仅返回为此模型标识符训练的适配器。

adapters.utils.parse_adapter_config_string(config_string: str) List[Tuple[str, dict]]

将适配器配置字符串解析为元组列表。每个元组包含一个适配器配置标识符和字典。

adapters.utils.prefix_attention_mask(attention_mask, dim: Union[int, List[int]] = 3, prefix_value: int = 0)

向注意力掩码添加前缀。前缀的长度由ForwardContext中的prefix_attention_mask_length属性决定。

Parameters
  • attention_mask – 需要添加前缀的注意力掩码。

  • dim (int) – 指定拼接prefix_attention_mask的维度。默认为3。

  • prefix_value (int) – 用于prefix_attention_mask的值。默认为0,但某些模型(如DistilBert)会使用不同的值。类似BERT的模型会反转它们的extended_attention_mask,因此它们使用0表示未被掩码的标记。这种反转通常在模型的前向传播方法中以两种不同方式完成: 1) 通过调用self.invert_attention_mask,如BERT所做 2) 通过手动反转,例如ALBERT的做法:extended_attention_mask = (1.0 - extended_attention_mask) * torch.finfo(self.dtype).min

adapters.utils.pull_from_hub(specifier: str, model_name: str, adapter_config: Optional[Union[dict, str]] = None, version: Optional[str] = None, strict: bool = False, **kwargs) str

将加载重定向从存档的Hub仓库转向HuggingFace模型中心。

Parameters
  • specifier (str) – 用于指定要加载的适配器的字符串。

  • model_name (str) – 要加载适配器的预训练模型的标识符。

  • adapter_config (Union[dict, str], optional) – 要加载的适配器配置。

  • version (str, optional) – 要加载的适配器版本。默认为None。

  • strict (bool, optional) – 如果设为True,则只允许加载与给定配置完全匹配的适配器。默认为False。

Returns

适配器下载到的本地路径。

Return type

字符串

adapters.utils.resolve_adapter_config(config: Union[dict, str], local_map=None, **kwargs) dict

将给定的适配器配置标识符解析为完整的配置字典。

Parameters

config (Union[dict, str]) –

需要解析的配置。可以是以下任意一种:

  • 字典类型:直接返回不做处理

  • local_map中可用的标识符字符串

  • 包含完整适配器配置的文件路径

Returns

解析后的适配器配置字典。

Return type

字典

adapters.utils.resolve_adapter_path(adapter_name_or_path, model_name: Optional[str] = None, adapter_config: Optional[Union[dict, str]] = None, version: Optional[str] = None, do_exists_check: bool = True, **kwargs) str

解析预训练适配器模块的路径。注意:如果尝试从Hub解析适配器,必须提供adapter_config和model_name。

Parameters
  • adapter_name_or_path (str) –

    可以是以下任意一种:

    • 文件系统中包含适配器配置和权重的文件夹路径

    • 指向包含适配器配置和权重的zip文件夹的URL

    • 匹配Adapter-Hub上预训练适配器的标识符

  • model_name (str, optional) – 要加载适配器的预训练模型的标识符。

  • adapter_config (Union[dict, str], optional) – 要加载的适配器配置。

  • version (str, optional) – 要加载的适配器版本。默认为None。

Returns

可以从中加载适配器模块的本地路径。

Return type

字符串

adapters.utils.url_to_filename(url: str, etag: Optional[str] = None) str

根据URL生成本地文件名。

url以可重现的方式转换为哈希文件名。如果指定了etag,则将其哈希值附加到url的哈希值后,用句点分隔。如果url以.h5结尾(Keras HDF5权重文件),则在名称后添加'.h5',以便TF 2.0能识别其为HDF5文件(参见 https://github.com/tensorflow/tensorflow/blob/00fad90125b18b80fe054de1055770cfb8fe4ba3/tensorflow/python/keras/engine/network.py#L1380

Parameters
  • url (str) – 文件的地址。

  • etag (str, 可选) – 文件的ETag标识。

Returns

生成的文件名。