The filter axes are the mental model
The /models browse page exposes the same filter set the API does: task (pipeline_tag), library (transformers, diffusers, sentence-transformers, mlx, peft, ...), language (ISO 639-1), license, provider (which inference providers serve this model), size, and format. Sorting axes: trending, downloads, likes, recently updated, recently created. Treating these as the actual taxonomy of the Hub — not the homepage chrome — will save you weeks of "I can't find a model that does X."
Naming is a contract, not a vibe
HF model IDs follow {org}/{base}-{size}-{variant} conventions. A few patterns to internalize:
meta-llama/Llama-3.1-8B— base model. No instruction tuning.meta-llama/Llama-3.1-8B-Instruct— instruction-tuned variant. Use this for chat unless you specifically want raw base behavior.TheBloke/Llama-2-7B-Chat-GGUF— quantized GGUF for llama.cpp / Ollama.{org}/{model}-AWQ/-GPTQ/-bnb-4bit— quantized variants for inference servers.{org}/{model}-Matryoshka/-Distill— specialized derivatives (embedding truncation, distillation).
The naming is informational, not enforced. base_model and base_model_relation in the YAML front-matter (next lesson) are the machine-readable version of the same lineage.