Install Pytorch through pip instead of Conda (#84)

This commit is contained in:
jllllll 2023-06-20 14:39:23 -05:00 committed by GitHub
parent b1d05cbbf6
commit 9bb2fc8cd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 14 deletions

View File

@ -16,7 +16,7 @@ esac
INSTALL_DIR="$(pwd)/installer_files" INSTALL_DIR="$(pwd)/installer_files"
CONDA_ROOT_PREFIX="$(pwd)/installer_files/conda" CONDA_ROOT_PREFIX="$(pwd)/installer_files/conda"
INSTALL_ENV_DIR="$(pwd)/installer_files/env" INSTALL_ENV_DIR="$(pwd)/installer_files/env"
MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-${OS_ARCH}.sh" MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-${OS_ARCH}.sh"
conda_exists="F" conda_exists="F"
# figure out whether git and conda needs to be installed # figure out whether git and conda needs to be installed

View File

@ -16,7 +16,7 @@ esac
INSTALL_DIR="$(pwd)/installer_files" INSTALL_DIR="$(pwd)/installer_files"
CONDA_ROOT_PREFIX="$(pwd)/installer_files/conda" CONDA_ROOT_PREFIX="$(pwd)/installer_files/conda"
INSTALL_ENV_DIR="$(pwd)/installer_files/env" INSTALL_ENV_DIR="$(pwd)/installer_files/env"
MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-MacOSX-${OS_ARCH}.sh" MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-${OS_ARCH}.sh"
conda_exists="F" conda_exists="F"
# figure out whether git and conda needs to be installed # figure out whether git and conda needs to be installed

View File

@ -14,7 +14,7 @@ set TEMP=%cd%\installer_files
set INSTALL_DIR=%cd%\installer_files set INSTALL_DIR=%cd%\installer_files
set CONDA_ROOT_PREFIX=%cd%\installer_files\conda set CONDA_ROOT_PREFIX=%cd%\installer_files\conda
set INSTALL_ENV_DIR=%cd%\installer_files\env set INSTALL_ENV_DIR=%cd%\installer_files\env
set MINICONDA_DOWNLOAD_URL=https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Windows-x86_64.exe set MINICONDA_DOWNLOAD_URL=https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Windows-x86_64.exe
set conda_exists=F set conda_exists=F
@rem figure out whether git and conda needs to be installed @rem figure out whether git and conda needs to be installed

View File

@ -92,21 +92,18 @@ def install_dependencies():
# Install the version of PyTorch needed # Install the version of PyTorch needed
if gpuchoice == "a": if gpuchoice == "a":
run_cmd("conda install -y -k pytorch[version=2,build=py3.10_cuda11.7*] torchvision torchaudio pytorch-cuda=11.7 cuda-toolkit ninja git -c pytorch -c nvidia/label/cuda-11.7.0 -c nvidia", assert_success=True, environment=True) run_cmd('conda install -y -k cuda ninja git -c nvidia/label/cuda-11.7.0 -c nvidia && python -m pip install torch==2.0.1+cu117 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117', assert_success=True, environment=True)
elif gpuchoice == "b": elif gpuchoice == "b":
print("AMD GPUs are not supported. Exiting...") print("AMD GPUs are not supported. Exiting...")
sys.exit() sys.exit()
elif gpuchoice == "c" or gpuchoice == "d": elif gpuchoice == "c" or gpuchoice == "d":
run_cmd("conda install -y -k pytorch torchvision torchaudio cpuonly git -c pytorch", assert_success=True, environment=True) run_cmd("conda install -y -k ninja git && python -m pip install torch torchvision torchaudio", assert_success=True, environment=True)
else: else:
print("Invalid choice. Exiting...") print("Invalid choice. Exiting...")
sys.exit() sys.exit()
# Clone webui to our computer # Clone webui to our computer
run_cmd("git clone https://github.com/oobabooga/text-generation-webui.git", assert_success=True, environment=True) run_cmd("git clone https://github.com/oobabooga/text-generation-webui.git", assert_success=True, environment=True)
# if sys.platform.startswith("win"):
# # Fix a bitsandbytes compatibility issue with Windows
# run_cmd("python -m pip install https://github.com/jllllll/bitsandbytes-windows-webui/raw/main/bitsandbytes-0.38.1-py3-none-any.whl", assert_success=True, environment=True)
# Install the webui dependencies # Install the webui dependencies
update_dependencies() update_dependencies()
@ -144,9 +141,12 @@ def update_dependencies():
print_big_message(message) print_big_message(message)
# The following dependencies are for CUDA, not CPU # The following dependencies are for CUDA, not CPU
# Check if the package cpuonly exists to determine if torch uses CUDA or not # Parse output of 'pip show torch' to determine torch version
cpuonly_exist = run_cmd("conda list cpuonly | grep cpuonly", environment=True, capture_output=True).returncode == 0 torver_cmd = run_cmd("python -m pip show torch", assert_success=True, environment=True, capture_output=True)
if cpuonly_exist: torver = [v.split()[1] for v in torver_cmd.stdout.decode('utf-8').splitlines() if 'Version:' in v][0]
# Check for '+cu' in version string to determine if torch uses CUDA or not check for pytorch-cuda as well for backwards compatibility
if '+cu' not in torver and run_cmd("conda list -f pytorch-cuda | grep pytorch-cuda", environment=True, capture_output=True).returncode == 1:
return return
# Finds the path to your dependencies # Finds the path to your dependencies
@ -161,8 +161,8 @@ def update_dependencies():
sys.exit() sys.exit()
# Fix a bitsandbytes compatibility issue with Linux # Fix a bitsandbytes compatibility issue with Linux
if sys.platform.startswith("linux"): # if sys.platform.startswith("linux"):
shutil.copy(os.path.join(site_packages_path, "bitsandbytes", "libbitsandbytes_cuda117.so"), os.path.join(site_packages_path, "bitsandbytes", "libbitsandbytes_cpu.so")) # shutil.copy(os.path.join(site_packages_path, "bitsandbytes", "libbitsandbytes_cuda117.so"), os.path.join(site_packages_path, "bitsandbytes", "libbitsandbytes_cpu.so"))
if not os.path.exists("repositories/"): if not os.path.exists("repositories/"):
os.mkdir("repositories") os.mkdir("repositories")
@ -177,6 +177,10 @@ def update_dependencies():
run_cmd("git pull", environment=True) run_cmd("git pull", environment=True)
os.chdir("..") os.chdir("..")
# Fix build issue with exllama in Linux/WSL
if sys.platform.startswith("linux") and not os.path.exists(f"{conda_env_path}/lib64"):
run_cmd(f'ln -s "{conda_env_path}/lib" "{conda_env_path}/lib64"', environment=True)
# Install GPTQ-for-LLaMa which enables 4bit CUDA quantization # Install GPTQ-for-LLaMa which enables 4bit CUDA quantization
if not os.path.exists("GPTQ-for-LLaMa/"): if not os.path.exists("GPTQ-for-LLaMa/"):
run_cmd("git clone https://github.com/oobabooga/GPTQ-for-LLaMa.git -b cuda", assert_success=True, environment=True) run_cmd("git clone https://github.com/oobabooga/GPTQ-for-LLaMa.git -b cuda", assert_success=True, environment=True)

2
wsl.sh
View File

@ -22,7 +22,7 @@ conda deactivate 2> /dev/null
INSTALL_DIR="$HOME/text-gen-install" INSTALL_DIR="$HOME/text-gen-install"
CONDA_ROOT_PREFIX="$INSTALL_DIR/installer_files/conda" CONDA_ROOT_PREFIX="$INSTALL_DIR/installer_files/conda"
INSTALL_ENV_DIR="$INSTALL_DIR/installer_files/env" INSTALL_ENV_DIR="$INSTALL_DIR/installer_files/env"
MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh" MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh"
conda_exists="F" conda_exists="F"
# environment isolation # environment isolation