| #@title 2. Launch the web UI | |
| #@markdown If unsure about the branch, write "main" or leave it blank. | |
| import torch | |
| import os | |
| from pathlib import Path | |
| if Path.cwd().name != 'text-generation-webui': | |
| print("Installing the webui...") | |
| os.system("git clone https://github.com/oobabooga/text-generation-webui") | |
| os.system("git clone 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)) | |
| os.system("pip install -r extensions/openai/requirements.txt --upgrade") | |
| os.system("pip install -r temp_requirements.txt --upgrade") | |
| # 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 | |
| os.system("pip uninstall -y flash_atte") | |
| # # Deufalt Parameters | |
| # model_url = "https://huggingface.co/TheBloke/MythoMax-L2-13B-GPTQ" #@param {type:"string"} | |
| # branch = "gptq-4bit-32g-actorder_True" #@param {type:"string"} | |
| # command_line_flags = "--n-gpu-layers 128 --load-in-4bit --use_double_quant" #@param {type:"string"} | |
| # api = True #@param {type:"boolean"} | |
| # #=====================================Ming's customized Parameters ===================================== | |
| # Tiny-Vicuna-1B-GGUF Model work as well (around 668M) | |
| model_url = "https://huggingface.co/afrideva/Tiny-Vicuna-1B-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 = True #@param {type:"boolean"} | |
| # # LinguaMatic-Tiny-GGUF Model around 699MB work as well | |
| # model_url = "https://huggingface.co/erfanzar/LinguaMatic-Tiny-GGUF" #@param {type:"string"} | |
| # branch = "main" #@param {type:"string"} | |
| # command_line_flags = "" #@param {type:"string"} | |
| # api = True #@param {type:"boolean"} | |
| # # TinyLlama-1.1B-Chat-v0.3-GGUF Model work as well (around 668M) | |
| # model_url = "https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v0.3-GGUF" #@param {type:"string"} | |
| # branch = "main" #@param {type:"string"} | |
| # command_line_flags = "" #@param {type:"string"} | |
| # api = True #@param {type:"boolean"} | |
| # # phanerozoic-Tiny-Pirate-1.1b-v0.1-GGUF Not work | |
| # model_url = "https://huggingface.co/s3nh/phanerozoic-Tiny-Pirate-1.1b-v0.1-GGUF" #@param {type:"string"} | |
| # branch = "main" #@param {type:"string"} | |
| # command_line_flags = "" #@param {type:"string"} | |
| # api = True #@param {type:"boolean"} | |
| # # tinyllamas (not work) | |
| # model_url = "https://huggingface.co/klosax/tinyllamas-stories-gguf" #@param {type:"string"} | |
| # branch = "main" #@param {type:"string"} | |
| # command_line_flags = "" #@param {type:"string"} | |
| # api = True #@param {type:"boolean"} | |
| # # tinyllamas (not work) | |
| # model_url = "https://huggingface.co/karpathy/tinyllamas" #@param {type:"string"} | |
| # branch = "main" #@param {type:"string"} | |
| # command_line_flags = "" #@param {type:"string"} | |
| # api = True #@param {type:"boolean"} | |
| # # llama-tiny-Synthetic-therapist-GGUF (not work) | |
| # model_url = "https://huggingface.co/wesley7137/llama-tiny-Synthetic-therapist-GGUF" #@param {type:"string"} | |
| # branch = "main" #@param {type:"string"} | |
| # command_line_flags = "" #@param {type:"string"} | |
| # api = True #@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} | |
| os.system("python download-model.py {model_url} --branch {branch}") | |
| else: | |
| #python download-model.py {model_url} | |
| os.system("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 |