Introduktion till GGUF stormodellfilformat
Ramverk som PyTorch används vanligtvis för utveckling av stora språkmodeller, och deras förträningsresultat sparas vanligtvis i motsvarande binärt format, till exempel är pt suffixfilen vanligtvis det binära förträningsresultatet som sparas av PyTorch-ramverket.
Ett mycket viktigt problem med lagring av stora modeller är dock att deras modellfiler är enorma, och modellens struktur, parametrar etc. påverkar också modellens resonemangseffekt och prestanda. För att göra stora modeller mer effektiva i lagring och utbyte finns stora modellfiler i olika format. Bland dessa är GGUF ett mycket viktigt filformat för stora modeller.
GGUF-filen står för GPT-Generated Unified Format, vilket är ett stort modellfilformat definierat och släppt av Georgi Gerganov. Georgi Gerganov är grundare av det berömda open source-projektet llama.cpp.
GGUF är en specifikation för binära formatfiler, och de ursprungliga förträningsresultaten från stora modeller konverteras till GGUF-format och kan laddas och användas snabbare och förbrukar mindre resurser. Anledningen är att GGUF använder en mängd olika teknologier för att bevara förträningsresultaten från stora modeller, inklusive användning av kompakta binära kodningsformat, optimerade datastrukturer, minnesmappning med mera.
GGUF, GGML, GGMF och GGJT-skillnader
GGUF är ett binärt format utformat för att snabbt ladda och spara modeller. Det är efterföljarfilformatet till GGML, GGMF och GGJT, vilket säkerställer tydlighet genom att inkludera all information som behövs för att ladda modellen. Den är också designad för att vara skalbar så att ny information kan läggas till modellen utan att bryta kompatibiliteten.
- GGML (Ingen version): Baslinjeformat utan versionshantering eller justering.
- GGMF (versionad): Samma som GGML, men med versionshantering.
- GGJT: Justera tensorer för att möjliggöra användning med mmaps som behöver justeras. V1, V2 och V3 är desamma, men senare versioner använder andra kvantiseringsscheman som inte är kompatibla med tidigare versioner.
Varför GGUF-formatets stora modellfiler fungerar bra
GGUF-filformatet kan ladda modeller snabbare tack vare flera viktiga funktioner:
Binärformat: GGUF, som binärt format, kan läsas och tolkas snabbare än textfiler. Binärfiler är generellt mer kompakta, vilket minskar I/O-operationer och bearbetningstid som krävs för läsning och parsing.
Optimerade datastrukturer: GGUF kan använda särskilt optimerade datastrukturer som stödjer snabb åtkomst och laddning av modelldata. Till exempel kan data organiseras vid behov för minnesbelastning för att minska bearbetningen vid belastning.
Minnesmappning (mmap) kompatibilitet: Om GGUF stödjer minnesmappning (mmap) tillåter detta att data mappas direkt från disk till minnesadressutrymme, vilket resulterar i snabbare dataladdning. På så sätt kan datan nås utan att faktiskt ladda hela filen, vilket är särskilt effektivt för stora modeller.
Effektiv serialisering och deserialisering: GGUF kan använda effektiva serialiserings- och deserialiseringsmetoder, vilket innebär att modelldata snabbt kan omvandlas till användbara format.
Få beroenden och externa referenser: Om GGUF-formatet är utformat för att vara självständigt, det vill säga all nödvändig information lagras i en enda fil, minskar detta den externa filuppslagning och läsoperationer som krävs vid parsning och laddning av modellen.
Datakomprimering: GGUF-formatet kan använda effektiva datakomprimeringstekniker, vilket minskar filstorlekar och därmed påskyndar läsprocessen.
Optimerade indexerings- och åtkomstmekanismer: Indexerings- och åtkomstmekanismerna för data i filer kan optimeras för att snabbare kunna hitta och ladda specifika datafragment.
Sammanfattningsvis uppnår GGUF snabb modellladdning genom olika optimeringsmetoder, vilket är särskilt viktigt för scenarier som kräver frekvent laddning av olika modeller.
GGUF exempelfil:Inloggningen med hyperlänken är synlig. llama.cpp Projektadress:Inloggningen med hyperlänken är synlig. |