エッジAIラボ
エッジAIラボ
AI TASK TAXONOMY

AIモデル分類の地図 — 「タスク=入力×出力」で理解する

AIモデルはどう分類されているのか。世界最大のハブHugging Faceの分類を“正しく”理解すると、『やりたいこと』から必要なモデル・エッジ実装まで一直線に辿れるようになります。その鍵は『タスク=入力と出力の形』という即物的な見方です。

この記事の要点(30秒で理解)

  • 🧭

    Hugging Faceは「理解/生成/変換」のような抽象的な“働きの方向”ではモデルを分けない。一次の軸は『タスク(=pipeline type)』で、その正体は「入力と出力の“形”(I/Oシェイプ)」です。

  • 🗂️

    そのタスク群を、NLP・Audio・Computer Vision・Multimodal・Tabular…といった『モダリティ』で束ねている。分類は意図的に粗く、細かい区別は別タグで補います。

  • ➡️

    だから「text-to-image」「image-to-text」「any-to-any」という命名がそのまま示す通り、真の軸は(入力モダリティ × 出力モダリティ)のグリッドで、タスク名は各セルの呼び名です。

HFの一次軸 — モダリティ群 × 代表タスク

Hugging Faceはまず、タスク(pipeline type)をモダリティでグループ化します。 『タスク=モデルAPIの入力・出力の“形”』であり、この分類は意図的に粗い粒度です (根拠: HF Hub Docs: Tasks Transformers: Pipelines)。

モダリティ群代表タスク(pipeline type=I/Oの形)
Multimodal(多モーダル)Image-Text-to-Text(VLM対話)、Visual/Document QA、Video-Text-to-Text、Any-to-Any
Computer Vision(画像)Image Classification、Object Detection、Image Segmentation、Depth Estimation、Text-to-Image、Image-to-Image、Image-to-Video、Image-to-3D、Keypoint/Mask、Zero-Shot系
NLP(自然言語)Text Generation、Text/Token Classification、Question Answering、Translation、Summarization、Sentence Similarity、Feature Extraction、Fill-Mask、Zero-Shot Classification
Audio(音声)Automatic Speech Recognition、Text-to-Speech、Text-to-Audio、Audio Classification、Audio-to-Audio、Voice Activity Detection
Tabular(表形式)Tabular Classification、Tabular Regression、Time Series Forecasting
Reinforcement Learning / RoboticsReinforcement Learning、Robotics
OtherGraph Machine Learning ほか

代表タスクは抜粋。網羅リストは huggingface.co/tasks modelsの左サイドバーが正です。

一番の勘所 — タスク名は「入力 × 出力」のセル

text-to-imageimage-to-textany-to-any——命名がそのまま示す通り、真の軸は(入力モダリティ × 出力モダリティ)のグリッド。 タスク名はその各セルの呼び名です。入力側と出力側で異なる2つのモダリティを持つものが“多モーダルタスク”です (根拠: HF Learn)。

入力 \ 出力→ テキスト→ 画像→ 音声→ その他(3D/動画/ラベル/数値)
テキストText Generation / 翻訳 / 要約 / QAText-to-ImageText-to-Speech / Text-to-AudioText-to-Video / Text-to-3D
画像Image-to-Text(キャプション) / VQA / OCRImage-to-Image(超解像・編集)Image Classification / Object Detection / Segmentation / Image-to-3D
音声ASR(音声認識)Audio-to-Audio(ノイズ除去・変換)Audio Classification / VAD
表 / 時系列Tabular Classification・Regression / Time Series Forecasting

「やりたいこと」を “入力 → 出力” の矢印に言い換えると、探すべきタスク名(=検索キーワード)が一意に決まります。 例: 「録音 → 文字」=ASR、「文章 → 画像」=Text-to-Image。

タスクと直交する“横断フィルタ”

タスクが粗いぶん、細かい絞り込みは別軸(ファセット)で行います。タスクと掛け合わせて使うのがコツです。 なおHub全体は Models / Datasets / Spaces に分かれ、 Datasets側は「Domain(Text/Image/Audio/Multimodal)× Task × Language」で切られています。

Libraries

Transformers / Diffusers / PEFT / GGUF / ONNX など、実装・形式での絞り込み。

Languages

対応言語での絞り込み(日本語・英語…)。

Licenses

Apache-2.0 / MIT / 商用可否 などライセンスでの絞り込み。

Datasets

学習に使われたデータセットでの絞り込み。

もう一つの見方 — 抽象的な「5方向」との対応

「AIが概念的に何をするか」を 理解/生成/変換/推論・行動/学習・適応 の5方向で捉える見方もあります。 これはHFの即物的なI/O軸とは“層”が違うので衝突しません。HFのタスクは、矢印を見れば機械的にこの方向へ畳めます。

概念的な方向対応するHFタスク本質
① 理解・認識Image Classification / Object Detection / ASR / QA / Visual QA入力→ラベルや答え
② 生成Text / Image / Video / Audio Generation、Text-to-3D指示→新しい中身
③ 変換・編集Translation / Summarization / Image-to-Image / Audio-to-Audio / 超解像あるモダリティ→同種を変形
④ 推論・行動(HFでは“タスク”でなく Agents / smolagents / Spaces 側)I/Oの形でなく“機能”
⑤ 学習・適応(HFでは“タスク”でなく Libraries: PEFT / TRL / AutoTrain・Jobs 側)I/Oの形でなく“ライフサイクル”

ここが学びどころ: ①②③(理解・生成・変換)はそのままHFの“タスク”(I/Oのセル)になりますが、 ④推論・行動 と ⑤学習・適応 は“タスク”に並びません。前者はAgents、後者はLibraries(PEFT/TRL)やJobs側です。 理由は明快で、それらは「入出力の形」ではなく「機能・ライフサイクル」だから。分類の“層”が違うのです。

タスクが分かれば、エッジ実装まで一直線

I/Oの形(タスク)が決まると、必要なエッジ実装も芋づる式に決まります。たとえばText GenerationならGGUF+llama.cpp/Ollama、Object Detection/SegmentationならONNX RuntimeやMediaPipe、という具合です。 「やりたいこと→タスク→実装」の地図がつながります。

よくある質問

Q. なぜHugging Faceは「理解/生成」みたいに分けないのですか?

HFの目的が『モデルを動かす(推論する)こと』だからです。タスク(=pipeline type)は、そのモデルに“何を入れて何が出るか”という入出力の形(I/Oシェイプ)を表し、これによってどの推論API・どのウィジェットを出すかを機械的に決められます。『概念的に何をするか』より『運用上どう繋ぐか』を優先した、極めて即物的な分類です(根拠: HF Hub Docs)。

Q. タスクとタグは違うものですか?

はい。タスク(pipeline type)は意図的に“粗い”分類で、major use caseを少数のカテゴリーで覆います。それより細かい区別(言語・ライブラリ・ライセンス・データセット等)は、タスクと直交する別のファセット(タグ)で付けられます。だから『画像分類 × 日本語 × Apache-2.0 × ONNX』のように掛け合わせて絞り込めます。

Q. ④推論・行動 と ⑤学習・適応 がタスク表に無いのはなぜ?

それらが『入出力の形』ではないからです。エージェント的な推論・行動はAgents/Spaces側、ファインチューニング等の学習・適応はLibraries(PEFT/TRL/AutoTrain)やJobs側に置かれます。HF自身も学習を推論タスクと別建てにしており、機能・ライフサイクルはタスク軸と層が違う、という設計です。

Q. この分類を知ると、実務で何が変わりますか?

『やりたいこと』を“入力→出力”の矢印に翻訳できれば、探すべきHFタスク名(=検索キーワード)が一意に決まります。例えば『録音から文字を起こしたい』→ Audio→Text = ASR。タスク名が分かれば、必要なエッジ実装(GGUF/llama.cpp、ONNX、MediaPipe等)まで芋づる式に辿れます。

この記事の限界・要検証(自己レビュー)

  • タスク一覧・モダリティ区分はHF公式ドキュメントに基づく抜粋です。最新の網羅リストは huggingface.co/tasks・models の左サイドバーをご確認ください(タスクは随時追加されます)。
  • 「5方向」への畳み込みは理解のための整理であり、HF公式の区分ではありません(整理・経験則)。境界例(例: 超解像は変換か生成か)は文脈で揺れます。
  • I/Oグリッドは代表例のみを記載。実際には同じセルに複数タスク、複数モダリティをまたぐタスク(any-to-any)もあります。

「やりたいこと」を矢印にしてみよう

入力→出力の形が言えれば、探すべきモデルもエッジ実装も決まります。 あとは当サイトのデモで、その実物を触ってみてください。

🎮 デモで実物を試す