Varför konvertera GGUF till PTH?
Folk konverterar .gguf till .pth när de vill finjustera eller omkvantisera en modell i PyTorch-ekosystemet men bara har GGUF-versionen. En GGUF lagrar metadata (som en konfiguration) plus tensordata (som en state dict), så att mappa den tillbaka till en PyTorch state dict är möjligt för arkitekturer som stöds. Det är en återställningsväg, inte en förlustfri sådan.
Hur man konverterar GGUF till PTH
gguf Python-bibliotek + PyTorch OPEN-SOURCE
Installera gguf och torch, loopa sedan över GGUFReader(path).tensors, kör gguf.quants.dequantize() på varje och torch.save(state_dict, "model.pth"). Du måste mappa om GGUF-tensornamnen tillbaka till modellens ursprungliga nycklar.
gguf_to_safetensors sedan konvertering OPEN-SOURCE
Kör gguf_to_safetensors för att dekvantisera till en .safetensors-fil, ladda den sedan med safetensors.torch.load_file och spara om via torch.save() för att få en .pth.
llama.cpp-verktyg FREE
Läsaren för gguf i llama.cpp exponerar tensorerna; skripta dekvantiseringssteget och skriv en PyTorch state dict. Endast arkitekturer som llama.cpp fullt ut stöder fungerar för denna process.
Om dessa format
En .gguf-fil är en GGML Universal Format-fil, den binära behållare som används av llama.cpp och relaterade verktyg för att lagra en stor språkmodell som en enda fil. Den innehåller…
Öppna detaljer för .GGUF →En .pth-fil är oftast en konfigurationsfil för Python-sökvägar - en liten textfil som talar om för Python vilka extra kataloger som ska läggas till i dess sökpath för moduler vid start. Du…
Öppna detaljer för .PTH →Kvalitet & vad man bör tänka på
- Kvantiserade GGUF-vikter är förlustbehaftade - dekvantisering ger en approximation, aldrig de ursprungliga FP16/FP32-värdena.
- Mappning av tensornamn är arkitekturspecifik; modeller som inte stöds kommer inte att mappas om och konverteringen misslyckas.
- Den resulterande
.pth-filen är en ren state dict utan modellklass, så du behöver fortfarande matchande PyTorch-modellkod för att ladda den.
Vanliga frågor
Kan jag få tillbaka den ursprungliga modellen exakt?
Behöver jag ett GPU?
Varför producerar min konvertering fel tensornamn?
Vilket är bäst, .pth eller .safetensors?
.safetensors är säkrare att dela (ingen exekvering av pickle-kod) och laddas snabbare, men .pth är det infödda PyTorch-formatet för state-dicts vid träning.