huggingface-best について
huggingface-bestは、タスクに合うモデルを探すためのスキルです。Hugging Faceの公式ベンチマークとデバイスのメモリ制約を使って候補を比較し、ローカル実行やHF Jobsの選択肢も示します。
主な機能
- 01公式ベンチマークの検索
- 02デバイスメモリによる絞り込み
- 03パラメーター数とライセンスの補足
- 04ベンチマークスコアによる順位付け
- 05実行方法の次の選択肢の提示
活用シーン
- 01コーディング向けモデルの選定
- 02利用可能なVRAMに合うモデルの抽出
- 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:フィルタリングして順位付けする
デバイスが指定されている場合:
- デバイスの fp16 パラメーター予算を超えるモデルを除外します
- Q4 量子化でのみ実行できるモデルにフラグを付けます(Q4 の容量は予算の約 4 倍として計算します)
- 順位が高いモデルが予算をわずかに超える場合は、「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
フォローアップ
表を提示した後、ユーザーに「[最もおすすめのモデル] を実行しますか?」と尋ねます。
はいと答えた場合は、次のどちらを希望するか尋ねます。
- ローカルで実行 — デバイスがまだ分からない場合はデバイスについて尋ね、適切なセットアップ手順を案内します
- HF Jobs で実行 — HF Jobs ガイドを案内します:https://huggingface.co/docs/huggingface_hub/en/guides/jobs
エラー処理
- リーダーボードが見つからない:スキップし、出力に「リーダーボードを利用できません」と記載します
- hub_repo_details にモデルがない:モデル名からサイズを解析する方法にフォールバックします
- タスクのベンチマークが見つからない:上記の厳選されたフォールバック表を使用するか、
filters=["<task>"]を指定してhub_repo_searchを実行し、trendingScoreで並べ替えます - すべてのリーダーボードが失敗する:タスクのタグが付いた人気モデルを対象に
hub_repo_searchにフォールバックし、ベンチマークスコアではなく人気度に基づく結果であることを記載します