Introduktion til GGUF store modelfilformat
Frameworks som PyTorch bruges normalt til udvikling af store sprogmodeller, og deres prætræningsresultater gemmes som regel i det tilsvarende binære format, såsom at pt-suffiksfilen normalt er det binære pre-træningsresultat, der gemmes af PyTorch-rammeværket.
Dog er et meget vigtigt problem med lagring af store modeller, at deres modelfiler er enorme, og modellens struktur, parametre osv. vil også påvirke modellens ræsonnementseffekt og ydeevne. For at gøre store modeller mere effektive i lagring og udveksling findes der store modelfiler i forskellige formater. Blandt dem er GGUF et meget vigtigt filformat for store modeller.
GGUF-filen står for GPT-Generated Unified Format, som er et stort modelfilformat defineret og udgivet af Georgi Gerganov. Georgi Gerganov er grundlægger af det berømte open source-projekt llama.cpp.
GGUF er en specifikation for filer i binære formater, og de oprindelige resultater fra fortræning af store modeller konverteres til GGUF-format og kan indlæses og bruges hurtigere og bruger færre ressourcer. Årsagen er, at GGUF bruger en række forskellige teknologier til at bevare fortræningsresultaterne fra store modeller, herunder brugen af kompakte binære kodningsformater, optimerede datastrukturer, hukommelsesmapping osv.
GGUF, GGML, GGMF og GGJT forskelle
GGUF er et binært format designet til hurtigt at indlæse og gemme modeller. Det er efterfølgerfilformatet til GGML, GGMF og GGJT og sikrer klarhed ved at inkludere al den information, der er nødvendig for at indlæse modellen. Den er også designet til at være skalerbar, så ny information kan tilføjes modellen uden at bryde kompatibiliteten.
- GGML (Ingen version): Baseline-format uden versionsstyring eller justering.
- GGMF (versioneret): Samme som GGML, men med versionering.
- GGJT: Juster tensorer for at muliggøre brug med mmaps, der skal justeres. V1, V2 og V3 er de samme, men senere versioner bruger forskellige kvantiseringsskemaer, som ikke er kompatible med tidligere versioner.
Hvorfor GGUF-formatets store modelfiler fungerer godt
GGUF-filformatet kan indlæse modeller hurtigere på grund af flere nøglefunktioner:
Binært format: GGUF, som binært format, kan læses og parses hurtigere end tekstfiler. Binærfiler er generelt mere kompakte, hvilket reducerer I/O-operationerne og behandlingstiden, der kræves for læsning og parsing.
Optimerede datastrukturer: GGUF kan anvende særligt optimerede datastrukturer, der understøtter hurtig adgang og indlæsning af modeldata. For eksempel kan data organiseres efter behov for hukommelsesbelastning for at reducere behandlingen under belastningen.
Memory Mapping (mmap) kompatibilitet: Hvis GGUF understøtter memory mapping (mmap), tillader det, at data kan kortlægges direkte fra disk til hukommelsesadresseområde, hvilket resulterer i hurtigere dataindlæsning. På denne måde kan dataene tilgås uden faktisk at indlæse hele filen, hvilket er særligt effektivt for store modeller.
Effektiv serialisering og deserialisering: GGUF kan anvende effektive serialiserings- og deserialiseringsmetoder, hvilket betyder, at modeldata hurtigt kan konverteres til brugbare formater.
Få afhængigheder og eksterne referencer: Hvis GGUF-formatet er designet til at være selvstændigt, dvs. at al nødvendig information gemmes i én fil, vil dette reducere den eksterne filopslag og læseoperationer, der kræves ved parsing og indlæsning af modellen.
Datakomprimering: GGUF-formatet kan anvende effektive datakomprimeringsteknikker, hvilket reducerer filstørrelser og dermed fremskynder læseprocessen.
Optimerede indekserings- og adgangsmekanismer: Indekserings- og adgangsmekanismerne for data i filer kan optimeres, så det går hurtigere at finde og indlæse specifikke datafragmenter.
Sammenfattende opnår GGUF hurtig modelindlæsning gennem forskellige optimeringsmetoder, hvilket er særligt vigtigt i scenarier, der kræver hyppig indlæsning af forskellige modeller.
GGUF eksempelfil:Hyperlink-login er synlig. llama.cpp Projektadresse:Hyperlink-login er synlig. |