Skip to content

Releases: Andyyyy64/whichllm

v0.5.16

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 14 Aug 05:48
861f841

v0.5.16

sorry this release took longer than it should have

  • Escape Hugging Face model IDs, GGUF filenames, and quantization types in generated run and snippet scripts
  • Keep synthetic GGUF recommendations tied to direct quantizations of the selected checkpoint
  • Reject fine-tunes, merges, conflicting lineage, and artifacts without explicit provenance
  • Split benchmark fetching, caching, indexing, lineage, and lookup into focused modules
  • Lock the development tools used locally and in required CI checks

Security

v0.5.16 fixes CVE-2026-58474 (GHSA-hfpc-7mr4-p297), a code injection vulnerability affecting versions before 0.5.16.

A malicious Hugging Face repository could use a crafted GGUF filename to alter Python generated by whichllm run or whichllm snippet. Exploitation requires the user to run the affected command or execute the generated snippet.

Users on an earlier version should upgrade to v0.5.16 or later:

python -m pip install --upgrade "whichllm>=0.5.16"

Thanks @RaghavRD for the benchmark refactor and @hannibal-lee for the generated-script escaping fix.

v0.5.15

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 03 Jul 14:56

v0.5.15

  • Resolves ranked GGUF recommendations to the actual downloadable artifact repo and filename when the ranked base model and runnable GGUF live in different Hugging Face repos.
  • Retunes AA index normalization and refreshes the fallback snapshot for the reworked Artificial Analysis scale.
  • Validates ranking flags such as --top, --min-speed, and --min-params before ranking.
  • Splits the Hugging Face fetcher into focused modules while keeping the existing whichllm.models.fetcher import surface.

v0.5.14

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 29 Jun 04:32

Added

  • Sliding-window attention metadata is now used in model fetching and KV cache estimation, improving VRAM estimates for models that use SWA. (#124)
  • Intel Arc Pro B70 / Battlemage G31 now has curated detection and simulation defaults, including PCI device 0xe223, 32 GB VRAM, and 608 GB/s bandwidth. (#93, #136)

Fixed

  • Model and benchmark metadata fetches now request gzip, deflate instead of brotli, avoiding broken br responses from mirrors or intermediate servers. (#128, #136)

v0.5.13

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 25 Jun 04:57

Added

  • HF_ENDPOINT support for Hugging Face model metadata fetches, so users behind a mirror can point whichllm at a compatible Hub endpoint. (#128, #131)
  • Manual detected-GPU overrides for usable VRAM and bandwidth, useful for iGPU and unified-memory systems where automatic detection is too conservative. (#132, #133)
  • README guidance for safer first-run flags when users want full-GPU, usable-speed recommendations with extra VRAM headroom.

Fixed

  • Search terms such as 7B, 0.5B, and 500M now match model parameter size instead of plain substrings, so qwen 7b no longer returns 1.7B or 30B-A3B by accident. (#107, #126)
  • GGUF sizing now treats FP16 and ternary TQ1_0 / TQ2_0 quant types correctly, avoiding underestimates for those files. (#125)

v0.5.12

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 18 Jun 12:58

Added

  • Markdown ranking output with --markdown / -m for pasteable GitHub issues, READMEs, Slack, and Discord.
  • Runtime-first ranking tables now show memory, estimated speed, fit type, and published date by default.
  • --speed any|usable|fast and the shorter --fit gpu alias for full-GPU recommendations.
  • --vram-headroom and --ram-budget for safer fit planning when runtimes or background processes need memory.

Changed

  • Speed colors now reflect practical generation speed: red under 4 tok/s, yellow from 4-10, green from 10-30, and bright green at 30+ tok/s.
  • --details restores the download-focused metadata table when needed.

Fixed

  • Invalid --vram-headroom values are now rejected even in CPU-only runs.

v0.5.11

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 18 Jun 06:01
8801ddc

Added

  • Multi-GPU simulation for repeated --gpu flags, comma-separated GPU specs, and count shorthand like 2x RTX 4090.
  • python -m whichllm now runs the CLI.
  • --gpu-only and --fit full-gpu filter recommendations to models that fit fully in GPU VRAM.
  • T5 lineage support for version-aware benchmark handling.

Fixed

  • Cached model and benchmark data are read as UTF-8.
  • GTX 1650 simulation distinguishes GDDR5 and GDDR6 variants by memory clock.
  • RAM reserve logic now uses a bounded reserve formula instead of a fixed 80% usable-RAM cap.

v0.5.10

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 11 Jun 07:52
9864db4

Fixed

  • Strong partial-offload candidates no longer get buried under weaker full-GPU models because the final sort no longer counts GPU fit twice.
  • Light partial offload is penalized less aggressively, while heavy dense offload still gets a strong discount.
  • MoE partial-offload scoring now gives a milder penalty when the active working set can plausibly stay on GPU.

v0.5.9

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 10 Jun 05:49

Highlights

  • GPU bandwidth detection now falls back to the bundled TechPowerUp database (2,824 GPUs) when a card is missing from the curated catalog. Uncatalogued cards no longer show BW: N/A with 0.0 tok/s estimates and oversized recommendations, and a laptop card can never inherit its desktop sibling's bandwidth. (#74, #98)
  • Fixed AMD discrete GPU detection on Linux, including RX 6750 XT and the compound lspci name path. (#61)
  • Artificial Analysis Intelligence Index is fetched live again after the site's App Router migration. Live scores overlay the curated snapshot, so coverage can only grow. (#87)
  • Added MXFP4 and NVFP4 quantization support. These repos were previously labeled FP16, overestimating VRAM by about 3.5x. (#27)
  • Added Apple M5-family simulation entries and Kepler-era Quadro catalog coverage.
  • Community GGUF repos without base_model metadata now match official benchmark scores by name.

QA

  • CI lint: passed
  • CI tests: Python 3.11, 3.12, and 3.13 passed
  • Local: 329 tests passed; sdist and wheel built successfully
  • Real hardware smoke test on Apple M2

v0.5.8

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 05 Jun 06:45
026ab36

Highlights

  • Fixed the A3000 Laptop 6GB ranking regression.
  • Added retry/backoff for transient Hugging Face and benchmark fetch failures.
  • Improved Error fetching models output when network exceptions have no message.
  • Added GPU catalog coverage for A3000 Laptop, RTX 3050, RTX 5060, RTX 5070 Ti, RX 9070, and RX 9070 XT.
  • Added context-length shorthand and benchmark source/confidence metadata in JSON output.

QA

  • CI lint: passed
  • CI tests: Python 3.11, 3.12, and 3.13 passed
  • Local build: sdist and wheel built successfully

v0.5.7

Choose a tag to compare

@Andyyyy64 Andyyyy64 released this 19 May 19:52

What's Changed

  • Detect DGX Spark / NVIDIA GB10 as a shared-memory NVIDIA GPU when NVIDIA reports memory.total as unavailable.
  • Fix whichllm run crashes for large Transformers models by providing an offload_folder.
  • Respect XDG_CACHE_HOME for cache paths, while ignoring relative values per the XDG spec.
  • Treat Apple Silicon as shared memory in fit detection.
  • Inline LiveBench fallback data and speed up benchmark score fetching.

Validation

  • ruff format --check .
  • ruff check .
  • pytest -q -s
  • python -m build
  • twine check dist/*