mflux-debugging
Porównuj modele MLX z referencją PyTorch — znajdź różnice w tensorach i obrazach
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill do debugowania portów MLX poprzez porównanie z implementacją PyTorch/diffusers. Eksportujesz tensory i obrazy z referencji, a następnie ładujesz je w MLX, aby znaleźć miejsce, gdzie wyniki się rozbiegają. Przydatny gdy podejrzewasz niezgodność w kształtach, layoutzie, RoPE, matematyce schedulera lub rzutowaniu typów danych. Pozwala na powtarzalny workflow do izolacji pierwszej warstwy lub bloku, gdzie outputs się różnią.
Jak używać
Przygotuj dwa katalogi obok siebie na dysku: repozytorium PyTorch (np. diffusers/) i mflux/. Użyj ścieżek bezwzględnych, aby uniknąć zamieszania.
Utwórz prosty skrypt w repozytorium PyTorch, który uruchamia model referencyjny z ustaloną wartością seed. Zamiast polegać na tym samym seed w obu frameworkach, wyeksportuj dokładne tensory początkowe (szum, latenty) z PyTorch — RNG różni się między PyTorch a MLX.
Uruchom skrypt referencyjny za pomocą uv: uv run python -m your_script.py. Skrypt powinien wyeksportować tensory i opcjonalnie obrazy do lokalnego folderu (np. debug_artifacts/).
W projekcie MLX załaduj wyeksportowane artefakty i uruchom ten sam model z tymi samymi tensoriami wejściowymi. Porównaj wyniki z wyraźnymi progami tolerancji.
Jeśli wyniki się rozbiegają, przejdź przez warstwy sekwencyjnie — zacznij od pierwszej warstwy i stopniowo przesuwaj się w głąb modelu, aby znaleźć dokładne miejsce divergencji.
Artefakty debugowania (tensor dumps) przechowuj lokalnie i nie commituj ich do repozytorium, chyba że zostaniesz wyraźnie poproszony. Jeśli potrzebujesz szerszego workflow portowania (kamienie milowe, kolejność, kiedy refaktorować), zapoznaj się ze skill'em mflux-model-porting.