Sissejuhatus GGUF suurte mudelfailide vormingusse
Raamistikke nagu PyTorch kasutatakse tavaliselt suurte keelemudelite arendamiseks ning nende eelkoolituse tulemused salvestatakse tavaliselt vastavas binaarvormingus, näiteks pt-sufiksi fail on tavaliselt binaarne eelkoolituse tulemus, mida PyTorch raamistik salvestab.
Kuid suurte mudelite salvestamisel on väga oluline probleem see, et nende mudelifailid on tohutud ning mudeli struktuur, parameetrid jms mõjutavad samuti mudeli mõtlemistulemust ja jõudlust. Suurte mudelite salvestamiseks ja vahetamiseks on olemas suured mudelifailid erinevates formaatides. Nende seas on GGUF väga oluline suurte mudelfailide vorming.
GGUF-fail tähendab GPT-genereeritud ühtset formaati, mis on Georgi Gerganovi poolt defineeritud ja välja antud suur mudelfailiformaat. Georgi Gerganov on kuulsa avatud lähtekoodiga projekti llama.cpp asutaja.
GGUF on binaarvormingu failide spetsifikatsioon ning algsed suurte mudelite eelkoolitustulemused teisendatakse GGUF formaati, mida saab laadida ja kasutada kiiremini ning tarbides vähem ressursse. Põhjus on selles, et GGUF kasutab mitmesuguseid tehnoloogiaid, et säilitada suurte mudelite eeltreeningtulemused, sealhulgas kompaktsete binaarsete kodeerimisformaatide, optimeeritud andmestruktuuride, mälukaardistamise jms kasutamist.
GGUF, GGML, GGMF ja GGJT erinevused
GGUF on binaarne formaat, mis on loodud mudelite kiireks laadimiseks ja salvestamiseks. See on GGML-i, GGMF-i ja GGJT järeltulija, tagades selguse, lisades kogu mudeli laadimiseks vajaliku info. See on ka skaleeritav, et mudelile saaks lisada uut infot ilma ühilduvust rikkumata.
- GGML (No Version): Baasvorming ilma versioonide või joondamiseta.
- GGMF (versioon): Sama mis GGML, aga versiooniversiooniga.
- GGJT: Joonda tensorid, et võimaldada kasutamist mmap-idega, mis vajavad joondamist. v1, v2 ja v3 on samad, kuid hilisemad versioonid kasutavad erinevaid kvantimisskeeme, mis ei ühildu varasemate versioonidega.
Miks GGUF-formaadis suured mudelfailid toimivad hästi
GGUF failiformaat võimaldab mudeleid kiiremini laadida tänu mitmele olulisele funktsioonile:
Binaarvorming: GGUF, binaarformaadina, on loetav ja parsitav kiiremini kui tekstifaile. Binaarfailid on üldiselt kompaktsemad, vähendades I/O toiminguid ja töötlemisaega, mis on vajalik lugemiseks ja parsimiseks.
Optimeeritud andmestruktuurid: GGUF võib kasutada spetsiaalselt optimeeritud andmestruktuure, mis toetavad mudeliandmete kiiret ligipääsu ja laadimist. Näiteks võib andmeid korraldada vastavalt mälu laadimisele, et vähendada koormuse töötlemist.
Mälukaardistamise (mmap) ühilduvus: Kui GGUF toetab mälukaardistamist (mmap), võimaldab see andmeid kaardistada otse kettast mälu aadressiruumi, mis kiirendab andmete laadimist. Nii saab andmetele ligi ilma kogu faili laadimata, mis on eriti tõhus suurte mudelite puhul.
Tõhus serialiseerimine ja deserialiseerimine: GGUF võib kasutada tõhusaid seriaalistamise ja deserialiseerimise meetodeid, mis tähendab, et mudeliandmed saab kiiresti teisendada kasutatavatesse formaatidesse.
Vähesed sõltuvused ja välised viited: Kui GGUF formaat on loodud iseseisvaks, st kogu vajalik info salvestatakse ühte faili, vähendab see väliste failide otsingu- ja lugemistoiminguid, mis on vajalikud mudeli parsimisel ja laadimisel.
Andmete tihendamine: GGUF-formaat võib kasutada tõhusaid andmete tihendustehnikaid, vähendades failisuurusi ja seeläbi kiirendades lugemisprotsessi.
Optimeeritud indekseerimis- ja ligipääsumehhanismid: failides andmete indekseerimise ja ligipääsu mehhanisme saab optimeerida, et spetsiifiliste andmefragmentide leidmine ja laadimine oleks kiirem.
Kokkuvõttes saavutab GGUF mudeli kiire laadimise erinevate optimeerimismeetodite abil, mis on eriti oluline olukordades, kus erinevate mudelite sagedane laadimine on vajalik.
GGUF näidisfail:Hüperlingi sisselogimine on nähtav. llama.cpp Projekti aadress:Hüperlingi sisselogimine on nähtav. |