Гайд по установке интерфейсов

Альтернативные гайды от анонов:
https://paste.ee/p/nGOBa - TavernAI с KoboldAI
https://paste.ee/p/Gys0B - Textgen webui

Если вы запускаете колаб с мобильного телефона, то вам необходимо зайти на сайт с версией для ПК, а также нажать на кнопку с проигрывателем и запустить аудио. Если этого не сделать, колаб будет периодически отключаться.


Textgen webui

Windows:

  1. Скачиваем miniconda отсюда: https://docs.conda.io/en/latest/miniconda.html
  2. Затем мы устанавливаем.
  3. Заходим в miniconda и делаем установку textgen-generation-webui в предпочтительную для вас папку с помощью команды "cd".
  4. Создаем и заходим в окружение под названием "textgen" с помощью команд: conda create -n textgen python=3.10.9" и "conda activate textgen"
  5. Устанавливаем первоначальные зависимости в конду: pip3 install torch torchvision torchaudio
  6. Клонируем репозиторий с гитхаба на вашу директорию: git clone https://github.com/oobabooga/text-generation-webui
  7. Заходим на директорию с помощью команды cd text-generation-webui
  8. Устанавливаем другие зависимости из текстового файла с помощью pip: pip install -r requirements.txt
  9. Скачиваем модель с huggingface с помощью скрипта в папке: python download-model.py, где возможно выбрать или скачать, выбрав вариант "k". Если вы выбрали этот вариант, то необходимо указать имя организации и имя модели, например: "PygmalionAI/pygmalion-6b".

Старт Textgen webui:

  1. Активируем оболочку textgen с помощью команды: conda activate textgen
  2. Запускаем сам интерфейс с помощью команды: "python server.py --cai-chat --no-stream". Можете добавить аргумент: "--load-in-8bit", если вы хотите запустить на Nvidia от RTX20 с 8ГБ VRAM, однако вы скорее всего получите ошибку, связанную с переполнением видеопамяти

GNU/Linux и WSL:

  1. curl -sL "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh" > "Miniconda3.sh"
    bash Miniconda3.sh
  2. Читаем пользовательское соглашение. Можете его скипнуть, а затем, когда появится окно с подтверждением соглашения, пишете "yes". Отказываемся ставить при установке среду "base" стандартной при запуске терминала.
  3. Далее следуем инструкциям, схожим с Windows, начиная с 3 пункта.

Для пользователей Windows есть опция установки с двух кликов: https://github.com/oobabooga/text-generation-webui/releases/download/installers/oobabooga-windows.zip

Запуск моделей с 4-битной точностью (GNU/Linux и WSL), чтобы запустить 6B модель на 8ГБ VRAM:

  1. Активируем conda, скачиваем и устанавливаем CUDA 11.7: conda activate textgen && conda install -c conda-forge cudatoolkit-dev. Необходимо подождать несколько минут. Прогресс установки не показывается.
  2. Создаем в text-generation-webui директорию "repositories" и переходим в неё командой: mkdir repositories && cd repositories
  3. Клонируем командой и заходим в директорию: git clone https://github.com/oobabooga/GPTQ-for-LLaMa.git -b cuda && cd GPTQ-for-LLaMa
  4. После всего этого, устанавливаем с помощью команды: python setup_cuda.py install. Установится отдельный пакет, который будет необходим для запуска моделей с 4-битной точностью.
  5. С помощью python download-model.py выбираем вариант k и набираем mayaeary/pygmalion-6b-4bit-128g
  6. Запускаем с аргументами --wbits 4 --groupsize 128

TavernAI

Скачать git: https://git-scm.com/download/win

  1. Устанавливаем KoboldAI отсюда: https://github.com/KoboldAI/KoboldAI-Client - стабильная версия (Там невозможно сразу скачать PygmalionAI потому, что раздела "Chat models" нет.) или https://github.com/henk717/KoboldAI - United, которая с новым интерфейсом
  2. Можете выбрать *.exe файл в релизе Github или склонировать и установить с помощью install_requirements.bat от администратора для Windows. Нужно выбирать опции Transformers и хранить в диске "B:/". Для GNU/Linux клонируем репозиторий и устанавливаем с помощью команды ./install_requirements.sh
  3. Устанавливаем Node.js: https://nodejs.org/en/download/current/
  4. Клонируем с репозитория: "git clone https://github.com/TavernAI/TavernAI.git"
  5. Запускаем KoboldAI и загружаем/запускаем модель. Можно использовать локалку или колаб.
  6. Запускаем TavernAI с помощью Start.bat для Windows или "node server.js"
  7. Заходим в настройки
  8. Подключаемся к APi KoboldAI. Если с локалки, то должно выглядить: "http://127.0.0.1:5000/api", если с колаба, то вторая ссылка. Нужно только добавить в конце "/api"
  9. Персонажей можно выбирать или создавать слева от кнопки "настройки."

Если у вас колаб и вы хотите просто запустить TavernAI, то вот ссылка: https://colab.research.google.com/github/TavernAI/TavernAI/blob/main/colab/GPU.ipynb


Компиляция англоязычных копипаст

Кописта с гитхаба по запуску KoboldAI в режиме 8-битной точности.

tl;dr use Linux, install bitsandbytes (either globally or in KAI's conda env, add load_in_8bit=True, device_map="auto" in model pipeline creation calls)

Many people are unable to load models due to their GPU's limited VRAM. These models contain billions of parameters (model weights and biases), each of which is a 32 (or 16) bit float. Thanks to the hard work of some researchers [1], it's possible to run these models using 8-bit numbers, which halves the required amount of VRAM compared to running in half-precision. E.g. if a model requires 16GB of VRAM, running with 8-bit inference only requires 8GB.

This guide was written for KoboldAI 1.19.1, and tested with Ubuntu 20.04. These instructions are based on work by Gmin in KoboldAI's Discord server, and Huggingface's efficient LM inference guide.

Requirements:
KoboldAI (KAI) must be running on Linux
Must use NVIDIA GPU that supports 8-bit tensor cores (Turing, Ampere or newer architectures - e.g. T4, RTX20s RTX30s, A40-A100)
CPU RAM must be large enough to load the entire model in memory (KAI has some optimizations to incrementally load the model, but 8-bit mode seems to break this)
GPU must contain ~1/2 of the recommended VRAM requirement. The model cannot be split between GPU and CPU.
Getting started Installing bitsandbytes
bitsandbytes is a Python library that manages low-level 8-bit operations for model inference. Add bitsandbytes to the environments/huggingface.yml file, under the pip section. Your file should look something like this:

1
2
3
4
5
6
7
8
name: koboldai
channels:
  # ...
dependencies:
  # ...
  - pip:
    - bitsandbytes  # <---- add this
    # ...

Next, install bitsandbytes in KoboldAI's environment with bin/micromamba install -f environments/huggingface.yml -r runtime -n koboldai. The output should look something like this:

1
2
3
4
...
Requirement already satisfied: MarkupSafe>=2.0 in /home/...
Installing collected packages: bitsandbytes
Successfully installed bitsandbytes-0.35.1

Code changes
Make the following changes to aiserver.py:

  1. Under class vars:, set lazy_load to False:
    1
    2
    3
    4
    5
    class vars:
      # ...
      debug       = False # If set to true, will send debug information to the client for display
      lazy_load   = False # <--- change this
      # ...
    
  2. Under reset_model_settings(), set vars.lazy_load to False also:
    1
    2
    3
    def reset_model_settings():
      # ...
      vars.lazy_load = False # <--- change this
    
  3. Edit this line to add load_in_8bit=True and device_map="auto":
                                                                                                     # vvvvvvvvvvv add these vvvvvvvvvvvvvvv #
    model     = AutoModelForCausalLM.from_pretrained("models/{}".format(vars.model.replace('/', '_')), load_in_8bit=True, device_map ="auto", revision=vars.revision, cache_dir="cache", **lowmem)
    

Go!
Start KoboldAI normally. Set all model layers to GPU, as we cannot split the model between CPU and GPU.

The changes we made do not apply to GPT-2 models, nor models loaded from custom directories (but you can enable it for custom directories by adding the load_in_8bit/device_map parameters to the appropriate AutoModelForCausalLM.from_pretrained() calls.


  1. LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale (Tim Dettmers, Mike Lewis, Younes Belkada, Luke Zettlemoyer)
Edit
Pub: 31 Jan 2023 09:20 UTC
Edit: 02 Apr 2023 14:18 UTC
Views: 2297