Hugging Face Hub Search API 更新
Hugging Face 更新了 huggingface_hub 库,为搜索模型、数据集和 Spaces 提供了一个更直观、程序化的接口。这些更新消除了用户手动导航 Web 界面或猜测 API 查询参数的需求,允许直接在 Python 或 Jupyter 环境中进行复杂的过滤。
使用 ModelSearchArguments 简化搜索
ModelSearchArguments 和 DatasetSearchArguments 类充当了人类可读的“速查表”,将用户友好的术语映射到 Hugging Face API 所需的具体格式化字符串。这消除了确定参数应如何编写的试错过程。
可用的搜索属性
ModelSearchArguments 类为以下可搜索属性提供了一个命名空间:
- author: 按模型的创建者进行过滤。
- dataset: 按用于训练的数据集进行过滤(例如,
model_args.dataset.glue返回'dataset:glue')。 - language: 按模型的语言进行过滤。
- library: 按框架进行过滤,例如 PyTorch(例如,
model_args.library.PyTorch返回'pytorch')。 - license: 按模型许可证进行过滤。
- model_name: 按特定的模型名称进行过滤。
- pipeline_tag: 按任务进行过滤,例如文本分类(例如,
model_args.pipeline_tag.TextClassification返回'text-classification')。
用户可以通过 api.list_models() 方法使用 filter 参数传递这些参数来检索匹配的模型。
使用 ModelFilter 进行高级过滤
对于涉及多个标准或每个标准包含多个值的复杂查询,ModelFilter 类提供了一种协调的方法来进行搜索。ModelFilter 不再使用简单的字符串,而是允许用户为任务、数据集和库定义需求列表。
例如,用户可以同时搜索满足以下所有标准的模型:
- Tasks: 同时满足
text-classification和zero-shot-classification。 - Datasets: 同时满足 Multi NLI 和 GLUE。
- Libraries: 同时满足 PyTorch 和 TensorFlow。
技术实现:AttributeDictionary
改进的搜索体验是由一个名为 AttributeDictionary 的工具类驱动的。受 fastcore 库中 AttrDict 类的启发,AttributeDictionary 通过启用键的自动补全功能增强了标准的 Python 字典,这对于探索性编程至关重要。
AttributeDictionary 的关键特性
- Attribute Access: 键可以作为属性访问(例如,
ad.key)而不仅仅是作为字典键(例如,ad['key'])。 - Nested Exploration: 它支持嵌套字典,允许对 API 响应进行深度探索。
- Deletion: 可以使用
del ad.key或del ad[key]来删除键。 - Constraint: 如果键包含数字或特殊字符,则必须使用标准字典索引(
ad['key'])进行访问,因为 Python 语法不允许属性以数字开头或包含特殊字符。
程序化模型信息
除了搜索,huggingface_hub 库还允许用户使用其模型 ID 通过 api.model_info('model_id') 方法检索特定模型的详细信息。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch