Hub Python Library documentation
リポジトリカード
リポジトリカード
huggingface_hub ライブラリは、Model/Dataset Cards の作成、共有、更新を行うための Python インターフェースを提供します。 Hub 上の Model Cards が何であり、内部でどのように動作しているかを詳しく知りたい場合は、専用ドキュメントページをご覧ください。また、これらのユーティリティを自分のプロジェクトでどのように使用するかを把握するために、Model Cards ガイドも参照できます。
リポジトリカード
RepoCardオブジェクトは、ModelCard、DatasetCard、SpaceCardの親クラスです。
__init__
< source >( content: strignore_metadata_errors: bool = False )
文字列の内容からRepoCardを初期化します。内容は、先頭にYAMLブロックがあり、その後にMarkdown本文が続くMarkdownファイルである必要があります。
> [!TIP] > Raises the following error: > > - [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) > when the content of the repo card metadata is not a dictionary.from_template
< source >( card_data: CardDatatemplate_path: str | None = Nonetemplate_str: str | None = None**template_kwargs ) → huggingface_hub.repocard.RepoCard
パラメータ
- card_data (
huggingface_hub.CardData) — Hugging Face HubのリポジトリカードのYAMLヘッダーに含めたいメタデータを含むhuggingface_hub.CardDataインスタンスです。 - template_path (
str, 任意) —template_kwargsで埋め込むことのできる任意の Jinja テンプレート変数を含む Markdown ファイルへのパスです。デフォルトでは、デフォルトのテンプレートが使用されます。 - template_str (
str, 任意) — 任意の変数を含む生の Jinja テンプレート文字列。template_pathもデフォルトのテンプレートも適切でない場合に使用します。template_pathも指定されている場合は無視されます。
指定されたカードデータとテンプレートの内容を含むRepoCardインスタンス。
テンプレートからRepoCardを初期化します。デフォルトでは、デフォルトのテンプレートが使用されます。
テンプレートは、キーワード引数を渡すことでカスタマイズできるJinja2テンプレートです。
load
< source >( repo_id_or_path: str | pathlib.Pathrepo_type: str | None = Nonetoken: str | None = Noneignore_metadata_errors: bool = False ) → huggingface_hub.repocard.RepoCard
パラメータ
- repo_id_or_path (
Union[str, Path]) — Hugging Face Hubのリポジトリに関連付けられたリポジトリID、またはローカルファイルパス。 - repo_type (
str, 任意) — プッシュ先の Hugging Face リポジトリの種類です。デフォルトは None で、この場合は “model” が使用されます。その他のオプションとして “dataset” と “space” があります。ローカルファイルパスから読み込む場合は使用されません。このメソッドがサブクラスから呼び出された場合、デフォルト値はサブクラスのrepo_typeになります。 - token (
str, 任意) —huggingface_hub.HfApi.loginメソッドで取得した認証トークン。デフォルトでは保存されているトークンが使用されます。 - ignore_metadata_errors (
str) — True の場合、メタデータセクションの解析中に発生したエラーは無視されます。この処理により、一部の情報が失われる可能性があります。使用は自己責任でお願いします。
リポジトリのREADME.mdファイルまたはファイルパスから初期化されたRepoCard(またはサブクラス)。
Hugging Face HubのリポジトリのREADME.mdまたはローカルファイルパスからRepoCardを初期化します。
push_to_hub
< source >( repo_id: strtoken: str | None = Nonerepo_type: str | None = Nonecommit_message: str | None = Nonecommit_description: str | None = Nonerevision: str | None = Nonecreate_pr: bool | None = Noneparent_commit: str | None = None ) → str
パラメータ
- repo_id (
str) — プッシュ先の Hugging Face Hub リポジトリのリポジトリ ID。例: “nateraw/food”。 - token (
str, 任意) —huggingface_hub.HfApi.loginメソッドで取得した認証トークン。デフォルトでは、保存されているトークンが使用されます。 - repo_type (
str, 任意、デフォルトは “model”) — プッシュ先の Hugging Face リポジトリの種類です。選択肢は “model”、“dataset”、“space” です。この関数がサブクラスによって呼び出された場合、デフォルト値はサブクラスのrepo_typeになります。 - commit_message (
str, 省略可) — 生成されたコミットのサマリー / タイトル / 最初の行です。 - commit_description (
str, 省略可) — 生成されたコミットの説明です。 - revision (
str, 省略可) — コミット元の git リビジョンです。デフォルトでは、"main"ブランチの先頭になります。 - create_pr (
bool, 省略可) — このコミットで Pull Request を作成するかどうか。デフォルトはFalseです。 - parent_commit (
str, 省略可能) — 親コミットの OID / SHA を16進数文字列として指定します。略記法(先頭7文字)もサポートされています。 指定され、create_prがFalseの場合、revisionがparent_commitを指していないとコミットは失敗します。 指定され、create_prがTrueの場合、parent_commitからプルリクエストが作成されます。parent_commitを指定することで、変更をコミットする前にリポジトリが変更されていないことを保証でき、リポジトリが並行して更新 / コミットされる場合に特に有用です。
戻り値
str
カードのメタデータを更新したコミットのURL。
RepoCardをHugging Face Hubのリポジトリにプッシュします。
save
< source >( filepath: pathlib.Path | str )
RepoCardをファイルに保存します。
validate
< source >( repo_type: str | None = None )
Hugging Face Hub のカード検証ロジックに対してカードを検証します。 この関数を使用するにはインターネットへのアクセスが必要であるため、huggingface_hub.repocard.RepoCard.push_to_hub() によって内部的にのみ呼び出されます。
以下のエラーを発生させます:
- カードが検証チェックに失敗した場合に、
ValueErrorが発生します。HTTPErrorHub API へのリクエストがその他の理由で失敗した場合に発生します。
カードデータ
CardDataオブジェクトは、ModelCardDataとDatasetCardDataの親クラスです。
RepoCardからのメタデータを含む構造体。
CardDataは、ModelCardDataとDatasetCardDataの親クラスです。
メタデータは辞書またはYAMLとしてエクスポートできます。データの表現を変更するためにエクスポートをカスタマイズできます(例: 評価結果のフラット化)。CardDataは辞書として動作します(値の取得、pop、設定が可能)が、このエクスポート手順を許可するためにdictを継承していません。
指定されたメタデータキーの値を取得します。
特定のメタデータキーのPop値。
CardDataをdictに変換します。
to_yaml
< source >( line_break = Noneoriginal_order: list[str] | None = None ) → str
README.mdファイルに含めるために、CardDataをYAMLブロックにダンプします。
モデルカード
ModelCard
from_template
< source >( card_data: ModelCardDatatemplate_path: str | None = Nonetemplate_str: str | None = None**template_kwargs ) → huggingface_hub.ModelCard
パラメータ
- card_data (
huggingface_hub.ModelCardData) — Hugging Face Hub 上のモデルカードの YAML ヘッダーに含めたいメタデータを含むhuggingface_hub.ModelCardDataインスタンス。 - template_path (
str, 任意) —template_kwargsで埋め込むことのできる任意の Jinja テンプレート変数を含む Markdown ファイルへのパスです。デフォルトでは、デフォルトのテンプレートが使用されます。 - template_str (
str, 任意) — 任意の変数を含む生の Jinja テンプレート文字列。template_pathもデフォルトのテンプレートも適切でない場合に使用します。template_pathも指定されている場合は無視されます。
指定されたカードデータとテンプレートの内容を含むModelCardインスタンス。
テンプレートからModelCardを初期化します。デフォルトでは、https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md にあるデフォルトのテンプレートが使用されます。
テンプレートは、キーワード引数を渡すことでカスタマイズできるJinja2テンプレートです。
例:
>>> from huggingface_hub import ModelCard, ModelCardData, EvalResult
>>> # Using the Default Template
>>> card_data = ModelCardData(
... language='en',
... license='mit',
... library_name='timm',
... tags=['image-classification', 'resnet'],
... datasets=['beans'],
... metrics=['accuracy'],
... )
>>> card = ModelCard.from_template(
... card_data,
... model_description='This model does x + y...'
... )
>>> # Including Evaluation Results
>>> card_data = ModelCardData(
... language='en',
... tags=['image-classification', 'resnet'],
... eval_results=[
... EvalResult(
... task_type='image-classification',
... dataset_type='beans',
... dataset_name='Beans',
... metric_type='accuracy',
... metric_value=0.9,
... ),
... ],
... model_name='my-cool-model',
... )
>>> card = ModelCard.from_template(card_data)
>>> # Using a Custom Template
>>> card_data = ModelCardData(
... language='en',
... tags=['image-classification', 'resnet']
... )
>>> card = ModelCard.from_template(
... card_data=card_data,
... template_path='./src/huggingface_hub/templates/modelcard_template.md',
... custom_template_var='custom value', # will be replaced in template if it exists
... )
ModelCardData
クラス huggingface_hub.ModelCardData
< source >( base_model: str | list[str] | None = Nonedatasets: str | list[str] | None = Noneeval_results: list[huggingface_hub.repocard_data.EvalResult] | None = Nonelanguage: str | list[str] | None = Nonelibrary_name: str | None = Nonelicense: str | None = Nonelicense_name: str | None = Nonelicense_link: str | None = Nonemetrics: list[str] | None = Nonemodel_name: str | None = Nonepipeline_tag: str | None = Nonetags: list[str] | None = Noneignore_metadata_errors: bool = False**kwargs )
パラメータ
- base_model (
strまたはlist[str]、省略可) — モデルが派生するベースモデルの識別子です。例えば、既存モデルのファインチューンやアダプターである場合に適用されます。値は、Hub 上のモデルの ID(複数のモデルから派生する場合は ID のリスト)である必要があります。デフォルトは None です。 - datasets (
Union[str, list[str]], 省略可) — このモデルの学習に使用されたデータセット、またはデータセットのリストです。https://hf.co/datasets で見つかるデータセット ID である必要があります。デフォルト値は None です。 - eval_results (
Union[list[EvalResult], EvalResult], 省略可) — モデルの評価結果を定義するhuggingface_hub.EvalResultのリスト。指定された場合、model_nameが PapersWithCode のリーダーボード上の名前として使用されます。デフォルトはNoneです。 - language (
Union[str, list[str]], 省略可) — モデルの学習データまたはメタデータの言語です。ISO 639-1、639-2、639-3 のコード(2文字/3文字)であるか、“code” や “multilingual” のような特別な値である必要があります。デフォルトはNoneです。 - library_name (
str, 任意) — このモデルで使用されているライブラリの名前です。例: keras または https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/model-libraries.ts にあるライブラリなど。デフォルト値は None です。 - license (
str, 任意) — このモデルのライセンスです。例: apache-2.0 または https://huggingface.co/docs/hub/repositories-licenses に記載されているいずれかのライセンスです。デフォルト値は None です。 - license_name (
str, optional) — Name of the license of this model. Defaults to None. To be used in conjunction withlicense_link. Common licenses (Apache-2.0, MIT, CC-BY-SA-4.0) do not need a name. In that case, uselicenseinstead. - license_link (
str, optional) — Link to the license of this model. Defaults to None. To be used in conjunction withlicense_name. Common licenses (Apache-2.0, MIT, CC-BY-SA-4.0) do not need a link. In that case, uselicenseinstead. - metrics (
list[str]、任意) — このモデルの評価に使用されるメトリクスのリストです。https://hf.co/metrics で見つかるメトリクス名である必要があります。例: ‘accuracy’。デフォルトは None です。 - model_name (
str, 任意) — このモデルの名前です。eval_resultsと組み合わせて、カードのメタデータ内のmodel-indexを構築するために使用されます。ここで指定した名前は、PapersWithCode のリーダーボードに表示されるものになります。None が指定された場合、リポジトリ名がデフォルトとして使用されます。デフォルトは None です。 - pipeline_tag (
str, 省略可) — モデルに関連付けられたパイプラインタグです。例: “text-classification”。 - tags (
list[str]、省略可) — Hugging Face Hub でフィルタリングを行う際に使用できる、モデルに追加するタグのリストです。デフォルトは None です。 - ignore_metadata_errors (
str) — True の場合、メタデータセクションの解析中に発生したエラーは無視されます。この処理により、一部の情報が失われる可能性があります。使用は自己責任でお願いします。 - kwargs (
dict, 任意) — モデルカードに追加される追加メタデータ。デフォルトは None です。
README.md の先頭に含めることで、Hugging Face Hub が使用するモデルカードのメタデータ
例:
>>> from huggingface_hub import ModelCardData
>>> card_data = ModelCardData(
... language="en",
... license="mit",
... library_name="timm",
... tags=['image-classification', 'resnet'],
... )
>>> card_data.to_dict()
{'language': 'en', 'license': 'mit', 'library_name': 'timm', 'tags': ['image-classification', 'resnet']}
Dataset Cards
Datasetカードは、MLコミュニティではData Cardsとも呼ばれています。
DatasetCard
from_template
< source >( card_data: DatasetCardDatatemplate_path: str | None = Nonetemplate_str: str | None = None**template_kwargs ) → huggingface_hub.DatasetCard
パラメータ
- card_data (
huggingface_hub.DatasetCardData) — Hugging Face Hub上のデータセットカードのYAMLヘッダーに含めたいメタデータを含む、huggingface_hub.DatasetCardDataのインスタンスです。 - template_path (
str, 任意) —template_kwargsで埋め込むことのできる任意の Jinja テンプレート変数を含む Markdown ファイルへのパスです。デフォルトでは、デフォルトのテンプレートが使用されます。 - template_str (
str, 任意) — 任意の変数を含む生の Jinja テンプレート文字列。template_pathもデフォルトのテンプレートも適切でない場合に使用します。template_pathも指定されている場合は無視されます。
指定されたカードデータとテンプレートの内容を含むDatasetCardインスタンス。
テンプレートからDatasetCardを初期化します。デフォルトでは、https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/datasetcard_template.md で確認できるデフォルトのテンプレートが使用されます。
テンプレートは、キーワード引数を渡すことでカスタマイズできるJinja2テンプレートです。
例:
>>> from huggingface_hub import DatasetCard, DatasetCardData
>>> # Using the Default Template
>>> card_data = DatasetCardData(
... language='en',
... license='mit',
... annotations_creators='crowdsourced',
... task_categories=['text-classification'],
... task_ids=['sentiment-classification', 'text-scoring'],
... multilinguality='monolingual',
... pretty_name='My Text Classification Dataset',
... )
>>> card = DatasetCard.from_template(
... card_data,
... pretty_name=card_data.pretty_name,
... )
>>> # Using a Custom Template
>>> card_data = DatasetCardData(
... language='en',
... license='mit',
... )
>>> card = DatasetCard.from_template(
... card_data=card_data,
... template_path='./src/huggingface_hub/templates/datasetcard_template.md',
... custom_template_var='custom value', # will be replaced in template if it exists
... )
DatasetCardData
クラス huggingface_hub.DatasetCardData
< source >( language: str | list[str] | None = Nonelicense: str | list[str] | None = Noneannotations_creators: str | list[str] | None = Nonelanguage_creators: str | list[str] | None = Nonemultilinguality: str | list[str] | None = Nonesize_categories: str | list[str] | None = Nonesource_datasets: list[str] | None = Nonetask_categories: str | list[str] | None = Nonetask_ids: str | list[str] | None = Nonepaperswithcode_id: str | None = Nonepretty_name: str | None = Nonetrain_eval_index: dict | None = Noneconfig_names: str | list[str] | None = Noneignore_metadata_errors: bool = False**kwargs )
パラメータ
- language (
list[str], 任意) — データセットのデータまたはメタデータの言語です。ISO 639-1、639-2、または 639-3 のコード(2文字/3文字)、または “code” や “multilingual” などの特別な値である必要があります。 - license (
Union[str, list[str]]、省略可) — このデータセットのライセンスです。例: apache-2.0 または https://huggingface.co/docs/hub/repositories-licenses に記載されているいずれかのライセンス。 - annotations_creators (
Union[str, list[str]], 省略可) — データセットのアノテーションがどのように作成されたかを示します。 選択肢は: ‘found’, ‘crowdsourced’, ‘expert-generated’, ‘machine-generated’, ‘no-annotation’, ‘other’ です。 - language_creators (
Union[str, list[str]], 省略可) — データセット内のテキストベースのデータがどのように作成されたかを示します。 選択肢は: ‘found’, ‘crowdsourced’, ‘expert-generated’, ‘machine-generated’, ‘other’ - multilinguality (
Union[str, list[str]], 省略可) — データセットが多言語かどうかを示します。 選択肢は: ‘monolingual’、‘multilingual’、‘translation’、‘other’ です。 - size_categories (
Union[str, list[str]], 省略可) — データセット内のサンプル数。選択肢は ‘n<1K’、‘1K1T’、および ‘other’ です。 - source_datasets (
list[str]], 任意) — データセットがオリジナルのデータセットであるか、既存の他のデータセットから拡張されたものであるかを指定します。 オプションは ‘original’ と ‘extended’ です。 - task_categories (
Union[str, list[str]], 省略可) — データセットがサポートするタスクのカテゴリは何ですか? - task_ids (
Union[str, list[str]], 省略可) — データセットがサポートする特定のタスクは何ですか? - paperswithcode_id (
str, 省略可) — PapersWithCode 上のデータセットの ID。 - pretty_name (
str, 省略可) — データセットの人間が読みやすい名前です。(例: “Cats vs. Dogs”) - train_eval_index (
dict, 任意) — Hub 上で評価を行うために必要な仕様を記述した辞書です。 指定されない場合、kwargs の ‘train-eval-index’ キーから取得されます。 - config_names (
Union[str, list[str]], 省略可) — データセットで利用可能なデータセット設定のリスト。
README.md の先頭に含める場合、Hugging Face Hub によって使用される Dataset Card Metadata
スペースカード
SpaceCard
SpaceCardData
クラス huggingface_hub.SpaceCardData
< source >( title: str | None = Nonesdk: str | None = Nonesdk_version: str | None = Nonepython_version: str | None = Noneapp_file: str | None = Noneapp_port: int | None = Nonelicense: str | None = Noneduplicated_from: str | None = Nonemodels: list[str] | None = Nonedatasets: list[str] | None = Nonetags: list[str] | None = Noneignore_metadata_errors: bool = False**kwargs )
パラメータ
- title (
str, 省略可) — Space のタイトル。 - sdk (
str, 省略可) — Space の SDK(gradio、streamlit、docker、staticのいずれか)。 - sdk_version (
str, 任意) — 使用している SDK のバージョン(Gradio/Streamlit SDK の場合)。 - python_version (
str, 省略可) — Space で使用される Python のバージョン (Gradio/Streamlit sdk の場合)。 - app_file (
str, オプション) — メインアプリケーションファイルへのパスです。このファイルには、gradio または streamlit の Python コード、または静的な HTML コードが含まれます。 パスはリポジトリのルートからの相対パスです。 - app_port (
str, 省略可) — アプリケーションが実行されているポート。sdk がdockerの場合のみ使用されます。 - license (
str, 任意) — このモデルのライセンスです。例: apache-2.0 または https://huggingface.co/docs/hub/repositories-licenses に記載されているいずれかのライセンス。 - duplicated_from (
str, 省略可) — この Space が複製された Space の場合、元の Space の ID。 - models (
list[str], 任意) — この Space に関連するモデルのリスト。https://hf.co/models で見つかるモデル ID である必要があります。 - datasets (
list[str], 任意) — この Space に関連するデータセットのリスト。https://hf.co/datasets で見つかるデータセット ID である必要があります。 - tags (
list[str]、任意) — Hub でフィルタリングを行う際に使用できる、Space に追加するタグのリストです。 - ignore_metadata_errors (
str) — True の場合、メタデータセクションの解析中に発生したエラーは無視されます。この処理により、一部の情報が失われる可能性があります。使用は自己責任でお願いします。 - kwargs (
dict, 任意) — スペースカードに追加される追加メタデータ。
README.md の先頭に含めることで、Hugging Face Hub が使用する Space のカードメタデータ
Spaces の設定に関する包括的なリファレンスについては、https://huggingface.co/docs/hub/spaces-config-reference#spaces-configuration-reference をご覧ください。
例:
>>> from huggingface_hub import SpaceCardData
>>> card_data = SpaceCardData(
... title="Dreambooth Training",
... license="mit",
... sdk="gradio",
... duplicated_from="multimodalart/dreambooth-training"
... )
>>> card_data.to_dict()
{'title': 'Dreambooth Training', 'sdk': 'gradio', 'license': 'mit', 'duplicated_from': 'multimodalart/dreambooth-training'}ユーティリティ
EvalResult
クラス huggingface_hub.EvalResult
< source >( task_type: strdataset_type: strdataset_name: strmetric_type: strmetric_value: typing.Anytask_name: str | None = Nonedataset_config: str | None = Nonedataset_split: str | None = Nonedataset_revision: str | None = Nonedataset_args: dict[str, typing.Any] | None = Nonemetric_name: str | None = Nonemetric_config: str | None = Nonemetric_args: dict[str, typing.Any] | None = Noneverified: bool | None = Noneverify_token: str | None = Nonesource_name: str | None = Nonesource_url: str | None = None )
パラメータ
- task_type (
str) — タスク識別子です。例: “image-classification”。 - dataset_type (
str) — データセットの識別子です。例: “common_voice”。https://hf.co/datasets のデータセット ID を使用します。 - dataset_name (
str) — データセットの表示名です。例: “Common Voice (French)“。 - metric_type (
str) — メトリックの識別子です。例: “wer”。https://hf.co/metrics のメトリック ID を使用します。 - metric_value (
Any) — メトリックの値です。例: 0.9 または “20.0 ± 1.2”。 - task_name (
str, 省略可) — タスクの表示名です。例: “Speech Recognition”。 - dataset_config (
str, 任意) —load_dataset()で使用されるデータセット設定の名前です。 例:load_dataset("common_voice", "fr")の fr。詳細はdatasetsのドキュメントを参照してください: https://hf.co/docs/datasets/package_reference/loading_methods#datasets.load_dataset.name - dataset_split (
str, 省略可) —load_dataset()で使用されるスプリットです。例: “test”。 - dataset_revision (
str, 省略可) —load_dataset()で使用されるデータセットのリビジョン(Git Sha)です。 例: 5503434ddd753f426f4b38109466949a1217c2bb - dataset_args (
dict[str, Any]、省略可) —Metric.compute()呼び出し時に渡される引数です。bleuの例:{"max_order": 4} - metric_name (
str, 任意) — メトリックの表示名です。例: “Test WER”。 - metric_config (
str, 任意) —load_metric()で使用されるメトリック設定の名前です。 例:load_metric("bleurt", "bleurt-large-512")における bleurt-large-512。 詳細はdatasetsのドキュメントを参照してください: https://huggingface.co/docs/datasets/v2.1.0/en/loading#load-configurations - metric_args (
dict[str, Any]、省略可) —Metric.compute()呼び出し時に渡される引数です。bleuの例: max_order: 4 - verified (
bool, 省略可) — メトリクスが Hugging Face の 評価サービスからのものであるかどうかを示します。Hugging Face によって自動的に計算されるため、設定しないでください。 - verify_token (
str, 省略可) — メトリクスが Hugging Face の 評価サービス 由来かどうかを検証するために使用される JSON Web Token です。 - source_name (
str, 任意) — 評価結果のソースの名前です。例: “Open LLM Leaderboard”。 - source_url (
str, 任意) — 評価結果のソースのURLです。例: ”https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard”。
Model Cards の model-index に含まれる個別の評価結果のフラット化された表現。
model-index仕様の詳細については、https://github.com/huggingface/hub-docs/blob/main/modelcard.md?plain=1を参照してください。
selfとotherが、値だけが異なり、それ以外は完全に同じメトリックを表している場合はTrueを返します。
model_index_to_eval_results
huggingface_hub.repocard_data.model_index_to_eval_results
< source >( model_index: list ) → model_name (str)
パラメータ
- model_index (
list[dict[str, Any]]) — モデルインデックスのデータ構造です。おそらく Hugging Face Hub 上の README.md ファイルから取得されたものです。
戻り値
model_name (str)
モデルインデックスに記載されているモデル名。PapersWithCodeなどのリーダーボードでは、モデルの識別子として使用されます。
eval_results (list[EvalResult]):
提供されたmodel_indexに報告されたメトリクスを含むhuggingface_hub.EvalResultオブジェクトのリスト。
モデルのインデックスを受け取り、モデル名とhuggingface_hub.EvalResultオブジェクトのリストを返します。
モデルインデックスの詳細な仕様は、https://github.com/huggingface/hub-docs/blob/main/modelcard.md?plain=1 で確認できます。
例:
>>> from huggingface_hub.repocard_data import model_index_to_eval_results
>>> # Define a minimal model index
>>> model_index = [
... {
... "name": "my-cool-model",
... "results": [
... {
... "task": {
... "type": "image-classification"
... },
... "dataset": {
... "type": "beans",
... "name": "Beans"
... },
... "metrics": [
... {
... "type": "accuracy",
... "value": 0.9
... }
... ]
... }
... ]
... }
... ]
>>> model_name, eval_results = model_index_to_eval_results(model_index)
>>> model_name
'my-cool-model'
>>> eval_results[0].task_type
'image-classification'
>>> eval_results[0].metric_type
'accuracy'
eval_results_to_model_index
huggingface_hub.repocard_data.eval_results_to_model_index
< source >( model_name: streval_results: list ) → model_index (list[dict[str, Any]])
指定されたモデル名とhuggingface_hub.EvalResultのリストを受け取り、Hugging Face Hubが期待する形式と互換性のある有効なmodel-indexを返します。
例:
>>> from huggingface_hub.repocard_data import eval_results_to_model_index, EvalResult
>>> # Define minimal eval_results
>>> eval_results = [
... EvalResult(
... task_type="image-classification", # Required
... dataset_type="beans", # Required
... dataset_name="Beans", # Required
... metric_type="accuracy", # Required
... metric_value=0.9, # Required
... )
... ]
>>> eval_results_to_model_index("my-cool-model", eval_results)
[{'name': 'my-cool-model', 'results': [{'task': {'type': 'image-classification'}, 'dataset': {'name': 'Beans', 'type': 'beans'}, 'metrics': [{'type': 'accuracy', 'value': 0.9}]}]}]
metadata_eval_result
huggingface_hub.metadata_eval_result
< source >( model_pretty_name: strtask_pretty_name: strtask_id: strmetrics_pretty_name: strmetrics_id: strmetrics_value: typing.Anydataset_pretty_name: strdataset_id: strmetrics_config: str | None = Nonemetrics_verified: bool = Falsedataset_config: str | None = Nonedataset_split: str | None = Nonedataset_revision: str | None = Nonemetrics_verification_token: str | None = None ) → dict
パラメータ
- model_pretty_name (
str) — 自然言語で表されたモデルの名前。 - task_pretty_name (
str) — 自然言語で表されたタスク名。 - task_id (
str) — 例: automatic-speech-recognition。タスクID。 - metrics_pretty_name (
str) — 自然言語によるメトリックの名前。例: Test WER。 - metrics_id (
str) — 例: wer。https://hf.co/metrics からのメトリック ID。 - metrics_value (
Any) — メトリックの値です。例: 20.0 または “20.0 ± 1.2”。 - dataset_pretty_name (
str) — 自然言語で表されたデータセットの名前。 - dataset_id (
str) — 例: common_voice。https://hf.co/datasets からのデータセット ID。 - metrics_config (
str, 省略可) —load_metric()で使用されるメトリック設定の名前です。 例:load_metric("bleurt", "bleurt-large-512")における bleurt-large-512。 - metrics_verified (
bool、任意、デフォルトはFalse) — メトリクスが Hugging Face の評価サービスからのものであるかどうかを示します。Hugging Face によって自動的に計算されるため、設定しないでください。 - dataset_config (
str, 任意) — 例: fr。load_dataset()で使用されるデータセット設定の名前。 - dataset_split (
str, 省略可) — 例: test。load_dataset()で使用されるデータセットの分割名。 - dataset_revision (
str, 省略可) — 例: 5503434ddd753f426f4b38109466949a1217c2bb。load_dataset()で使用されるデータセットのリビジョン名です。 - metrics_verification_token (
bool, 省略可) — メトリクスが Hugging Face の 評価サービス 由来のものであるかどうかを検証するために使用される JSON Web Token です。
戻り値
dict
モデルをデータセットで評価した結果を含むメタデータ辞書。
モデルをデータセットで評価した結果を含むメタデータ辞書を作成します。
例:
>>> from huggingface_hub import metadata_eval_result
>>> results = metadata_eval_result(
... model_pretty_name="RoBERTa fine-tuned on ReactionGIF",
... task_pretty_name="Text Classification",
... task_id="text-classification",
... metrics_pretty_name="Accuracy",
... metrics_id="accuracy",
... metrics_value=0.2662102282047272,
... dataset_pretty_name="ReactionJPEG",
... dataset_id="julien-c/reactionjpeg",
... dataset_config="default",
... dataset_split="test",
... )
>>> results == {
... 'model-index': [
... {
... 'name': 'RoBERTa fine-tuned on ReactionGIF',
... 'results': [
... {
... 'task': {
... 'type': 'text-classification',
... 'name': 'Text Classification'
... },
... 'dataset': {
... 'name': 'ReactionJPEG',
... 'type': 'julien-c/reactionjpeg',
... 'config': 'default',
... 'split': 'test'
... },
... 'metrics': [
... {
... 'type': 'accuracy',
... 'value': 0.2662102282047272,
... 'name': 'Accuracy',
... 'verified': False
... }
... ]
... }
... ]
... }
... ]
... }
True
metadata_update
huggingface_hub.metadata_update
< source >( repo_id: strmetadata: dictrepo_type: str | None = Noneoverwrite: bool = Falsetoken: str | None = Nonecommit_message: str | None = Nonecommit_description: str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falseparent_commit: str | None = None ) → str
パラメータ
- repo_id (
str) — リポジトリの名前。 - metadata (
dict) — 更新するメタデータを含む辞書です。 - repo_type (
str, 省略可) — データセットまたはスペースに更新する場合は"dataset"または"space"、モデルに更新する場合はNoneまたは"model"を設定します。デフォルトはNoneです。 - overwrite (
bool、省略可能、デフォルトはFalse) —Trueに設定すると、既存のフィールドを上書きできます。それ以外の場合、既存のフィールドの上書きを試みるとエラーが発生します。 - token (
str, 省略可能) — Hugging Face の認証トークンです。 - commit_message (
str, 任意) — 生成されたコミットのサマリー / タイトル / 最初の行です。デフォルトはf"Update metadata with huggingface_hub" - commit_description (
str, 省略可) — 生成されたコミットの説明 - revision (
str, 省略可) — コミット元の git リビジョンです。デフォルトでは、"main"ブランチの先頭です。 - create_pr (
boolean、省略可) — そのコミットを含むrevisionからPull Requestを作成するかどうか。 デフォルトはFalseです。 - parent_commit (
str, 省略可能) — 親コミットの OID / SHA を16進数文字列として指定します。略記法(先頭7文字)もサポートされています。 指定され、create_prがFalseの場合、revisionがparent_commitを指していないとコミットは失敗します。 指定され、create_prがTrueの場合、parent_commitからプルリクエストが作成されます。parent_commitを指定することで、変更をコミットする前にリポジトリが変更されていないことを保証でき、リポジトリが並行して更新 / コミットされる場合に特に有用です。
戻り値
str
カードのメタデータを更新したコミットのURL。
Hugging Face Hub上のリポジトリのREADME.md内のメタデータを更新します。
README.mdファイルがまだ存在しない場合は、メタデータとデフォルトのModelCardまたはDatasetCardテンプレートを含む新しいファイルが作成されます。spaceリポジトリの場合、README.mdファイルなしではSpaceが存在できないため、エラーがスローされます。
例:
>>> from huggingface_hub import metadata_update
>>> metadata = {'model-index': [{'name': 'RoBERTa fine-tuned on ReactionGIF',
... 'results': [{'dataset': {'name': 'ReactionGIF',
... 'type': 'julien-c/reactiongif'},
... 'metrics': [{'name': 'Recall',
... 'type': 'recall',
... 'value': 0.7762102282047272}],
... 'task': {'name': 'Text Classification',
... 'type': 'text-classification'}}]}]}
>>> url = metadata_update("hf-internal-testing/reactiongif-roberta-card", metadata)