Вступ до формату великої моделі GGUF
Фреймворки, такі як PyTorch, зазвичай використовуються для розробки великих мовних моделей, а їхні результати попереднього навчання зазвичай зберігаються у відповідному бінарному форматі, наприклад, файл суфікса pt зазвичай є бінарним результатом попереднього навчання, збереженим фреймворком PyTorch.
Однак дуже важливою проблемою зберігання великих моделей є те, що їхні файли моделей величезні, а структура, параметри тощо моделі також впливають на ефект мислення та продуктивність моделі. Щоб зробити великі моделі більш ефективними у зберіганні та обміні, існують великі файли моделей у різних форматах. Серед них GGUF — це дуже важливий формат файлів великої моделі.
GGUF розшифровується як GPT-генерований уніфікований формат — це великий формат файлів моделі, визначений і випущений Георгієм Гергановим. Георгій Герганов — засновник відомого проєкту з відкритим кодом llama.cpp.
GGUF — це специфікація для файлів бінарного формату, і оригінальні результати попереднього навчання великої моделі конвертуються у формат GGUF і можуть завантажуватися та використовуватися швидше, споживаючи менше ресурсів. Причина в тому, що GGUF використовує різноманітні технології для збереження результатів попереднього навчання великих моделей, включаючи компактні формати бінарного кодування, оптимізовані структури даних, відображення пам'яті тощо.
Відмінності GGUF, GGML, GGMF та GGJT
GGUF — це бінарний формат, призначений для швидкого завантаження та збереження моделей. Це наступний формат файлів GGML, GGMF і GGJT, забезпечуючи чіткість, включаючи всю необхідну інформацію для завантаження моделі. Він також розроблений так, щоб бути масштабованим, щоб можна було додавати нову інформацію до моделі без порушення сумісності.
- GGML (Без версії): Базовий формат без версій чи вирівнювання.
- GGMF (версія): Те саме, що й у GGML, але з версійністю.
- GGJT: Вирівняти тензори для використання з mmap, які потрібно вирівняти. V1, V2 та V3 — це ті ж самі версії, але пізніші версії використовують інші схеми квантування, які не сумісні з попередніми версіями.
Чому великі файли моделей у форматі GGUF працюють добре
Формат файлу GGUF дозволяє швидше завантажувати моделі завдяки кільком ключовим функціям:
Двійковий формат: GGUF, як бінарний формат, може читатися та аналізуватися швидше, ніж текстові файли. Бінарні системи зазвичай більш компактні, що зменшує операції введення/виведення та час обробки, необхідний для читання та розбору.
Оптимізовані структури даних: GGUF може використовувати спеціально оптимізовані структури даних, які підтримують швидкий доступ і завантаження даних моделі. Наприклад, дані можуть бути організовані за потреби для завантаження пам'яті, щоб зменшити обробку при завантаженні.
Сумісність з відображенням пам'яті (mmap): Якщо GGUF підтримує відображення пам'яті (mmap), це дозволяє безпосередньо відображати дані з диска в адресний простір пам'яті, що призводить до швидшого завантаження даних. Таким чином, дані можна отримати без фактичного завантаження всього файлу, що особливо ефективно для великих моделей.
Ефективна серіалізація та десеріалізація: GGUF може використовувати ефективні методи серіалізації та десеріалізації, що дозволяє швидко конвертувати дані моделі у зручні формати.
Невелика кількість залежностей і зовнішніх посилань: якщо формат GGUF розроблений як автономний, тобто вся необхідна інформація зберігається в одному файлі, це зменшить пошук і операції читання, необхідні для розбору та завантаження моделі.
Стиснення даних: формат GGUF може застосовувати ефективні методи стиснення даних, зменшуючи розмір файлів і таким чином прискорюючи процес читання.
Оптимізовані механізми індексації та доступу: механізми індексації та доступу до даних у файлах можуть бути оптимізовані для швидшого пошуку та завантаження конкретних фрагментів даних.
Підсумовуючи, GGUF забезпечує швидке завантаження моделей за допомогою різних методів оптимізації, що особливо важливо для сценаріїв, що потребують частого завантаження різних моделей.
Зразок файлу GGUF:Вхід за гіперпосиланням видно. llama.cpp Адреса проєкту:Вхід за гіперпосиланням видно. |