Compare commits

...
57 Commits
Author SHA1 Message Date
Marut PandyaandGitHub e807342e90 Merge pull request #178 from runpod-workers/up-0.8.4
update vllm
2025-04-21 13:15:03 -07:00
pandyamarut f33e8d2bcd update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-04-21 13:14:32 -07:00
Marut PandyaandGitHub 6b64bb93bd Merge pull request #147 from mohamednaji7/BitsAndBytes
completing the "bitsandbytes" option - based on  https://docs.vllm.ai/en/stable/quantization/bnb.html
2025-04-21 11:39:53 -07:00
Marut PandyaandGitHub d77c53c3b7 Merge pull request #175 from runpod-workers/up-0.8.3
update vllm
2025-04-07 11:58:03 -07:00
pandyamarut 3d067cd472 update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-04-07 11:54:57 -07:00
Marut PandyaandGitHub f1360ccae7 Merge pull request #173 from KAJdev/patch-1
Update hub.json
2025-04-03 14:52:06 -07:00
Marut PandyaandGitHub 96f1b86126 Merge pull request #174 from KAJdev/patch-2
Update tests.json
2025-04-03 10:14:49 -07:00
Ezekiel WotringandGitHub 3a095f3e10 Update tests.json 2025-04-03 09:10:01 -08:00
Ezekiel WotringandGitHub 7cf7f3e4e6 Update hub.json 2025-04-03 09:04:28 -08:00
Marut PandyaandGitHub 4395d0c67b Update hub.json 2025-04-03 08:10:28 -07:00
Marut PandyaandGitHub 5864fa6843 Update hub.json 2025-03-31 15:55:35 -07:00
Marut PandyaandGitHub 067f0bc173 Update tests.json 2025-03-31 15:49:31 -07:00
Marut PandyaandGitHub 0869068e7c Create tests.json 2025-03-31 15:32:06 -07:00
Marut PandyaandGitHub 19f25b17de Update hub.json 2025-03-31 15:14:40 -07:00
Marut PandyaandGitHub 70aa748c30 Update hub.json 2025-03-31 15:14:24 -07:00
Marut PandyaandGitHub da3e5f524b Merge pull request #171 from runpod-workers/update
update vllm 0.8.2
2025-03-26 15:56:04 -07:00
pandyamarut acbdf63de8 update vllm 0.8.2
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-03-26 15:55:30 -07:00
Hailong YangandGitHub fa31d9663d Update README.md 2025-03-11 22:24:22 -04:00
Marut PandyaandGitHub b8fb313483 Merge pull request #168 from runpod-workers/wc-up
update worker config
2025-03-11 12:23:22 -07:00
pandyamarut 9635daf336 update worker config
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-03-11 12:22:53 -07:00
Marut PandyaandGitHub fb4e700090 Merge pull request #166 from KAJdev/patch-1
Create hub.json
2025-03-10 12:14:47 -07:00
Marut PandyaandGitHub d4872ed9c8 Merge pull request #167 from runpod-workers/rachfop-patch-1
Update requirements.txt
2025-03-10 12:13:47 -07:00
Patrick RachfordandGitHub b2eef50c3b Update requirements.txt
Use the latest runpod version from here:
https://github.com/runpod/runpod-python/releases/tag/1.7.7
2025-03-10 08:46:28 -07:00
Ezekiel WotringandGitHub 8005bcc1a8 fix description 2025-03-07 13:22:34 -09:00
Ezekiel WotringandGitHub aa7b00ddda Create hub.json 2025-03-07 13:20:52 -09:00
Marut PandyaandGitHub dc6f3239bd Update README.md 2025-02-24 18:39:14 -08:00
Marut PandyaandGitHub f9d0fcb78c Merge pull request #165 from runpod-workers/hfix
[HF]: set default max_token size
2025-02-24 17:24:50 -08:00
pandyamarut 99b952e55e set default max_token size
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-02-24 17:22:44 -08:00
Marut PandyaandGitHub 389fad7952 Merge pull request #164 from runpod-workers/up-0.7.3
update vllm
2025-02-24 15:08:02 -08:00
pandyamarut 56dc4ad075 update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-02-24 15:01:45 -08:00
Marut PandyaandGitHub 6dcf39e159 Merge pull request #161 from runpod-workers/revert-157-m-c
Revert "Enabling model caching."
2025-02-18 14:33:27 -08:00
Marut PandyaandGitHub 2b1d618287 Revert "Enabling model caching." 2025-02-18 10:45:47 -08:00
Marut PandyaandGitHub d7e9c49fe4 Merge pull request #160 from runpod-workers/up-0.7.2
update vllm
2025-02-11 13:59:18 -08:00
pandyamarut c9791f1163 update vllm
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-02-11 13:27:57 -08:00
Marut PandyaandGitHub 6fc770415d Merge pull request #157 from runpod-workers/m-c
Enabling model caching.
2025-02-06 11:52:19 -08:00
Mohamed NagyandGitHub 04288240f6 updating the . in ['awq', 'squeezellm', 'gptq'. 'bitsandbytes'] for the QUNATIZATION row 2025-02-02 14:58:48 +02:00
Marut PandyaandGitHub 9e8d9196b0 Merge pull request #154 from runpod-workers/fx-eng
update engine.py
2025-01-28 21:40:26 -08:00
pandyamarut 30dd7c1eb5 update engine.py
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-01-28 21:40:00 -08:00
Marut PandyaandGitHub aa7c37ffb0 Merge pull request #152 from runpod-workers/fix0.7.0-1
update oai serving classes
2025-01-28 20:58:40 -08:00
pandyamarut dc8c88027a update serving classes
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-01-28 20:58:07 -08:00
Marut PandyaandGitHub a948e90caa Merge pull request #151 from runpod-workers/fix0.7.0
dynamic lora loading
2025-01-28 19:02:59 -08:00
pandyamarut c703254f71 dynamic lora loading
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-01-28 19:00:57 -08:00
Marut PandyaandGitHub 2747106403 Merge pull request #150 from runpod-workers/up-0.7.0
update vllm 0.7.0
2025-01-28 14:27:37 -08:00
pandyamarut 91ed30e9a2 update readme
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-01-28 14:21:33 -08:00
pandyamarut fcbfe84f63 update vllm 0.7.0
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2025-01-28 14:18:10 -08:00
Marut PandyaandGitHub 610429df23 Merge pull request #143 from sihamouda/main
Add limit_mm_per_prompt engine argument for multimodels input
2025-01-27 16:41:47 -08:00
Hailong Yang a578c6df23 update docker file 2025-01-26 23:28:27 -05:00
Mohamed NagyandGitHub 9299f43b8b solving "typing_extensions" compatibility with "bitsandbytes"
```
2025-01-22 18:04:01 [INFO] > [stage-0 5/8] RUN --mount=type=cache,target=/root/.cache/pip python3 -m pip install --upgrade pip && python3 -m pip install --upgrade -r /requirements.txt:
2025-01-22 18:04:01 [INFO] #13 8.904
2025-01-22 18:04:01 [INFO] #13 8.904 The conflict is caused by:
2025-01-22 18:04:01 [INFO] #13 8.904 The user requested typing-extensions==4.7.1
2025-01-22 18:04:01 [INFO] #13 8.904 bitsandbytes 0.45.0 depends on typing_extensions>=4.8.0
```
2025-01-22 18:06:46 +02:00
mohamednaji7 131c17569f correct access to "args" dictionary 2025-01-21 22:33:28 +02:00
mohamednaji7 8882f6d50b adding 'bitsandbytes' to QUANTIZATION 2025-01-21 14:46:40 +02:00
mohamednaji7 331bc30101 adding 'bitsandbytes' option 2025-01-21 14:08:37 +02:00
mohamednaji7 a27f72a33a inforce args.quantization for bnb load_froamt 2025-01-21 14:01:32 +02:00
mohamednaji7 7167985f23 including bitsandbytes "src:https://docs.vllm.ai/en/stable/quantization/bnb.html" 2025-01-21 13:49:36 +02:00
sihamouda 0e3359a70e add engine argument for multimodels input 2025-01-19 02:44:39 +01:00
Marut PandyaandGitHub 3f0a20d28e Merge pull request #141 from runpod-workers/main
Rebase
2025-01-02 20:49:48 -08:00
pandyamarut 6c6bf50379 update env
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-11-22 15:14:57 -08:00
pandyamarut 27a2ee5754 add model cache
Signed-off-by: pandyamarut <pandyamarut@gmail.com>
2024-11-22 13:11:12 -08:00
10 changed files with 1445 additions and 42 deletions
+1016
View File
File diff suppressed because it is too large Load Diff
+44
View File
@@ -0,0 +1,44 @@
{
"tests": [
{
"name": "basic_inference_test",
"input": {
"prompt": "Write a short poem about artificial intelligence."
},
"timeout": 30000
}
],
"config": {
"gpuTypeId": "NVIDIA GeForce RTX 4090",
"gpuCount": 1,
"env": [
{
"key": "MODEL_NAME",
"value": "facebook/opt-350m"
},
{
"key": "HF_TOKEN",
"value": "hf_dummy_token_for_testing_purposes_only"
},
{
"key": "MAX_MODEL_LEN",
"value": "8192"
},
{
"key": "GPU_MEMORY_UTILIZATION",
"value": "0.95"
}
],
"allowedCudaVersions": [
"12.7",
"12.6",
"12.5",
"12.4",
"12.3",
"12.2",
"12.1",
"12.0",
"11.7"
]
}
}
+2 -2
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.6.6.post1 && \
RUN python3 -m pip install vllm==0.8.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
@@ -32,7 +32,7 @@ ENV MODEL_NAME=$MODEL_NAME \
HF_DATASETS_CACHE="${BASE_PATH}/huggingface-cache/datasets" \
HUGGINGFACE_HUB_CACHE="${BASE_PATH}/huggingface-cache/hub" \
HF_HOME="${BASE_PATH}/huggingface-cache/hub" \
HF_HUB_ENABLE_HF_TRANSFER=1
HF_HUB_ENABLE_HF_TRANSFER=0
ENV PYTHONPATH="/:/vllm-workspace"
+25 -9
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.8.0` with vLLM `0.6.6` now available under `stable` tags
### 2. Worker vLLM `v2.4.0` with vLLM `0.8.4` now available under `stable` tags
Update v1.8.0 is now available, use the image tag `runpod/worker-v1-vllm:v1.8.0stable-cuda12.1.0`.
Update v2.3.0 is now available, use the image tag `runpod/worker-v1-vllm:v2.4.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:v1.8.0stable-cuda12.1.0` | `runpod/worker-v1-vllm:v1.8.0dev-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:v2.4.0stable-cuda12.1.0` | `runpod/worker-v1-vllm:v2.4.0dev-cuda12.1.0` | When creating an Endpoint, select CUDA Version 12.3, 12.2 and 12.1 in the filter. |
@@ -125,7 +125,7 @@ Below is a summary of the available RunPod Worker images, categorized by image s
| `MAX_NUM_SEQS` | 256 | `int` | Maximum number of sequences per iteration. |
| `MAX_LOGPROBS` | 20 | `int` | Max number of log probs to return when logprobs is specified in SamplingParams. |
| `DISABLE_LOG_STATS` | False | `bool` | Disable logging statistics. |
| `QUANTIZATION` | None | ['awq', 'squeezellm', 'gptq'] | Method used to quantize the weights. |
| `QUANTIZATION` | None | ['awq', 'squeezellm', 'gptq', 'bitsandbytes'] | Method used to quantize the weights. |
| `ROPE_SCALING` | None | `dict` | RoPE scaling configuration in JSON format. |
| `ROPE_THETA` | None | `float` | RoPE theta. Use with rope_scaling. |
| `TOKENIZER_POOL_SIZE` | 0 | `int` | Size of tokenizer pool to use for asynchronous tokenization. |
@@ -488,7 +488,15 @@ The prompt string can be any string, and the model's chat template will not be a
Example:
```json
"prompt": "..."
{
"input": {
"prompt": "why sky is blue?",
"sampling_params": {
"temperature": 0.7,
"max_tokens": 100
}
}
}
```
2. `messages`
Your list can contain any number of messages, and each message usually can have any role from the following list:
@@ -502,20 +510,28 @@ Your list can contain any number of messages, and each message usually can have
Example:
```json
{
"input": {
"messages": [
{
"role": "system",
"content": "..."
"content": "You are a helpful AI assistant that provides clear and concise responses."
},
{
"role": "user",
"content": "..."
"content": "Can you explain the difference between supervised and unsupervised learning?"
},
{
"role": "assistant",
"content": "..."
"content": "Sure! Supervised learning uses labeled data, meaning each input has a corresponding correct output. The model learns by mapping inputs to known outputs. In contrast, unsupervised learning works with unlabeled data, where the model identifies patterns, structures, or clusters without predefined answers."
}
],
"sampling_params": {
"temperature": 0.7,
"max_tokens": 100
}
}
}
]
```
</details>
+3 -2
View File
@@ -1,11 +1,12 @@
ray
pandas
pyarrow
runpod~=1.7.0
runpod~=1.7.7
huggingface-hub
packaging
typing-extensions==4.7.1
typing-extensions>=4.8.0
pydantic
pydantic-settings
hf-transfer
transformers
bitsandbytes>=0.45.0
+1 -1
View File
@@ -7,7 +7,7 @@ variable "REPOSITORY" {
}
variable "BASE_IMAGE_VERSION" {
default = "stable"
default = "v2.4.0stable"
}
group "all" {
+21 -13
View File
@@ -4,14 +4,15 @@ import json
import asyncio
from dotenv import load_dotenv
from typing import AsyncGenerator
from typing import AsyncGenerator, Optional
import time
from vllm import AsyncLLMEngine
from vllm.entrypoints.logger import RequestLogger
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 vllm.entrypoints.openai.serving_models import BaseModelPath, LoRAModulePath, OpenAIServingModels
from utils import DummyRequest, JobInput, BatchSize, create_error_response
@@ -138,28 +139,35 @@ class OpenAIvLLMEngine(vLLMEngine):
except:
lora_modules = None
self.serving_models = OpenAIServingModels(
engine_client=self.llm,
model_config=self.model_config,
base_model_paths=self.base_model_paths,
lora_modules=None,
prompt_adapters=None,
)
self.chat_engine = OpenAIServingChat(
engine_client=self.llm,
model_config=self.model_config,
base_model_paths=self.base_model_paths,
models=self.serving_models,
response_role=self.response_role,
request_logger=None,
chat_template=self.tokenizer.tokenizer.chat_template,
chat_template_content_format="auto",
# enable_reasoning=os.getenv('ENABLE_REASONING', 'false').lower() == 'true',
# reasoning_parser=None,
# return_token_as_token_ids=False,
enable_auto_tools=os.getenv('ENABLE_AUTO_TOOL_CHOICE', 'false').lower() == 'true',
tool_parser=os.getenv('TOOL_CALL_PARSER', "") or None,
lora_modules=lora_modules,
prompt_adapters=None,
chat_template_content_format="auto",
request_logger=None
enable_prompt_tokens_details=False
)
self.completion_engine = OpenAIServingCompletion(
engine_client=self.llm,
model_config=self.model_config,
base_model_paths=self.base_model_paths,
lora_modules=lora_modules,
prompt_adapters=None,
request_logger=None
models=self.serving_models,
request_logger=None,
# return_token_as_token_ids=False,
)
async def generate(self, openai_request: JobInput):
@@ -172,7 +180,7 @@ class OpenAIvLLMEngine(vLLMEngine):
yield create_error_response("Invalid route").model_dump()
async def _handle_model_request(self):
models = await self.chat_engine.show_available_models()
models = await self.serving_models.show_available_models()
return models.model_dump()
async def _handle_chat_or_completion_request(self, openai_request: JobInput):
+5 -1
View File
@@ -4,6 +4,7 @@ import logging
from torch.cuda import device_count
from vllm import AsyncEngineArgs
from vllm.model_executor.model_loader.tensorizer import TensorizerConfig
from src.utils import convert_limit_mm_per_prompt
RENAME_ARGS_MAP = {
"MODEL_NAME": "model",
@@ -89,7 +90,7 @@ DEFAULT_ARGS = {
"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),
"use_v2_block_manager": os.getenv('USE_V2_BLOCK_MANAGER', 'true')
"use_v2_block_manager": os.getenv('USE_V2_BLOCK_MANAGER', 'true'),
}
def match_vllm_args(args):
@@ -147,6 +148,9 @@ def get_engine_args():
# Rename and match to vllm args
args = match_vllm_args(args)
if args.get("load_format") == "bitsandbytes":
args["quantization"] = args["load_format"]
# Set tensor parallel size and max parallel loading workers if more than 1 GPU is available
num_gpus = device_count()
if num_gpus > 1:
+9 -1
View File
@@ -15,6 +15,10 @@ except ImportError:
logging.basicConfig(level=logging.INFO)
def convert_limit_mm_per_prompt(input_string: str):
key, value = input_string.split('=')
return {key: int(value)}
def count_physical_cores():
with open('/proc/cpuinfo') as f:
content = f.readlines()
@@ -40,7 +44,11 @@ class JobInput:
self.max_batch_size = job.get("max_batch_size")
self.apply_chat_template = job.get("apply_chat_template", False)
self.use_openai_format = job.get("use_openai_format", False)
self.sampling_params = SamplingParams(**job.get("sampling_params", {}))
samp_param = job.get("sampling_params", {})
if "max_tokens" not in samp_param:
samp_param["max_tokens"] = 100
self.sampling_params = SamplingParams(**samp_param)
# self.sampling_params = SamplingParams(max_tokens=100, **job.get("sampling_params", {}))
self.request_id = random_uuid()
batch_size_growth_factor = job.get("batch_size_growth_factor")
self.batch_size_growth_factor = float(batch_size_growth_factor) if batch_size_growth_factor else None
+308 -2
View File
@@ -1,5 +1,249 @@
{
"versions": {
"0.8.4": {
"imageName": "runpod/worker-v1-vllm:v2.4.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
"categories": [
{
"title": "LLM Settings",
"settings": [
"TOKENIZER", "TOKENIZER_MODE", "SKIP_TOKENIZER_INIT", "TRUST_REMOTE_CODE",
"DOWNLOAD_DIR", "LOAD_FORMAT", "DTYPE", "KV_CACHE_DTYPE", "QUANTIZATION_PARAM_PATH",
"MAX_MODEL_LEN", "GUIDED_DECODING_BACKEND", "DISTRIBUTED_EXECUTOR_BACKEND",
"WORKER_USE_RAY", "RAY_WORKERS_USE_NSIGHT", "PIPELINE_PARALLEL_SIZE",
"TENSOR_PARALLEL_SIZE", "MAX_PARALLEL_LOADING_WORKERS", "ENABLE_PREFIX_CACHING",
"DISABLE_SLIDING_WINDOW", "NUM_LOOKAHEAD_SLOTS",
"SEED", "NUM_GPU_BLOCKS_OVERRIDE", "MAX_NUM_BATCHED_TOKENS", "MAX_NUM_SEQS",
"MAX_LOGPROBS", "DISABLE_LOG_STATS", "QUANTIZATION", "ROPE_SCALING", "ROPE_THETA",
"TOKENIZER_POOL_SIZE", "TOKENIZER_POOL_TYPE", "TOKENIZER_POOL_EXTRA_CONFIG",
"ENABLE_LORA", "MAX_LORAS", "MAX_LORA_RANK", "LORA_EXTRA_VOCAB_SIZE",
"LORA_DTYPE", "LONG_LORA_SCALING_FACTORS", "MAX_CPU_LORAS", "FULLY_SHARDED_LORAS",
"DEVICE", "SCHEDULER_DELAY_FACTOR", "ENABLE_CHUNKED_PREFILL", "SPECULATIVE_MODEL",
"NUM_SPECULATIVE_TOKENS", "SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE",
"SPECULATIVE_MAX_MODEL_LEN", "SPECULATIVE_DISABLE_BY_BATCH_SIZE",
"NGRAM_PROMPT_LOOKUP_MAX", "NGRAM_PROMPT_LOOKUP_MIN", "SPEC_DECODING_ACCEPTANCE_METHOD",
"TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_THRESHOLD", "TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA",
"MODEL_LOADER_EXTRA_CONFIG", "PREEMPTION_MODE", "PREEMPTION_CHECK_PERIOD",
"PREEMPTION_CPU_CAPACITY", "MAX_LOG_LEN", "DISABLE_LOGGING_REQUEST",
"ENABLE_AUTO_TOOL_CHOICE", "TOOL_CALL_PARSER"
]
},
{
"title": "Tokenizer Settings",
"settings": [
"TOKENIZER_NAME", "TOKENIZER_REVISION", "CUSTOM_CHAT_TEMPLATE"
]
},
{
"title": "System Settings",
"settings": [
"GPU_MEMORY_UTILIZATION", "MAX_PARALLEL_LOADING_WORKERS", "BLOCK_SIZE",
"SWAP_SPACE", "ENFORCE_EAGER", "MAX_SEQ_LEN_TO_CAPTURE", "DISABLE_CUSTOM_ALL_REDUCE"
]
},
{
"title": "Streaming Settings",
"settings": [
"DEFAULT_BATCH_SIZE", "DEFAULT_MIN_BATCH_SIZE", "DEFAULT_BATCH_SIZE_GROWTH_FACTOR"
]
},
{
"title": "OpenAI Settings",
"settings": [
"RAW_OPENAI_OUTPUT", "OPENAI_RESPONSE_ROLE", "OPENAI_SERVED_MODEL_NAME_OVERRIDE"
]
},
{
"title": "Serverless Settings",
"settings": [
"MAX_CONCURRENCY", "DISABLE_LOG_STATS", "DISABLE_LOG_REQUESTS"
]
}
]
},
"0.8.3": {
"imageName": "runpod/worker-v1-vllm:v2.3.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
"categories": [
{
"title": "LLM Settings",
"settings": [
"TOKENIZER", "TOKENIZER_MODE", "SKIP_TOKENIZER_INIT", "TRUST_REMOTE_CODE",
"DOWNLOAD_DIR", "LOAD_FORMAT", "DTYPE", "KV_CACHE_DTYPE", "QUANTIZATION_PARAM_PATH",
"MAX_MODEL_LEN", "GUIDED_DECODING_BACKEND", "DISTRIBUTED_EXECUTOR_BACKEND",
"WORKER_USE_RAY", "RAY_WORKERS_USE_NSIGHT", "PIPELINE_PARALLEL_SIZE",
"TENSOR_PARALLEL_SIZE", "MAX_PARALLEL_LOADING_WORKERS", "ENABLE_PREFIX_CACHING",
"DISABLE_SLIDING_WINDOW", "NUM_LOOKAHEAD_SLOTS",
"SEED", "NUM_GPU_BLOCKS_OVERRIDE", "MAX_NUM_BATCHED_TOKENS", "MAX_NUM_SEQS",
"MAX_LOGPROBS", "DISABLE_LOG_STATS", "QUANTIZATION", "ROPE_SCALING", "ROPE_THETA",
"TOKENIZER_POOL_SIZE", "TOKENIZER_POOL_TYPE", "TOKENIZER_POOL_EXTRA_CONFIG",
"ENABLE_LORA", "MAX_LORAS", "MAX_LORA_RANK", "LORA_EXTRA_VOCAB_SIZE",
"LORA_DTYPE", "LONG_LORA_SCALING_FACTORS", "MAX_CPU_LORAS", "FULLY_SHARDED_LORAS",
"DEVICE", "SCHEDULER_DELAY_FACTOR", "ENABLE_CHUNKED_PREFILL", "SPECULATIVE_MODEL",
"NUM_SPECULATIVE_TOKENS", "SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE",
"SPECULATIVE_MAX_MODEL_LEN", "SPECULATIVE_DISABLE_BY_BATCH_SIZE",
"NGRAM_PROMPT_LOOKUP_MAX", "NGRAM_PROMPT_LOOKUP_MIN", "SPEC_DECODING_ACCEPTANCE_METHOD",
"TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_THRESHOLD", "TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA",
"MODEL_LOADER_EXTRA_CONFIG", "PREEMPTION_MODE", "PREEMPTION_CHECK_PERIOD",
"PREEMPTION_CPU_CAPACITY", "MAX_LOG_LEN", "DISABLE_LOGGING_REQUEST",
"ENABLE_AUTO_TOOL_CHOICE", "TOOL_CALL_PARSER"
]
},
{
"title": "Tokenizer Settings",
"settings": [
"TOKENIZER_NAME", "TOKENIZER_REVISION", "CUSTOM_CHAT_TEMPLATE"
]
},
{
"title": "System Settings",
"settings": [
"GPU_MEMORY_UTILIZATION", "MAX_PARALLEL_LOADING_WORKERS", "BLOCK_SIZE",
"SWAP_SPACE", "ENFORCE_EAGER", "MAX_SEQ_LEN_TO_CAPTURE", "DISABLE_CUSTOM_ALL_REDUCE"
]
},
{
"title": "Streaming Settings",
"settings": [
"DEFAULT_BATCH_SIZE", "DEFAULT_MIN_BATCH_SIZE", "DEFAULT_BATCH_SIZE_GROWTH_FACTOR"
]
},
{
"title": "OpenAI Settings",
"settings": [
"RAW_OPENAI_OUTPUT", "OPENAI_RESPONSE_ROLE", "OPENAI_SERVED_MODEL_NAME_OVERRIDE"
]
},
{
"title": "Serverless Settings",
"settings": [
"MAX_CONCURRENCY", "DISABLE_LOG_STATS", "DISABLE_LOG_REQUESTS"
]
}
]
},
"0.8.2": {
"imageName": "runpod/worker-v1-vllm:v2.2.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
"categories": [
{
"title": "LLM Settings",
"settings": [
"TOKENIZER", "TOKENIZER_MODE", "SKIP_TOKENIZER_INIT", "TRUST_REMOTE_CODE",
"DOWNLOAD_DIR", "LOAD_FORMAT", "DTYPE", "KV_CACHE_DTYPE", "QUANTIZATION_PARAM_PATH",
"MAX_MODEL_LEN", "GUIDED_DECODING_BACKEND", "DISTRIBUTED_EXECUTOR_BACKEND",
"WORKER_USE_RAY", "RAY_WORKERS_USE_NSIGHT", "PIPELINE_PARALLEL_SIZE",
"TENSOR_PARALLEL_SIZE", "MAX_PARALLEL_LOADING_WORKERS", "ENABLE_PREFIX_CACHING",
"DISABLE_SLIDING_WINDOW", "NUM_LOOKAHEAD_SLOTS",
"SEED", "NUM_GPU_BLOCKS_OVERRIDE", "MAX_NUM_BATCHED_TOKENS", "MAX_NUM_SEQS",
"MAX_LOGPROBS", "DISABLE_LOG_STATS", "QUANTIZATION", "ROPE_SCALING", "ROPE_THETA",
"TOKENIZER_POOL_SIZE", "TOKENIZER_POOL_TYPE", "TOKENIZER_POOL_EXTRA_CONFIG",
"ENABLE_LORA", "MAX_LORAS", "MAX_LORA_RANK", "LORA_EXTRA_VOCAB_SIZE",
"LORA_DTYPE", "LONG_LORA_SCALING_FACTORS", "MAX_CPU_LORAS", "FULLY_SHARDED_LORAS",
"DEVICE", "SCHEDULER_DELAY_FACTOR", "ENABLE_CHUNKED_PREFILL", "SPECULATIVE_MODEL",
"NUM_SPECULATIVE_TOKENS", "SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE",
"SPECULATIVE_MAX_MODEL_LEN", "SPECULATIVE_DISABLE_BY_BATCH_SIZE",
"NGRAM_PROMPT_LOOKUP_MAX", "NGRAM_PROMPT_LOOKUP_MIN", "SPEC_DECODING_ACCEPTANCE_METHOD",
"TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_THRESHOLD", "TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA",
"MODEL_LOADER_EXTRA_CONFIG", "PREEMPTION_MODE", "PREEMPTION_CHECK_PERIOD",
"PREEMPTION_CPU_CAPACITY", "MAX_LOG_LEN", "DISABLE_LOGGING_REQUEST",
"ENABLE_AUTO_TOOL_CHOICE", "TOOL_CALL_PARSER"
]
},
{
"title": "Tokenizer Settings",
"settings": [
"TOKENIZER_NAME", "TOKENIZER_REVISION", "CUSTOM_CHAT_TEMPLATE"
]
},
{
"title": "System Settings",
"settings": [
"GPU_MEMORY_UTILIZATION", "MAX_PARALLEL_LOADING_WORKERS", "BLOCK_SIZE",
"SWAP_SPACE", "ENFORCE_EAGER", "MAX_SEQ_LEN_TO_CAPTURE", "DISABLE_CUSTOM_ALL_REDUCE"
]
},
{
"title": "Streaming Settings",
"settings": [
"DEFAULT_BATCH_SIZE", "DEFAULT_MIN_BATCH_SIZE", "DEFAULT_BATCH_SIZE_GROWTH_FACTOR"
]
},
{
"title": "OpenAI Settings",
"settings": [
"RAW_OPENAI_OUTPUT", "OPENAI_RESPONSE_ROLE", "OPENAI_SERVED_MODEL_NAME_OVERRIDE"
]
},
{
"title": "Serverless Settings",
"settings": [
"MAX_CONCURRENCY", "DISABLE_LOG_STATS", "DISABLE_LOG_REQUESTS"
]
}
]
},
"0.7.3": {
"imageName": "runpod/worker-v1-vllm:v2.1.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
"categories": [
{
"title": "LLM Settings",
"settings": [
"TOKENIZER", "TOKENIZER_MODE", "SKIP_TOKENIZER_INIT", "TRUST_REMOTE_CODE",
"DOWNLOAD_DIR", "LOAD_FORMAT", "DTYPE", "KV_CACHE_DTYPE", "QUANTIZATION_PARAM_PATH",
"MAX_MODEL_LEN", "GUIDED_DECODING_BACKEND", "DISTRIBUTED_EXECUTOR_BACKEND",
"WORKER_USE_RAY", "RAY_WORKERS_USE_NSIGHT", "PIPELINE_PARALLEL_SIZE",
"TENSOR_PARALLEL_SIZE", "MAX_PARALLEL_LOADING_WORKERS", "ENABLE_PREFIX_CACHING",
"DISABLE_SLIDING_WINDOW", "NUM_LOOKAHEAD_SLOTS",
"SEED", "NUM_GPU_BLOCKS_OVERRIDE", "MAX_NUM_BATCHED_TOKENS", "MAX_NUM_SEQS",
"MAX_LOGPROBS", "DISABLE_LOG_STATS", "QUANTIZATION", "ROPE_SCALING", "ROPE_THETA",
"TOKENIZER_POOL_SIZE", "TOKENIZER_POOL_TYPE", "TOKENIZER_POOL_EXTRA_CONFIG",
"ENABLE_LORA", "MAX_LORAS", "MAX_LORA_RANK", "LORA_EXTRA_VOCAB_SIZE",
"LORA_DTYPE", "LONG_LORA_SCALING_FACTORS", "MAX_CPU_LORAS", "FULLY_SHARDED_LORAS",
"DEVICE", "SCHEDULER_DELAY_FACTOR", "ENABLE_CHUNKED_PREFILL", "SPECULATIVE_MODEL",
"NUM_SPECULATIVE_TOKENS", "SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE",
"SPECULATIVE_MAX_MODEL_LEN", "SPECULATIVE_DISABLE_BY_BATCH_SIZE",
"NGRAM_PROMPT_LOOKUP_MAX", "NGRAM_PROMPT_LOOKUP_MIN", "SPEC_DECODING_ACCEPTANCE_METHOD",
"TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_THRESHOLD", "TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA",
"MODEL_LOADER_EXTRA_CONFIG", "PREEMPTION_MODE", "PREEMPTION_CHECK_PERIOD",
"PREEMPTION_CPU_CAPACITY", "MAX_LOG_LEN", "DISABLE_LOGGING_REQUEST",
"ENABLE_AUTO_TOOL_CHOICE", "TOOL_CALL_PARSER"
]
},
{
"title": "Tokenizer Settings",
"settings": [
"TOKENIZER_NAME", "TOKENIZER_REVISION", "CUSTOM_CHAT_TEMPLATE"
]
},
{
"title": "System Settings",
"settings": [
"GPU_MEMORY_UTILIZATION", "MAX_PARALLEL_LOADING_WORKERS", "BLOCK_SIZE",
"SWAP_SPACE", "ENFORCE_EAGER", "MAX_SEQ_LEN_TO_CAPTURE", "DISABLE_CUSTOM_ALL_REDUCE"
]
},
{
"title": "Streaming Settings",
"settings": [
"DEFAULT_BATCH_SIZE", "DEFAULT_MIN_BATCH_SIZE", "DEFAULT_BATCH_SIZE_GROWTH_FACTOR"
]
},
{
"title": "OpenAI Settings",
"settings": [
"RAW_OPENAI_OUTPUT", "OPENAI_RESPONSE_ROLE", "OPENAI_SERVED_MODEL_NAME_OVERRIDE"
]
},
{
"title": "Serverless Settings",
"settings": [
"MAX_CONCURRENCY", "DISABLE_LOG_STATS", "DISABLE_LOG_REQUESTS"
]
}
]
},
"0.6.6": {
"imageName": "runpod/worker-v1-vllm:v1.8.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
@@ -61,6 +305,67 @@
}
]
},
"0.7.0": {
"imageName": "runpod/worker-v1-vllm:v1.9.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
"categories": [
{
"title": "LLM Settings",
"settings": [
"TOKENIZER", "TOKENIZER_MODE", "SKIP_TOKENIZER_INIT", "TRUST_REMOTE_CODE",
"DOWNLOAD_DIR", "LOAD_FORMAT", "DTYPE", "KV_CACHE_DTYPE", "QUANTIZATION_PARAM_PATH",
"MAX_MODEL_LEN", "GUIDED_DECODING_BACKEND", "DISTRIBUTED_EXECUTOR_BACKEND",
"WORKER_USE_RAY", "RAY_WORKERS_USE_NSIGHT", "PIPELINE_PARALLEL_SIZE",
"TENSOR_PARALLEL_SIZE", "MAX_PARALLEL_LOADING_WORKERS", "ENABLE_PREFIX_CACHING",
"DISABLE_SLIDING_WINDOW", "NUM_LOOKAHEAD_SLOTS",
"SEED", "NUM_GPU_BLOCKS_OVERRIDE", "MAX_NUM_BATCHED_TOKENS", "MAX_NUM_SEQS",
"MAX_LOGPROBS", "DISABLE_LOG_STATS", "QUANTIZATION", "ROPE_SCALING", "ROPE_THETA",
"TOKENIZER_POOL_SIZE", "TOKENIZER_POOL_TYPE", "TOKENIZER_POOL_EXTRA_CONFIG",
"ENABLE_LORA", "MAX_LORAS", "MAX_LORA_RANK", "LORA_EXTRA_VOCAB_SIZE",
"LORA_DTYPE", "LONG_LORA_SCALING_FACTORS", "MAX_CPU_LORAS", "FULLY_SHARDED_LORAS",
"DEVICE", "SCHEDULER_DELAY_FACTOR", "ENABLE_CHUNKED_PREFILL", "SPECULATIVE_MODEL",
"NUM_SPECULATIVE_TOKENS", "SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE",
"SPECULATIVE_MAX_MODEL_LEN", "SPECULATIVE_DISABLE_BY_BATCH_SIZE",
"NGRAM_PROMPT_LOOKUP_MAX", "NGRAM_PROMPT_LOOKUP_MIN", "SPEC_DECODING_ACCEPTANCE_METHOD",
"TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_THRESHOLD", "TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA",
"MODEL_LOADER_EXTRA_CONFIG", "PREEMPTION_MODE", "PREEMPTION_CHECK_PERIOD",
"PREEMPTION_CPU_CAPACITY", "MAX_LOG_LEN", "DISABLE_LOGGING_REQUEST",
"ENABLE_AUTO_TOOL_CHOICE", "TOOL_CALL_PARSER"
]
},
{
"title": "Tokenizer Settings",
"settings": [
"TOKENIZER_NAME", "TOKENIZER_REVISION", "CUSTOM_CHAT_TEMPLATE"
]
},
{
"title": "System Settings",
"settings": [
"GPU_MEMORY_UTILIZATION", "MAX_PARALLEL_LOADING_WORKERS", "BLOCK_SIZE",
"SWAP_SPACE", "ENFORCE_EAGER", "MAX_SEQ_LEN_TO_CAPTURE", "DISABLE_CUSTOM_ALL_REDUCE"
]
},
{
"title": "Streaming Settings",
"settings": [
"DEFAULT_BATCH_SIZE", "DEFAULT_MIN_BATCH_SIZE", "DEFAULT_BATCH_SIZE_GROWTH_FACTOR"
]
},
{
"title": "OpenAI Settings",
"settings": [
"RAW_OPENAI_OUTPUT", "OPENAI_RESPONSE_ROLE", "OPENAI_SERVED_MODEL_NAME_OVERRIDE"
]
},
{
"title": "Serverless Settings",
"settings": [
"MAX_CONCURRENCY", "DISABLE_LOG_STATS", "DISABLE_LOG_REQUESTS"
]
}
]
},
"0.6.4": {
"imageName": "runpod/worker-v1-vllm:v1.7.0stable-cuda12.1.0",
"minimumCudaVersion": "12.1",
@@ -558,14 +863,15 @@
"env_var_name": "QUANTIZATION",
"value": "",
"title": "Quantization",
"description": "Method used to quantize the weights.",
"description": "Method used to quantize the weights.\nif the `Load Format` is 'bitsandbytes' then `Quantization` will be forced to 'bitsandbytes'",
"required": false,
"type": "select",
"options": [
{ "value": "None", "label": "None" },
{ "value": "awq", "label": "AWQ" },
{ "value": "squeezellm", "label": "SqueezeLLM" },
{ "value": "gptq", "label": "GPTQ" }
{ "value": "gptq", "label": "GPTQ" },
{ "value": "bitsandbytes", "label": "bitsandbytes" }
]
},
"ROPE_SCALING": {