Какой метод квантования подходит вам? (GPTQ vs. GGUF vs. AWQ)

Какой метод квантования подходит лучше всего вам? (GPTQ, GGUF или AWQ)

Исследование предварительно квантизированных больших языковых моделей

В течение последнего года мы видели Дикий Запад Больших Языковых Моделей (LLM). Темп, с которым выпускались новые технологии и модели, был поразительным! В результате у нас есть много разных стандартов и способов работы с LLM.

В этой статье мы рассмотрим одну из таких тем, а именно загрузку вашего локального LLM через несколько (квантованием) стандартов. С использованием фрагментации, квантования и разных стратегий сохранения и сжатия, непросто понять, какой метод подходит вам.

На протяжении примеров мы будем использовать Zephyr 7B, настроенную версию Mistral 7B, которая была обучена с помощью Прямой Оптимизации Предпочтений (DPO).

🔥 СОВЕТ: После каждого примера загрузки LLM рекомендуется перезапустить блокнот, чтобы избежать ошибок OutOfMemory. Загрузка нескольких LLM требует большого объема ОЗУ/видеопамяти. Память можно сбросить, удалив модели и сбросив кеш следующим образом:

# Удалите ранее созданные моделиdel model, tokenizer, pipe# Очистите кеш видеопамятиimport torchtorch.cuda.empty_cache()

Вы также можете следовать вместе с Notebook Google Colab, чтобы убедиться, что все работает, как задумано.

1. HuggingFace

Наиболее простой и стандартный способ загрузки вашего LLM – это через 🤗 Transformers. HuggingFace создал большой набор пакетов, которые позволяют нам делать удивительные вещи с LLM!

Мы начнем с установки HuggingFace, в том числе, с его основной ветки, чтобы поддерживать более новые модели:

# Последняя версия HF transformers для моделей Mistral-подобного типаpip install git+https://github.com/huggingface/transformers.gitpip install accelerate bitsandbytes xformers

После установки мы можем использовать следующий пайплайн для удобной загрузки нашего LLM:

from torch import bfloat16from transformers import pipeline# Загрузка ваших LLM без каких-либо приемов сжатияpipe = pipeline(    "text-generation",     model="HuggingFaceH4/zephyr-7b-beta",     torch_dtype=bfloat16,     device_map="auto")