Úvod do veľkého modelového formátu GGUF
Rámce ako PyTorch sa zvyčajne používajú na vývoj veľkých jazykových modelov a ich výsledky predtrénovania sa zvyčajne ukladajú v zodpovedajúcom binárnom formáte, napríklad súbor s príponou pt je zvyčajne binárny výsledok predtrénovania uložený frameworkom PyTorch.
Veľmi dôležitým problémom pri ukladaní veľkých modelov však je, že ich modelové súbory sú obrovské a štruktúra, parametre a podobne modelu ovplyvňujú aj efekt uvažovania a výkon modelu. Aby boli veľké modely efektívnejšie pri ukladaní a výmene, existujú veľké modelové súbory v rôznych formátoch. Medzi nimi je GGUF veľmi dôležitý formát veľkých modelových súborov.
GGUF znamená GPT-Generated Unified Format, čo je veľký modelový súborový formát definovaný a vydaný Georgiom Gerganovom. Georgi Gerganov je zakladateľom slávneho open source projektu llama.cpp.
GGUF je špecifikácia pre súbory v binárnom formáte a pôvodné výsledky predtrénovania veľkých modelov sa konvertujú do formátu GGUF a môžu sa načítať a používať rýchlejšie a spotrebúvajú menej zdrojov. Dôvodom je, že GGUF používa rôzne technológie na zachovanie predtrénovacích výsledkov veľkých modelov, vrátane použitia kompaktných binárnych kódovacích formátov, optimalizovaných dátových štruktúr, mapovania pamäte a podobne.
Rozdiely medzi GGUF, GGML, GGMF a GGJT
GGUF je binárny formát navrhnutý na rýchle načítanie a ukladanie modelov. Je to nástupnícky formát súborov GGML, GGMF a GGJT, ktorý zabezpečuje prehľadnosť zahrnutím všetkých informácií potrebných na načítanie modelu. Je tiež navrhnutý tak, aby bol škálovateľný, takže je možné do modelu pridávať nové informácie bez narušenia kompatibility.
- GGML (bez verzie): Základný formát bez verziovania alebo zarovnania.
- GGMF (verziované): To isté ako GGML, ale s verziovaním.
- GGJT: Zarovnajte tenzory tak, aby umožnili použitie s mmapami, ktoré je potrebné zarovnať. V1, v2 a v3 sú rovnaké, ale neskoršie verzie používajú odlišné schémy kvantizácie, ktoré nie sú kompatibilné s predchádzajúcimi verziami.
Prečo veľké modelové súbory vo formáte GGUF fungujú dobre
Formát súboru GGUF dokáže rýchlejšie načítať modely vďaka niekoľkým kľúčovým vlastnostiam:
Binárny formát: GGUF ako binárny formát sa dá čítať a parsovať rýchlejšie ako textové súbory. Binárky sú vo všeobecnosti kompaktnejšie, čo znižuje I/O operácie a čas spracovania potrebný na čítanie a parsovanie.
Optimalizované dátové štruktúry: GGUF môže využívať špeciálne optimalizované dátové štruktúry, ktoré podporujú rýchly prístup a načítavanie modelových dát. Napríklad dáta môžu byť usporiadané podľa potreby na načítanie pamäte, aby sa znížilo spracovanie pri záťaži.
Kompatibilita s mapovaním pamäte (mmap): Ak GGUF podporuje mapovanie pamäte (mmap), umožňuje to mapovanie dát priamo z disku do pamäťového adresného priestoru, čo vedie k rýchlejšiemu načítavaniu dát. Týmto spôsobom je možné k dátam pristupovať bez skutočného načítania celého súboru, čo je obzvlášť účinné pri veľkých modeloch.
Efektívna serializácia a deserializácia: GGUF môže používať efektívne metódy serializácie a deserializácie, čo znamená, že modelové dáta je možné rýchlo konvertovať do použiteľných formátov.
Málo závislostí a externých referencií: Ak je formát GGUF navrhnutý ako samostatný, t. j. všetky požadované informácie sú uložené v jednom súbore, zníži sa tým potreba externého vyhľadávania a čítania súborov pri parsovaní a načítavaní modelu.
Kompresia dát: Formát GGUF môže využívať efektívne techniky kompresie dát, čím sa zmenšujú veľkosti súborov a tým sa urýchľuje proces čítania.
Optimalizované indexovacie a prístupové mechanizmy: Indexovacie a prístupové mechanizmy k dátam v súboroch môžu byť optimalizované tak, aby bolo rýchlejšie vyhľadávanie a načítavanie konkrétnych fragmentov dát.
Na záver, GGUF dosahuje rýchle načítanie modelu pomocou rôznych optimalizačných metód, čo je obzvlášť dôležité pri scenároch vyžadujúcich časté načítanie rôznych modelov.
Ukážkový súbor GGUF:Prihlásenie na hypertextový odkaz je viditeľné. llama.cpp Adresa projektu:Prihlásenie na hypertextový odkaz je viditeľné. |