Hub documentation
タスク
タスク
タスクとは何ですか?
タスク、またはパイプラインタイプは、各モデルの API の「形状」(入力と出力)を記述し、特定のモデルに対してどの Inference API とウィジェットを表示するかを決定するために使用されます。

この分類は比較的粗い粒度です(モデルタグにさらに細粒度のタスク名を追加することは常に可能です)ので、新しいタスクを作成する必要はほとんどありません。新しいタスクへのサポートを追加したい場合は、このドキュメントで必要な手順を説明しています。
概要
Hubに新しいタスクが統合されるということは、以下のことを意味します。
- ユーザーは、特定のタスクのすべてのモデルおよびデータセットを検索できます。
- Inference API はこのタスクをサポートしています。
- ユーザーはウィジェットを介してモデルを直接試すことができます。🏆
すべてのステップを自分で実装する必要はありません。新しいタスクの追加はコミュニティ全体の取り組みであり、複数の人が貢献できます。🧑🤝🧑
プロセスを開始するには、huggingface_hubリポジトリで新しいissueを開いてください。「Adding a new task」テンプレートを使用してください。⚠️コーディングを開始する前に、このドキュメントを確認することをお勧めします。⚠️
最初のステップは、提案するタスク用のモデルをアップロードすることです。新しいタスク用のモデルがHubに存在するようになったら、次のステップはInference APIでそれを有効にすることです。選択できるサポートの種類は3つあります。
- 🤗
transformersモデルの使用 - 🐳 公式にサポートされているライブラリのモデルを使用する
- 🖨️ カスタム推論コード付きのモデルを使用する。この実験的なオプションにはデメリットがあるため、他のアプローチのいずれかを使用することをお勧めします。
最後に、タスクのアイコンやウィジェットなどのUI要素を追加して、Hubでの統合を完成させます。📷
一部のステップは独立しており、順序を問わず実行できます。アイコンを追加するには、Inference APIは必要ありません。つまり、まだ完全な統合が実現されていなくても、ユーザーは特定のタスクのモデルを検索できます。
Hubに新しいタスクを追加する
Hugging Face transformersライブラリを使用する
モデルがtransformersベースのモデルである場合、Inference APIのタスクとpipelineクラスの間には1対1のマッピングが存在します。transformersライブラリからのPRの例をいくつか示します。
パイプラインが送信されデプロイされると、モデルのInference APIを使用できるようになります。
サポートされているライブラリとCommunity Inference APIを使用する
Hubは、Community Inference APIにおいて10以上のオープンソースライブラリをサポートしています。
新しいタスクの追加は比較的簡単で、2つのPRが必要です:
- PR 1: API に新しいタスクを追加する 検証. このコードは、推論の入力が特定のタスクに対して有効であることを確認します。PR の例をいくつか示します。
- PR 2: 新しいタスクをライブラリの Docker イメージに追加します。また、
docker_images/common/app/pipelinesにテンプレートを追加して、他のライブラリへのタスク統合を容易にしてください。PR の例を以下に示します:
クイックプロトタイプのためにコミュニティ推論APIを追加
私のモデルはどのライブラリにもサポートされていません。もう終わりですか?😱
これらのユースケースには、Hugging Face Spacesの使用を推奨します。
UI要素
Hubでは、ユーザーが特定のタスクでモデルをフィルタリングできます。これを行うには、タスクを複数の場所に追加する必要があります。また、タスク用のアイコンも選択できます!
Types.tsにタスクタイプを追加します。
huggingface.js/packages/tasks/src/pipelines.tsでは、いくつかの作業が必要です。
PIPELINE_DATAに型を追加します。パイプラインの型は、NLP、Audio、Computer Vision、その他といった異なるカテゴリに分類されています。- huggingface.js/packages/tasks/src/tasks/index.ts 内の軽微な変更も記入する必要があります。
- アイコンを選択
lib/Icons ディレクトリにアイコンを追加できます。通常は、https://icones.js.org/collection/carbon からカーボンアイコンを選択します。また、PipelineIcon にもアイコンを追加してください。
ウィジェット
タスクが本番環境で稼働し始めたら、ユーザーがブラウザ上でモデルを直接操作できる仕組みを実装することほどエキサイティングなことはありません。🤩 すべてのウィジェットはこちらで確認できます。
ウィジェットへの貢献にご興味がある場合は、すべてのウィジェットの実装を確認できます。
Update on GitHub