Skip to content

PEFT, quantization and memory methods: bitsandbytes platform scope: sys_platform=='linux' marker, CUDA-only 4-bit gate, 'bitsandbytes does not support Metal/MPS' docs (incorrect-claim) (TECH-T03-007) #488

Open

Description

@cemililik

Wave 2 · theme D2-7: Next-release technology updates · highest severity Low · 3 finding(s) · effort not estimated

Summary

The documented reason has been false since 2026-07-25. Behaviour still matches the docs, because ForgeLM's own marker and CUDA gate block macOS/Windows/XPU/CPU 4-bit; ROCm passes the gate. This is a ForgeLM scope decision presented as an upstream limitation.

Primary finding

TECH-T03-007 — PEFT, quantization and memory methods: bitsandbytes platform scope: sys_platform=='linux' marker, CUDA-only 4-bit gate, 'bitsandbytes does not support Metal/MPS' docs (incorrect-claim)

severity Next release

Item. bitsandbytes platform scope: sys_platform=='linux' marker, CUDA-only 4-bit gate, 'bitsandbytes does not support Metal/MPS' docs · verdict: incorrect-claim · urgency: Next release

State in ForgeLM. The [qlora] extra is Linux-only (pyproject.toml:74). The code applies 4-bit only when torch.cuda.is_available() (forgelm/model.py:440, :602); otherwise it warns and loads in full precision (model.py:451-461). Docs give an upstream reason: installation.md:141, getting-started.md:132 and usermanual operations/troubleshooting.md:18 (plus the three TR mirrors) say bitsandbytes does not support Metal/MPS; guides/troubleshooting.md:11 says bitsandbytes (QLoRA) only works on Linux.

State of the ecosystem on 2026-10-01. bitsandbytes 0.50.2 ships wheels for macosx_14_0_arm64, manylinux_2_24 x86_64/aarch64, win_amd64 and win_arm64. The README matrix marks QLoRA 4-bit as supported on Linux CPU/CUDA/ROCm/XPU, Windows and macOS 14+ CPU and Metal (mps); only 8-bit optimizers on MPS are pending. The 0.50.0 notes (2026-07-25) say 'all 4-bit and LLM.int8() configurations now work on MPS ... The MPS path requires torch >= 2.9', and that ROCm 'is now considered stable'.

Impact. The documented reason has been false since 2026-07-25. Behaviour still matches the docs, because ForgeLM's own marker and CUDA gate block macOS/Windows/XPU/CPU 4-bit; ROCm passes the gate. This is a ForgeLM scope decision presented as an upstream limitation.

Recommendation. Either widen the marker and gate (bnb>=0.50 on win32/darwin; device check instead of cuda-only, MPS needs torch>=2.9), or keep the Linux+CUDA/ROCm scope and reword the EN and TR docs as a ForgeLM support decision.

Sources.

Other findings with the same root cause

These close with the same fix; update them in the same pull request.

DOC-BLEGAL-195 — docs/guides/troubleshooting.md: stale — [IS-T03-07] 'bitsandbytes (QLoRA) only works on Linux'

severity Low

Where. docs/guides/troubleshooting.md:11 · type: stale

The document says. [IS-T03-07] 'bitsandbytes (QLoRA) only works on Linux'

What the code does. bitsandbytes 0.50.2 ships win_amd64, win_arm64 and macOS arm64 wheels with 4-bit support. Linux-only is ForgeLM's extra-marker choice (the [qlora] extra resolves only on Linux).

User impact. States an upstream limitation that no longer exists. The practical advice (disable 4-bit outside Linux) is still right for ForgeLM.

Proposed correction. ForgeLM's [qlora] extra installs bitsandbytes only on Linux (and its 4-bit path requires CUDA):

Turkish mirror. the Turkish page has the same error; fix both in the same PR

DOC-BLEGAL-234 — docs/usermanuals/en/operations/troubleshooting.md: stale — Cause: bitsandbytes doesn't support Metal/MPS. macOS hosts can't run 4-bit quantised training (QLoRA).

severity Low

Where. docs/usermanuals/en/operations/troubleshooting.md:18 (Turkish mirror: docs/usermanuals/tr/operations/troubleshooting.md:18) · type: stale

The document says. Cause: bitsandbytes doesn't support Metal/MPS. macOS hosts can't run 4-bit quantised training (QLoRA).

What the code does. bitsandbytes 0.50.x supports 4-bit and LLM.int8 on MPS (torch >= 2.9). The cause on macOS is ForgeLM's CUDA-only 4-bit gate and its Linux-only install marker.

User impact. The stated root cause is wrong.

Proposed correction. 'Cause: ForgeLM enables 4-bit (QLoRA) only on CUDA hosts and installs bitsandbytes only on Linux; bitsandbytes itself supports MPS since 0.50.' TR: 'Sebep: ForgeLM 4-bit'i (QLoRA) yalnızca CUDA'da etkinleştirir; bitsandbytes 0.50'den beri MPS'i destekler.'

Turkish mirror. the Turkish page has the same error; fix both in the same PR

Acceptance criteria

  • Each statement is re-checked against the code at fix time.
  • Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
  • Every finding in this issue is resolved or explicitly closed with a reason.

Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Activity

  1. added
    documentationImprovements or additions to documentation
    dependenciesDependency or ecosystem currency
    severity: lowMinor defect, inaccuracy or rough edge
    source: review-2026-10Found by the October 2026 code and documentation review
    urgency: next-releaseTechnology currency: fix in the next release
    wave: 2Roadmap wave 2: high severity, larger effort; next-release tech
    on Oct 9, 2026
  2. cemililik commented on Oct 20, 2026

    @cemililik
    CollaboratorAuthor

    Related work: EMB-05 (#1032) is a measurement spike and decision record on Apple Silicon training (PyTorch-MPS with bitsandbytes ≥ 0.50 versus an MLX backend). It treats this issue and #541 as prerequisites and will not land their changes; it only needs the marker and the 4-bit gate to be widened (or explicitly justified) before backend implementation starts. Epic: #1027.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesDependency or ecosystem currencydocumentationImprovements or additions to documentationseverity: lowMinor defect, inaccuracy or rough edgesource: review-2026-10Found by the October 2026 code and documentation reviewurgency: next-releaseTechnology currency: fix in the next releasewave: 2Roadmap wave 2: high severity, larger effort; next-release tech

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions