AmalVajdan's picture
Initial Commit
afeb9ff verified
# -*- coding: utf-8 -*-
"""Copy of Colab-TextGen-GPU.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/121BbV9KobFpXXP1VU__yse9FKZoqv5-T
# oobabooga/text-generation-webui
After running both cells, a public gradio URL will appear at the bottom in a few minutes. You can optionally generate an API link.
* Project page: https://github.com/oobabooga/text-generation-webui
* Gradio server status: https://status.gradio.app/
"""
# Commented out IPython magic to ensure Python compatibility.
# #@title 1. Keep this tab alive to prevent Colab from disconnecting you { display-mode: "form" }
#
# #@markdown Press play on the music player that will appear below:
# %%html
# <audio src="https://oobabooga.github.io/silence.m4a" controls>
# Commented out IPython magic to ensure Python compatibility.
#@title 2. Launch the web UI
#@markdown If unsure about the branch, write "main" or leave it blank.
import torch
from pathlib import Path
if Path.cwd().name != 'text-generation-webui':
print("Installing the webui...")
!git clone https://github.com/oobabooga/text-generation-webui
# %cd text-generation-webui
torver = torch.__version__
print(f"TORCH: {torver}")
is_cuda118 = '+cu118' in torver # 2.1.0+cu118
is_cuda117 = '+cu117' in torver # 2.0.1+cu117
textgen_requirements = open('requirements.txt').read().splitlines()
if is_cuda117:
textgen_requirements = [req.replace('+cu121', '+cu117').replace('+cu122', '+cu117').replace('torch2.1', 'torch2.0') for req in textgen_requirements]
elif is_cuda118:
textgen_requirements = [req.replace('+cu121', '+cu118').replace('+cu122', '+cu118') for req in textgen_requirements]
with open('temp_requirements.txt', 'w') as file:
file.write('\n'.join(textgen_requirements))
!pip install -r extensions/openai/requirements.txt --upgrade
!pip install -r temp_requirements.txt --upgrade
print("\033[1;32;1m\n --> If you see a warning about \"previously imported packages\", just ignore it.\033[0;37;0m")
print("\033[1;32;1m\n --> There is no need to restart the runtime.\n\033[0;37;0m")
try:
import flash_attn
except:
!pip uninstall -y flash_attn
# Parameters
model_url = "https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-16k-GGUF" #@param {type:"string"}
branch = "main" #@param {type:"string"}
command_line_flags = "--n-gpu-layers 128 --load-in-4bit --use_double_quant" #@param {type:"string"}
api = False #@param {type:"boolean"}
if api:
for param in ['--api', '--public-api']:
if param not in command_line_flags:
command_line_flags += f" {param}"
model_url = model_url.strip()
if model_url != "":
if not model_url.startswith('http'):
model_url = 'https://huggingface.co/' + model_url
# Download the model
url_parts = model_url.strip('/').strip().split('/')
output_folder = f"{url_parts[-2]}_{url_parts[-1]}"
branch = branch.strip('"\' ')
if branch.strip() not in ['', 'main']:
output_folder += f"_{branch}"
!python download-model.py {model_url} --branch {branch}
else:
!python download-model.py {model_url}
else:
output_folder = ""
# Start the web UI
cmd = f"python server.py --share"
if output_folder != "":
cmd += f" --model {output_folder}"
cmd += f" {command_line_flags}"
print(cmd)
!$cmd