mcpField
H
huggingface-best

huggingface-best

github.com/huggingface開発11.2k1.8k 回インストール5 日前に更新
リポジトリ

huggingface-best について

huggingface-bestは、タスクに合うモデルを探すためのスキルです。Hugging Faceの公式ベンチマークとデバイスのメモリ制約を使って候補を比較し、ローカル実行やHF Jobsの選択肢も示します。

主な機能

  1. 01公式ベンチマークの検索
  2. 02デバイスメモリによる絞り込み
  3. 03パラメーター数とライセンスの補足
  4. 04ベンチマークスコアによる順位付け
  5. 05実行方法の次の選択肢の提示

活用シーン

  1. 01コーディング向けモデルの選定
  2. 02利用可能なVRAMに合うモデルの抽出
  3. 03タスク別ベンチマーク結果の比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huggingface/skills --skill huggingface-best

インストール後、Claude Code で/huggingface-bestを入力して読み込まれたか確認します。

詳細

HuggingFace 最適モデル検索

公式 HF ベンチマークのリーダーボードを照会してタスクに最適なモデルを見つけ、モデルサイズのデータで結果を補い、ユーザーのデバイスで実行できるものに絞り込んで、ベンチマークスコアを含む比較表を返します。


ステップ 1:リクエストを解析する

ユーザーのメッセージから以下を抽出します。

  • タスク:モデルに実行させたいこと(コーディング、数学/推論、チャット、OCR、RAG/検索、音声認識、画像分類、マルチモーダル、エージェントなど)
  • デバイス:ハードウェアの制約(MacBook Mシリーズのユニファイドメモリ 8/16/32/64GB、VRAM 容量付き RTX GPU、CPU のみ、クラウド/制約なしなど)

デバイスについて言及がない場合は、フィルタリングを完全に省略し、サイズに関係なく性能の高いモデルを返します。タスクが本当に曖昧な場合は、確認の質問を 1 つだけします。

デバイス → 最大パラメーター数

デバイスが指定されている場合は、利用可能なメモリ(Apple Silicon のユニファイド RAM、ディスクリート GPU の VRAM)を特定して、次を適用します。

  • fp16 の最大パラメーター数(B) ≈ メモリ(GB)÷ 2
  • Q4 の最大パラメーター数(B) ≈ メモリ(GB)× 2

例:16GB → fp16 で 8B/Q4 で 32B — VRAM 24GB → fp16 で 12B/Q4 で 48B — 8GB → fp16 で 4B/Q4 で 16B


ステップ 2:関連するベンチマークデータセットを見つける

公式 HF ベンチマークの一覧をすべて取得します。

curl -s -H "Authorization: Bearer $(cat ~/.cache/huggingface/token)" \
  "https://huggingface.co/api/datasets?filter=benchmark:official&limit=500" | jq '[.[] | {id, tags, description}]'

返された一覧を読み、ユーザーのタスクに最も関連するデータセットを選びます。データセット ID、タグ、説明を基準に照合します。判断力を活用し、2~3 件に制限しないでください。網羅的なカバレッジを目指します。タスクを明確にカバーするベンチマークが 5 件ある場合は、5 件すべてを使用します。


ステップ 3:リーダーボードから上位モデルを取得する

選択したベンチマークデータセットごとに、次を実行します。

curl -s -H "Authorization: Bearer $(cat ~/.cache/huggingface/token)" \
  "https://huggingface.co/api/datasets/<namespace>/<repo>/leaderboard" | jq '[.[:15] | .[] | {rank, modelId, value, verified}]'

すべてのベンチマークからモデル ID とスコアを収集します。リーダーボードでエラー(404、401 など)が返された場合は、そのリーダーボードをスキップし、出力に記載します。


ステップ 4:モデルのメタデータを補う

候補となる上位 10~15 件のモデル ID について、モデル情報を取得します。

# REST API
curl -s -H "Authorization: Bearer $(cat ~/.cache/huggingface/token)" \
  "https://huggingface.co/api/models/org/model1" | jq '{safetensors, tags, cardData}'

# CLI (hf-cli)
hf models info org/model1 --json | jq '{safetensors, tags, cardData}'

各応答から以下を抽出します。

  • パラメーター数:safetensors.total → B 単位に変換します(例:7_241_748_480 → "7.2B")
  • ライセンス:モデルカードのタグから取得します(license:apache-2.0、license:mit などを確認します)
  • safetensors がない場合は、モデル名からサイズを解析します("7b"、"8b"、"13b"、"70b"、"72b" などを確認します)

ステップ 5:フィルタリングして順位付けする

デバイスが指定されている場合:

  1. デバイスの fp16 パラメーター予算を超えるモデルを除外します
  2. Q4 量子化でのみ実行できるモデルにフラグを付けます(Q4 の容量は予算の約 4 倍として計算します)
  3. 順位が高いモデルが予算をわずかに超える場合は、「Q4 が必要」という注記を付けて残します。黙って除外しないでください

**デバイスについて言及がない場合:**サイズによるフィルタリングをすべて省略し、ベンチマークスコアの順に順位付けします。

次に、ベンチマークスコアの降順で順位付けし、上位 5~8 件のモデルを残します。

リーダーボードに掲載されている場合は、プロプライエタリモデル(GPT-4、Claude、Gemini)も含めます。ただし、「API のみ/セルフホスト不可」と明記します。ユーザーがローカルモデルまたはオープンモデルのみを明示的に希望している場合は、除外します。


ステップ 6:出力

比較表
| # | Model | Params | [Benchmark 1] | [Benchmark 2] | License | On device |
|---|-------|--------|--------------|--------------|---------|-----------|
| ⭐1 | [org/name](https://huggingface.co/org/name) | 7B | 85.2% | — | Apache 2.0 | Yes (fp16) |
| 2 | [org/name](https://huggingface.co/org/name) | 13B | 83.1% | 71.5% | MIT | Q4 only |
| 3 | [org/name](https://huggingface.co/org/name) | 70B | 90.0% | 81.0% | Llama | Too large |
  • モデル名を https://huggingface.co/<model_id> にリンクします
  • モデルが評価されていないベンチマークには — を使用します
  • 最もおすすめのモデルには ⭐ を付けます
  • 「デバイス上」の値:Yes (fp16)、Q4 only、Too large、API only
フォローアップ

表を提示した後、ユーザーに「[最もおすすめのモデル] を実行しますか?」と尋ねます。

はいと答えた場合は、次のどちらを希望するか尋ねます。


エラー処理

  • リーダーボードが見つからない:スキップし、出力に「リーダーボードを利用できません」と記載します
  • hub_repo_details にモデルがない:モデル名からサイズを解析する方法にフォールバックします
  • タスクのベンチマークが見つからない:上記の厳選されたフォールバック表を使用するか、filters=["<task>"] を指定して hub_repo_search を実行し、trendingScore で並べ替えます
  • すべてのリーダーボードが失敗する:タスクのタグが付いた人気モデルを対象に hub_repo_search にフォールバックし、ベンチマークスコアではなく人気度に基づく結果であることを記載します

コメント