Установка GPTQ-for-LLaMa и конвертация моделей

Уже готовые модели для свежего GPTQ-for-LLaMa: https://huggingface.co/wcde
Список свежих моделей для GPTQ: https://huggingface.co/models?sort=modified&search=gptq

Для начала ставим:
Конвертация моделей:
Устанавливаем GPTQ-for-LLaMa:
  • Клонируем репу, можно сразу в папку repositories в webui, но лучше отдельно, чтоб потом не думать почему что-то сломалось после обновления webui:
    git clone https://github.com/qwopqwop200/GPTQ-for-LLaMa.git
    cd ./GPTQ-for-LLaMa/
    
  • Подготавливаем venv:
    1
    2
    3
    4
    python -m venv venv
    .\venv\Scripts\Activate.ps1
    pip install -r .\requirements.txt
    pip install ninja
    
  • Ставим torch:
    pip install torch --index-url https://download.pytorch.org/whl/cu118
    
  • Компилируем quant_cuda:
    python setup_cuda.py install
    
  • Логинимся на huggingface, надо будет скопипастить токен в консоль:
    huggingface-cli login
    
Квантуем:
  • Скачиваем оригинальные веса LLaMA, желательно на SSD: Torrent File Magnet Link
  • В папке с моделью находим файл tokenizer_config.json и меняем в нём "tokenizer_class": "LLaMATokenizer", на "tokenizer_class": "LlamaTokenizer",
  • Если нет RAM, то докидываем подкачкой. Для 30В надо хотя бы 120 гигов в общем, лучше ставить 150, чтоб не словить ООМ в середине процесса.
  • Выбираем на сколько будем квантовать. 3 бита требуют примерно на 20% меньше VRAM и быстрее, но чуть хуже по качеству. 7B желательно всегда делать в 4 бита, начиная с 13B разница по качеству квантования между 3 и 4 не заметна. --groupsize 128 немного увеличивает потребление VRAM и очень сильно повышает качество квантования, если убираем его, то можно добавить --act-order, вместе они не работают.
  • Запускаем квантование:
    python .\llama.py [путь до папки с нужной моделью] c4 --wbits [3 или 4] --save llama-30b-4bit.pt --groupsize 128 --true-sequential --new-eval --faster-kernel
    
  • Ждём 2 часа и получаем в этой же папке файл llama-30b-4bit.pt
Запуск модели в webui:
  • Устанавливаем GPTQ-for-LLaMa в папку repositories как выше
  • В webui пока нет поддержки faster-kernel, поэтому вручную редактируем llama.py и quant.py в папке с GPTQ-for-LLaMa. Нужно заменить все faster_kernel=False на faster_kernel=True и faster=False на faster=True. Возможно снижение скорости на старых видеокартах, надо пробовать с ним и без.
  • Создаём папку в папке models, кладём туда tokenizer.model и все json из папки с оригинальной моделью, кладём llama-30b-4bit.pt
  • Запускаем webui:
    python server.py --wbits [3 или 4, в зависимости какая модель] --model [имя папки с моделью] --cai-chat --model_type LLaMA --groupsize 128
    
Edit Report
Pub: 26 Mar 2023 14:26 UTC
Edit: 15 May 2023 15:30 UTC
Views: 1360