Compare commits

...
37 Commits
Author SHA1 Message Date
Marut PandyaandGitHub 2df915a145 Merge pull request #132 from runpod-workers/wc-uo
update worker-config
2024-11-20 14:54:45 -08:00
pandyamarut aadc025849 update worker-config
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-11-20 14:42:56 -08:00
Marut PandyaandGitHub 8b4a49073d Merge pull request #131 from runpod-workers/up-0.6.4
[Core]Update vllm-0.6.4
2024-11-20 10:37:46 -08:00
pandyamarut 4e10641d69 update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-11-19 12:14:04 -08:00
Marut PandyaandGitHub 6e8696c12a Merge pull request #121 from sven-knoblauch/lora-modules
add changes for lora adapter support and /v1/models endpoint
2024-10-31 15:07:02 -04:00
Marut PandyaandGitHub b49e81a75a Merge pull request #126 from runpod-workers/up-wc-1
update worker-config
2024-10-15 17:52:13 -07:00
pandyamarut 65932f85e1 update worker-config
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-10-15 17:47:58 -07:00
Marut PandyaandGitHub 94840cfbbb Update README.md 2024-10-15 17:38:31 -07:00
Marut PandyaandGitHub ce47c41f4a Merge pull request #125 from runpod-workers/up-0.6.3
update vllm
2024-10-15 17:04:20 -07:00
pandyamarut c03ecc42fe update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-10-15 16:49:41 -07:00
Dean QuiñanolaandGitHub ae56b9f43d Merge pull request #123 from runpod-workers/dependency-update-refactored 2024-10-13 20:23:33 -07:00
Dean QuiñanolaandGitHub 891699be1e Merge pull request #124 from runpod-workers/readme-correction 2024-10-13 20:23:05 -07:00
Dean QuiñanolaandGitHub c28aa02576 Update README.md
v1.5.0 not v15
2024-10-12 17:11:59 -07:00
Dean QuiñanolaandGitHub eba20c0704 Update CI-runpod_dep.yml
Dependency has changed to `runpod~=<version>` and not `runpod==<version>`
2024-10-12 16:47:31 -07:00
Sven Knoblauch 677a01e8f3 update code for case of no lora adapter 2024-10-09 14:51:33 +02:00
Sven Knoblauch 5cd12ba331 add changes for lora adapter support and /v1/models endpoint 2024-10-09 11:01:12 +02:00
Dean QuiñanolaandGitHub 850c686538 Merge pull request #120 from runpod-workers/runpod-v1.7-and-up
Update requirements.txt to support runpod-python 1.7.*
2024-10-08 10:52:20 -07:00
Dean QuiñanolaandGitHub de2876e659 Update requirements.txt 2024-10-08 10:48:10 -07:00
Marut PandyaandGitHub d3ee3236c0 Merge pull request #118 from runpod-workers/up-wc
update worker-config
2024-10-01 11:23:02 -07:00
pandyamarut 0781e93054 update worker-config
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-10-01 11:21:27 -07:00
Marut PandyaandGitHub 251e807012 Update README.md 2024-10-01 11:17:30 -07:00
Marut PandyaandGitHub 29346769ed Merge pull request #117 from runpod-workers/up-0.6.2
update vllm
2024-10-01 11:05:40 -07:00
pandyamarut 1420091588 update vll
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-27 19:23:50 -07:00
Marut PandyaandGitHub d46adeaee9 Merge pull request #110 from runpod-workers/up-0.6.1
update vllm v0.6.1
2024-09-16 15:12:50 -07:00
pandyamarut 5c0dca44bd update
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-16 15:01:21 -07:00
pandyamarut cc301ac123 update
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-16 15:00:01 -07:00
pandyamarut 2ac6a0108f update vllm v0.6.0
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-16 14:55:40 -07:00
Marut PandyaandGitHub b1554ea10f Merge pull request #109 from runpod-workers/0.5.5-update
[Update] Docs, bug fix.
2024-09-06 12:36:09 -07:00
pandyamarut 0d794a3914 fix
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-06 12:26:09 -07:00
pandyamarut 3dad3a754c update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-06 12:21:34 -07:00
Marut PandyaandGitHub 44cef385df Merge pull request #108 from runpod-workers/cmpl-htf
[Bug]fix oai completion api error
2024-09-06 11:06:33 -07:00
pandyamarut 814f50af38 fix oai completion api error
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-09-06 11:03:47 -07:00
Marut PandyaandGitHub f3a530b7fe Merge pull request #107 from runpod-workers/pandyamarut-patch-1
Update README.md
2024-08-28 23:32:48 -07:00
Marut PandyaandGitHub cdf78e7c89 Update README.md 2024-08-28 23:32:36 -07:00
Marut PandyaandGitHub ab40d9c9a8 Merge pull request #106 from runpod-workers/up-0.5.5
update vllm version 0.5.5
2024-08-28 23:31:15 -07:00
pandyamarut 3293245c81 update tags
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-08-28 23:28:39 -07:00
pandyamarut 5e1c8c8128 update vllm version 0.5.5
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-08-28 22:46:45 -07:00
8 changed files with 1026 additions and 851 deletions
+27 -10
View File
@@ -19,32 +19,49 @@ jobs:
- name: Check for new package version and update
run: |
# Get current version
current_version=$(grep -oP 'runpod==\K[^"]+' ./builder/requirements.txt)
echo "Fetching the current runpod version from requirements.txt..."
# Get current version, allowing both == and ~= in the search pattern
current_version=$(grep -oP 'runpod[~=]{1,2}\K[^"]+' ./builder/requirements.txt)
echo "Current version: $current_version"
# Get new version
# Extract major and minor from current version
current_major_minor=$(echo $current_version | cut -d. -f1,2)
echo "Current major.minor: $current_major_minor"
echo "Fetching the latest runpod version from PyPI..."
# Get new version from PyPI
new_version=$(curl -s https://pypi.org/pypi/runpod/json | jq -r .info.version)
echo "NEW_VERSION_ENV=$new_version" >> $GITHUB_ENV
echo "New version: $new_version"
# Extract major and minor from new version
new_major_minor=$(echo $new_version | cut -d. -f1,2)
echo "New major.minor: $new_major_minor"
if [ -z "$new_version" ]; then
echo "Failed to fetch the new version."
echo "ERROR: Failed to fetch the new version from PyPI."
exit 1
fi
# Check if the version is already up-to-date
if [ "$current_version" = "$new_version" ]; then
echo "The package version is already up-to-date."
# Check if the major or minor version is different
if [ "$current_major_minor" = "$new_major_minor" ]; then
echo "No update needed. The new version ($new_major_minor) is within the allowed range (~= $current_major_minor)."
exit 0
fi
# Update requirements.txt
sed -i "s/runpod==.*/runpod==$new_version/" ./builder/requirements.txt
echo "New major/minor detected ($new_major_minor). Updating requirements.txt..."
# Update requirements.txt, preserving the existing constraint type (~= or ==)
sed -i "s/runpod[~=][^ ]*/runpod~=$new_version/" ./builder/requirements.txt
echo "requirements.txt has been updated."
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update package version
commit-message: Update runpod package version
title: Update runpod package version
body: The package version has been updated to ${{ env.NEW_VERSION_ENV }}
branch: runpod-package-update
+1 -1
View File
@@ -12,7 +12,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \
python3 -m pip install --upgrade -r /requirements.txt
# Install vLLM (switching back to pip installs since issues that required building fork are fixed and space optimization is not as important since caching) and FlashInfer
RUN python3 -m pip install vllm==0.5.4 && \
RUN python3 -m pip install vllm==0.6.4 && \
python3 -m pip install flashinfer -i https://flashinfer.ai/whl/cu121/torch2.3
# Setup for Option 2: Building the Image with the Model included
+4 -4
View File
@@ -18,9 +18,9 @@ Deploy OpenAI-Compatible Blazing-Fast LLM Endpoints powered by the [vLLM](https:
### 1. UI for Deploying vLLM Worker on RunPod console:
![Demo of Deploying vLLM Worker on RunPod console with new UI](media/ui_demo.gif)
### 2. Worker vLLM `v1.2.0` with vLLM `0.5.4` now available under `stable` tags
### 2. Worker vLLM `v1.6.0` with vLLM `0.6.3` now available under `stable` tags
Update v1.2.0 is now available, use the image tag `runpod/worker-v1-vllm:v1.2.0stable-cuda12.1.0`.
Update v1.6.0 is now available, use the image tag `runpod/worker-v1-vllm:v1.6.0stable-cuda12.1.0`.
### 3. OpenAI-Compatible [Embedding Worker](https://github.com/runpod-workers/worker-infinity-embedding) Released
Deploy your own OpenAI-compatible Serverless Endpoint on RunPod with multiple embedding models and fast inference for RAG and more!
@@ -82,7 +82,7 @@ Below is a summary of the available RunPod Worker images, categorized by image s
| CUDA Version | Stable Image Tag | Development Image Tag | Note |
|--------------|-----------------------------------|-----------------------------------|----------------------------------------------------------------------|
| 12.1.0 | `runpod/worker-v1-vllm:stable-cuda12.1.0` | `runpod/worker-v1-vllm:dev-cuda12.1.0` | When creating an Endpoint, select CUDA Version 12.3, 12.2 and 12.1 in the filter. |
| 12.1.0 | `runpod/worker-v1-vllm:v1.6.0stable-cuda12.1.0` | `runpod/worker-v1-vllm:v1.6.0dev-cuda12.1.0` | When creating an Endpoint, select CUDA Version 12.3, 12.2 and 12.1 in the filter. |
@@ -600,4 +600,4 @@ The JSON consists of two main parts, schema and versions.
}
}
}
```
```
+3 -2
View File
@@ -1,10 +1,11 @@
ray
pandas
pyarrow
runpod==1.7.0
runpod~=1.7.0
huggingface-hub
packaging
typing-extensions==4.7.1
pydantic
pydantic-settings
hf-transfer
hf-transfer
transformers
+25 -12
View File
@@ -11,6 +11,8 @@ from vllm import AsyncLLMEngine
from vllm.entrypoints.openai.serving_chat import OpenAIServingChat
from vllm.entrypoints.openai.serving_completion import OpenAIServingCompletion
from vllm.entrypoints.openai.protocol import ChatCompletionRequest, CompletionRequest, ErrorResponse
from vllm.entrypoints.openai.serving_engine import BaseModelPath, LoRAModulePath
from utils import DummyRequest, JobInput, BatchSize, create_error_response
from constants import DEFAULT_MAX_CONCURRENCY, DEFAULT_BATCH_SIZE, DEFAULT_BATCH_SIZE_GROWTH_FACTOR, DEFAULT_MIN_BATCH_SIZE
@@ -121,25 +123,38 @@ class OpenAIvLLMEngine(vLLMEngine):
self.response_role = os.getenv("OPENAI_RESPONSE_ROLE") or "assistant"
asyncio.run(self._initialize_engines())
self.raw_openai_output = bool(int(os.getenv("RAW_OPENAI_OUTPUT", 1)))
async def _initialize_engines(self):
self.model_config = await self.llm.get_model_config()
self.base_model_paths = [
BaseModelPath(name=self.engine_args.model, model_path=self.engine_args.model)
]
lora_modules = os.getenv('LORA_MODULES', None)
if lora_modules is not None:
try:
lora_modules = json.loads(lora_modules)
lora_modules = [LoRAModulePath(**lora_modules)]
except:
lora_modules = None
self.chat_engine = OpenAIServingChat(
async_engine_client=self.llm,
engine_client=self.llm,
model_config=self.model_config,
served_model_names=[self.served_model_name],
base_model_paths=self.base_model_paths,
response_role=self.response_role,
chat_template=self.tokenizer.tokenizer.chat_template,
lora_modules=None,
lora_modules=lora_modules,
prompt_adapters=None,
request_logger=None
)
self.completion_engine = OpenAIServingCompletion(
async_engine_client=self.llm,
engine_client=self.llm,
model_config=self.model_config,
served_model_names=[self.served_model_name],
lora_modules=[],
base_model_paths=self.base_model_paths,
lora_modules=lora_modules,
prompt_adapters=None,
request_logger=None
)
@@ -155,9 +170,6 @@ class OpenAIvLLMEngine(vLLMEngine):
async def _handle_model_request(self):
models = await self.chat_engine.show_available_models()
fixed_model = models.data[0]
fixed_model.id = self.served_model_name
models.data = [fixed_model]
return models.model_dump()
async def _handle_chat_or_completion_request(self, openai_request: JobInput):
@@ -176,7 +188,8 @@ class OpenAIvLLMEngine(vLLMEngine):
yield create_error_response(str(e)).model_dump()
return
response_generator = await generator_function(request, raw_request=None)
dummy_request = DummyRequest()
response_generator = await generator_function(request, raw_request=dummy_request)
if not openai_request.openai_input.get("stream") or isinstance(response_generator, ErrorResponse):
yield response_generator.model_dump()
+2 -1
View File
@@ -88,7 +88,8 @@ DEFAULT_ARGS = {
"typical_acceptance_sampler_posterior_alpha": float(os.getenv('TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA', 0)) or None,
"qlora_adapter_name_or_path": os.getenv('QLORA_ADAPTER_NAME_OR_PATH', None),
"disable_logprobs_during_spec_decoding": os.getenv('DISABLE_LOGPROBS_DURING_SPEC_DECODING', None),
"otlp_traces_endpoint": os.getenv('OTLP_TRACES_ENDPOINT', None)
"otlp_traces_endpoint": os.getenv('OTLP_TRACES_ENDPOINT', None),
"use_v2_block_manager": os.getenv('USE_V2_BLOCK_MANAGER', 'true')
}
def match_vllm_args(args):
+9 -2
View File
@@ -3,6 +3,7 @@ import logging
from http import HTTPStatus
from functools import wraps
from time import time
from vllm.entrypoints.openai.protocol import RequestResponseMetadata
try:
from vllm.utils import random_uuid
@@ -47,11 +48,17 @@ class JobInput:
self.min_batch_size = int(min_batch_size) if min_batch_size else None
self.openai_route = job.get("openai_route")
self.openai_input = job.get("openai_input")
class DummyState:
def __init__(self):
self.request_metadata = None
class DummyRequest:
def __init__(self):
self.headers = {}
self.state = DummyState()
async def is_disconnected(self):
return False
class BatchSize:
def __init__(self, max_batch_size, min_batch_size, batch_size_growth_factor):
self.max_batch_size = max_batch_size
+955 -819
View File
File diff suppressed because it is too large Load Diff