Introduzione al formato file di grande modellismo GGUF
Framework come PyTorch sono solitamente utilizzati per lo sviluppo di grandi modelli di linguaggio, e i loro risultati pre-addestramento sono solitamente salvati nel corrispondente formato binario, ad esempio il file suffisso pt che di solito è il risultato binario pre-addestramento salvato dal framework PyTorch.
Tuttavia, un problema molto importante con la memorizzazione dei modelli di grandi dimensioni è che i loro file di modello sono enormi, e la struttura, i parametri, ecc. del modello influenzeranno anche l'effetto di ragionamento e le prestazioni del modello. Per rendere i grandi modelli più efficienti nella memorizzazione e nello scambio, esistono grandi file di modello in diversi formati. Tra questi, GGUF è un formato di file di grande dimensione molto importante.
GGUF sta per GPT-Generated Unified Format, che è un formato di file di grande formato definito e rilasciato da Georgi Gerganov. Georgi Gerganov è il fondatore del famoso progetto open source llama.cpp.
GGUF è una specifica per file in formato binario, e i risultati originali di pre-addestramento dei grandi modelli vengono convertiti in formato GGUF e possono essere caricati e utilizzati più velocemente consumando risorse minori. Il motivo è che GGUF utilizza una varietà di tecnologie per preservare i risultati pre-addestramento di grandi modelli, incluso l'uso di formati di codifica binaria compatti, strutture dati ottimizzate, mappatura di memoria, ecc.
Differenze tra GGUF, GGML, GGMF e GGJT
GGUF è un formato binario progettato per caricare e salvare rapidamente i modelli. È il formato di file successore di GGML, GGMF e GGJT, garantendo chiarezza includendo tutte le informazioni necessarie per caricare il modello. È anche progettato per essere scalabile in modo che nuove informazioni possano essere aggiunte al modello senza rompere la compatibilità.
- GGML (Nessuna versione): Formato base senza versionamento o allineamento.
- GGMF (versionato): Uguale a GGML, ma con versioning.
- GGJT: Allineare i tensori per permettere l'uso con mmap che devono essere allineati. V1, V2 e V3 sono gli stessi, ma le versioni successive utilizzano schemi di quantizzazione diversi che non sono compatibili con le versioni precedenti.
Perché i file di grandi modelli in formato GGUF funzionano bene
Il formato file GGUF è in grado di caricare i modelli più velocemente grazie a diverse caratteristiche chiave:
Formato binario: GGUF, in quanto formato binario, può essere letto e analizzato più velocemente dei file di testo. I binari sono generalmente più compatti, riducendo le operazioni di I/O e i tempi di elaborazione necessari per la lettura e l'analisi sintica.
Strutture dati ottimizzate: GGUF può impiegare strutture dati appositamente ottimizzate che supportano un accesso e un caricamento rapido dei dati del modello. Ad esempio, i dati possono essere organizzati secondo necessità per il caricamento della memoria al fine di ridurre l'elaborazione al carico.
Compatibilità con la mappatura della memoria (mmap): Se GGUF supporta la mappatura della memoria (mmap), questo permette di mappare i dati direttamente dal disco allo spazio di indirizzamento della memoria, con conseguente caricamento più rapido dei dati. In questo modo, i dati possono essere accessibili senza caricare effettivamente l'intero file, il che è particolarmente efficace per modelli di grandi dimensioni.
Serializzazione e Deserializzazione efficienti: GGUF può utilizzare metodi efficienti di serializzazione e deserializzazione, il che significa che i dati dei modelli possono essere rapidamente convertiti in formati utilizzabili.
Poche dipendenze e riferimenti esterni: Se il formato GGUF è progettato per essere autonomo, cioè tutte le informazioni richieste sono memorizzate in un unico file, ciò ridurrà le operazioni di ricerca e lettura dei file esterni richieste durante l'analisi e il caricamento del modello.
Compressione dati: Il formato GGUF può impiegare tecniche efficaci di compressione dati, riducendo le dimensioni dei file e velocizzando così il processo di lettura.
Indicizzazione e meccanismi di accesso ottimizzati: I meccanismi di indicizzazione e accesso ai dati nei file possono essere ottimizzati per rendere più rapida la ricerca e il caricamento di frammenti di dati specifici.
In sintesi, GGUF ottiene un caricamento rapido dei modelli attraverso vari metodi di ottimizzazione, particolarmente importante per scenari che richiedono un caricamento frequente di diversi modelli.
File di esempio GGUF:Il login del link ipertestuale è visibile. llama.cpp Indirizzo del Progetto:Il login del link ipertestuale è visibile. |