Hugging Face, End to EndLesson 2 of 75

Contents

Hugging Face, End to End

Lesson 2 of 75. Sign in to keep your place.

Module 1 · The Hub, read properly

The search box is the worst way in

9 min read

Typing what you want does not work

Go to the Hub and type sentiment analysis into the search box. You get repositories whose names contain those words. You do not get cardiffnlp/twitter-roberta-base-sentiment-latest, which is one of the most used sentiment models on the platform, unless the substring happens to match. Hub search is largely a text match over repository names and card content. It is not a semantic search over what models do.

This catches everyone once. The model you are looking for exists, is downloaded about three million times a month (more than 400 million in all), and does not appear, because it is called distilbert/distilbert-base-uncased-finetuned-sst-2-english and its name never uses the words you typed.

The filters are the real interface. The search box is for when you already know the name.

The filter that does most of the work

Every model repository carries a pipeline_tag in its card metadata: one value from a fixed list: text-classification, automatic-speech-recognition, image-segmentation, text-generation, and around fifty others. That tag is what the Tasks sidebar filters on, and unlike free text it is a controlled vocabulary. Pick the task, and you are looking at models that claim to do that job and nothing else.

The filters compose into the URL, which is worth knowing because it lets you keep a search as a bookmark or paste it to a colleague:

Text
https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&library=transformers&language=hi&sort=downloads

That one reads: speech recognition, loadable with transformers, tagged Hindi, most downloaded first. Four constraints, one line, and it narrows a million repositories to a screenful.

The filters worth reaching for, in the order they usually help:

  • Tasks: the controlled vocabulary above.
  • Libraries: transformers, sentence-transformers, diffusers, gguf, onnx. This is a filter on what will load it, which is often the real question.
  • Languages: tagged by the uploader, so it is a claim rather than a measurement.
  • Licences: apache-2.0, mit, cc-by-nc-4.0, and the bespoke ones. Filter here early if the work is commercial.
  • Other: model size ranges, and the base_model relationships described below.

Sorting: trending is not quality

The sort control offers Trending, Most likes, Most downloads, Recently created and Recently updated. Each answers a different question, and none answers “which is best”.

  • Most downloads is a thirty-day window, and it favours models that libraries load by default. It tells you something is safe and widely exercised. It tells you nothing about whether it suits your language or your text length.
  • Trending weights recent activity, so it surfaces last week’s release. Useful for knowing what happened while you were on holiday, useless for picking a production dependency.
  • Recently updated is the one people forget, and it is how you find out whether a model still has a maintainer.

Finding the variants of a model you already have

This is the trick that saves the most time. A model card declares its parent with a base_model field, and the Hub indexes that relationship in both directions. On any base model’s page there is a line reading something like ”Finetunes: 3,417 · Quantizations: 891 · Adapters: 2,104”, and each is a link.

So when you have found meta-llama/Llama-3.1-8B-Instruct and your laptop cannot run it at full precision, you do not search for “llama 8b small”. You click Quantizations and get every GGUF, AWQ and GPTQ conversion anyone has published, in one filtered list. The same route finds the adapter someone already trained for your language, or the fine-tune already specialised for medical text.

The dataset and Space filters are the same idea

Datasets filter by task, size category, language, licence and format. The size filter is a band (1K<n<10K, 10M<n<100M) and it is populated automatically from the dataset viewer rather than claimed by the uploader, which makes it one of the more trustworthy facets on the site.

Spaces filter by SDK (gradio, streamlit, docker, static) and by hardware. Filtering Spaces to gradio and sorting by likes is the fastest way to find a working reference implementation of almost any task, because a Space that runs is a configuration that works.

Full-text search, when you need it

There is a full-text option that searches inside model cards rather than only names. It is reachable from the search results page and it is useful for phrases that only ever appear in prose: a benchmark name, a paper title, a specific dataset. Searching card text for WER and filtering to speech recognition finds the models whose authors actually reported an error rate.

Its limitation is the same one that afflicts the whole site: a card is a claim written by the uploader. Searching for a phrase finds people who wrote the phrase, not people whose model is good at the thing.

Do this now

Pick a task you care about. Build the URL by hand with three filters (task, library, licence) and sort by downloads. Then open the third result rather than the first, and look at when it was last updated. The gap between the ranking and the maintenance is the thing most people never check.

Every lesson here is open. Your progress is recorded once you pass the Image Generation, in Practice exam.

Check your understanding

A team needs a 4-bit version of a model they have already chosen so it fits on a laptop. What is the reliable way to find one on the Hub?

Pick the one you would defend. Your answer stays private.

Next lesson · 11 minRead the licence before you read the demo

Stuck on something?Ask Arjun, your AI tutor

How to cite: Addaly (2026) ‘The search box is the worst way in’, in Hugging Face, End to End. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/hugging-face/searching-the-hub (Accessed: 13 October 2026).