Spaces:
Build error
Build error
# | |
# This script will automatically pull docker image from DockerHub, and start a daemon container to run the Qwen-Chat web-demo. | |
IMAGE_NAME=qwenllm/qwen-omni:2.5-cu121 | |
QWEN_CHECKPOINT_PATH=/path/to/Qwen2.5-Omni-7B | |
PORT=8901 | |
CONTAINER_NAME=qwen2.5-omni | |
FLASH_ATTN=0 | |
function usage() { | |
echo ' | |
Usage: bash docker/docker_web_demo.sh [-i IMAGE_NAME] -c [/path/to/Qwen-Instruct] [-n CONTAINER_NAME] [--port PORT] [--flash-attn2] | |
' | |
} | |
while [[ "$1" != "" ]]; do | |
case $1 in | |
-i | --image-name ) | |
shift | |
IMAGE_NAME=$1 | |
;; | |
-c | --checkpoint ) | |
shift | |
QWEN_CHECKPOINT_PATH=$1 | |
;; | |
-n | --container-name ) | |
shift | |
CONTAINER_NAME=$1 | |
;; | |
--port ) | |
shift | |
PORT=$1 | |
;; | |
--flash-attn2 ) | |
FLASH_ATTN=1 | |
;; | |
-h | --help ) | |
usage | |
exit 0 | |
;; | |
* ) | |
echo "Unknown argument ${1}" | |
exit 1 | |
;; | |
esac | |
shift | |
done | |
if [ ! -e ${QWEN_CHECKPOINT_PATH}/config.json ]; then | |
echo "Checkpoint config.json file not found in ${QWEN_CHECKPOINT_PATH}, exit." | |
exit 1 | |
fi | |
sudo docker pull ${IMAGE_NAME} || { | |
echo "Pulling image ${IMAGE_NAME} failed, exit." | |
exit 1 | |
} | |
WEB_DEMO_ARGS="--server-port 80 --server-name 0.0.0.0 -c /data/shared/Qwen/Qwen2.5-Omni-7B" | |
if [ ${FLASH_ATTN} -eq 1 ]; then | |
WEB_DEMO_ARGS+=" --flash-attn2" | |
fi | |
sudo docker run --gpus all -d --restart always --name ${CONTAINER_NAME} \ | |
-v /var/run/docker.sock:/var/run/docker.sock -p ${PORT}:80 \ | |
--mount type=bind,source=${QWEN_CHECKPOINT_PATH},target=/data/shared/Qwen/Qwen2.5-Omni-7B \ | |
-it ${IMAGE_NAME} \ | |
python web_demo.py ${WEB_DEMO_ARGS} && { | |
echo "Successfully started web demo. Open 'http://localhost:${PORT}' to try! | |
Run \`docker logs ${CONTAINER_NAME}\` to check demo status. | |
Run \`docker rm -f ${CONTAINER_NAME}\` to stop and remove the demo." | |
} |