LLM: add ui for portable-zip (#9262)

This commit is contained in:
Jin Qiao 2023-11-01 15:36:59 +08:00 committed by GitHub
parent 726203d778
commit 6a128aee32
5 changed files with 79 additions and 4 deletions

View file

@ -1,2 +1,4 @@
python-embed
bigdl-llm.zip
bigdl-llm.zip
*.log
*.json

View file

@ -0,0 +1,22 @@
# BigDL-LLM Portable Zip with Web-UI For Windows: User Guide
## Introduction
This portable zip includes everything you need to run an LLM with BigDL-LLM optimizations and chat with it in Web-UI. Please refer to [How to use](#how-to-use) section to get started.
### 6B model running on an Intel 11-Gen Core PC (real-time screen capture)
### Verified Models
- ChatGLM2-6b
## How to use
1. Download the zip from link [here]().
2. (Optional) You could also build the zip on your own. Run `setup.bat --ui` and it will generate the zip file.
3. Unzip `bigdl-llm.zip`.
4. Download the model to your computer.
5. Go into the unzipped folder and double click `chat-ui.bat`. Input the path of the model (e.g. `path\to\model`, note that there's no slash at the end of the path). Press Enter and wait until it shows `All service started. Visit 127.0.0.1:7860 in browser to chat.`. Do NOT close the terminal window!
6. Visit `127.0.0.1:7860` in your browser and enjoy chatting!
7. If you want to stop the program, just close the terminal window.

View file

@ -0,0 +1,36 @@
@echo off
set /p modelpath="Please enter the model path: "
powershell -Command "Start-Process -FilePath PowerShell -ArgumentList '-Command', '& { .\python-embed\python.exe -m fastchat.serve.controller > zip_controller.log 2>&1 }' -NoNewWindow"
timeout /t 1 /nobreak >nul 2>&1
:loop1
powershell -Command "$output = Get-Content zip_controller.log; if($null -eq $output -or !($output | Select-String -Pattern 'Uvicorn running on')) { exit 1 } else { exit 0 }"
if errorlevel 1 (
timeout /t 1 /nobreak >nul 2>&1
goto loop1
)
echo [1/3] Controller started successfully
powershell -Command "Start-Process -FilePath PowerShell -ArgumentList '-Command', '& { .\python-embed\python.exe -m bigdl.llm.serving.model_worker --model-path %modelpath% --device cpu > zip_model_worker.log 2>&1 }' -NoNewWindow"
timeout /t 1 /nobreak >nul 2>&1
:loop2
powershell -Command "$output = Get-Content zip_model_worker.log; if($null -eq $output -or !($output | Select-String -Pattern 'Uvicorn running on')) { exit 1 } else { exit 0 }"
if errorlevel 1 (
timeout /t 1 /nobreak >nul 2>&1
goto loop2
)
echo [2/3] Model worker started successfully
powershell -Command "Start-Process -FilePath PowerShell -ArgumentList '-Command', '& { .\python-embed\python.exe -m fastchat.serve.gradio_web_server > zip_web_server.log 2>&1 }' -NoNewWindow"
timeout /t 1 /nobreak >nul 2>&1
:loop3
powershell -Command "$output = Get-Content zip_web_server.log; if($null -eq $output -or !($output | Select-String -Pattern 'Running on local URL')) { exit 1 } else { exit 0 }"
if errorlevel 1 (
timeout /t 1 /nobreak >nul 2>&1
goto loop3
)
echo [3/3] Web server started successfully
echo All service started. Visit 127.0.0.1:7860 in browser to chat.
timeout /t -1 /nobreak >nul 2>&1

View file

@ -17,7 +17,16 @@ powershell -Command "(gc python39._pth) -replace '%search%', '%replace%' | Out-F
cd ..
:: install pip packages
%python-embed% -m pip install bigdl-llm[all] transformers_stream_generator tiktoken einops colorama
%python-embed% -m pip install --pre --upgrade bigdl-llm[all]
%python-embed% -m pip install transformers_stream_generator tiktoken einops colorama
if "%1"=="--ui" (
%python-embed% -m pip install --pre --upgrade bigdl-llm[serving]
)
:: compress the python and scripts
powershell -Command "Compress-Archive -Path '.\python-embed', '.\chat.bat', '.\chat.py', '.\README.md' -DestinationPath .\bigdl-llm.zip"
if "%1"=="--ui" (
powershell -Command "Compress-Archive -Path '.\python-embed', '.\chat-ui.bat', '.\README.md' -DestinationPath .\bigdl-llm-ui.zip"
) else (
powershell -Command "Compress-Archive -Path '.\python-embed', '.\chat.bat', '.\chat.py', '.\README.md' -DestinationPath .\bigdl-llm.zip"
)

View file

@ -2,4 +2,10 @@
# How to use
Just simply run `setup.bat` and it will download and install all dependency and generate `bigdl-llm.zip` for user to use.
## Build Portable Zip without Web-UI
Run `setup.bat` to generate portable zip without Web-UI. It will download and install all dependency and generate `bigdl-llm.zip` for user to use.
## Build Portable Zip with Web-UI
Run `setup.bat --ui` to generate portable zip with Web-UI. It will download and install all dependency and generate `bigdl-llm.zip` for user to use.