Skip to content

Pin the Hugging Face revision when loading pretrained weights #88

Description

@kobihikri

Both load() paths fetch the pretrained weights from Hugging Face without asking for a particular revision, so each call resolves to whatever main points at at that moment:

  • PyTorch — tabfm/src/pytorch/tabfm_v1_0_0.py:157
  • JAX — tabfm/src/jax/tabfm_v1_0_0.py:279-280

revision is already threaded through _from_pretrained in both files, so the plumbing exists — it is simply never given a value, and there is no checksum either.

main on google/tabfm-1.0.0-pytorch has moved ten times, and one of those commits changed the weight format outright:

702835545c8c  2026-07-02  convert weights to safetensors (#3)

That is the same change behind callers looking for pytorch_model.bin and not finding it, which is what #53 and #77 are about. Anyone who had pinned a revision would have kept working across that day and could then have moved deliberately.

Two things a pin would buy you:

  • Reproducibility — a given tabfm version resolves to the same weights every time, so a result from three months ago can be reached again.
  • Integrity — users are not moved onto different weights without noticing.

I have not sent a patch, because deciding which commit is the blessed one is your call and I would only be guessing. If it helps, the current head is 77cb9cc1b4fd, and the shape would be a module-level constant passed as revision= in both loaders, still overridable by the caller.

Glad to send the PR once you say which revision it should be.

Disclosure: I used an AI assistant while looking into this. I checked the file references and the Hugging Face commit list myself.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions