You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.8 KiB
Bash
76 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
cd "$(dirname "$0")"
|
|
thisDir=$(pwd)
|
|
|
|
export INSTALL_DEPS=false
|
|
export INSTALL_FLASH_ATTN=false
|
|
|
|
declare -a PASS_THROUGH_ARGS=()
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-h | --help)
|
|
echo "Usage: $0 [-h|--help] [--install-deps] [--install-flash-attn]"
|
|
exit 0
|
|
;;
|
|
--install-deps)
|
|
export INSTALL_DEPS=true
|
|
shift
|
|
;;
|
|
--install-flash-attn)
|
|
export INSTALL_FLASH_ATTN=true
|
|
shift
|
|
;;
|
|
-)
|
|
shift
|
|
PASS_THROUGH_ARGS=($@)
|
|
break
|
|
;;
|
|
|
|
*)
|
|
echo "Unknown option: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo "INSTALL_DEPS: $INSTALL_DEPS"
|
|
echo "INSTALL_FLASH_ATTN: $INSTALL_FLASH_ATTN"
|
|
echo "PASS_THROUGH_ARGS: ${PASS_THROUGH_ARGS[@]}"
|
|
|
|
function performInstall() {
|
|
|
|
pushd "$thisDir"
|
|
pip3 install -r requirements.txt
|
|
pip3 install gradio mdtex2html scipy argparse
|
|
|
|
if $INSTALL_FLASH_ATTN; then
|
|
if [[ ! -d flash-attention ]]; then
|
|
if ! git clone -b v1.0.8 https://github.com/Dao-AILab/flash-attention; then
|
|
echo "Clone flash-attention failed, please install it manually."
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
cd flash-attention &&
|
|
pip3 install . &&
|
|
pip3 install csrc/layer_norm &&
|
|
pip3 install csrc/rotary ||
|
|
echo "Install flash-attention failed, please install it manually."
|
|
fi
|
|
|
|
popd
|
|
}
|
|
|
|
echo "Starting WebUI..."
|
|
|
|
if ! python3 web_demo.py ${PASS_THROUGH_ARGS[@]}; then
|
|
if $INSTALL_DEPS; then
|
|
echo "Installing deps, and try again..."
|
|
performInstall && python3 web_demo.py ${PASS_THROUGH_ARGS[@]}
|
|
else
|
|
echo "Please install deps manually, or use --install-deps to install deps automatically."
|
|
fi
|
|
fi
|