Skip to content

whisper/convert.py outputs model.safetensors but mlx_whisper.load_models expects weights.safetensors #1421

@kinoshitakashi01

Description

@kinoshitakashi01

The pip-installed mlx-whisper package looks for weights.safetensors or
weights.npz, but the upstream whisper/convert.py script in this repo
writes the converted weights to model.safetensors. After running the
documented conversion command, mlx_whisper.transcribe(path_or_hf_repo=...)
fails to find the weights and crashes.

Repro

python3 whisper/convert.py \
    --torch-name-or-path nectec/Pathumma-whisper-th-large-v3 \
    --mlx-path /tmp/pathumma-mlx \
    --dtype float16

ls /tmp/pathumma-mlx
# config.json
# model.safetensors    <-- written by convert.py
import mlx_whisper
mlx_whisper.transcribe("audio.wav", path_or_hf_repo="/tmp/pathumma-mlx")
# FileNotFoundError / load failure: weights.safetensors not found

Source

  • whisper/convert.py (this repo) writes model.safetensors:
    https://github.com/ml-explore/mlx-examples/blob/main/whisper/convert.py#L385
    mx.save_safetensors(str(mlx_path / "model.safetensors"), weights)

  • mlx_whisper/load_models.py (PyPI mlx-whisper 0.4.3) expects weights.safetensors:

    wf = model_path / "weights.safetensors"
    if not wf.exists():
        wf = model_path / "weights.npz"
    weights = mx.load(str(wf))

Workaround

Rename after conversion:

mv /tmp/pathumma-mlx/model.safetensors /tmp/pathumma-mlx/weights.safetensors

Possible fix

Either:

  • convert.py writes to weights.safetensors, or
  • load_models.py also accepts model.safetensors

The latter seems more backwards-compatible since pre-converted models on the Hub
(e.g. mlx-community/whisper-large-v3-mlx) currently ship weights.npz.

Versions: mlx-whisper==0.4.3, mlx==0.31.2, mlx-examples HEAD e52c128.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions