-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(conda):Add seperate env for vllm (#1148)
**Description** This PR is related to #1117 **Notes for Reviewers** * The gRPC server can be started as normal * The test case can be triggered in VSCode * Same to other this kind of PRs, add `vllm.yml` Makefile and add `run.sh` to the main Dockerfile, and command to the main Makefile **[Signed commits](../CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin)** - [x] Yes, I signed my commits. <!-- Thank you for contributing to LocalAI! Contributing Conventions ------------------------- The draft above helps to give a quick overview of your PR. Remember to remove this comment and to at least: 1. Include descriptive PR titles with [<component-name>] prepended. We use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). 2. Build and test your changes before submitting a PR (`make build`). 3. Sign your commits 4. **Tag maintainer:** for a quicker response, tag the relevant maintainer (see below). 5. **X/Twitter handle:** we announce bigger features on X/Twitter. If your PR gets announced, and you'd like a mention, we'll gladly shout you out! By following the community's contribution conventions upfront, the review process will be accelerated and your PR merged more quickly. If no one reviews your PR within a few days, please @-mention @mudler. --> Signed-off-by: GitHub <[email protected]> Signed-off-by: Ettore Di Giacinto <[email protected]>
- Loading branch information
Showing
8 changed files
with
229 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
.PONY: vllm | ||
vllm: | ||
@echo "Creating virtual environment..." | ||
@conda env create --name vllm --file vllm.yml | ||
@echo "Virtual environment created." | ||
|
||
.PONY: run | ||
run: | ||
@echo "Running vllm..." | ||
bash run.sh | ||
@echo "vllm run." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Creating a separate environment for the vllm project | ||
|
||
``` | ||
make vllm | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
## | ||
## A bash script wrapper that runs the diffusers server with conda | ||
|
||
# Activate conda environment | ||
source activate vllm | ||
|
||
# get the directory where the bash script is located | ||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
|
||
python $DIR/backend_vllm.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import unittest | ||
import subprocess | ||
import time | ||
import backend_pb2 | ||
import backend_pb2_grpc | ||
|
||
import grpc | ||
|
||
import unittest | ||
import subprocess | ||
import time | ||
import grpc | ||
import backend_pb2_grpc | ||
import backend_pb2 | ||
|
||
class TestBackendServicer(unittest.TestCase): | ||
""" | ||
TestBackendServicer is the class that tests the gRPC service. | ||
This class contains methods to test the startup and shutdown of the gRPC service. | ||
""" | ||
def setUp(self): | ||
self.service = subprocess.Popen(["python", "backend_vllm.py", "--addr", "localhost:50051"]) | ||
|
||
def tearDown(self) -> None: | ||
self.service.terminate() | ||
self.service.wait() | ||
|
||
def test_server_startup(self): | ||
time.sleep(2) | ||
try: | ||
self.setUp() | ||
with grpc.insecure_channel("localhost:50051") as channel: | ||
stub = backend_pb2_grpc.BackendStub(channel) | ||
response = stub.Health(backend_pb2.HealthMessage()) | ||
self.assertEqual(response.message, b'OK') | ||
except Exception as err: | ||
print(err) | ||
self.fail("Server failed to start") | ||
finally: | ||
self.tearDown() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
name: vllm | ||
channels: | ||
- defaults | ||
dependencies: | ||
- _libgcc_mutex=0.1=main | ||
- _openmp_mutex=5.1=1_gnu | ||
- bzip2=1.0.8=h7b6447c_0 | ||
- ca-certificates=2023.08.22=h06a4308_0 | ||
- ld_impl_linux-64=2.38=h1181459_1 | ||
- libffi=3.4.4=h6a678d5_0 | ||
- libgcc-ng=11.2.0=h1234567_1 | ||
- libgomp=11.2.0=h1234567_1 | ||
- libstdcxx-ng=11.2.0=h1234567_1 | ||
- libuuid=1.41.5=h5eee18b_0 | ||
- ncurses=6.4=h6a678d5_0 | ||
- openssl=3.0.11=h7f8727e_2 | ||
- pip=23.2.1=py311h06a4308_0 | ||
- python=3.11.5=h955ad1f_0 | ||
- readline=8.2=h5eee18b_0 | ||
- setuptools=68.0.0=py311h06a4308_0 | ||
- sqlite=3.41.2=h5eee18b_0 | ||
- tk=8.6.12=h1ccaba5_0 | ||
- wheel=0.41.2=py311h06a4308_0 | ||
- xz=5.4.2=h5eee18b_0 | ||
- zlib=1.2.13=h5eee18b_0 | ||
- pip: | ||
- aiosignal==1.3.1 | ||
- anyio==3.7.1 | ||
- attrs==23.1.0 | ||
- certifi==2023.7.22 | ||
- charset-normalizer==3.3.0 | ||
- click==8.1.7 | ||
- cmake==3.27.6 | ||
- fastapi==0.103.2 | ||
- filelock==3.12.4 | ||
- frozenlist==1.4.0 | ||
- fsspec==2023.9.2 | ||
- grpcio==1.59.0 | ||
- h11==0.14.0 | ||
- httptools==0.6.0 | ||
- huggingface-hub==0.17.3 | ||
- idna==3.4 | ||
- jinja2==3.1.2 | ||
- jsonschema==4.19.1 | ||
- jsonschema-specifications==2023.7.1 | ||
- lit==17.0.2 | ||
- markupsafe==2.1.3 | ||
- mpmath==1.3.0 | ||
- msgpack==1.0.7 | ||
- networkx==3.1 | ||
- ninja==1.11.1 | ||
- numpy==1.26.0 | ||
- nvidia-cublas-cu11==11.10.3.66 | ||
- nvidia-cuda-cupti-cu11==11.7.101 | ||
- nvidia-cuda-nvrtc-cu11==11.7.99 | ||
- nvidia-cuda-runtime-cu11==11.7.99 | ||
- nvidia-cudnn-cu11==8.5.0.96 | ||
- nvidia-cufft-cu11==10.9.0.58 | ||
- nvidia-curand-cu11==10.2.10.91 | ||
- nvidia-cusolver-cu11==11.4.0.1 | ||
- nvidia-cusparse-cu11==11.7.4.91 | ||
- nvidia-nccl-cu11==2.14.3 | ||
- nvidia-nvtx-cu11==11.7.91 | ||
- packaging==23.2 | ||
- pandas==2.1.1 | ||
- protobuf==4.24.4 | ||
- psutil==5.9.5 | ||
- pyarrow==13.0.0 | ||
- pydantic==1.10.13 | ||
- python-dateutil==2.8.2 | ||
- python-dotenv==1.0.0 | ||
- pytz==2023.3.post1 | ||
- pyyaml==6.0.1 | ||
- ray==2.7.0 | ||
- referencing==0.30.2 | ||
- regex==2023.10.3 | ||
- requests==2.31.0 | ||
- rpds-py==0.10.4 | ||
- safetensors==0.4.0 | ||
- sentencepiece==0.1.99 | ||
- six==1.16.0 | ||
- sniffio==1.3.0 | ||
- starlette==0.27.0 | ||
- sympy==1.12 | ||
- tokenizers==0.14.1 | ||
- torch==2.0.1 | ||
- tqdm==4.66.1 | ||
- transformers==4.34.0 | ||
- triton==2.0.0 | ||
- typing-extensions==4.8.0 | ||
- tzdata==2023.3 | ||
- urllib3==2.0.6 | ||
- uvicorn==0.23.2 | ||
- uvloop==0.17.0 | ||
- vllm==0.2.0 | ||
- watchfiles==0.20.0 | ||
- websockets==11.0.3 | ||
- xformers==0.0.22 | ||
prefix: /opt/conda/envs/vllm |