Hugging Face Hub Search API 更新
Hugging Face 更新了 huggingface_hub 函式庫,為搜尋模型、資料集和 Spaces 提供更直觀、程式化的介面。這些更新消除了使用者手動導覽網頁介面或猜測 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')。
使用者可以透過 filter 參數將這些參數傳遞給 api.list_models() 方法,以檢索符合條件的模型。
使用 ModelFilter 進行進階篩選
對於涉及多個標準或每個標準包含多個值的複雜查詢,ModelFilter 類別提供了一種協調的搜尋方法。ModelFilter 不僅僅是簡單的字串,它允許使用者為任務、資料集和函式庫定義需求列表。
例如,使用者可以同時搜尋符合以下所有標準的模型:
- Tasks: 同時符合
text-classification和zero-shot-classification。 - Datasets: 同時符合 Multi NLI 和 GLUE。
- Libraries: 同時符合 PyTorch 和 TensorFlow。
技術實作:AttributeDictionary
改進的搜尋體驗是由名為 AttributeDictionary 的工具類別驅動的。受 fastcore 函式庫中 AttrDict 類別的啟發,AttributeDictionary 透過啟用鍵值的 Tab 補全功能來增強標準 Python 字典,這對於探索性程式設計至關重要。
AttributeDictionary 的關鍵特性
- 屬性存取: 鍵值可以作為屬性存取(例如,
ad.key),而不僅僅是作為字典鍵值(例如,ad['key'])。 - 巢狀探索: 它支援巢狀字典,允許對 API 回應進行深度探索。
- 刪除: 可以使用
del ad.key或del ad[key]來刪除鍵值。 - 限制: 如果鍵值包含數字或特殊字元,則必須使用標準字典索引(
ad['key'])來存取,因為 Python 語法不允許屬性以數字開頭或包含特殊字元。
程式化模型資訊
除了搜尋之外,huggingface_hub 函式庫還允許使用者透過 api.model_info('model_id') 方法,使用其模型 ID 檢索特定模型的詳細資訊。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch