Introduksjon til GGUF store modellfilformat
Rammeverk som PyTorch brukes vanligvis til utvikling av store språkmodeller, og deres pre-treningsresultater lagres vanligvis i det tilsvarende binærformatet, slik at pt-suffiksfilen vanligvis er det binære pre-treningsresultatet lagret av PyTorch-rammeverket.
Et veldig viktig problem med lagring av store modeller er imidlertid at modellfilene deres er enorme, og strukturen, parameterne osv. i modellen vil også påvirke modellens resonnementseffekt og ytelse. For å gjøre store modeller mer effektive i lagring og utveksling, finnes det store modellfiler i ulike formater. Blant dem er GGUF et svært viktig filformat for store modeller.
GGUF-filen står for GPT-Generated Unified Format, som er et stort modellfilformat definert og utgitt av Georgi Gerganov. Georgi Gerganov er grunnleggeren av det berømte open source-prosjektet llama.cpp.
GGUF er en spesifikasjon for filer i binært format, og de opprinnelige pre-treningsresultatene fra store modeller konverteres til GGUF-format og kan lastes inn og brukes raskere og bruker lavere ressurser. Årsaken er at GGUF bruker en rekke teknologier for å bevare forhåndstreningsresultatene til store modeller, inkludert bruk av kompakte binære kodingsformater, optimaliserte datastrukturer, minnekartlegging osv.
GGUF, GGML, GGMF og GGJT forskjeller
GGUF er et binært format designet for å laste og lagre modeller raskt. Det er etterfølgerfilformatet til GGML, GGMF og GGJT, og sikrer klarhet ved å inkludere all informasjon som trengs for å laste modellen. Den er også designet for å være skalerbar slik at ny informasjon kan legges til modellen uten å bryte kompatibiliteten.
- GGML (Ingen versjon): Baseline-format uten versjonering eller justering.
- GGMF (versjonert): Samme som GGML, men med versjonering.
- GGJT: Juster tensorer for å tillate bruk med mmaps som må justeres. V1, V2 og V3 er de samme, men senere versjoner bruker andre kvantiseringsskjemaer som ikke er kompatible med tidligere versjoner.
Hvorfor GGUF-format store modellfiler fungerer godt
GGUF-filformatet kan laste modeller raskere på grunn av flere viktige funksjoner:
Binærformat: GGUF, som binærformat, kan leses og analyseres raskere enn tekstfiler. Binærfiler er generelt mer kompakte, noe som reduserer I/O-operasjoner og behandlingstid som kreves for lesing og parsing.
Optimaliserte datastrukturer: GGUF kan benytte spesialoptimaliserte datastrukturer som støtter rask tilgang og lasting av modelldata. For eksempel kan data organiseres etter behov for minnebelastning for å redusere prosessering under belastning.
Minnekartlegging (mmap) kompatibilitet: Hvis GGUF støtter minnekartlegging (mmap), gjør dette det mulig å kartlegge data direkte fra disk til minneadresse, noe som resulterer i raskere datainnlasting. På denne måten kan dataene nås uten å faktisk laste hele filen, noe som er spesielt effektivt for store modeller.
Effektiv serialisering og deserialisering: GGUF kan bruke effektive serialiserings- og deserialiseringsmetoder, noe som betyr at modelldata raskt kan konverteres til brukbare formater.
Få avhengigheter og eksterne referanser: Hvis GGUF-formatet er designet for å være selvstendig, det vil si at all nødvendig informasjon lagres i én enkelt fil, vil dette redusere den eksterne filoppslags- og leseoperasjonene som kreves ved parsing og lasting av modellen.
Datakomprimering: GGUF-formatet kan benytte effektive datakomprimeringsteknikker, redusere filstørrelser og dermed øke leseprosessen.
Optimaliserte indekserings- og tilgangsmekanismer: Indekserings- og tilgangsmekanismene for data i filer kan optimaliseres for å gjøre det raskere nødvendig å finne og laste spesifikke datafragmenter.
Oppsummert oppnår GGUF rask modelllasting gjennom ulike optimaliseringsmetoder, noe som er spesielt viktig for scenarier som krever hyppig lasting av ulike modeller.
GGUF eksempelfil:Innloggingen med hyperkoblingen er synlig. llama.cpp Prosjektadresse:Innloggingen med hyperkoblingen er synlig. |