91 lines
4.0 KiB
Bash
Executable File
91 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
source ../utils.sh
|
|
python_exec="$(pwd)/venv/bin/python3.10"
|
|
|
|
NAME="TextGeneration"
|
|
|
|
# Function to install/update
|
|
install() {
|
|
if [ -d "webui" ]; then
|
|
echo $NAME "is already installed. Updating..."
|
|
yes_or_no "Do you want to update $NAME?" && {
|
|
cd webui
|
|
git pull
|
|
echo "$NAME WebUI successfully updated."
|
|
}
|
|
|
|
else
|
|
# Add BnB
|
|
$python_exec -m pip install --upgrade https://github.com/M4TH1EU/ai-suite-rocm-local/releases/download/prebuilt-wheels-for-rocm/bitsandbytes-0.43.3-cp310-cp310-linux_x86_64.whl # install bitsandbytes for rocm until it is available on pypi
|
|
|
|
# Add AutoGPTQ
|
|
$python_exec -m pip install auto-gptq --no-build-isolation --extra-index-url https://huggingface.github.io/autogptq-index/whl/rocm573/
|
|
|
|
# Add ExLlamav2
|
|
$python_exec -m pip install https://github.com/turboderp/exllamav2/releases/download/v0.1.9/exllamav2-0.1.9+rocm6.1.torch2.4.0-cp310-cp310-linux_x86_64.whl
|
|
|
|
# Add LlamaCPP
|
|
CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python # cpu
|
|
# CMAKE_ARGS="-DGGML_HIPBLAS=on" FORCE_CMAKE=1 $python_exec -m pip install llama-cpp-python # gpu
|
|
|
|
# llama cpp built with hipblas doesn't work unless the whole rocm stack is installed locally
|
|
# so for now, use llama with openblas (cpu)
|
|
|
|
# main_venv_path=$(dirname $(python -c "import torch; print(torch.__file__)"))"/lib/"
|
|
# llama_lib_path="$(pwd)/venv/lib64/python3.10/site-packages/llama_cpp/lib"
|
|
#
|
|
# for file in "$main_venv_path"/*.so; do
|
|
# ln -s "$file" "$llama_lib_path/$(basename "$file")"
|
|
# done
|
|
|
|
# ln -s "$llama_lib_path/libhipblas.so" "$llama_lib_path/libhipblas.so.1"
|
|
# ln -s "$llama_lib_path/libhipblas.so" "$llama_lib_path/libhipblas.so.2"
|
|
# ln -s "$llama_lib_path/librocblas.so" "$llama_lib_path/librocblas.so.3"
|
|
# ln -s "$llama_lib_path/librocblas.so" "$llama_lib_path/librocblas.so.4"
|
|
# ln -s "$llama_lib_path/libamdhip64.so" "$llama_lib_path/libamdhip64.so.5"
|
|
# ln -s "$llama_lib_path/libamdhip64.so" "$llama_lib_path/libamdhip64.so.6"
|
|
|
|
|
|
# Add Triton
|
|
# $python_exec -m pip install https://github.com/M4TH1EU/ai-suite-rocm-local/releases/download/prebuilt-wheels-for-rocm/llama_cpp_python-0.2.89-cp310-cp310-linux_x86_64.whl
|
|
# git clone https://github.com/ROCmSoftwarePlatform/triton.git .tritonrocm
|
|
# cd .tritonrocm/python
|
|
# $python_exec -m pip install ninja cmake; # build time dependencies
|
|
# $python_exec -m pip uninstall triton -y && $python_exec -m pip install -e .
|
|
# cd .. && sudo rm -R .tritonrocm
|
|
|
|
echo "Cloning $NAME repository..."
|
|
git clone https://github.com/oobabooga/text-generation-webui.git webui
|
|
|
|
echo "Running $NAME setup..."
|
|
|
|
# For some reasons theses want to reinstall torch for nvidia instead of using the download for rocm so manually install them
|
|
sed -i '/accelerate/d' webui/requirements_amd.txt
|
|
sed -i '/lm_eval/d' webui/requirements_amd.txt
|
|
sed -i '/optimum/d' webui/requirements_amd.txt
|
|
sed -i '/autoawq/d' webui/requirements_amd.txt
|
|
sed -i '/llama_cpp_python/d' webui/requirements_amd.txt
|
|
|
|
$python_exec -m pip install -r webui/requirements_amd.txt
|
|
|
|
# only works after requirements_amd.txt is installed ??!
|
|
$python_exec -m pip install accelerate optimum
|
|
$python_exec -m pip install https://github.com/casper-hansen/AutoAWQ_kernels/releases/download/v0.0.7/autoawq_kernels-0.0.7+rocm571-cp310-cp310-linux_x86_64.whl --no-deps
|
|
$python_exec -m pip install https://github.com/casper-hansen/AutoAWQ/releases/download/v0.2.6/autoawq-0.2.6-cp310-cp310-linux_x86_64.whl --no-deps
|
|
$python_exec -m pip install lm_eval
|
|
ln -s webui/models models
|
|
fi
|
|
|
|
}
|
|
|
|
# Main function
|
|
main() {
|
|
prepare_env
|
|
install
|
|
clean
|
|
echo "$NAME installation/update complete. Use ./run.sh to start"
|
|
}
|
|
|
|
# Run main function
|
|
main
|