Úvod do formátu velkého modelu GGUF
Frameworky jako PyTorch se obvykle používají pro vývoj velkých jazykových modelů a jejich výsledky předtrénování jsou obvykle uloženy v odpovídajícím binárním formátu, například soubor s příponou pt je obvykle binární výsledek předtrénování uložený frameworkem PyTorch.
Velmi důležitým problémem s úložištěm velkých modelů je však to, že jejich soubory jsou obrovské a struktura, parametry atd. modelu také ovlivňují uvažovací efekt a výkon modelu. Aby byly velké modely efektivnější při ukládání a výměně, existují velké modelové soubory v různých formátech. Mezi nimi je GGUF velmi důležitý formát pro velké modely.
GGUF znamená GPT-Generated Unified Format, což je velký modelový formát definovaný a vydaný Georgim Gerganovem. Georgi Gerganov je zakladatelem slavného open source projektu llama.cpp.
GGUF je specifikace pro soubory v binárním formátu a původní výsledky předtrénování velkého modelu jsou převedeny do formátu GGUF a lze je načítat a používat rychleji a spotřebovávat méně zdrojů. Důvodem je, že GGUF využívá různé technologie k zachování výsledků předtrénování velkých modelů, včetně použití kompaktních binárních kódovacích formátů, optimalizovaných datových struktur, mapování paměti atd.
Rozdíly mezi GGUF, GGML, GGMF a GGJT
GGUF je binární formát navržený pro rychlé načítání a ukládání modelů. Jedná se o nástupnický formát souborů GGML, GGMF a GGJT, který zajišťuje jasnost zahrnutím všech informací potřebných k načtení modelu. Je také navržen tak, aby byl škálovatelný, takže do modelu lze přidávat nové informace bez narušení kompatibility.
- GGML (No Version): Základní formát bez verzování nebo zarovnání.
- GGMF (Verzionář): Stejné jako GGML, ale s verzím.
- GGJT: Zarovnání tenzorů tak, aby umožnilo použití s mmapami, které je třeba zarovnat. V1, v2 a v3 jsou stejné, ale pozdější verze používají odlišná kvantizační schémata, která nejsou kompatibilní s předchozími verzemi.
Proč velké modelové soubory ve formátu GGUF fungují dobře
Formát souboru GGUF dokáže načítat modely rychleji díky několika klíčovým vlastnostem:
Binární formát: GGUF jako binární formát lze číst a analyzovat rychleji než textové soubory. Binární soubory jsou obecně kompaktnější, což snižuje počet I/O operací a čas zpracování potřebný pro čtení a parsování.
Optimalizované datové struktury: GGUF může využívat speciálně optimalizované datové struktury, které podporují rychlý přístup a načítání modelových dat. Například data mohou být organizována podle potřeby pro načítání paměti, aby se snížilo zpracování při zátěži.
Kompatibilita mapování paměti (mmap): Pokud GGUF podporuje mapování paměti (mmap), umožňuje to mapování dat přímo z disku do adresního prostoru paměti, což vede k rychlejšímu načítání dat. Tímto způsobem lze k datům přistupovat bez načítání celého souboru, což je obzvlášť účinné u velkých modelů.
Efektivní serializace a deserializace: GGUF může používat efektivní metody serializace a deserializace, což znamená, že data modelu lze rychle převést do použitelných formátů.
Málo závislostí a externích odkazů: Pokud je formát GGUF navržen jako samostatný, tj. všechny požadované informace jsou uloženy v jednom souboru, sníží to potřebu vyhledávání a čtení externího souboru při parsování a načítání modelu.
Komprese dat: Formát GGUF může využívat účinné techniky komprese dat, které zmenšují velikost souborů a tím urychlují proces čtení.
Optimalizované indexační a přístupové mechanismy: Indexační a přístupové mechanismy k datům v souborech mohou být optimalizovány tak, aby bylo rychlejší vyhledávání a načítání konkrétních datových fragmentů.
Shrnuto, GGUF dosahuje rychlého načítání modelu pomocí různých optimalizačních metod, což je zvláště důležité pro scénáře vyžadující časté načítání různých modelů.
Ukázkový soubor GGUFF:Přihlášení k hypertextovému odkazu je viditelné. llama.cpp Adresa projektu:Přihlášení k hypertextovému odkazu je viditelné. |