All skills
huggingface avatar

/huggingface-best

@cfcd0a8 official
by Hugging Facehuggingface/skills11k stars
753

Use when the user asks about finding the best, top, or recommended model for a task, wants to know what AI model to use, or wants to compare models by benchmark scores. Triggers on: "best model for X", "what model should I use for", "top models for [task]", "which model runs on my laptop/machine/device", "recommend a model for", "what LLM should I use for", "compare models for", "what's state of the art for", or any question about choosing an AI model for a specific use case. Always use this skill when the user wants model recommendations or comparisons, even if they don't explicitly mention HuggingFace or benchmarks.

Use this Skill: https://skilld.dev/gh/huggingface/skills/huggingface-best

This session only. Nothing lands on disk.

SKILL.md

β‰ˆ161 tokens always: the name and description. β‰ˆ1.3k when used: this file.

HuggingFace Best Model Finder

Finds the best models for a task by querying official HF benchmark leaderboards, enriching results with model size data, filtering for what fits on the user's device, and returning a comparison table with benchmark scores.


Step 1: Parse the request

Extract from the user's message:

  • Task: what they want the model to do (coding, math/reasoning, chat, OCR, RAG/retrieval, speech recognition, image classification, multimodal, agents, etc.)
  • Device: hardware constraints (MacBook M-series 8/16/32/64GB unified memory, RTX GPU with VRAM amount, CPU-only, cloud/no constraint, etc.)

If device is not mentioned, skip filtering entirely and return the highest-performing models regardless of size. If the task is genuinely ambiguous, ask one clarifying question.

Device β†’ max parameter budget

When a device is specified, extract its available memory (unified RAM for Apple Silicon, VRAM for discrete GPUs) and apply:

  • fp16 max params (B) β‰ˆ memory (GB) Γ· 2
  • Q4 max params (B) β‰ˆ memory (GB) Γ— 2

Examples: 16GB β†’ 8B fp16 / 32B Q4 β€” 24GB VRAM β†’ 12B fp16 / 48B Q4 β€” 8GB β†’ 4B fp16 / 16B Q4


Step 2: Find relevant benchmark datasets

Fetch the full list of official HF benchmarks:

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

Read the returned list and select the datasets most relevant to the user's task β€” match on dataset id, tags, and description. Use your judgment; don't limit yourself to 2-3. Aim for comprehensive coverage: if 5 benchmarks clearly cover the task, use all 5.


Step 3: Fetch top models from leaderboards

For each selected benchmark dataset:

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

Collect model IDs and scores across all benchmarks. If a leaderboard returns an error (404, 401, etc.), skip it and note it in the output.


Step 4: Enrich with model metadata

For the top 10-15 candidate model IDs, get model infos.

# 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}'

Extract from each response:

  • Parameters: safetensors.total β†’ convert to B (e.g., 7_241_748_480 β†’ "7.2B")
  • License: from model card tags (look for license:apache-2.0, license:mit, etc.)
  • If safetensors is absent, parse size from the model name (look for "7b", "8b", "13b", "70b", "72b", etc.)

Step 5: Filter and rank

If a device was specified:

  1. Remove models exceeding the fp16 parameter budget for the device
  2. Flag models that fit only with Q4 quantization (multiply budget by ~4 for Q4 capacity)
  3. If a highly-ranked model is slightly over budget, keep it with a "needs Q4" note β€” don't silently drop it

If no device was mentioned: skip all size filtering β€” just rank by benchmark score.

Then: rank by benchmark score (descending), keep top 5-8 models.

Include proprietary models (GPT-4, Claude, Gemini) if they appear on leaderboards, but flag them as "API only / not self-hostable". If the user explicitly asked for local/open models only, exclude them.


Step 6: Output

Comparison table

| # | 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 |
  • Link model names to https://huggingface.co/<model_id>
  • Use β€” for benchmarks where the model wasn't evaluated
  • Star the top recommended pick with ⭐
  • "On device" values: Yes (fp16), Q4 only, Too large, API only

Follow-up

After presenting the table, ask the user: "Would you like to run [top recommended model]?"

If they say yes, ask whether they'd prefer to:


Error handling

  • Leaderboard not found: skip, note "leaderboard unavailable" in output
  • Model missing from hub_repo_details: fall back to parsing size from model name
  • No benchmarks found for task: use the curated fallback table above, or try hub_repo_search with filters=["<task>"] sorted by trendingScore
  • All leaderboards fail: fall back to hub_repo_search for popular models tagged with the task, note that results are by popularity rather than benchmark score

Source: SKILL.md on GitHub

1 warning16d3 checks Β· Risk SAFE
  • Gen Agent Trust Hub16d

    This skill includes some security considerations such as accessing local authentication tokens and processing external model metadata. While these warrant review, they are used within the skill's intended functionality. See detailed analysis for context.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM Β· 1 issue

Signed by skilld at cfcd0a8. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last week.

Activeupdated 2 months ago
  • huggingface
  • model-selection
  • benchmarks
  • llm
  • inference
  • device-compatibility
  • leaderboards
  • quantization

README badge

README badge for huggingface/skills/huggingface-best

Queries HuggingFace benchmark leaderboards to find top-ranked models for a task, filters by device constraints (memory, VRAM), and returns a comparison table with parameter counts and benchmark scores. Use this when a user asks for model recommendations, comparisons, or device-appropriate suggestions for coding, reasoning, chat, image classification, or other AI tasks.

Generated from the current SKILL.md.

Does this skill work with proprietary models like GPT-4 or Claude?
Yes. The skill includes proprietary models if they appear on HuggingFace leaderboards, but flags them as API-only and not self-hostable.
How does the skill determine if a model fits on my device?
It uses memory constraints to calculate parameter budgets: fp16 max params β‰ˆ memory (GB) Γ· 2, and Q4 max params β‰ˆ memory (GB) Γ— 2. Models exceeding the fp16 budget are flagged as Q4-only or too large.
What happens if no leaderboard data is available for the task?
The skill falls back to searching HuggingFace by task tags and trending score, then notes that results are ranked by popularity rather than benchmark scores.
Can I run the recommended model locally after getting a recommendation?
Yes. After presenting the comparison table, the skill asks if you want to run the top model and offers setup instructions for local deployment or HuggingFace Jobs, depending on your preference.

Generated from the current SKILL.md. These answers refresh after source changes.