Hugging Face Hub Search API 更新

Hugging Face 更新了 huggingface_hub 函式庫,為搜尋模型、資料集和 Spaces 提供更直觀、程式化的介面。這些更新消除了使用者手動導覽網頁介面或猜測 API 查詢參數的需求,允許直接在 Python 或 Jupyter 環境中進行複雜的篩選。

使用 ModelSearchArguments 簡化搜尋

ModelSearchArgumentsDatasetSearchArguments 類別充當人類可讀的「速查表」,將使用者友善的術語映射到 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-classificationzero-shot-classification
  • Datasets: 同時符合 Multi NLI 和 GLUE。
  • Libraries: 同時符合 PyTorch 和 TensorFlow。

技術實作:AttributeDictionary

改進的搜尋體驗是由名為 AttributeDictionary 的工具類別驅動的。受 fastcore 函式庫中 AttrDict 類別的啟發,AttributeDictionary 透過啟用鍵值的 Tab 補全功能來增強標準 Python 字典,這對於探索性程式設計至關重要。

AttributeDictionary 的關鍵特性

  • 屬性存取: 鍵值可以作為屬性存取(例如,ad.key),而不僅僅是作為字典鍵值(例如,ad['key'])。
  • 巢狀探索: 它支援巢狀字典,允許對 API 回應進行深度探索。
  • 刪除: 可以使用 del ad.keydel ad[key] 來刪除鍵值。
  • 限制: 如果鍵值包含數字或特殊字元,則必須使用標準字典索引(ad['key'])來存取,因為 Python 語法不允許屬性以數字開頭或包含特殊字元。

程式化模型資訊

除了搜尋之外,huggingface_hub 函式庫還允許使用者透過 api.model_info('model_id') 方法,使用其模型 ID 檢索特定模型的詳細資訊。

Sources

相關

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch