{"course":{"slug":"hugging-face","title":"Hugging Face, End to End","url":"https://addaly.com/learn/hugging-face","level":"intermediate","track":"create"},"lesson":{"slug":"searching-the-hub","title":"The search box is the worst way in","url":"https://addaly.com/learn/hugging-face/searching-the-hub","position":2,"of":75,"minutes":9,"answer":"Hub search matches repository names and card text rather than meaning, so the filter sidebar (task tag, library, licence, and the base-model links to fine-tunes and quantizations) is the real interface.","keyIdea":"Hub search matches repository names and card text rather than meaning, so the filter sidebar (task tag, library, licence, and the base-model links to fine-tunes and quantizations) is the real interface, and the sort order answers popularity rather than quality."},"body":{"format":"markdown","text":"## Typing what you want does not work\n\nGo 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.\n\nThis 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.\n\nThe filters are the real interface. The search box is for when you already know the name.\n\n## The filter that does most of the work\n\nEvery 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.\n\nThe 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:\n\n```\nhttps://huggingface.co/models?pipeline_tag=automatic-speech-recognition&library=transformers&language=hi&sort=downloads\n```\n\nThat 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.\n\nThe filters worth reaching for, in the order they usually help:\n\n- **Tasks**: the controlled vocabulary above.\n- **Libraries**: `transformers`, `sentence-transformers`, `diffusers`, `gguf`, `onnx`. This is a filter on *what will load it*, which is often the real question.\n- **Languages**: tagged by the uploader, so it is a claim rather than a measurement.\n- **Licences**: `apache-2.0`, `mit`, `cc-by-nc-4.0`, and the bespoke ones. Filter here early if the work is commercial.\n- **Other**: model size ranges, and the `base_model` relationships described below.\n\n## Sorting: trending is not quality\n\nThe sort control offers Trending, Most likes, Most downloads, Recently created and Recently updated. Each answers a different question, and none answers \"which is best\".\n\n- **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.\n- **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.\n- **Recently updated** is the one people forget, and it is how you find out whether a model still has a maintainer.\n\n## Finding the variants of a model you already have\n\nThis 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.\n\nSo 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.\n\n## The dataset and Space filters are the same idea\n\nDatasets 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.\n\nSpaces 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.\n\n## Full-text search, when you need it\n\nThere 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.\n\nIts 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.\n\n## Do this now\n\nPick 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."},"check":{"question":"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?","options":[{"text":"Search for the model name plus a term like `4bit` or `quantized`, since conversions almost always put that in the repository name.","correct":false,"tempting":"Relies on a naming habit rather than indexed metadata; many conversions use different suffixes, and name search will silently miss them."},{"text":"Open the base model's page and follow its Quantizations link, which indexes every published conversion.","correct":true},{"text":"Filter the models list to the `gguf` library and sort by downloads, then pick the highest-ranked result.","correct":false,"tempting":"Finds popular quantized models in general, not conversions of the specific model already chosen, and excludes AWQ and GPTQ formats entirely."},{"text":"Use full-text card search for the model name, because conversions cite their parent in the card prose.","correct":false,"tempting":"Depends on the uploader writing prose rather than on the structured base_model field the Hub actually indexes."}]},"prev":{"slug":"the-hub-is-git","title":"The Hub is git, and that explains everything else","url":"https://addaly.com/learn/hugging-face/the-hub-is-git"},"next":{"slug":"reading-a-model-card","title":"Read the licence before you read the demo","url":"https://addaly.com/learn/hugging-face/reading-a-model-card"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"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).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"The search box is the worst way in","courseTitle":"Hugging Face, End to End","module":{"index":1,"slug":"the-hub-as-a-repository-host","title":"The Hub, read properly"},"answer":null,"keyIdea":"Hub search matches repository names and card text rather than meaning, so the filter sidebar (task tag, library, licence, and the base-model links to fine-tunes and quantizations) is the real interface, and the sort order answers popularity rather than quality.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"typing-what-you-want-does-not-work","runs":[{"text":"Typing what you want does not work"}]},{"t":"p","runs":[{"text":"Go to the Hub and type "},{"text":"sentiment analysis","code":true},{"text":" into the search box. You get repositories whose "},{"text":"names","i":true},{"text":" contain those words. You do not get "},{"text":"cardiffnlp/twitter-roberta-base-sentiment-latest","code":true},{"text":", 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."}]},{"t":"p","runs":[{"text":"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 "},{"text":"distilbert/distilbert-base-uncased-finetuned-sst-2-english","code":true},{"text":" and its name never uses the words you typed."}]},{"t":"p","runs":[{"text":"The filters are the real interface. The search box is for when you already know the name."}]},{"t":"h2","id":"the-filter-that-does-most-of-the-work","runs":[{"text":"The filter that does most of the work"}]},{"t":"p","runs":[{"text":"Every model repository carries a "},{"text":"pipeline_tag","code":true},{"text":" in its card metadata: one value from a fixed list: "},{"text":"text-classification","code":true},{"text":", "},{"text":"automatic-speech-recognition","code":true},{"text":", "},{"text":"image-segmentation","code":true},{"text":", "},{"text":"text-generation","code":true},{"text":", and around fifty others. That tag is what the "},{"text":"Tasks","b":true},{"text":" 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."}]},{"t":"p","runs":[{"text":"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:"}]},{"t":"code","lang":"","label":"Text","text":"https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&library=transformers&language=hi&sort=downloads"},{"t":"p","runs":[{"text":"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."}]},{"t":"p","runs":[{"text":"The filters worth reaching for, in the order they usually help:"}]},{"t":"ul","items":[[{"text":"Tasks","b":true},{"text":": the controlled vocabulary above."}],[{"text":"Libraries","b":true},{"text":": "},{"text":"transformers","code":true},{"text":", "},{"text":"sentence-transformers","code":true},{"text":", "},{"text":"diffusers","code":true},{"text":", "},{"text":"gguf","code":true},{"text":", "},{"text":"onnx","code":true},{"text":". This is a filter on "},{"text":"what will load it","i":true},{"text":", which is often the real question."}],[{"text":"Languages","b":true},{"text":": tagged by the uploader, so it is a claim rather than a measurement."}],[{"text":"Licences","b":true},{"text":": "},{"text":"apache-2.0","code":true},{"text":", "},{"text":"mit","code":true},{"text":", "},{"text":"cc-by-nc-4.0","code":true},{"text":", and the bespoke ones. Filter here early if the work is commercial."}],[{"text":"Other","b":true},{"text":": model size ranges, and the "},{"text":"base_model","code":true},{"text":" relationships described below."}]]},{"t":"h2","id":"sorting-trending-is-not-quality","runs":[{"text":"Sorting: trending is not quality"}]},{"t":"p","runs":[{"text":"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”."}]},{"t":"ul","items":[[{"text":"Most downloads","b":true},{"text":" 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."}],[{"text":"Trending","b":true},{"text":" 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."}],[{"text":"Recently updated","b":true},{"text":" is the one people forget, and it is how you find out whether a model still has a maintainer."}]]},{"t":"h2","id":"finding-the-variants-of-a-model-you-already-have","runs":[{"text":"Finding the variants of a model you already have"}]},{"t":"p","runs":[{"text":"This is the trick that saves the most time. A model card declares its parent with a "},{"text":"base_model","code":true},{"text":" field, and the Hub indexes that relationship in both directions. On any base model’s page there is a line reading something like "},{"text":"”Finetunes: 3,417 · Quantizations: 891 · Adapters: 2,104”","i":true},{"text":", and each is a link."}]},{"t":"p","runs":[{"text":"So when you have found "},{"text":"meta-llama/Llama-3.1-8B-Instruct","code":true},{"text":" and your laptop cannot run it at full precision, you do not search for “llama 8b small”. You click "},{"text":"Quantizations","b":true},{"text":" 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."}]},{"t":"h2","id":"the-dataset-and-space-filters-are-the-same-idea","runs":[{"text":"The dataset and Space filters are the same idea"}]},{"t":"p","runs":[{"text":"Datasets filter by task, size category, language, licence and format. The size filter is a band ("},{"text":"1K<n<10K","code":true},{"text":", "},{"text":"10M<n<100M","code":true},{"text":") 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."}]},{"t":"p","runs":[{"text":"Spaces filter by SDK ("},{"text":"gradio","code":true},{"text":", "},{"text":"streamlit","code":true},{"text":", "},{"text":"docker","code":true},{"text":", "},{"text":"static","code":true},{"text":") and by hardware. Filtering Spaces to "},{"text":"gradio","code":true},{"text":" 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."}]},{"t":"h2","id":"full-text-search-when-you-need-it","runs":[{"text":"Full-text search, when you need it"}]},{"t":"p","runs":[{"text":"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 "},{"text":"WER","code":true},{"text":" and filtering to speech recognition finds the models whose authors actually reported an error rate."}]},{"t":"p","runs":[{"text":"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."}]},{"t":"h2","id":"do-this-now","runs":[{"text":"Do this now"}],"role":"try"},{"t":"p","runs":[{"text":"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."}]}],"check":{"question":[{"text":"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?"}],"options":[{"text":[{"text":"Search for the model name plus a term like "},{"text":"4bit","code":true},{"text":" or "},{"text":"quantized","code":true},{"text":", since conversions almost always put that in the repository name."}],"correct":false,"tempting":[{"text":"Relies on a naming habit rather than indexed metadata; many conversions use different suffixes, and name search will silently miss them."}]},{"text":[{"text":"Open the base model’s page and follow its Quantizations link, which indexes every published conversion."}],"correct":true,"tempting":null},{"text":[{"text":"Filter the models list to the "},{"text":"gguf","code":true},{"text":" library and sort by downloads, then pick the highest-ranked result."}],"correct":false,"tempting":[{"text":"Finds popular quantized models in general, not conversions of the specific model already chosen, and excludes AWQ and GPTQ formats entirely."}]},{"text":[{"text":"Use full-text card search for the model name, because conversions cite their parent in the card prose."}],"correct":false,"tempting":[{"text":"Depends on the uploader writing prose rather than on the structured base_model field the Hub actually indexes."}]}],"order":[2,3,1,0],"why":null},"prev":{"slug":"the-hub-is-git","title":"The Hub is git, and that explains everything else","minutes":10},"next":{"slug":"reading-a-model-card","title":"Read the licence before you read the demo","minutes":11}}}