From 14e4b100f3496cc7fdd33925c0df8b3282f4c262 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 23 Oct 2024 17:22:47 +0000 Subject: [PATCH 01/34] Dynamic lora load/unload sidecar --- examples/dynamic-lora-sidecar/Dockerfile | 16 ++ examples/dynamic-lora-sidecar/README | 98 +++++++++++ examples/dynamic-lora-sidecar/deployment.yaml | 91 ++++++++++ .../dynamic-lora-sidecar/requirements.txt | 4 + .../sidecar/configmap.yaml | 23 +++ .../dynamic-lora-sidecar/sidecar/sidecar.py | 164 ++++++++++++++++++ .../sidecar/test_sidecar.py | 164 ++++++++++++++++++ 7 files changed, 560 insertions(+) create mode 100644 examples/dynamic-lora-sidecar/Dockerfile create mode 100644 examples/dynamic-lora-sidecar/README create mode 100644 examples/dynamic-lora-sidecar/deployment.yaml create mode 100644 examples/dynamic-lora-sidecar/requirements.txt create mode 100644 examples/dynamic-lora-sidecar/sidecar/configmap.yaml create mode 100644 examples/dynamic-lora-sidecar/sidecar/sidecar.py create mode 100644 examples/dynamic-lora-sidecar/sidecar/test_sidecar.py diff --git a/examples/dynamic-lora-sidecar/Dockerfile b/examples/dynamic-lora-sidecar/Dockerfile new file mode 100644 index 00000000..8368f42e --- /dev/null +++ b/examples/dynamic-lora-sidecar/Dockerfile @@ -0,0 +1,16 @@ + +FROM python:3.10-slim-buster + +WORKDIR /dynamic-lora-reconciler + +RUN python3 -m venv /opt/venv + +ENV PATH="/opt/venv/bin:$PATH" + +RUN pip install --upgrade pip +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY sidecar/sidecar.py . + +CMD ["python", "sidecar.py"] \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/README b/examples/dynamic-lora-sidecar/README new file mode 100644 index 00000000..e37ab902 --- /dev/null +++ b/examples/dynamic-lora-sidecar/README @@ -0,0 +1,98 @@ +# Dynamic LORA Adapter Sidecar for vLLM + +This directory contains script for a sidecar container to dynamically manage LORA adapters for a vLLM server running in the same Kubernetes pod by reconciling it with a configmap containing lora adapters. + +## Overview + +The sidecar continuously monitors a ConfigMap mounted as a YAML configuration file. This file defines the desired state of LORA adapters, including: + +- **Adapter ID:** Unique identifier for the adapter. +- **Source:** Path to the adapter's source files. +- **Base Model:** The base model to which the adapter should be applied. +- **toRemove:** (Optional) Indicates whether the adapter should be unloaded. + +The sidecar uses the vLLM server's API to load or unload adapters based on the configuration. It also periodically reconciles the registered adapters on the vLLM server with the desired state defined in the ConfigMap, ensuring consistency. + +## Features + +- **Dynamic Loading and Unloading:** Load and unload LORA adapters without restarting the vLLM server. +- **Continuous Reconciliation:** Ensures the vLLM server's state matches the desired configuration. +- **ConfigMap Integration:** Leverages Kubernetes ConfigMaps for easy configuration management. +- **Easy Deployment:** Provides a sample deployment YAML for quick setup. + +## Repository Contents + +- **`sidecar.py`:** Python script for the sidecar container. +- **`Dockerfile`:** Dockerfile to build the sidecar image. +- **`configmap.yaml`:** Example ConfigMap YAML file. +- **`deployment.yaml`:** Example Kubernetes deployment YAML. + +## Usage + +1. **Build the Docker Image:** + ```bash + docker build -t . +2. **Create a configmap:** + ```bash + kubectl create configmap name-of-your-configmap --from-file=your-file.yaml +3. **Mount the configmap and configure sidecar in your pod** + ```yaml + spec: + shareProcessNamespace: true + containers: + - name: inference-server + image: vllm/vllm-openai:v0.6.3.post1 + resources: + requests: + cpu: 5 + memory: 20Gi + ephemeral-storage: 40Gi + nvidia.com/gpu : 1 + limits: + cpu: 5 + memory: 20Gi + ephemeral-storage: 40Gi + nvidia.com/gpu : 1 + command: ["/bin/sh", "-c"] + args: + - vllm serve meta-llama/Llama-2-7b-hf + - --host=0.0.0.0 + - --port=8000 + - --tensor-parallel-size=1 + - --swap-space=16 + - --gpu-memory-utilization=0.95 + - --max-model-len=2048 + - --max-num-batched-tokens=4096 + - --disable-log-stats + - --enable-loras + - --max-loras=5 + env: + - name: DEPLOY_SOURCE + value: UI_NATIVE_MODEL + - name: MODEL_ID + value: "Llama2-7B" + - name: AIP_STORAGE_URI + value: "gs://vertex-model-garden-public-us/llama2/llama2-7b-hf" + - name: VLLM_ALLOW_RUNTIME_LORA_UPDATING + value: "true" + volumeMounts: + - mountPath: /dev/shm + name: dshm + initContainers: + - name: configmap-reader-1 + image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest + restartPolicy: Always + env: + DYNAMIC_LORA_ROLLOUT_CONFIG: "/config/configmap.yaml" + volumeMounts: + - name: config-volume + mountPath: /config/configmap.yaml + subPath: configmap.yaml + volumes: + - name: dshm + emptyDir: + medium: Memory + - name: config-volume + configMap: + name: dynamic-lora-config + \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml new file mode 100644 index 00000000..575c98c7 --- /dev/null +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -0,0 +1,91 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: llama-deployment +spec: + replicas: 1 + selector: + matchLabels: + app: llama-server + template: + metadata: + labels: + app: llama-server + ai.gke.io/model: LLaMA2_7B + ai.gke.io/inference-server: vllm + examples.ai.gke.io/source: model-garden + spec: + shareProcessNamespace: true + containers: + - name: inference-server + image: vllm/vllm-openai:v0.6.3.post1 + resources: + requests: + cpu: 5 + memory: 20Gi + ephemeral-storage: 40Gi + nvidia.com/gpu : 1 + limits: + cpu: 5 + memory: 20Gi + ephemeral-storage: 40Gi + nvidia.com/gpu : 1 + command: ["/bin/sh", "-c"] + args: + - vllm serve meta-llama/Llama-2-7b-hf + - --host=0.0.0.0 + - --port=8000 + - --tensor-parallel-size=1 + - --swap-space=16 + - --gpu-memory-utilization=0.95 + - --max-model-len=2048 + - --max-num-batched-tokens=4096 + - --disable-log-stats + - --enable-loras + - --max-loras=5 + env: + - name: DEPLOY_SOURCE + value: UI_NATIVE_MODEL + - name: MODEL_ID + value: "Llama2-7B" + - name: AIP_STORAGE_URI + value: "gs://vertex-model-garden-public-us/llama2/llama2-7b-hf" + - name: VLLM_ALLOW_RUNTIME_LORA_UPDATING + value: "true" + volumeMounts: + - mountPath: /dev/shm + name: dshm + initContainers: + - name: configmap-reader-1 + image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest + restartPolicy: Always + env: + DYNAMIC_LORA_ROLLOUT_CONFIG: "/config/configmap.yaml" + volumeMounts: + - name: config-volume + mountPath: /config/configmap.yaml + subPath: configmap.yaml + volumes: + - name: dshm + emptyDir: + medium: Memory + - name: config-volume + configMap: + name: dynamic-lora-config + nodeSelector: + cloud.google.com/gke-accelerator: nvidia-l4 + cloud.google.com/gke-nodepool: dynamic-lora + +--- +apiVersion: v1 +kind: Service +metadata: + name: llama-service +spec: + selector: + app: llama-server + type: ClusterIP + ports: + - protocol: TCP + port: 8000 + targetPort: 8000 diff --git a/examples/dynamic-lora-sidecar/requirements.txt b/examples/dynamic-lora-sidecar/requirements.txt new file mode 100644 index 00000000..c59a9f93 --- /dev/null +++ b/examples/dynamic-lora-sidecar/requirements.txt @@ -0,0 +1,4 @@ +aiohttp==3.10.10 +pyyaml==6.0.2 +requests==2.32.3 +watchdog==5.0.3 \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml new file mode 100644 index 00000000..26b2b471 --- /dev/null +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -0,0 +1,23 @@ +deployment: + host: localhost + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v1 + source: yard1/llama-2-7b-sql-lora-test + status: + errors: + - '' + operation: load + timestamp: 2024-10-23 15:43:07 UTC+0000 + toRemove: false + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v2 + source: yard1/llama-2-7b-sql-lora-test + status: + errors: + - already unloaded + operation: unload + timestamp: 2024-10-23 15:43:07 UTC+0000 + toRemove: true + name: sql-loras-llama + port: '8000' diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py new file mode 100644 index 00000000..e6c68530 --- /dev/null +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -0,0 +1,164 @@ +import requests +import yaml +import time +from watchdog.observers import Observer +from watchdog.events import FileSystemEventHandler +import logging +import datetime +import os + +CONFIG_MAP_FILE = os.environ.get('DYNAMIC_LORA_ROLLOUT_CONFIG',"configmap.yaml") +logging.basicConfig(level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s') + +def current_time_human() -> str: + now = datetime.datetime.now(datetime.timezone.utc).astimezone() + return now.strftime("%Y-%m-%d %H:%M:%S %Z%z") + + +class ConfigWatcher(FileSystemEventHandler): + def __init__(self, callback): + """ + Watches config + + Args: + callback : Callback function taking no parameters and no return values parsed + """ + self.callback = callback + + def on_modified(self, event): + if not event.is_directory and event.src_path.endswith(".yaml"): + logging.info( + f"Config '{event.src_path}' modified! at '{current_time_human()}'" + ) + self.callback() + + +class LoraReconciler: + """ + Reconciles adapters registered on vllm server with adapters listed in configmap in current state + """ + + def __init__(self): + self.deployment_name = "" + self.registered_adapters = {} + self.config_map_adapters = {} + self.load_configmap() + self.get_registered_adapters() + + def load_configmap(self): + with open(CONFIG_MAP_FILE, "r") as f: + deployment = yaml.safe_load(f)["deployment"] + self.deployment_name = deployment.get("name", "") + lora_adapters = deployment["models"] + self.host, self.port = ( + deployment.get("host") or "localhost", + deployment.get("port") or "8000", + ) + self.config_map_adapters = {adapter["id"]:adapter for adapter in lora_adapters} + + def get_registered_adapters(self): + """Retrieves all loaded models on server""" + url = f"http://{self.host}:{self.port}/v1/models" + try: + response = requests.get(url) + adapters = {adapter["id"]: adapter for adapter in response.json()["data"]} + self.registered_adapters = adapters + except requests.exceptions.RequestException as e: + logging.error(f"Error communicating with vLLM server: {e}") + + def reconcile(self): + """Reconciles model server with current version of configmap""" + self.get_registered_adapters() + self.load_configmap() + for adapter_id, lora_adapter in self.config_map_adapters.items(): + logging.info(f"Processing adapter {adapter_id}") + if lora_adapter.get("toRemove"): + e = self.unload_adapter(lora_adapter) + lora_adapter["timestamp"] = current_time_human() + lora_adapter["status"] = { + "timestamp": current_time_human(), + "operation": "unload", + "errors": [e], + } + else: + e = self.load_adapter(lora_adapter) + lora_adapter["status"] = { + "timestamp": current_time_human(), + "operation": "load", + "errors": [e], + } + self.update_status_config() + + def update_status_config(self): + models = list(self.config_map_adapters.values()) + deployment = { + "name": self.deployment_name, + "host": self.host, + "port": self.port, + "models": models, + } + config = {"deployment":deployment} + with open(CONFIG_MAP_FILE, "w") as f: + yaml.dump(config, f, indent=2) + + def load_adapter(self, adapter): + """Sends a request to load the specified model.""" + adapter_id = adapter["id"] + if adapter_id in self.registered_adapters or adapter.get("toRemove"): + return "already loaded" + url = f"http://{self.host}:{self.port}/v1/load_lora_adapter" + payload = { + "lora_name": adapter_id, + "lora_path": adapter["source"], + "base_model_name": adapter["base-model"], + } + try: + response = requests.post(url, json=payload) + response.raise_for_status() + logging.info(f"Loaded model {adapter_id}") + self.get_registered_adapters() + return "" + except requests.exceptions.RequestException as e: + logging.error(f"Error loading model {adapter_id}: {e}") + return f"Error loading model {adapter_id}: {e}" + + def unload_adapter(self, adapter): + """Sends a request to unload the specified model.""" + adapter_id = adapter["id"] + if adapter_id not in self.registered_adapters: + return "already unloaded" + url = f"http://{self.host}:{self.port}/v1/unload_lora_adapter" + payload = {"lora_name": adapter_id} + try: + response = requests.post(url, json=payload) + response.raise_for_status() + logging.info(f"Unloaded model {adapter_id}") + self.get_registered_adapters() + return None + except requests.exceptions.RequestException as e: + logging.error(f"Error unloading model {adapter_id}: {e}") + return f"Error unloading model {adapter_id}: {e}" + + +def main(): + """Loads the target configuration, compares it with the server's models, + and loads/unloads models accordingly.""" + + reconcilerInstance = LoraReconciler() + reconcilerInstance.reconcile() + observer = Observer() + event_handler = ConfigWatcher(reconcilerInstance.reconcile) + observer.schedule(event_handler, path=CONFIG_MAP_FILE, recursive=False) + observer.start() + try: + while True: + time.sleep(1) + except KeyboardInterrupt: + logging.info("Lora Adapter Dynamic configuration Reconciler stopped") + observer.stop() + observer.join() + + +if __name__ == "__main__": + main() diff --git a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py new file mode 100644 index 00000000..c3680485 --- /dev/null +++ b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py @@ -0,0 +1,164 @@ +import unittest +from unittest.mock import patch, Mock, mock_open +import yaml +from sidecar import LoraReconciler, CONFIG_MAP_FILE + +TEST_CONFIG_DATA = { + "deployment": { + "name": "test-deployment", + "host": "localhost", + "port": "8000", + "models": [ + {"id": "lora1", "source": "/path/to/lora1", "base-model": "base1"}, + { + "id": "lora2", + "source": "/path/to/lora2", + "base-model": "base1", + "toRemove": True, + }, + ], + } +} + +RESPONSES = { + "v1/models": { + "object": "list", + "data": [ + { + "id": "base1", + "object": "model", + "created": 1729693000, + "owned_by": "vllm", + "root": "meta-llama/Llama-2-7b-hf", + "parent": None, + "max_model_len": 4096, + }, + { + "id": "lora2", + "object": "model", + "created": 1729693000, + "owned_by": "vllm", + "root": "yard1/llama-2-7b-sql-lora-test", + "parent": "base1", + "max_model_len": None, + }, + ], + }, +} +REGISTERED_ADAPTERS = { + "base1": { + "created": 1729693000, + "id": "base1", + "max_model_len": 4096, + "object": "model", + "owned_by": "vllm", + "parent": None, + "root": "meta-llama/Llama-2-7b-hf", + }, + "lora2": { + "created": 1729693000, + "id": "lora2", + "max_model_len": None, + "object": "model", + "owned_by": "vllm", + "parent": "base1", + "root": "yard1/llama-2-7b-sql-lora-test", + }, +} + + +def getMockResponse(status_return_value: object = None) -> object: + mock_response = Mock() + mock_response.raise_for_status.return_value = None + return mock_response + + +class LoraReconcilerTest(unittest.TestCase): + @patch( + "builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA) + ) + @patch("sidecar.requests.get") + def setUp(self, mock_get, mock_file): + mock_response = getMockResponse() + mock_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_response + self.reconciler = LoraReconciler() + self.maxDiff = None + mock_file.assert_called_once_with(CONFIG_MAP_FILE, "r") + + @patch("sidecar.requests.get") + def test_get_registered_adapters(self, mock_get): + mock_response = getMockResponse() + mock_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_response + + self.reconciler.get_registered_adapters() + self.assertEqual(REGISTERED_ADAPTERS, self.reconciler.registered_adapters) + + @patch("sidecar.requests.post") + def test_load_adapter(self, mock_post): + mock_post.return_value = getMockResponse() + + # loading a new adapter + result = self.reconciler.load_adapter( + TEST_CONFIG_DATA["deployment"]["models"][0] + ) + self.assertEqual(result, "") + + # loading an already loaded adapter + self.reconciler.registered_adapters["lora1"] = {"id": "lora1"} + result = self.reconciler.load_adapter( + TEST_CONFIG_DATA["deployment"]["models"][0] + ) + self.assertEqual(result, "already loaded") + + @patch("sidecar.requests.post") + def test_unload_adapter(self, mock_post): + mock_post.return_value = getMockResponse() + + # unloading an existing adapter + self.reconciler.registered_adapters["lora2"] = {"id": "lora2"} + result = self.reconciler.unload_adapter( + TEST_CONFIG_DATA["deployment"]["models"][1] + ) + self.assertEqual(result, None) + + # unloading an already unloaded adapter + result = self.reconciler.unload_adapter( + TEST_CONFIG_DATA["deployment"]["models"][1] + ) + self.assertEqual(result, "already unloaded") + + @patch("builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA)) + @patch("sidecar.requests.get") + @patch("sidecar.requests.post") + def test_reconcile(self, mock_post, mock_get, mock_file): + mock_get_response = getMockResponse() + mock_get_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_get_response + mock_post.return_value = getMockResponse() + + self.reconciler = LoraReconciler() + self.reconciler.reconcile() + + mock_post.assert_any_call( + "http://localhost:8000/v1/load_lora_adapter", + json={ + "lora_name": "lora1", + "lora_path": "/path/to/lora1", + "base_model_name": "base1", + }, + ) + mock_post.assert_any_call( + "http://localhost:8000/v1/unload_lora_adapter", json={"lora_name": "lora2"} + ) + updated_config = self.reconciler.config_map_adapters + mock_file.return_value.write.side_effect = lambda data: data + self.reconciler.update_status_config() + mock_file.return_value.write.assert_called() + self.assertTrue("timestamp" in updated_config["lora1"]["status"]) + self.assertTrue("status" in updated_config["lora2"]) + + +if __name__ == "__main__": + unittest.main() From bcfee4a88a25d926197315b1feea202ebe230f48 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 23 Oct 2024 17:59:55 +0000 Subject: [PATCH 02/34] Formatting --- examples/dynamic-lora-sidecar/README | 3 +-- examples/dynamic-lora-sidecar/deployment.yaml | 2 +- examples/dynamic-lora-sidecar/sidecar/configmap.yaml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-lora-sidecar/README b/examples/dynamic-lora-sidecar/README index e37ab902..12b3ac27 100644 --- a/examples/dynamic-lora-sidecar/README +++ b/examples/dynamic-lora-sidecar/README @@ -94,5 +94,4 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c medium: Memory - name: config-volume configMap: - name: dynamic-lora-config - \ No newline at end of file + name: dynamic-lora-config \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 575c98c7..8c9ac592 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -88,4 +88,4 @@ spec: ports: - protocol: TCP port: 8000 - targetPort: 8000 + targetPort: 8000 \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml index 26b2b471..e489f2f4 100644 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -20,4 +20,4 @@ deployment: timestamp: 2024-10-23 15:43:07 UTC+0000 toRemove: true name: sql-loras-llama - port: '8000' + port: '8000' \ No newline at end of file From cb45fe20a48cce5ce5891f8e891f638ae3593ee6 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 30 Oct 2024 01:04:27 +0000 Subject: [PATCH 03/34] Resolve README comments Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/README | 97 ------------------------- examples/dynamic-lora-sidecar/README.md | 41 +++++++++++ 2 files changed, 41 insertions(+), 97 deletions(-) delete mode 100644 examples/dynamic-lora-sidecar/README create mode 100644 examples/dynamic-lora-sidecar/README.md diff --git a/examples/dynamic-lora-sidecar/README b/examples/dynamic-lora-sidecar/README deleted file mode 100644 index 12b3ac27..00000000 --- a/examples/dynamic-lora-sidecar/README +++ /dev/null @@ -1,97 +0,0 @@ -# Dynamic LORA Adapter Sidecar for vLLM - -This directory contains script for a sidecar container to dynamically manage LORA adapters for a vLLM server running in the same Kubernetes pod by reconciling it with a configmap containing lora adapters. - -## Overview - -The sidecar continuously monitors a ConfigMap mounted as a YAML configuration file. This file defines the desired state of LORA adapters, including: - -- **Adapter ID:** Unique identifier for the adapter. -- **Source:** Path to the adapter's source files. -- **Base Model:** The base model to which the adapter should be applied. -- **toRemove:** (Optional) Indicates whether the adapter should be unloaded. - -The sidecar uses the vLLM server's API to load or unload adapters based on the configuration. It also periodically reconciles the registered adapters on the vLLM server with the desired state defined in the ConfigMap, ensuring consistency. - -## Features - -- **Dynamic Loading and Unloading:** Load and unload LORA adapters without restarting the vLLM server. -- **Continuous Reconciliation:** Ensures the vLLM server's state matches the desired configuration. -- **ConfigMap Integration:** Leverages Kubernetes ConfigMaps for easy configuration management. -- **Easy Deployment:** Provides a sample deployment YAML for quick setup. - -## Repository Contents - -- **`sidecar.py`:** Python script for the sidecar container. -- **`Dockerfile`:** Dockerfile to build the sidecar image. -- **`configmap.yaml`:** Example ConfigMap YAML file. -- **`deployment.yaml`:** Example Kubernetes deployment YAML. - -## Usage - -1. **Build the Docker Image:** - ```bash - docker build -t . -2. **Create a configmap:** - ```bash - kubectl create configmap name-of-your-configmap --from-file=your-file.yaml -3. **Mount the configmap and configure sidecar in your pod** - ```yaml - spec: - shareProcessNamespace: true - containers: - - name: inference-server - image: vllm/vllm-openai:v0.6.3.post1 - resources: - requests: - cpu: 5 - memory: 20Gi - ephemeral-storage: 40Gi - nvidia.com/gpu : 1 - limits: - cpu: 5 - memory: 20Gi - ephemeral-storage: 40Gi - nvidia.com/gpu : 1 - command: ["/bin/sh", "-c"] - args: - - vllm serve meta-llama/Llama-2-7b-hf - - --host=0.0.0.0 - - --port=8000 - - --tensor-parallel-size=1 - - --swap-space=16 - - --gpu-memory-utilization=0.95 - - --max-model-len=2048 - - --max-num-batched-tokens=4096 - - --disable-log-stats - - --enable-loras - - --max-loras=5 - env: - - name: DEPLOY_SOURCE - value: UI_NATIVE_MODEL - - name: MODEL_ID - value: "Llama2-7B" - - name: AIP_STORAGE_URI - value: "gs://vertex-model-garden-public-us/llama2/llama2-7b-hf" - - name: VLLM_ALLOW_RUNTIME_LORA_UPDATING - value: "true" - volumeMounts: - - mountPath: /dev/shm - name: dshm - initContainers: - - name: configmap-reader-1 - image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest - restartPolicy: Always - env: - DYNAMIC_LORA_ROLLOUT_CONFIG: "/config/configmap.yaml" - volumeMounts: - - name: config-volume - mountPath: /config/configmap.yaml - subPath: configmap.yaml - volumes: - - name: dshm - emptyDir: - medium: Memory - - name: config-volume - configMap: - name: dynamic-lora-config \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/README.md b/examples/dynamic-lora-sidecar/README.md new file mode 100644 index 00000000..a705c746 --- /dev/null +++ b/examples/dynamic-lora-sidecar/README.md @@ -0,0 +1,41 @@ +# Dynamic LORA Adapter Sidecar for vLLM + +This directory contains a configmap containing lora adapters configurations and script for a sidecar container to dynamically manage LORA adapters for a vLLM server running in the same Kubernetes pod by reconciling it with a configmap containing lora adapters. + +## Overview + +The sidecar continuously monitors a ConfigMap mounted as a YAML configuration file. This file defines the desired state of LORA adapters, including: + +- **Adapter ID:** Unique identifier for the adapter. +- **Source:** Path to the adapter's source files. +- **Base Model:** The base model to which the adapter should be applied. +- **toRemove:** (Optional) Indicates whether the adapter should be unloaded. + +The sidecar uses the vLLM server's API to load or unload adapters based on the configuration. It also periodically reconciles the registered adapters on the vLLM server with the desired state defined in the ConfigMap, ensuring consistency. + +## Features + +- **Dynamic Loading and Unloading:** Load and unload LORA adapters without restarting the vLLM server. +- **Continuous Reconciliation:** Ensures the vLLM server's state matches the desired configuration. +- **ConfigMap Integration:** Leverages Kubernetes ConfigMaps for easy configuration management. +- **Easy Deployment:** Provides a sample deployment YAML for quick setup. + +## Repository Contents + +- **`sidecar.py`:** Python script for the sidecar container. +- **`Dockerfile`:** Dockerfile to build the sidecar image. +- **`configmap.yaml`:** Example ConfigMap YAML file. +- **`deployment.yaml`:** Example Kubernetes deployment YAML. + +## Usage + +1. **Build the Docker Image:** + ```bash + docker build -t . +2. **Create a configmap:** + ```bash + kubectl create configmap name-of-your-configmap --from-file=your-file.yaml +3. **Mount the configmap and configure sidecar in your pod** + ![example deployment][deployment] + +[deployment]: deployment.yaml \ No newline at end of file From 62da98836f5b9a68c7259c47b7f542524fb55558 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 30 Oct 2024 02:31:27 +0000 Subject: [PATCH 04/34] Address comments on sidecar, store updates in memory, rename base field Signed-off-by: Kunjan Patel --- .../sidecar/configmap.yaml | 2 +- .../dynamic-lora-sidecar/sidecar/sidecar.py | 18 ++++++++------- .../sidecar/test_sidecar.py | 22 ++++--------------- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml index e489f2f4..5294d06d 100644 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -1,4 +1,4 @@ -deployment: +vLLMLoRAConfig: host: localhost models: - base-model: meta-llama/Llama-2-7b-hf diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index e6c68530..0cb09a3d 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -8,6 +8,7 @@ import os CONFIG_MAP_FILE = os.environ.get('DYNAMIC_LORA_ROLLOUT_CONFIG',"configmap.yaml") +BASE_FIELD = "vLLMLoRAConfig" logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') @@ -48,7 +49,7 @@ def __init__(self): def load_configmap(self): with open(CONFIG_MAP_FILE, "r") as f: - deployment = yaml.safe_load(f)["deployment"] + deployment = yaml.safe_load(f)[BASE_FIELD] self.deployment_name = deployment.get("name", "") lora_adapters = deployment["models"] self.host, self.port = ( @@ -88,9 +89,9 @@ def reconcile(self): "operation": "load", "errors": [e], } - self.update_status_config() + self.log_status_config() - def update_status_config(self): + def log_status_config(self): models = list(self.config_map_adapters.values()) deployment = { "name": self.deployment_name, @@ -98,15 +99,16 @@ def update_status_config(self): "port": self.port, "models": models, } - config = {"deployment":deployment} - with open(CONFIG_MAP_FILE, "w") as f: - yaml.dump(config, f, indent=2) + config = {BASE_FIELD:deployment} + yaml_string = yaml.dump(config,indent=2) + logging.info(f"current status of lora adapters on model server at {self.host}:{self.port} \n {yaml_string}") + def load_adapter(self, adapter): """Sends a request to load the specified model.""" adapter_id = adapter["id"] if adapter_id in self.registered_adapters or adapter.get("toRemove"): - return "already loaded" + return url = f"http://{self.host}:{self.port}/v1/load_lora_adapter" payload = { "lora_name": adapter_id, @@ -127,7 +129,7 @@ def unload_adapter(self, adapter): """Sends a request to unload the specified model.""" adapter_id = adapter["id"] if adapter_id not in self.registered_adapters: - return "already unloaded" + return url = f"http://{self.host}:{self.port}/v1/unload_lora_adapter" payload = {"lora_name": adapter_id} try: diff --git a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py index c3680485..5f17db69 100644 --- a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py @@ -1,10 +1,10 @@ import unittest from unittest.mock import patch, Mock, mock_open import yaml -from sidecar import LoraReconciler, CONFIG_MAP_FILE +from sidecar import LoraReconciler, CONFIG_MAP_FILE, BASE_FIELD TEST_CONFIG_DATA = { - "deployment": { + "vLLMLoRAConfig": { "name": "test-deployment", "host": "localhost", "port": "8000", @@ -101,16 +101,10 @@ def test_load_adapter(self, mock_post): # loading a new adapter result = self.reconciler.load_adapter( - TEST_CONFIG_DATA["deployment"]["models"][0] + TEST_CONFIG_DATA[BASE_FIELD]["models"][0] ) self.assertEqual(result, "") - # loading an already loaded adapter - self.reconciler.registered_adapters["lora1"] = {"id": "lora1"} - result = self.reconciler.load_adapter( - TEST_CONFIG_DATA["deployment"]["models"][0] - ) - self.assertEqual(result, "already loaded") @patch("sidecar.requests.post") def test_unload_adapter(self, mock_post): @@ -119,15 +113,9 @@ def test_unload_adapter(self, mock_post): # unloading an existing adapter self.reconciler.registered_adapters["lora2"] = {"id": "lora2"} result = self.reconciler.unload_adapter( - TEST_CONFIG_DATA["deployment"]["models"][1] + TEST_CONFIG_DATA[BASE_FIELD]["models"][1] ) self.assertEqual(result, None) - - # unloading an already unloaded adapter - result = self.reconciler.unload_adapter( - TEST_CONFIG_DATA["deployment"]["models"][1] - ) - self.assertEqual(result, "already unloaded") @patch("builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA)) @patch("sidecar.requests.get") @@ -154,8 +142,6 @@ def test_reconcile(self, mock_post, mock_get, mock_file): ) updated_config = self.reconciler.config_map_adapters mock_file.return_value.write.side_effect = lambda data: data - self.reconciler.update_status_config() - mock_file.return_value.write.assert_called() self.assertTrue("timestamp" in updated_config["lora1"]["status"]) self.assertTrue("status" in updated_config["lora2"]) From 56cffc2c35d450bc96f59c8176cea5cbfdb8253b Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 30 Oct 2024 02:41:36 +0000 Subject: [PATCH 05/34] Address comments in example deployment Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/.gitignore | 1 + examples/dynamic-lora-sidecar/deployment.yaml | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 examples/dynamic-lora-sidecar/.gitignore diff --git a/examples/dynamic-lora-sidecar/.gitignore b/examples/dynamic-lora-sidecar/.gitignore new file mode 100644 index 00000000..a27f6436 --- /dev/null +++ b/examples/dynamic-lora-sidecar/.gitignore @@ -0,0 +1 @@ +sidecar/__pycache__/ diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 8c9ac592..9f509144 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -52,6 +52,13 @@ spec: value: "gs://vertex-model-garden-public-us/llama2/llama2-7b-hf" - name: VLLM_ALLOW_RUNTIME_LORA_UPDATING value: "true" + - name: HF_TOKEN + valueFrom: + secretKeyRef: + name: hf-token # The name of your Kubernetes Secret + key: HF_TOKEN # The specific key within the Secret + - name: DYNAMIC_LORA_ROLLOUT_CONFIG + value: "/config/configmap.yaml" volumeMounts: - mountPath: /dev/shm name: dshm @@ -74,7 +81,6 @@ spec: name: dynamic-lora-config nodeSelector: cloud.google.com/gke-accelerator: nvidia-l4 - cloud.google.com/gke-nodepool: dynamic-lora --- apiVersion: v1 From 5cbaeeffb5310e6491ffd11004bbb4fac71e5fc9 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 30 Oct 2024 02:43:26 +0000 Subject: [PATCH 06/34] Address comments in example deployment Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 9f509144..705ee81d 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -94,4 +94,20 @@ spec: ports: - protocol: TCP port: 8000 - targetPort: 8000 \ No newline at end of file + targetPort: 8000 + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: dynamic-lora-config +data: + configmap.yaml: | + vLLMLoRAConfig: + host: localhost + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v1 + source: yard1/llama-2-7b-sql-lora-test + name: sql-lora \ No newline at end of file From 5a03f9815b508f1bc2af50fdd2d284fcd372d507 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Wed, 30 Oct 2024 02:48:20 +0000 Subject: [PATCH 07/34] base model is optional Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/sidecar/sidecar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index 0cb09a3d..3300c369 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -113,7 +113,7 @@ def load_adapter(self, adapter): payload = { "lora_name": adapter_id, "lora_path": adapter["source"], - "base_model_name": adapter["base-model"], + "base_model_name": adapter.get("base-model",""), } try: response = requests.post(url, json=payload) From 1af2df491b6b79bef1df3d9b4497141a327bcb39 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Tue, 5 Nov 2024 16:07:23 +0000 Subject: [PATCH 08/34] Check health of server before querying Signed-off-by: Kunjan Patel --- .../dynamic-lora-sidecar/sidecar/sidecar.py | 56 +++++++++++++++---- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index 3300c369..fd21e70b 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -7,10 +7,13 @@ import datetime import os -CONFIG_MAP_FILE = os.environ.get('DYNAMIC_LORA_ROLLOUT_CONFIG',"configmap.yaml") +CONFIG_MAP_FILE = os.environ.get("DYNAMIC_LORA_ROLLOUT_CONFIG", "configmap.yaml") +DYNAMIC_LORA_FLAG = "VLLM_ALLOW_RUNTIME_LORA_UPDATING" BASE_FIELD = "vLLMLoRAConfig" -logging.basicConfig(level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s') +logging.basicConfig( + level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s" +) + def current_time_human() -> str: now = datetime.datetime.now(datetime.timezone.utc).astimezone() @@ -44,8 +47,15 @@ def __init__(self): self.deployment_name = "" self.registered_adapters = {} self.config_map_adapters = {} + if not self.validate_dynamic_lora(): + logging.fatal(f"{DYNAMIC_LORA_FLAG} set to False") self.load_configmap() self.get_registered_adapters() + self.health_check_timeout = datetime.timedelta(seconds=150) + self.health_check_interval = datetime.timedelta(seconds=15) + + def validate_dynamic_lora(self): + return os.environ.get(DYNAMIC_LORA_FLAG, False) def load_configmap(self): with open(CONFIG_MAP_FILE, "r") as f: @@ -56,11 +66,15 @@ def load_configmap(self): deployment.get("host") or "localhost", deployment.get("port") or "8000", ) - self.config_map_adapters = {adapter["id"]:adapter for adapter in lora_adapters} + self.config_map_adapters = { + adapter["id"]: adapter for adapter in lora_adapters + } def get_registered_adapters(self): """Retrieves all loaded models on server""" url = f"http://{self.host}:{self.port}/v1/models" + if not self.wait_server_healthy(): + logging.error(f"Vllm server at {self.host:self.port} not healthy") try: response = requests.get(url) adapters = {adapter["id"]: adapter for adapter in response.json()["data"]} @@ -68,10 +82,29 @@ def get_registered_adapters(self): except requests.exceptions.RequestException as e: logging.error(f"Error communicating with vLLM server: {e}") + def check_health(self) -> bool: + """Checks server health""" + url = f"http://{self.host}:{self.port}/health" + try: + response = requests.get(url) + return response.status_code == 200 + except requests.exceptions.RequestException: + return False + + def wait_server_healthy(self) -> bool: + start_time = datetime.datetime.now() + while datetime.datetime.now() - start_time < self.health_check_timeout: + if self.check_health(): + break + time.sleep(self.health_check_interval) + def reconcile(self): """Reconciles model server with current version of configmap""" self.get_registered_adapters() self.load_configmap() + if not self.wait_server_healthy(): + logging.error(f"Vllm server at {self.host:self.port} not healthy") + for adapter_id, lora_adapter in self.config_map_adapters.items(): logging.info(f"Processing adapter {adapter_id}") if lora_adapter.get("toRemove"): @@ -99,21 +132,22 @@ def log_status_config(self): "port": self.port, "models": models, } - config = {BASE_FIELD:deployment} - yaml_string = yaml.dump(config,indent=2) - logging.info(f"current status of lora adapters on model server at {self.host}:{self.port} \n {yaml_string}") - + config = {BASE_FIELD: deployment} + yaml_string = yaml.dump(config, indent=2) + logging.info( + f"current status of lora adapters on model server at {self.host}:{self.port} \n {yaml_string}" + ) def load_adapter(self, adapter): """Sends a request to load the specified model.""" adapter_id = adapter["id"] if adapter_id in self.registered_adapters or adapter.get("toRemove"): - return + return url = f"http://{self.host}:{self.port}/v1/load_lora_adapter" payload = { "lora_name": adapter_id, "lora_path": adapter["source"], - "base_model_name": adapter.get("base-model",""), + "base_model_name": adapter.get("base-model", ""), } try: response = requests.post(url, json=payload) @@ -129,7 +163,7 @@ def unload_adapter(self, adapter): """Sends a request to unload the specified model.""" adapter_id = adapter["id"] if adapter_id not in self.registered_adapters: - return + return url = f"http://{self.host}:{self.port}/v1/unload_lora_adapter" payload = {"lora_name": adapter_id} try: From 5b511821a953c38c99c09251a1185cdc94bbc7df Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Tue, 5 Nov 2024 16:08:10 +0000 Subject: [PATCH 09/34] Check health of server before querying Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/sidecar/sidecar.py | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index fd21e70b..a04b137a 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -92,6 +92,7 @@ def check_health(self) -> bool: return False def wait_server_healthy(self) -> bool: + """Wait for server to be healthy""" start_time = datetime.datetime.now() while datetime.datetime.now() - start_time < self.health_check_timeout: if self.check_health(): From cc1e686cbed226aa8e4f786c6354ce3e16267cfc Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Tue, 5 Nov 2024 16:11:09 +0000 Subject: [PATCH 10/34] Docstrings Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/sidecar/sidecar.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index a04b137a..e18967b2 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -55,9 +55,11 @@ def __init__(self): self.health_check_interval = datetime.timedelta(seconds=15) def validate_dynamic_lora(self): + """Validate if dynamic lora updating is enabled""" return os.environ.get(DYNAMIC_LORA_FLAG, False) def load_configmap(self): + """Load configmap into memory""" with open(CONFIG_MAP_FILE, "r") as f: deployment = yaml.safe_load(f)[BASE_FIELD] self.deployment_name = deployment.get("name", "") From 926a71cc66d8b0490c76ec3a53aac3d5167deb78 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Tue, 5 Nov 2024 17:26:22 +0000 Subject: [PATCH 11/34] Mock health check in tests Signed-off-by: Kunjan Patel --- .../dynamic-lora-sidecar/sidecar/sidecar.py | 13 +- .../sidecar/test_sidecar.py | 112 ++++++++++-------- 2 files changed, 67 insertions(+), 58 deletions(-) diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index e18967b2..b1648ec3 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -47,12 +47,12 @@ def __init__(self): self.deployment_name = "" self.registered_adapters = {} self.config_map_adapters = {} + self.health_check_timeout = datetime.timedelta(seconds=150) + self.health_check_interval = datetime.timedelta(seconds=15) if not self.validate_dynamic_lora(): logging.fatal(f"{DYNAMIC_LORA_FLAG} set to False") self.load_configmap() self.get_registered_adapters() - self.health_check_timeout = datetime.timedelta(seconds=150) - self.health_check_interval = datetime.timedelta(seconds=15) def validate_dynamic_lora(self): """Validate if dynamic lora updating is enabled""" @@ -76,7 +76,7 @@ def get_registered_adapters(self): """Retrieves all loaded models on server""" url = f"http://{self.host}:{self.port}/v1/models" if not self.wait_server_healthy(): - logging.error(f"Vllm server at {self.host:self.port} not healthy") + logging.error(f"Vllm server at {self.host}:{self.port} not healthy") try: response = requests.get(url) adapters = {adapter["id"]: adapter for adapter in response.json()["data"]} @@ -98,15 +98,16 @@ def wait_server_healthy(self) -> bool: start_time = datetime.datetime.now() while datetime.datetime.now() - start_time < self.health_check_timeout: if self.check_health(): - break - time.sleep(self.health_check_interval) + return True + time.sleep(self.health_check_interval.seconds) + return False def reconcile(self): """Reconciles model server with current version of configmap""" self.get_registered_adapters() self.load_configmap() if not self.wait_server_healthy(): - logging.error(f"Vllm server at {self.host:self.port} not healthy") + logging.error(f"Vllm server at {self.host}:{self.port} not healthy") for adapter_id, lora_adapter in self.config_map_adapters.items(): logging.info(f"Processing adapter {adapter_id}") diff --git a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py index 5f17db69..53a7ef32 100644 --- a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py @@ -1,7 +1,8 @@ import unittest from unittest.mock import patch, Mock, mock_open import yaml -from sidecar import LoraReconciler, CONFIG_MAP_FILE, BASE_FIELD +import os +from sidecar import LoraReconciler, CONFIG_MAP_FILE, BASE_FIELD, DYNAMIC_LORA_FLAG TEST_CONFIG_DATA = { "vLLMLoRAConfig": { @@ -78,72 +79,79 @@ class LoraReconcilerTest(unittest.TestCase): "builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA) ) @patch("sidecar.requests.get") + @patch.dict(os.environ, {DYNAMIC_LORA_FLAG: "test_api_key"}) def setUp(self, mock_get, mock_file): - mock_response = getMockResponse() - mock_response.json.return_value = RESPONSES["v1/models"] - mock_get.return_value = mock_response - self.reconciler = LoraReconciler() - self.maxDiff = None - mock_file.assert_called_once_with(CONFIG_MAP_FILE, "r") + with patch.object(LoraReconciler, "check_health", return_value=True): + mock_response = getMockResponse() + mock_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_response + self.reconciler = LoraReconciler() + self.maxDiff = None + mock_file.assert_called_once_with(CONFIG_MAP_FILE, "r") @patch("sidecar.requests.get") def test_get_registered_adapters(self, mock_get): - mock_response = getMockResponse() - mock_response.json.return_value = RESPONSES["v1/models"] - mock_get.return_value = mock_response + with patch.object(LoraReconciler, "check_health", return_value=True): + mock_response = getMockResponse() + mock_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_response - self.reconciler.get_registered_adapters() - self.assertEqual(REGISTERED_ADAPTERS, self.reconciler.registered_adapters) + self.reconciler.get_registered_adapters() + self.assertEqual(REGISTERED_ADAPTERS, self.reconciler.registered_adapters) @patch("sidecar.requests.post") def test_load_adapter(self, mock_post): - mock_post.return_value = getMockResponse() - - # loading a new adapter - result = self.reconciler.load_adapter( - TEST_CONFIG_DATA[BASE_FIELD]["models"][0] - ) - self.assertEqual(result, "") + with patch.object(LoraReconciler, "check_health", return_value=True): + mock_post.return_value = getMockResponse() + # loading a new adapter + result = self.reconciler.load_adapter( + TEST_CONFIG_DATA[BASE_FIELD]["models"][0] + ) + self.assertEqual(result, "") @patch("sidecar.requests.post") def test_unload_adapter(self, mock_post): - mock_post.return_value = getMockResponse() - - # unloading an existing adapter - self.reconciler.registered_adapters["lora2"] = {"id": "lora2"} - result = self.reconciler.unload_adapter( - TEST_CONFIG_DATA[BASE_FIELD]["models"][1] - ) - self.assertEqual(result, None) - - @patch("builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA)) + with patch.object(LoraReconciler, "check_health", return_value=True): + mock_post.return_value = getMockResponse() + + # unloading an existing adapter + self.reconciler.registered_adapters["lora2"] = {"id": "lora2"} + result = self.reconciler.unload_adapter( + TEST_CONFIG_DATA[BASE_FIELD]["models"][1] + ) + self.assertEqual(result, None) + + @patch( + "builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA) + ) @patch("sidecar.requests.get") @patch("sidecar.requests.post") def test_reconcile(self, mock_post, mock_get, mock_file): - mock_get_response = getMockResponse() - mock_get_response.json.return_value = RESPONSES["v1/models"] - mock_get.return_value = mock_get_response - mock_post.return_value = getMockResponse() - - self.reconciler = LoraReconciler() - self.reconciler.reconcile() - - mock_post.assert_any_call( - "http://localhost:8000/v1/load_lora_adapter", - json={ - "lora_name": "lora1", - "lora_path": "/path/to/lora1", - "base_model_name": "base1", - }, - ) - mock_post.assert_any_call( - "http://localhost:8000/v1/unload_lora_adapter", json={"lora_name": "lora2"} - ) - updated_config = self.reconciler.config_map_adapters - mock_file.return_value.write.side_effect = lambda data: data - self.assertTrue("timestamp" in updated_config["lora1"]["status"]) - self.assertTrue("status" in updated_config["lora2"]) + with patch.object(LoraReconciler, "check_health", return_value=True): + mock_get_response = getMockResponse() + mock_get_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_get_response + mock_post.return_value = getMockResponse() + + self.reconciler = LoraReconciler() + self.reconciler.reconcile() + + mock_post.assert_any_call( + "http://localhost:8000/v1/load_lora_adapter", + json={ + "lora_name": "lora1", + "lora_path": "/path/to/lora1", + "base_model_name": "base1", + }, + ) + mock_post.assert_any_call( + "http://localhost:8000/v1/unload_lora_adapter", json={"lora_name": "lora2"} + ) + updated_config = self.reconciler.config_map_adapters + mock_file.return_value.write.side_effect = lambda data: data + self.assertTrue("timestamp" in updated_config["lora1"]["status"]) + self.assertTrue("status" in updated_config["lora2"]) if __name__ == "__main__": From cb3c9b2d8ab0d41addb1ecdb2b1c0dc26a9a38a3 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Thu, 7 Nov 2024 08:53:06 -0800 Subject: [PATCH 12/34] Refactor configmap, switch to watchfiles to detect symbolic link target changes, pull dynamically from configmap Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 29 +- .../dynamic-lora-sidecar/requirements.txt | 3 +- .../sidecar/configmap.yaml | 31 +- .../dynamic-lora-sidecar/sidecar/sidecar.py | 265 +++++++++--------- 4 files changed, 163 insertions(+), 165 deletions(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 705ee81d..124994c7 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -56,7 +56,7 @@ spec: valueFrom: secretKeyRef: name: hf-token # The name of your Kubernetes Secret - key: HF_TOKEN # The specific key within the Secret + key: token # The specific key within the Secret - name: DYNAMIC_LORA_ROLLOUT_CONFIG value: "/config/configmap.yaml" volumeMounts: @@ -64,14 +64,18 @@ spec: name: dshm initContainers: - name: configmap-reader-1 + tty: true + stdin: true image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest restartPolicy: Always + imagePullPolicy: Always env: - DYNAMIC_LORA_ROLLOUT_CONFIG: "/config/configmap.yaml" + - name: DYNAMIC_LORA_ROLLOUT_CONFIG + value: "/config/configmap.yaml" volumeMounts: - name: config-volume - mountPath: /config/configmap.yaml - subPath: configmap.yaml + mountPath: /config + # subPath: configmap.yaml volumes: - name: dshm emptyDir: @@ -106,8 +110,21 @@ data: configmap.yaml: | vLLMLoRAConfig: host: localhost - models: + name: sql-loras-llama + port: '8000' + ensureExist: + models: - base-model: meta-llama/Llama-2-7b-hf id: sql-lora-v1 source: yard1/llama-2-7b-sql-lora-test - name: sql-lora \ No newline at end of file + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v3 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v4 + source: yard1/llama-2-7b-sql-lora-test + ensureNotExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v2 + source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/requirements.txt b/examples/dynamic-lora-sidecar/requirements.txt index c59a9f93..dbf52c34 100644 --- a/examples/dynamic-lora-sidecar/requirements.txt +++ b/examples/dynamic-lora-sidecar/requirements.txt @@ -1,4 +1,5 @@ aiohttp==3.10.10 pyyaml==6.0.2 requests==2.32.3 -watchdog==5.0.3 \ No newline at end of file +watchdog==5.0.3 +watchfiles==0.24.0 \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml index 5294d06d..4b8c40bb 100644 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -1,23 +1,14 @@ vLLMLoRAConfig: host: localhost - models: - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v1 - source: yard1/llama-2-7b-sql-lora-test - status: - errors: - - '' - operation: load - timestamp: 2024-10-23 15:43:07 UTC+0000 - toRemove: false - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v2 - source: yard1/llama-2-7b-sql-lora-test - status: - errors: - - already unloaded - operation: unload - timestamp: 2024-10-23 15:43:07 UTC+0000 - toRemove: true name: sql-loras-llama - port: '8000' \ No newline at end of file + port: 8000 + ensureExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v1 + source: yard1/llama-2-7b-sql-lora-test + ensureNotExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v2 + source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index b1648ec3..c3f66e9c 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -1,18 +1,20 @@ import requests import yaml import time -from watchdog.observers import Observer -from watchdog.events import FileSystemEventHandler +from watchfiles import awatch +import asyncio import logging import datetime import os CONFIG_MAP_FILE = os.environ.get("DYNAMIC_LORA_ROLLOUT_CONFIG", "configmap.yaml") -DYNAMIC_LORA_FLAG = "VLLM_ALLOW_RUNTIME_LORA_UPDATING" BASE_FIELD = "vLLMLoRAConfig" logging.basicConfig( - level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s" + level=logging.INFO, format="%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s", + datefmt='%Y-%m-%d %H:%M:%S', + handlers=[logging.StreamHandler()] ) +logging.Formatter.converter = time.localtime def current_time_human() -> str: @@ -20,22 +22,18 @@ def current_time_human() -> str: return now.strftime("%Y-%m-%d %H:%M:%S %Z%z") -class ConfigWatcher(FileSystemEventHandler): - def __init__(self, callback): - """ - Watches config +class LoraAdapter: + """Class representation of lora adapters in config""" + def __init__(self, id, source="", base_model=""): + self.id = id + self.source = source + self.base_model = base_model - Args: - callback : Callback function taking no parameters and no return values parsed - """ - self.callback = callback + def __eq__(self, other): + return self.id == other.id - def on_modified(self, event): - if not event.is_directory and event.src_path.endswith(".yaml"): - logging.info( - f"Config '{event.src_path}' modified! at '{current_time_human()}'" - ) - self.callback() + def __hash__(self): + return hash(self.id) class LoraReconciler: @@ -44,161 +42,152 @@ class LoraReconciler: """ def __init__(self): - self.deployment_name = "" - self.registered_adapters = {} - self.config_map_adapters = {} - self.health_check_timeout = datetime.timedelta(seconds=150) + self.health_check_timeout = datetime.timedelta(seconds=300) self.health_check_interval = datetime.timedelta(seconds=15) - if not self.validate_dynamic_lora(): - logging.fatal(f"{DYNAMIC_LORA_FLAG} set to False") - self.load_configmap() - self.get_registered_adapters() - def validate_dynamic_lora(self): - """Validate if dynamic lora updating is enabled""" - return os.environ.get(DYNAMIC_LORA_FLAG, False) - - def load_configmap(self): + @property + def config(self): """Load configmap into memory""" - with open(CONFIG_MAP_FILE, "r") as f: - deployment = yaml.safe_load(f)[BASE_FIELD] - self.deployment_name = deployment.get("name", "") - lora_adapters = deployment["models"] - self.host, self.port = ( - deployment.get("host") or "localhost", - deployment.get("port") or "8000", - ) - self.config_map_adapters = { - adapter["id"]: adapter for adapter in lora_adapters - } - - def get_registered_adapters(self): - """Retrieves all loaded models on server""" - url = f"http://{self.host}:{self.port}/v1/models" - if not self.wait_server_healthy(): - logging.error(f"Vllm server at {self.host}:{self.port} not healthy") + try: + with open(CONFIG_MAP_FILE, "r") as f: + c = yaml.safe_load(f) + if c is None: + c = {} + c = c.get("vLLMLoRAConfig",{}) + config_name = c.get("name","") + logging.info(f"loaded vLLMLoRAConfig {config_name} from {CONFIG_MAP_FILE}") + return c + except Exception as e: + logging.error(f"cannot load config {CONFIG_MAP_FILE} {e}") + return {} + + @property + def host(self): + """Model server host""" + return self.config.get("host", "localhost") + + @property + def port(self): + """Model server port""" + return self.config.get("port", 8000) + + @property + def model_server(self): + """Model server {host}:{port}""" + return f"{self.host}:{self.port}" + + @property + def ensure_exist_adapters(self): + """Lora adapters in config under key `ensureExist` in set""" + adapters = self.config.get("ensureExist", {}).get("models", set()) + return set([LoraAdapter(adapter["id"], adapter["source"], adapter.get("base-model","")) for adapter in adapters]) + + @property + def ensure_not_exist_adapters(self): + """Lora adapters in config under key `ensureNotExist` in set""" + adapters = self.config.get("ensureNotExist", {}).get("models", set()) + return set([LoraAdapter(adapter["id"], adapter["source"], adapter.get("base-model","")) for adapter in adapters]) + + @property + def registered_adapters(self): + """Lora Adapters registered on model server""" + url = f"http://{self.model_server}/v1/models" + if not self.is_server_healthy: + logging.error(f"vllm server at {self.model_server} not healthy") + return set() try: response = requests.get(url) - adapters = {adapter["id"]: adapter for adapter in response.json()["data"]} - self.registered_adapters = adapters + adapters = [ + LoraAdapter(a.get("id", ""), a.get("")) for a in response.json()["data"] + ] + return set(adapters) except requests.exceptions.RequestException as e: logging.error(f"Error communicating with vLLM server: {e}") - - def check_health(self) -> bool: - """Checks server health""" - url = f"http://{self.host}:{self.port}/health" - try: - response = requests.get(url) - return response.status_code == 200 - except requests.exceptions.RequestException: - return False - - def wait_server_healthy(self) -> bool: - """Wait for server to be healthy""" + return set() + + @property + def is_server_healthy(self) -> bool: + """probe server's health endpoint until timeout or success""" + + def check_health() -> bool: + """Checks server health""" + url = f"http://{self.model_server}/health" + try: + response = requests.get(url) + return response.status_code == 200 + except requests.exceptions.RequestException: + return False + start_time = datetime.datetime.now() while datetime.datetime.now() - start_time < self.health_check_timeout: - if self.check_health(): + if check_health(): return True time.sleep(self.health_check_interval.seconds) return False - - def reconcile(self): - """Reconciles model server with current version of configmap""" - self.get_registered_adapters() - self.load_configmap() - if not self.wait_server_healthy(): - logging.error(f"Vllm server at {self.host}:{self.port} not healthy") - - for adapter_id, lora_adapter in self.config_map_adapters.items(): - logging.info(f"Processing adapter {adapter_id}") - if lora_adapter.get("toRemove"): - e = self.unload_adapter(lora_adapter) - lora_adapter["timestamp"] = current_time_human() - lora_adapter["status"] = { - "timestamp": current_time_human(), - "operation": "unload", - "errors": [e], - } - else: - e = self.load_adapter(lora_adapter) - lora_adapter["status"] = { - "timestamp": current_time_human(), - "operation": "load", - "errors": [e], - } - self.log_status_config() - - def log_status_config(self): - models = list(self.config_map_adapters.values()) - deployment = { - "name": self.deployment_name, - "host": self.host, - "port": self.port, - "models": models, - } - config = {BASE_FIELD: deployment} - yaml_string = yaml.dump(config, indent=2) - logging.info( - f"current status of lora adapters on model server at {self.host}:{self.port} \n {yaml_string}" - ) - - def load_adapter(self, adapter): + + def load_adapter(self, adapter: LoraAdapter): """Sends a request to load the specified model.""" - adapter_id = adapter["id"] - if adapter_id in self.registered_adapters or adapter.get("toRemove"): + if adapter in self.registered_adapters: + logging.info(f"{adapter.id} already present on model server {self.model_server}") return - url = f"http://{self.host}:{self.port}/v1/load_lora_adapter" + url = f"http://{self.model_server}/v1/load_lora_adapter" payload = { - "lora_name": adapter_id, - "lora_path": adapter["source"], - "base_model_name": adapter.get("base-model", ""), + "lora_name": adapter.id, + "lora_path": adapter.source, + "base_model_name": adapter.base_model } try: response = requests.post(url, json=payload) response.raise_for_status() - logging.info(f"Loaded model {adapter_id}") - self.get_registered_adapters() - return "" + logging.info(f"loaded model {adapter.id}") except requests.exceptions.RequestException as e: - logging.error(f"Error loading model {adapter_id}: {e}") - return f"Error loading model {adapter_id}: {e}" + logging.error(f"error loading model {adapter.id}: {e}") - def unload_adapter(self, adapter): + def unload_adapter(self, adapter: LoraAdapter): """Sends a request to unload the specified model.""" - adapter_id = adapter["id"] - if adapter_id not in self.registered_adapters: + if adapter not in self.registered_adapters: + logging.info(f"{adapter.id} already doesn't exist on model server {self.model_server}") return - url = f"http://{self.host}:{self.port}/v1/unload_lora_adapter" - payload = {"lora_name": adapter_id} + url = f"http://{self.model_server}/v1/unload_lora_adapter" + payload = {"lora_name": adapter.id} try: response = requests.post(url, json=payload) response.raise_for_status() - logging.info(f"Unloaded model {adapter_id}") - self.get_registered_adapters() + logging.info(f"unloaded model {adapter.id}") return None except requests.exceptions.RequestException as e: - logging.error(f"Error unloading model {adapter_id}: {e}") - return f"Error unloading model {adapter_id}: {e}" + logging.error(f"error unloading model {adapter.id}: {e}") + return f"error unloading model {adapter.id}: {e}" + + def reconcile(self): + """Reconciles model server with current version of configmap""" + logging.info(f"reconciling model server {self.model_server} with config stored at {CONFIG_MAP_FILE}") + if not self.is_server_healthy: + logging.error(f"vllm server at {self.model_server} not healthy") + return + adapters_to_load = self.ensure_exist_adapters - self.ensure_not_exist_adapters + logging.info(f"adapter to load {len(adapters_to_load)}, adapters_to_load") + for adapter in adapters_to_load: + self.load_adapter(adapter) + adapters_to_unload = self.ensure_not_exist_adapters - self.ensure_exist_adapters + for adapter in adapters_to_unload: + self.unload_adapter(adapter) + -def main(): +async def main(): """Loads the target configuration, compares it with the server's models, and loads/unloads models accordingly.""" reconcilerInstance = LoraReconciler() + logging.info(f"running reconcile for initial loading of configmap {CONFIG_MAP_FILE}") reconcilerInstance.reconcile() - observer = Observer() - event_handler = ConfigWatcher(reconcilerInstance.reconcile) - observer.schedule(event_handler, path=CONFIG_MAP_FILE, recursive=False) - observer.start() - try: - while True: - time.sleep(1) - except KeyboardInterrupt: - logging.info("Lora Adapter Dynamic configuration Reconciler stopped") - observer.stop() - observer.join() + # observer = Observer() + logging.info(f"beginning watching of configmap {CONFIG_MAP_FILE}") + async for changes in awatch('/config'): + logging.info(f"Config '{CONFIG_MAP_FILE}' modified!'" ) + reconcilerInstance.reconcile() if __name__ == "__main__": - main() + asyncio.run(main()) From 3140610fc83154d5068577a1e66a8cc656e6224c Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Thu, 7 Nov 2024 11:38:40 -0800 Subject: [PATCH 13/34] Refactor configmap, switch to watchfiles to detect symbolic link target changes, pull dynamically from configmap Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 1 - examples/dynamic-lora-sidecar/sidecar/configmap.yaml | 6 ++++++ examples/dynamic-lora-sidecar/sidecar/sidecar.py | 11 ++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 124994c7..5d6ce2ea 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -75,7 +75,6 @@ spec: volumeMounts: - name: config-volume mountPath: /config - # subPath: configmap.yaml volumes: - name: dshm emptyDir: diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml index 4b8c40bb..8e85e772 100644 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -7,6 +7,12 @@ vLLMLoRAConfig: - base-model: meta-llama/Llama-2-7b-hf id: sql-lora-v1 source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v5 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v6 + source: yard1/llama-2-7b-sql-lora-test ensureNotExist: models: - base-model: meta-llama/Llama-2-7b-hf diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index c3f66e9c..5341c242 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -7,7 +7,7 @@ import datetime import os -CONFIG_MAP_FILE = os.environ.get("DYNAMIC_LORA_ROLLOUT_CONFIG", "configmap.yaml") +CONFIG_MAP_FILE = os.environ.get("DYNAMIC_LORA_ROLLOUT_CONFIG", "/config/configmap.yaml") BASE_FIELD = "vLLMLoRAConfig" logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s", @@ -165,11 +165,16 @@ def reconcile(self): if not self.is_server_healthy: logging.error(f"vllm server at {self.model_server} not healthy") return + invalid_adapters = ", ".join(str(a.id) for a in self.ensure_exist_adapters & self.ensure_not_exist_adapters) + logging.warning(f"skipped adapters found in both `ensureExist` and `ensureNotExist` {invalid_adapters}") adapters_to_load = self.ensure_exist_adapters - self.ensure_not_exist_adapters - logging.info(f"adapter to load {len(adapters_to_load)}, adapters_to_load") + adapters_to_load_id = ", ".join(str(a.id) for a in adapters_to_load) + logging.info(f"adapter to load {adapters_to_load_id}") for adapter in adapters_to_load: self.load_adapter(adapter) adapters_to_unload = self.ensure_not_exist_adapters - self.ensure_exist_adapters + adapters_to_unload_id = ", ".join(str(a.id) for a in adapters_to_unload) + logging.info(f"adapters to unload {adapters_to_unload_id}") for adapter in adapters_to_unload: self.unload_adapter(adapter) @@ -184,7 +189,7 @@ async def main(): reconcilerInstance.reconcile() # observer = Observer() logging.info(f"beginning watching of configmap {CONFIG_MAP_FILE}") - async for changes in awatch('/config'): + async for _ in awatch('/config/configmap.yaml'): logging.info(f"Config '{CONFIG_MAP_FILE}' modified!'" ) reconcilerInstance.reconcile() From 65cea88c14346153bc3bf27a5f4c3b7c6bbfdbaf Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Thu, 7 Nov 2024 18:49:56 -0800 Subject: [PATCH 14/34] Modify unittests Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 4 +- .../sidecar/configmap.yaml | 10 +- .../dynamic-lora-sidecar/sidecar/sidecar.py | 4 +- .../sidecar/test_sidecar.py | 214 ++++++++++-------- 4 files changed, 130 insertions(+), 102 deletions(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 5d6ce2ea..1c5b225d 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -72,7 +72,7 @@ spec: env: - name: DYNAMIC_LORA_ROLLOUT_CONFIG value: "/config/configmap.yaml" - volumeMounts: + volumeMounts: # DO NOT USE subPath - name: config-volume mountPath: /config volumes: @@ -110,7 +110,7 @@ data: vLLMLoRAConfig: host: localhost name: sql-loras-llama - port: '8000' + port: 8000 ensureExist: models: - base-model: meta-llama/Llama-2-7b-hf diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml index 8e85e772..68af2d03 100644 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -4,17 +4,17 @@ vLLMLoRAConfig: port: 8000 ensureExist: models: - - base-model: meta-llama/Llama-2-7b-hf + - base-model: meta-llama/Llama-2-7b-hf #optional id: sql-lora-v1 source: yard1/llama-2-7b-sql-lora-test - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v5 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v6 + id: sql-lora-v3 source: yard1/llama-2-7b-sql-lora-test ensureNotExist: models: - base-model: meta-llama/Llama-2-7b-hf id: sql-lora-v2 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v3 source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index 5341c242..a686ef9d 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -2,6 +2,7 @@ import yaml import time from watchfiles import awatch +from dataclasses import dataclass import asyncio import logging import datetime @@ -21,7 +22,7 @@ def current_time_human() -> str: now = datetime.datetime.now(datetime.timezone.utc).astimezone() return now.strftime("%Y-%m-%d %H:%M:%S %Z%z") - +@dataclass class LoraAdapter: """Class representation of lora adapters in config""" def __init__(self, id, source="", base_model=""): @@ -187,7 +188,6 @@ async def main(): reconcilerInstance = LoraReconciler() logging.info(f"running reconcile for initial loading of configmap {CONFIG_MAP_FILE}") reconcilerInstance.reconcile() - # observer = Observer() logging.info(f"beginning watching of configmap {CONFIG_MAP_FILE}") async for _ in awatch('/config/configmap.yaml'): logging.info(f"Config '{CONFIG_MAP_FILE}' modified!'" ) diff --git a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py index 53a7ef32..164fb34f 100644 --- a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py @@ -1,32 +1,69 @@ import unittest -from unittest.mock import patch, Mock, mock_open +from unittest.mock import patch, Mock, mock_open, call import yaml import os -from sidecar import LoraReconciler, CONFIG_MAP_FILE, BASE_FIELD, DYNAMIC_LORA_FLAG +from sidecar import LoraReconciler, CONFIG_MAP_FILE, BASE_FIELD, LoraAdapter TEST_CONFIG_DATA = { - "vLLMLoRAConfig": { - "name": "test-deployment", + BASE_FIELD: { "host": "localhost", - "port": "8000", - "models": [ - {"id": "lora1", "source": "/path/to/lora1", "base-model": "base1"}, - { - "id": "lora2", - "source": "/path/to/lora2", - "base-model": "base1", - "toRemove": True, - }, - ], + "name": "sql-loras-llama", + "port": 8000, + "ensureExist": { + "models": [ + { + "base-model": "meta-llama/Llama-2-7b-hf", + "id": "sql-lora-v1", + "source": "yard1/llama-2-7b-sql-lora-test", + }, + { + "base-model": "meta-llama/Llama-2-7b-hf", + "id": "sql-lora-v3", + "source": "yard1/llama-2-7b-sql-lora-test", + }, + { + "base-model": "meta-llama/Llama-2-7b-hf", + "id": "already_exists", + "source": "yard1/llama-2-7b-sql-lora-test", + }, + ] + }, + "ensureNotExist": { + "models": [ + { + "base-model": "meta-llama/Llama-2-7b-hf", + "id": "sql-lora-v2", + "source": "yard1/llama-2-7b-sql-lora-test", + }, + { + "base-model": "meta-llama/Llama-2-7b-hf", + "id": "sql-lora-v3", + "source": "yard1/llama-2-7b-sql-lora-test", + }, + { + "base-model": "meta-llama/Llama-2-7b-hf", + "id": "to_remove", + "source": "yard1/llama-2-7b-sql-lora-test", + }, + ] + }, } } - +EXIST_ADAPTERS = [ + LoraAdapter(a["id"], a["base-model"], a["source"]) + for a in TEST_CONFIG_DATA[BASE_FIELD]["ensureExist"]["models"] +] + +NOT_EXIST_ADAPTERS = [ + LoraAdapter(a["id"], a["base-model"], a["source"]) + for a in TEST_CONFIG_DATA[BASE_FIELD]["ensureNotExist"]["models"] +] RESPONSES = { "v1/models": { "object": "list", "data": [ { - "id": "base1", + "id": "already_exists", "object": "model", "created": 1729693000, "owned_by": "vllm", @@ -35,7 +72,7 @@ "max_model_len": 4096, }, { - "id": "lora2", + "id": "to_remove", "object": "model", "created": 1729693000, "owned_by": "vllm", @@ -46,26 +83,6 @@ ], }, } -REGISTERED_ADAPTERS = { - "base1": { - "created": 1729693000, - "id": "base1", - "max_model_len": 4096, - "object": "model", - "owned_by": "vllm", - "parent": None, - "root": "meta-llama/Llama-2-7b-hf", - }, - "lora2": { - "created": 1729693000, - "id": "lora2", - "max_model_len": None, - "object": "model", - "owned_by": "vllm", - "parent": "base1", - "root": "yard1/llama-2-7b-sql-lora-test", - }, -} def getMockResponse(status_return_value: object = None) -> object: @@ -79,48 +96,58 @@ class LoraReconcilerTest(unittest.TestCase): "builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA) ) @patch("sidecar.requests.get") - @patch.dict(os.environ, {DYNAMIC_LORA_FLAG: "test_api_key"}) def setUp(self, mock_get, mock_file): - with patch.object(LoraReconciler, "check_health", return_value=True): + with patch.object(LoraReconciler, "is_server_healthy", return_value=True): mock_response = getMockResponse() mock_response.json.return_value = RESPONSES["v1/models"] mock_get.return_value = mock_response self.reconciler = LoraReconciler() self.maxDiff = None - mock_file.assert_called_once_with(CONFIG_MAP_FILE, "r") @patch("sidecar.requests.get") - def test_get_registered_adapters(self, mock_get): - with patch.object(LoraReconciler, "check_health", return_value=True): - mock_response = getMockResponse() - mock_response.json.return_value = RESPONSES["v1/models"] - mock_get.return_value = mock_response - - self.reconciler.get_registered_adapters() - self.assertEqual(REGISTERED_ADAPTERS, self.reconciler.registered_adapters) - @patch("sidecar.requests.post") - def test_load_adapter(self, mock_post): - with patch.object(LoraReconciler, "check_health", return_value=True): - mock_post.return_value = getMockResponse() - - # loading a new adapter - result = self.reconciler.load_adapter( - TEST_CONFIG_DATA[BASE_FIELD]["models"][0] - ) - self.assertEqual(result, "") + def test_load_adapter(self, mock_post: Mock, mock_get: Mock): + mock_response = getMockResponse() + mock_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_response + mock_file = mock_open(read_data=yaml.dump(TEST_CONFIG_DATA)) + with patch("builtins.open", mock_file): + with patch.object(LoraReconciler, "is_server_healthy", return_value=True): + mock_post.return_value = getMockResponse() + # loading a new adapter + adapter = EXIST_ADAPTERS[0] + url = "http://localhost:8000/v1/load_lora_adapter" + payload = { + "lora_name": adapter.id, + "lora_path": adapter.source, + "base_model_name": adapter.base_model, + } + self.reconciler.load_adapter(adapter) + # adapter 2 already exists `id:already_exists` + already_exists = EXIST_ADAPTERS[2] + self.reconciler.load_adapter(already_exists) + mock_post.assert_called_once_with(url, json=payload) + @patch("sidecar.requests.get") @patch("sidecar.requests.post") - def test_unload_adapter(self, mock_post): - with patch.object(LoraReconciler, "check_health", return_value=True): - mock_post.return_value = getMockResponse() - - # unloading an existing adapter - self.reconciler.registered_adapters["lora2"] = {"id": "lora2"} - result = self.reconciler.unload_adapter( - TEST_CONFIG_DATA[BASE_FIELD]["models"][1] - ) - self.assertEqual(result, None) + def test_unload_adapter(self, mock_post: Mock, mock_get: Mock): + mock_response = getMockResponse() + mock_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_response + mock_file = mock_open(read_data=yaml.dump(TEST_CONFIG_DATA)) + with patch("builtins.open", mock_file): + with patch.object(LoraReconciler, "is_server_healthy", return_value=True): + mock_post.return_value = getMockResponse() + # unloading an existing adapter `id:to_remove` + adapter = NOT_EXIST_ADAPTERS[2] + self.reconciler.unload_adapter(adapter) + payload = {"lora_name": adapter.id} + adapter = NOT_EXIST_ADAPTERS[0] + self.reconciler.unload_adapter(adapter) + mock_post.assert_called_once_with( + "http://localhost:8000/v1/unload_lora_adapter", + json=payload, + ) @patch( "builtins.open", new_callable=mock_open, read_data=yaml.dump(TEST_CONFIG_DATA) @@ -128,31 +155,32 @@ def test_unload_adapter(self, mock_post): @patch("sidecar.requests.get") @patch("sidecar.requests.post") def test_reconcile(self, mock_post, mock_get, mock_file): - with patch.object(LoraReconciler, "check_health", return_value=True): - mock_get_response = getMockResponse() - mock_get_response.json.return_value = RESPONSES["v1/models"] - mock_get.return_value = mock_get_response - mock_post.return_value = getMockResponse() - - self.reconciler = LoraReconciler() - self.reconciler.reconcile() - - mock_post.assert_any_call( - "http://localhost:8000/v1/load_lora_adapter", - json={ - "lora_name": "lora1", - "lora_path": "/path/to/lora1", - "base_model_name": "base1", - }, - ) - mock_post.assert_any_call( - "http://localhost:8000/v1/unload_lora_adapter", json={"lora_name": "lora2"} - ) - updated_config = self.reconciler.config_map_adapters - mock_file.return_value.write.side_effect = lambda data: data - self.assertTrue("timestamp" in updated_config["lora1"]["status"]) - self.assertTrue("status" in updated_config["lora2"]) - + with patch("builtins.open", mock_file): + with patch.object(LoraReconciler, "is_server_healthy", return_value=True): + with patch.object( + LoraReconciler, "load_adapter", return_value="" + ) as mock_load: + with patch.object( + LoraReconciler, "unload_adapter", return_value="" + ) as mock_unload: + mock_get_response = getMockResponse() + mock_get_response.json.return_value = RESPONSES["v1/models"] + mock_get.return_value = mock_get_response + mock_post.return_value = getMockResponse() + self.reconciler = LoraReconciler() + self.reconciler.reconcile() + + # 1 adapter is in both exist and not exist list, only 2 are expected to be loaded + mock_load.assert_has_calls( + calls=[call(EXIST_ADAPTERS[0]), call(EXIST_ADAPTERS[2])] + ) + assert mock_load.call_count == 2 + + # 1 adapter is in both exist and not exist list, only 2 are expected to be unloaded + mock_unload.assert_has_calls( + calls=[call(NOT_EXIST_ADAPTERS[0]), call(NOT_EXIST_ADAPTERS[2])] + ) + assert mock_unload.call_count == 2 if __name__ == "__main__": unittest.main() From 8012ea378bdf527a99fe635ece8287cc7258b3d2 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Thu, 7 Nov 2024 18:53:51 -0800 Subject: [PATCH 15/34] Change example host and port to be explicit Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 4 ++-- examples/dynamic-lora-sidecar/sidecar/configmap.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 1c5b225d..082afc6a 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -108,9 +108,9 @@ metadata: data: configmap.yaml: | vLLMLoRAConfig: - host: localhost + host: modelServerHost name: sql-loras-llama - port: 8000 + port: modelServerPort ensureExist: models: - base-model: meta-llama/Llama-2-7b-hf diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml index 68af2d03..4a52ae6d 100644 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml @@ -1,7 +1,7 @@ vLLMLoRAConfig: - host: localhost + host: modelServerHost name: sql-loras-llama - port: 8000 + port: modelServerPort ensureExist: models: - base-model: meta-llama/Llama-2-7b-hf #optional From ba00b85179e7332441782b545b960a08a1cbd3f7 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Thu, 7 Nov 2024 18:55:15 -0800 Subject: [PATCH 16/34] Change example sidecar name Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 082afc6a..892ee631 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -63,7 +63,7 @@ spec: - mountPath: /dev/shm name: dshm initContainers: - - name: configmap-reader-1 + - name: lora-adapter-syncer tty: true stdin: true image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest From c8d9c101cc926afed25fbaac6309d18fb4db72ad Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Fri, 8 Nov 2024 09:46:35 -0800 Subject: [PATCH 17/34] Add warning about using subPath Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/dynamic-lora-sidecar/README.md b/examples/dynamic-lora-sidecar/README.md index a705c746..4abde8b1 100644 --- a/examples/dynamic-lora-sidecar/README.md +++ b/examples/dynamic-lora-sidecar/README.md @@ -36,6 +36,11 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c ```bash kubectl create configmap name-of-your-configmap --from-file=your-file.yaml 3. **Mount the configmap and configure sidecar in your pod** - ![example deployment][deployment] + ```yaml + volumeMounts: # DO NOT USE subPath + - name: config-volume + mountPath: /config + ``` + Do not use subPath, since configmap updates are not reflected in the file [deployment]: deployment.yaml \ No newline at end of file From 828348d16f61273183be76a0e2593f4448696afb Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Fri, 8 Nov 2024 10:21:00 -0800 Subject: [PATCH 18/34] Add screenshots Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/README.md | 7 ++++++- examples/dynamic-lora-sidecar/requirements.txt | 1 - examples/dynamic-lora-sidecar/sidecar/sidecar.py | 2 -- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-lora-sidecar/README.md b/examples/dynamic-lora-sidecar/README.md index 4abde8b1..eb5c0bad 100644 --- a/examples/dynamic-lora-sidecar/README.md +++ b/examples/dynamic-lora-sidecar/README.md @@ -43,4 +43,9 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c ``` Do not use subPath, since configmap updates are not reflected in the file -[deployment]: deployment.yaml \ No newline at end of file +[deployment]: deployment.yaml + +## Screenshots +![lora-adapter-syncer](screenshots/lora-syncer-sidecar.png) +![config map change](screenshots/configmap-change.png) +![vllm-logs](screenshots/vllm-logs.png) diff --git a/examples/dynamic-lora-sidecar/requirements.txt b/examples/dynamic-lora-sidecar/requirements.txt index dbf52c34..3c951e37 100644 --- a/examples/dynamic-lora-sidecar/requirements.txt +++ b/examples/dynamic-lora-sidecar/requirements.txt @@ -1,5 +1,4 @@ aiohttp==3.10.10 pyyaml==6.0.2 requests==2.32.3 -watchdog==5.0.3 watchfiles==0.24.0 \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index a686ef9d..bde1d83e 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -55,8 +55,6 @@ def config(self): if c is None: c = {} c = c.get("vLLMLoRAConfig",{}) - config_name = c.get("name","") - logging.info(f"loaded vLLMLoRAConfig {config_name} from {CONFIG_MAP_FILE}") return c except Exception as e: logging.error(f"cannot load config {CONFIG_MAP_FILE} {e}") From ec4082036ab66e11d4dc489cd9b337a772abe394 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Fri, 8 Nov 2024 10:22:28 -0800 Subject: [PATCH 19/34] Add screenshots Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/dynamic-lora-sidecar/README.md b/examples/dynamic-lora-sidecar/README.md index eb5c0bad..243df791 100644 --- a/examples/dynamic-lora-sidecar/README.md +++ b/examples/dynamic-lora-sidecar/README.md @@ -45,7 +45,8 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c [deployment]: deployment.yaml -## Screenshots +## Screenshots & Testing +I tested the sidecar in my cluster with deployment and configmap specified in this repo. Here are the screen grabs of the logs from the sidecar and vllm server. ![lora-adapter-syncer](screenshots/lora-syncer-sidecar.png) ![config map change](screenshots/configmap-change.png) ![vllm-logs](screenshots/vllm-logs.png) From 1aba325a8e9fb3f18c2cd2221cd6a902b8f9209e Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Fri, 8 Nov 2024 17:59:09 -0800 Subject: [PATCH 20/34] Add testing results Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/README.md | 2 +- .../sidecar/configmap.yaml | 20 ------------------- .../dynamic-lora-sidecar/sidecar/sidecar.py | 1 + 3 files changed, 2 insertions(+), 21 deletions(-) delete mode 100644 examples/dynamic-lora-sidecar/sidecar/configmap.yaml diff --git a/examples/dynamic-lora-sidecar/README.md b/examples/dynamic-lora-sidecar/README.md index 243df791..351b7e96 100644 --- a/examples/dynamic-lora-sidecar/README.md +++ b/examples/dynamic-lora-sidecar/README.md @@ -46,7 +46,7 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c [deployment]: deployment.yaml ## Screenshots & Testing -I tested the sidecar in my cluster with deployment and configmap specified in this repo. Here are the screen grabs of the logs from the sidecar and vllm server. +I tested the sidecar in my cluster with deployment and configmap specified in this repo. Here are the screen grabs of the logs from the sidecar and vllm server. I used the specified configmap, verified that the adapters were loaded by querying `v1/models` and looking at vllm logs. I changed the configmap and validated the same on vllm server. Note: There is slight lag between updates. ![lora-adapter-syncer](screenshots/lora-syncer-sidecar.png) ![config map change](screenshots/configmap-change.png) ![vllm-logs](screenshots/vllm-logs.png) diff --git a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml b/examples/dynamic-lora-sidecar/sidecar/configmap.yaml deleted file mode 100644 index 4a52ae6d..00000000 --- a/examples/dynamic-lora-sidecar/sidecar/configmap.yaml +++ /dev/null @@ -1,20 +0,0 @@ -vLLMLoRAConfig: - host: modelServerHost - name: sql-loras-llama - port: modelServerPort - ensureExist: - models: - - base-model: meta-llama/Llama-2-7b-hf #optional - id: sql-lora-v1 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v3 - source: yard1/llama-2-7b-sql-lora-test - ensureNotExist: - models: - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v2 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v3 - source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index bde1d83e..87f473e2 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -2,6 +2,7 @@ import yaml import time from watchfiles import awatch +import ipaddress from dataclasses import dataclass import asyncio import logging From b30051a46577d94bd4184f8f2f066c0ca1bc74fd Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Fri, 8 Nov 2024 17:59:21 -0800 Subject: [PATCH 21/34] Add testing results Signed-off-by: Kunjan Patel --- .../screenshots/configmap-change.png | Bin 0 -> 129261 bytes .../screenshots/lora-syncer-sidecar.png | Bin 0 -> 180452 bytes .../screenshots/vllm-logs.png | Bin 0 -> 227162 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/dynamic-lora-sidecar/screenshots/configmap-change.png create mode 100644 examples/dynamic-lora-sidecar/screenshots/lora-syncer-sidecar.png create mode 100644 examples/dynamic-lora-sidecar/screenshots/vllm-logs.png diff --git a/examples/dynamic-lora-sidecar/screenshots/configmap-change.png b/examples/dynamic-lora-sidecar/screenshots/configmap-change.png new file mode 100644 index 0000000000000000000000000000000000000000..e17f060b80097b09143c81a72b574de15e2616db GIT binary patch literal 129261 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 l32CwTZ^MwmqB$kP_ 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�hE#Lfsg($dvNYpXf9yLf9nx!<0=73fjYsY&VZz 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 literal 0 HcmV?d00001 diff --git a/examples/dynamic-lora-sidecar/screenshots/vllm-logs.png b/examples/dynamic-lora-sidecar/screenshots/vllm-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..27aa28602f3d986bbc0b1c49aedfd44cb36feaf5 GIT binary patch literal 227162 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 z%0D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

oZ{0t=kO$ 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 literal 0 HcmV?d00001 From c5d25275aceb517e110d11a599cbe22d2113db29 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Mon, 11 Nov 2024 07:44:49 -0800 Subject: [PATCH 22/34] Add config validation Signed-off-by: Kunjan Patel --- .../dynamic-lora-sidecar/sidecar/sidecar.py | 19 ++++- .../sidecar/test_sidecar.py | 2 +- .../sidecar/validation.yaml | 72 +++++++++++++++++++ 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 examples/dynamic-lora-sidecar/sidecar/validation.yaml diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index 87f473e2..13354103 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -1,6 +1,7 @@ import requests import yaml import time +from jsonschema import validate from watchfiles import awatch import ipaddress from dataclasses import dataclass @@ -43,16 +44,30 @@ class LoraReconciler: Reconciles adapters registered on vllm server with adapters listed in configmap in current state """ - def __init__(self): + def __init__(self, config_validation=True): self.health_check_timeout = datetime.timedelta(seconds=300) self.health_check_interval = datetime.timedelta(seconds=15) - + self.config_validation = config_validation + + def validate_config(self, c)-> bool: + try: + with open('validation.yaml', 'r') as f: + schema = yaml.safe_load(f) + validate(instance=c, schema=schema) + return True + except Exception as e: + logging.error(f"Cannot load config {CONFIG_MAP_FILE} validation error: {e}") + return False + @property def config(self): """Load configmap into memory""" try: + with open(CONFIG_MAP_FILE, "r") as f: c = yaml.safe_load(f) + if self.config_validation and not self.validate_config(c): + return {} if c is None: c = {} c = c.get("vLLMLoRAConfig",{}) diff --git a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py index 164fb34f..738c7449 100644 --- a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py @@ -101,7 +101,7 @@ def setUp(self, mock_get, mock_file): mock_response = getMockResponse() mock_response.json.return_value = RESPONSES["v1/models"] mock_get.return_value = mock_response - self.reconciler = LoraReconciler() + self.reconciler = LoraReconciler(False) self.maxDiff = None @patch("sidecar.requests.get") diff --git a/examples/dynamic-lora-sidecar/sidecar/validation.yaml b/examples/dynamic-lora-sidecar/sidecar/validation.yaml new file mode 100644 index 00000000..79a6aaa4 --- /dev/null +++ b/examples/dynamic-lora-sidecar/sidecar/validation.yaml @@ -0,0 +1,72 @@ +title: vLLMLoRAConfig +description: Configuration for vLLM LoRA adapters +type: object +properties: + vLLMLoRAConfig: + type: object + properties: + host: + type: string + description: Model server's host + default: localhost + port: + type: integer + description: Model server's port + default: 8000 + name: + type: string + description: Name of this config + ensureExist: + type: object + description: List of models to ensure existence on specified model server + properties: + models: + type: array + description: List of LoRA adapter configurations + items: + type: object + properties: + base_model: + type: string + description: Base model for LoRA adapter + id: + type: string + description: Unique ID of LoRA adapter + source: + type: string + description: Path (remote or local) to LoRA adapter + required: + - id + - source + required: + - models + ensureNotExist: + type: object + description: List of models to ensure non-existence on specified model server + properties: + models: + type: array + description: List of LoRA adapter configurations + items: + type: object + properties: + base_model: + type: string + description: Base model for LoRA adapter + id: + type: string + description: Unique ID of LoRA adapter + source: + type: string + description: Path (remote or local) to LoRA adapter + required: + - id + - source + required: + - models + required: + - host + - port + - name +required: + - vLLMLoRAConfig \ No newline at end of file From d0d01e1b5b2be40e1544d6b157251d4dc686721d Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Mon, 11 Nov 2024 07:45:33 -0800 Subject: [PATCH 23/34] Add config documentation Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/README.md | 19 +++++++++++++++++++ .../dynamic-lora-sidecar/requirements.txt | 9 +++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-lora-sidecar/README.md b/examples/dynamic-lora-sidecar/README.md index 351b7e96..ecec93f0 100644 --- a/examples/dynamic-lora-sidecar/README.md +++ b/examples/dynamic-lora-sidecar/README.md @@ -45,6 +45,25 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c [deployment]: deployment.yaml +## Configuration Fields +- `vLLMLoRAConfig`[**required**] base key +- `host` [*optional*]Model server's host. defaults to localhost +- `port` [*optional*] Model server's port. defaults to 8000 +- `name`[*optional*] Name of this config +- `ensureExist`[*optional*] List of models to ensure existence on specified model server. + - `models`[**required**] [list] + - `base-model`[*optional*] Base model for lora adapter + - `id`[**required**] unique id of lora adapter + - `source`[**required**] path (remote or local) to lora adapter +- `ensureNotExist` [*optional*] + - `models`[**required**] [list] + - `id`[**required**] unique id of lora adapter + - `source`[**required**] path (remote or local) to lora adapter + - `base-model`[*optional*] Base model for lora adapter + + + + ## Screenshots & Testing I tested the sidecar in my cluster with deployment and configmap specified in this repo. Here are the screen grabs of the logs from the sidecar and vllm server. I used the specified configmap, verified that the adapters were loaded by querying `v1/models` and looking at vllm logs. I changed the configmap and validated the same on vllm server. Note: There is slight lag between updates. ![lora-adapter-syncer](screenshots/lora-syncer-sidecar.png) diff --git a/examples/dynamic-lora-sidecar/requirements.txt b/examples/dynamic-lora-sidecar/requirements.txt index 3c951e37..874d1702 100644 --- a/examples/dynamic-lora-sidecar/requirements.txt +++ b/examples/dynamic-lora-sidecar/requirements.txt @@ -1,4 +1,5 @@ -aiohttp==3.10.10 -pyyaml==6.0.2 -requests==2.32.3 -watchfiles==0.24.0 \ No newline at end of file +aiohttp +jsonschema +pyyaml +requests +watchfiles \ No newline at end of file From b4867b60baae50d172b44f769422b41ff650a354 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Mon, 11 Nov 2024 07:46:56 -0800 Subject: [PATCH 24/34] Add config documentation Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/deployment.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/examples/dynamic-lora-sidecar/deployment.yaml index 892ee631..9e9fc130 100644 --- a/examples/dynamic-lora-sidecar/deployment.yaml +++ b/examples/dynamic-lora-sidecar/deployment.yaml @@ -66,7 +66,7 @@ spec: - name: lora-adapter-syncer tty: true stdin: true - image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest + image: restartPolicy: Always imagePullPolicy: Always env: @@ -82,8 +82,6 @@ spec: - name: config-volume configMap: name: dynamic-lora-config - nodeSelector: - cloud.google.com/gke-accelerator: nvidia-l4 --- apiVersion: v1 From e60b4342c61d12e25b488741ded4a40d6c43eaa0 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Mon, 11 Nov 2024 08:18:35 -0800 Subject: [PATCH 25/34] Add config validation Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dynamic-lora-sidecar/Dockerfile b/examples/dynamic-lora-sidecar/Dockerfile index 8368f42e..a8cd7b22 100644 --- a/examples/dynamic-lora-sidecar/Dockerfile +++ b/examples/dynamic-lora-sidecar/Dockerfile @@ -11,6 +11,6 @@ RUN pip install --upgrade pip COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt -COPY sidecar/sidecar.py . +COPY sidecar/* . CMD ["python", "sidecar.py"] \ No newline at end of file From bea4068694ac698b259b6cacbae1f66210b94e85 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Mon, 11 Nov 2024 08:21:04 -0800 Subject: [PATCH 26/34] Add config validation Signed-off-by: Kunjan Patel --- examples/dynamic-lora-sidecar/sidecar/validation.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/dynamic-lora-sidecar/sidecar/validation.yaml b/examples/dynamic-lora-sidecar/sidecar/validation.yaml index 79a6aaa4..9dd98f87 100644 --- a/examples/dynamic-lora-sidecar/sidecar/validation.yaml +++ b/examples/dynamic-lora-sidecar/sidecar/validation.yaml @@ -64,9 +64,5 @@ properties: - source required: - models - required: - - host - - port - - name required: - vLLMLoRAConfig \ No newline at end of file From 100f636e51af83bf89c1034905a23da84acf0141 Mon Sep 17 00:00:00 2001 From: Kunjan Patel Date: Mon, 11 Nov 2024 11:36:55 -0800 Subject: [PATCH 27/34] Make reconciling non blocking --- examples/dynamic-lora-sidecar/Dockerfile | 7 + .../dynamic-lora-sidecar/requirements.txt | 3 +- .../dynamic-lora-sidecar/sidecar/sidecar.py | 125 +++++++++++++----- 3 files changed, 98 insertions(+), 37 deletions(-) diff --git a/examples/dynamic-lora-sidecar/Dockerfile b/examples/dynamic-lora-sidecar/Dockerfile index a8cd7b22..4f6c743e 100644 --- a/examples/dynamic-lora-sidecar/Dockerfile +++ b/examples/dynamic-lora-sidecar/Dockerfile @@ -1,3 +1,10 @@ +FROM python:3.9-slim-buster AS test + +WORKDIR /dynamic-lora-reconciler-test +COPY requirements.txt . +COPY sidecar/* . +RUN pip install -r requirements.txt +RUN python -m unittest discover || exit 1 FROM python:3.10-slim-buster diff --git a/examples/dynamic-lora-sidecar/requirements.txt b/examples/dynamic-lora-sidecar/requirements.txt index 874d1702..1f9b9272 100644 --- a/examples/dynamic-lora-sidecar/requirements.txt +++ b/examples/dynamic-lora-sidecar/requirements.txt @@ -2,4 +2,5 @@ aiohttp jsonschema pyyaml requests -watchfiles \ No newline at end of file +watchfiles +watchdog \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/examples/dynamic-lora-sidecar/sidecar/sidecar.py index 13354103..02070f3f 100644 --- a/examples/dynamic-lora-sidecar/sidecar/sidecar.py +++ b/examples/dynamic-lora-sidecar/sidecar/sidecar.py @@ -3,30 +3,51 @@ import time from jsonschema import validate from watchfiles import awatch -import ipaddress from dataclasses import dataclass import asyncio import logging import datetime import os +import sys +from watchdog.observers.polling import PollingObserver as Observer +from watchdog.events import FileSystemEventHandler -CONFIG_MAP_FILE = os.environ.get("DYNAMIC_LORA_ROLLOUT_CONFIG", "/config/configmap.yaml") +CONFIG_MAP_FILE = os.environ.get( + "DYNAMIC_LORA_ROLLOUT_CONFIG", "/config/configmap.yaml" +) BASE_FIELD = "vLLMLoRAConfig" logging.basicConfig( - level=logging.INFO, format="%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s", - datefmt='%Y-%m-%d %H:%M:%S', - handlers=[logging.StreamHandler()] + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S", + handlers=[logging.StreamHandler(sys.stdout)], ) -logging.Formatter.converter = time.localtime +logging.Formatter.converter = time.localtime def current_time_human() -> str: now = datetime.datetime.now(datetime.timezone.utc).astimezone() return now.strftime("%Y-%m-%d %H:%M:%S %Z%z") + +class FileChangeHandler(FileSystemEventHandler): + """Custom event handler that handles file modifications.""" + + def __init__(self, reconciler): + super().__init__() + self.reconciler = reconciler + + def on_modified(self, event): + logging.info("modified!") + logging.info(f"Config '{CONFIG_MAP_FILE}' modified!") + self.reconciler.reconcile() + logging.info(f"model server reconcile to Config '{CONFIG_MAP_FILE}' !") + + @dataclass class LoraAdapter: """Class representation of lora adapters in config""" + def __init__(self, id, source="", base_model=""): self.id = id self.source = source @@ -48,34 +69,33 @@ def __init__(self, config_validation=True): self.health_check_timeout = datetime.timedelta(seconds=300) self.health_check_interval = datetime.timedelta(seconds=15) self.config_validation = config_validation - - def validate_config(self, c)-> bool: + + def validate_config(self, c) -> bool: try: - with open('validation.yaml', 'r') as f: + with open("validation.yaml", "r") as f: schema = yaml.safe_load(f) validate(instance=c, schema=schema) return True except Exception as e: logging.error(f"Cannot load config {CONFIG_MAP_FILE} validation error: {e}") return False - + @property def config(self): """Load configmap into memory""" try: - with open(CONFIG_MAP_FILE, "r") as f: c = yaml.safe_load(f) if self.config_validation and not self.validate_config(c): return {} if c is None: c = {} - c = c.get("vLLMLoRAConfig",{}) + c = c.get("vLLMLoRAConfig", {}) return c except Exception as e: logging.error(f"cannot load config {CONFIG_MAP_FILE} {e}") return {} - + @property def host(self): """Model server host""" @@ -85,7 +105,7 @@ def host(self): def port(self): """Model server port""" return self.config.get("port", 8000) - + @property def model_server(self): """Model server {host}:{port}""" @@ -95,13 +115,27 @@ def model_server(self): def ensure_exist_adapters(self): """Lora adapters in config under key `ensureExist` in set""" adapters = self.config.get("ensureExist", {}).get("models", set()) - return set([LoraAdapter(adapter["id"], adapter["source"], adapter.get("base-model","")) for adapter in adapters]) + return set( + [ + LoraAdapter( + adapter["id"], adapter["source"], adapter.get("base-model", "") + ) + for adapter in adapters + ] + ) @property def ensure_not_exist_adapters(self): """Lora adapters in config under key `ensureNotExist` in set""" adapters = self.config.get("ensureNotExist", {}).get("models", set()) - return set([LoraAdapter(adapter["id"], adapter["source"], adapter.get("base-model","")) for adapter in adapters]) + return set( + [ + LoraAdapter( + adapter["id"], adapter["source"], adapter.get("base-model", "") + ) + for adapter in adapters + ] + ) @property def registered_adapters(self): @@ -123,7 +157,7 @@ def registered_adapters(self): @property def is_server_healthy(self) -> bool: """probe server's health endpoint until timeout or success""" - + def check_health() -> bool: """Checks server health""" url = f"http://{self.model_server}/health" @@ -132,24 +166,26 @@ def check_health() -> bool: return response.status_code == 200 except requests.exceptions.RequestException: return False - + start_time = datetime.datetime.now() while datetime.datetime.now() - start_time < self.health_check_timeout: if check_health(): return True time.sleep(self.health_check_interval.seconds) return False - + def load_adapter(self, adapter: LoraAdapter): """Sends a request to load the specified model.""" if adapter in self.registered_adapters: - logging.info(f"{adapter.id} already present on model server {self.model_server}") + logging.info( + f"{adapter.id} already present on model server {self.model_server}" + ) return url = f"http://{self.model_server}/v1/load_lora_adapter" payload = { "lora_name": adapter.id, "lora_path": adapter.source, - "base_model_name": adapter.base_model + "base_model_name": adapter.base_model, } try: response = requests.post(url, json=payload) @@ -161,7 +197,9 @@ def load_adapter(self, adapter: LoraAdapter): def unload_adapter(self, adapter: LoraAdapter): """Sends a request to unload the specified model.""" if adapter not in self.registered_adapters: - logging.info(f"{adapter.id} already doesn't exist on model server {self.model_server}") + logging.info( + f"{adapter.id} already doesn't exist on model server {self.model_server}" + ) return url = f"http://{self.model_server}/v1/unload_lora_adapter" payload = {"lora_name": adapter.id} @@ -176,12 +214,19 @@ def unload_adapter(self, adapter: LoraAdapter): def reconcile(self): """Reconciles model server with current version of configmap""" - logging.info(f"reconciling model server {self.model_server} with config stored at {CONFIG_MAP_FILE}") + logging.info( + f"reconciling model server {self.model_server} with config stored at {CONFIG_MAP_FILE}" + ) if not self.is_server_healthy: logging.error(f"vllm server at {self.model_server} not healthy") return - invalid_adapters = ", ".join(str(a.id) for a in self.ensure_exist_adapters & self.ensure_not_exist_adapters) - logging.warning(f"skipped adapters found in both `ensureExist` and `ensureNotExist` {invalid_adapters}") + invalid_adapters = ", ".join( + str(a.id) + for a in self.ensure_exist_adapters & self.ensure_not_exist_adapters + ) + logging.warning( + f"skipped adapters found in both `ensureExist` and `ensureNotExist` {invalid_adapters}" + ) adapters_to_load = self.ensure_exist_adapters - self.ensure_not_exist_adapters adapters_to_load_id = ", ".join(str(a.id) for a in adapters_to_load) logging.info(f"adapter to load {adapters_to_load_id}") @@ -194,18 +239,26 @@ def reconcile(self): self.unload_adapter(adapter) - async def main(): - """Loads the target configuration, compares it with the server's models, - and loads/unloads models accordingly.""" - - reconcilerInstance = LoraReconciler() - logging.info(f"running reconcile for initial loading of configmap {CONFIG_MAP_FILE}") - reconcilerInstance.reconcile() - logging.info(f"beginning watching of configmap {CONFIG_MAP_FILE}") - async for _ in awatch('/config/configmap.yaml'): - logging.info(f"Config '{CONFIG_MAP_FILE}' modified!'" ) - reconcilerInstance.reconcile() + reconciler_instance = LoraReconciler() + logging.info(f"Running initial reconcile for config map {CONFIG_MAP_FILE}") + reconciler_instance.reconcile() + + event_handler = FileChangeHandler(reconciler_instance) + observer = Observer() + observer.schedule( + event_handler, path=os.path.dirname(CONFIG_MAP_FILE), recursive=False + ) + observer.start() + + try: + logging.info(f"Starting to watch {CONFIG_MAP_FILE} for changes...") + while True: + await asyncio.sleep(1) + except KeyboardInterrupt: + logging.info("Stopped by user.") + observer.stop() + observer.join() if __name__ == "__main__": From c24ff3559d1750c746746e443a5432065432850b Mon Sep 17 00:00:00 2001 From: Kunjan Date: Tue, 12 Nov 2024 10:45:08 -0800 Subject: [PATCH 28/34] Move under tools Signed-off-by: Kunjan --- .../dynamic-lora-sidecar/.gitignore | 0 .../dynamic-lora-sidecar/Dockerfile | 0 .../dynamic-lora-sidecar/README.md | 0 tools/dynamic-lora-sidecar/configmap.yaml | 18 +++ .../dynamic-lora-sidecar/deployment.yaml | 0 .../dynamic-lora-sidecar/dev-deployment.yaml | 125 ++++++++++++++++++ .../dynamic-lora-sidecar/requirements.txt | 0 .../screenshots/configmap-change.png | Bin .../screenshots/lora-syncer-sidecar.png | Bin .../screenshots/vllm-logs.png | Bin .../dynamic-lora-sidecar/sidecar/sidecar.py | 0 .../sidecar/test_sidecar.py | 0 .../sidecar/validation.yaml | 0 13 files changed, 143 insertions(+) rename {examples => tools}/dynamic-lora-sidecar/.gitignore (100%) rename {examples => tools}/dynamic-lora-sidecar/Dockerfile (100%) rename {examples => tools}/dynamic-lora-sidecar/README.md (100%) create mode 100644 tools/dynamic-lora-sidecar/configmap.yaml rename {examples => tools}/dynamic-lora-sidecar/deployment.yaml (100%) create mode 100644 tools/dynamic-lora-sidecar/dev-deployment.yaml rename {examples => tools}/dynamic-lora-sidecar/requirements.txt (100%) rename {examples => tools}/dynamic-lora-sidecar/screenshots/configmap-change.png (100%) rename {examples => tools}/dynamic-lora-sidecar/screenshots/lora-syncer-sidecar.png (100%) rename {examples => tools}/dynamic-lora-sidecar/screenshots/vllm-logs.png (100%) rename {examples => tools}/dynamic-lora-sidecar/sidecar/sidecar.py (100%) rename {examples => tools}/dynamic-lora-sidecar/sidecar/test_sidecar.py (100%) rename {examples => tools}/dynamic-lora-sidecar/sidecar/validation.yaml (100%) diff --git a/examples/dynamic-lora-sidecar/.gitignore b/tools/dynamic-lora-sidecar/.gitignore similarity index 100% rename from examples/dynamic-lora-sidecar/.gitignore rename to tools/dynamic-lora-sidecar/.gitignore diff --git a/examples/dynamic-lora-sidecar/Dockerfile b/tools/dynamic-lora-sidecar/Dockerfile similarity index 100% rename from examples/dynamic-lora-sidecar/Dockerfile rename to tools/dynamic-lora-sidecar/Dockerfile diff --git a/examples/dynamic-lora-sidecar/README.md b/tools/dynamic-lora-sidecar/README.md similarity index 100% rename from examples/dynamic-lora-sidecar/README.md rename to tools/dynamic-lora-sidecar/README.md diff --git a/tools/dynamic-lora-sidecar/configmap.yaml b/tools/dynamic-lora-sidecar/configmap.yaml new file mode 100644 index 00000000..d01bba43 --- /dev/null +++ b/tools/dynamic-lora-sidecar/configmap.yaml @@ -0,0 +1,18 @@ +vLLMLoRAConfig: + name: sql-loras-llama + ensureExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v8 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v12 + source: yard1/llama-2-7b-sql-lora-test + ensureNotExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v2 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v7 + source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/deployment.yaml b/tools/dynamic-lora-sidecar/deployment.yaml similarity index 100% rename from examples/dynamic-lora-sidecar/deployment.yaml rename to tools/dynamic-lora-sidecar/deployment.yaml diff --git a/tools/dynamic-lora-sidecar/dev-deployment.yaml b/tools/dynamic-lora-sidecar/dev-deployment.yaml new file mode 100644 index 00000000..aee1e361 --- /dev/null +++ b/tools/dynamic-lora-sidecar/dev-deployment.yaml @@ -0,0 +1,125 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: llama-deployment +spec: + replicas: 1 + selector: + matchLabels: + app: llama-server + template: + metadata: + labels: + app: llama-server + ai.gke.io/model: LLaMA2_7B + ai.gke.io/inference-server: vllm + examples.ai.gke.io/source: model-garden + spec: + shareProcessNamespace: true + containers: + - name: inference-server + image: vllm/vllm-openai:v0.6.3.post1 + resources: + requests: + cpu: 5 + memory: 20Gi + ephemeral-storage: 40Gi + nvidia.com/gpu : 1 + limits: + cpu: 5 + memory: 20Gi + ephemeral-storage: 40Gi + nvidia.com/gpu : 1 + command: ["/bin/sh", "-c"] + args: + - vllm serve meta-llama/Llama-2-7b-hf + - --host=0.0.0.0 + - --port=8000 + - --tensor-parallel-size=1 + - --swap-space=16 + - --gpu-memory-utilization=0.95 + - --max-model-len=2048 + - --max-num-batched-tokens=4096 + - --disable-log-stats + - --enable-loras + - --max-loras=5 + env: + - name: DEPLOY_SOURCE + value: UI_NATIVE_MODEL + - name: MODEL_ID + value: "Llama2-7B" + - name: AIP_STORAGE_URI + value: "gs://vertex-model-garden-public-us/llama2/llama2-7b-hf" + - name: VLLM_ALLOW_RUNTIME_LORA_UPDATING + value: "true" + - name: HF_TOKEN + valueFrom: + secretKeyRef: + name: hf-token # The name of your Kubernetes Secret + key: token # The specific key within the Secret + - name: DYNAMIC_LORA_ROLLOUT_CONFIG + value: "/config/configmap.yaml" + volumeMounts: + - mountPath: /dev/shm + name: dshm + initContainers: + - name: lora-adapter-syncer + tty: true + stdin: true + image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest + restartPolicy: Always + imagePullPolicy: Always + env: + - name: DYNAMIC_LORA_ROLLOUT_CONFIG + value: "/config/configmap.yaml" + volumeMounts: # DO NOT USE subPath + - name: config-volume + mountPath: /config + volumes: + - name: dshm + emptyDir: + medium: Memory + - name: config-volume + configMap: + name: dynamic-lora-config + +--- +apiVersion: v1 +kind: Service +metadata: + name: llama-service +spec: + selector: + app: llama-server + type: ClusterIP + ports: + - protocol: TCP + port: 8000 + targetPort: 8000 + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: dynamic-lora-config +data: + configmap.yaml: | + vLLMLoRAConfig: + name: sql-loras-llama + ensureExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v1 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v3 + source: yard1/llama-2-7b-sql-lora-test + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v4 + source: yard1/llama-2-7b-sql-lora-test + ensureNotExist: + models: + - base-model: meta-llama/Llama-2-7b-hf + id: sql-lora-v2 + source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/examples/dynamic-lora-sidecar/requirements.txt b/tools/dynamic-lora-sidecar/requirements.txt similarity index 100% rename from examples/dynamic-lora-sidecar/requirements.txt rename to tools/dynamic-lora-sidecar/requirements.txt diff --git a/examples/dynamic-lora-sidecar/screenshots/configmap-change.png b/tools/dynamic-lora-sidecar/screenshots/configmap-change.png similarity index 100% rename from examples/dynamic-lora-sidecar/screenshots/configmap-change.png rename to tools/dynamic-lora-sidecar/screenshots/configmap-change.png diff --git a/examples/dynamic-lora-sidecar/screenshots/lora-syncer-sidecar.png b/tools/dynamic-lora-sidecar/screenshots/lora-syncer-sidecar.png similarity index 100% rename from examples/dynamic-lora-sidecar/screenshots/lora-syncer-sidecar.png rename to tools/dynamic-lora-sidecar/screenshots/lora-syncer-sidecar.png diff --git a/examples/dynamic-lora-sidecar/screenshots/vllm-logs.png b/tools/dynamic-lora-sidecar/screenshots/vllm-logs.png similarity index 100% rename from examples/dynamic-lora-sidecar/screenshots/vllm-logs.png rename to tools/dynamic-lora-sidecar/screenshots/vllm-logs.png diff --git a/examples/dynamic-lora-sidecar/sidecar/sidecar.py b/tools/dynamic-lora-sidecar/sidecar/sidecar.py similarity index 100% rename from examples/dynamic-lora-sidecar/sidecar/sidecar.py rename to tools/dynamic-lora-sidecar/sidecar/sidecar.py diff --git a/examples/dynamic-lora-sidecar/sidecar/test_sidecar.py b/tools/dynamic-lora-sidecar/sidecar/test_sidecar.py similarity index 100% rename from examples/dynamic-lora-sidecar/sidecar/test_sidecar.py rename to tools/dynamic-lora-sidecar/sidecar/test_sidecar.py diff --git a/examples/dynamic-lora-sidecar/sidecar/validation.yaml b/tools/dynamic-lora-sidecar/sidecar/validation.yaml similarity index 100% rename from examples/dynamic-lora-sidecar/sidecar/validation.yaml rename to tools/dynamic-lora-sidecar/sidecar/validation.yaml From 472b545576dbf29a261dbf9498a4b41cdc861090 Mon Sep 17 00:00:00 2001 From: Kunjan Date: Tue, 12 Nov 2024 10:46:00 -0800 Subject: [PATCH 29/34] Move under tools Signed-off-by: Kunjan --- tools/dynamic-lora-sidecar/configmap.yaml | 18 --- .../dynamic-lora-sidecar/dev-deployment.yaml | 125 ------------------ 2 files changed, 143 deletions(-) delete mode 100644 tools/dynamic-lora-sidecar/configmap.yaml delete mode 100644 tools/dynamic-lora-sidecar/dev-deployment.yaml diff --git a/tools/dynamic-lora-sidecar/configmap.yaml b/tools/dynamic-lora-sidecar/configmap.yaml deleted file mode 100644 index d01bba43..00000000 --- a/tools/dynamic-lora-sidecar/configmap.yaml +++ /dev/null @@ -1,18 +0,0 @@ -vLLMLoRAConfig: - name: sql-loras-llama - ensureExist: - models: - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v8 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v12 - source: yard1/llama-2-7b-sql-lora-test - ensureNotExist: - models: - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v2 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v7 - source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file diff --git a/tools/dynamic-lora-sidecar/dev-deployment.yaml b/tools/dynamic-lora-sidecar/dev-deployment.yaml deleted file mode 100644 index aee1e361..00000000 --- a/tools/dynamic-lora-sidecar/dev-deployment.yaml +++ /dev/null @@ -1,125 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: llama-deployment -spec: - replicas: 1 - selector: - matchLabels: - app: llama-server - template: - metadata: - labels: - app: llama-server - ai.gke.io/model: LLaMA2_7B - ai.gke.io/inference-server: vllm - examples.ai.gke.io/source: model-garden - spec: - shareProcessNamespace: true - containers: - - name: inference-server - image: vllm/vllm-openai:v0.6.3.post1 - resources: - requests: - cpu: 5 - memory: 20Gi - ephemeral-storage: 40Gi - nvidia.com/gpu : 1 - limits: - cpu: 5 - memory: 20Gi - ephemeral-storage: 40Gi - nvidia.com/gpu : 1 - command: ["/bin/sh", "-c"] - args: - - vllm serve meta-llama/Llama-2-7b-hf - - --host=0.0.0.0 - - --port=8000 - - --tensor-parallel-size=1 - - --swap-space=16 - - --gpu-memory-utilization=0.95 - - --max-model-len=2048 - - --max-num-batched-tokens=4096 - - --disable-log-stats - - --enable-loras - - --max-loras=5 - env: - - name: DEPLOY_SOURCE - value: UI_NATIVE_MODEL - - name: MODEL_ID - value: "Llama2-7B" - - name: AIP_STORAGE_URI - value: "gs://vertex-model-garden-public-us/llama2/llama2-7b-hf" - - name: VLLM_ALLOW_RUNTIME_LORA_UPDATING - value: "true" - - name: HF_TOKEN - valueFrom: - secretKeyRef: - name: hf-token # The name of your Kubernetes Secret - key: token # The specific key within the Secret - - name: DYNAMIC_LORA_ROLLOUT_CONFIG - value: "/config/configmap.yaml" - volumeMounts: - - mountPath: /dev/shm - name: dshm - initContainers: - - name: lora-adapter-syncer - tty: true - stdin: true - image: us-docker.pkg.dev/kunjanp-gke-dev-2/lora-sidecar/sidecar:latest - restartPolicy: Always - imagePullPolicy: Always - env: - - name: DYNAMIC_LORA_ROLLOUT_CONFIG - value: "/config/configmap.yaml" - volumeMounts: # DO NOT USE subPath - - name: config-volume - mountPath: /config - volumes: - - name: dshm - emptyDir: - medium: Memory - - name: config-volume - configMap: - name: dynamic-lora-config - ---- -apiVersion: v1 -kind: Service -metadata: - name: llama-service -spec: - selector: - app: llama-server - type: ClusterIP - ports: - - protocol: TCP - port: 8000 - targetPort: 8000 - ---- - -apiVersion: v1 -kind: ConfigMap -metadata: - name: dynamic-lora-config -data: - configmap.yaml: | - vLLMLoRAConfig: - name: sql-loras-llama - ensureExist: - models: - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v1 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v3 - source: yard1/llama-2-7b-sql-lora-test - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v4 - source: yard1/llama-2-7b-sql-lora-test - ensureNotExist: - models: - - base-model: meta-llama/Llama-2-7b-hf - id: sql-lora-v2 - source: yard1/llama-2-7b-sql-lora-test \ No newline at end of file From 5354a47ee59e46f22e8a9b59cd64c6acede972cb Mon Sep 17 00:00:00 2001 From: Kunjan Date: Wed, 13 Nov 2024 15:08:54 -0800 Subject: [PATCH 30/34] Document usage of sidecar, available by default from 1.29 --- tools/dynamic-lora-sidecar/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dynamic-lora-sidecar/README.md b/tools/dynamic-lora-sidecar/README.md index ecec93f0..f48432de 100644 --- a/tools/dynamic-lora-sidecar/README.md +++ b/tools/dynamic-lora-sidecar/README.md @@ -43,7 +43,7 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c ``` Do not use subPath, since configmap updates are not reflected in the file -[deployment]: deployment.yaml +[deployment]: deployment.yaml it uses [sidecar](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/) which is beta feature enabled by default from 1.29. ## Configuration Fields - `vLLMLoRAConfig`[**required**] base key From bc2ce32cf7dcc72e7141b547b333657470c3a100 Mon Sep 17 00:00:00 2001 From: Kunjan Date: Wed, 13 Nov 2024 15:16:34 -0800 Subject: [PATCH 31/34] Document usage of sidecar, available by default from 1.29 --- tools/dynamic-lora-sidecar/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dynamic-lora-sidecar/README.md b/tools/dynamic-lora-sidecar/README.md index f48432de..dbb5d4e8 100644 --- a/tools/dynamic-lora-sidecar/README.md +++ b/tools/dynamic-lora-sidecar/README.md @@ -43,7 +43,7 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c ``` Do not use subPath, since configmap updates are not reflected in the file -[deployment]: deployment.yaml it uses [sidecar](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/) which is beta feature enabled by default from 1.29. +[deployment]: deployment.yaml it uses [sidecar](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/) which is beta feature enabled by default since k8s version 1.29. They need to be enabled in 1.28 and prior to 1.28 sidecar are not officially supported. ## Configuration Fields - `vLLMLoRAConfig`[**required**] base key From f82d8b2f9952cc461c271ee267227a997e89b603 Mon Sep 17 00:00:00 2001 From: Kunjan Date: Wed, 13 Nov 2024 15:21:48 -0800 Subject: [PATCH 32/34] Document usage of sidecar, available by default from 1.29 Signed-off-by: Kunjan --- tools/dynamic-lora-sidecar/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dynamic-lora-sidecar/README.md b/tools/dynamic-lora-sidecar/README.md index dbb5d4e8..6ebac242 100644 --- a/tools/dynamic-lora-sidecar/README.md +++ b/tools/dynamic-lora-sidecar/README.md @@ -43,7 +43,7 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c ``` Do not use subPath, since configmap updates are not reflected in the file -[deployment]: deployment.yaml it uses [sidecar](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/) which is beta feature enabled by default since k8s version 1.29. They need to be enabled in 1.28 and prior to 1.28 sidecar are not officially supported. +[deployment]: deployment.yaml it uses [sidecar](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/)(`initContainer` with `restartPolicy` set to `always`) which is beta feature enabled by default since k8s version 1.29. They need to be enabled in 1.28 and prior to 1.28 sidecar are not officially supported. ## Configuration Fields - `vLLMLoRAConfig`[**required**] base key From e01ec51aa95f928a09fa17f4433b3e781d1df67b Mon Sep 17 00:00:00 2001 From: Kunjan Date: Sat, 16 Nov 2024 11:49:15 -0800 Subject: [PATCH 33/34] Update tools/dynamic-lora-sidecar/README.md Co-authored-by: Abdullah Gharaibeh <40361897+ahg-g@users.noreply.github.com> --- tools/dynamic-lora-sidecar/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dynamic-lora-sidecar/README.md b/tools/dynamic-lora-sidecar/README.md index 6ebac242..f8d97261 100644 --- a/tools/dynamic-lora-sidecar/README.md +++ b/tools/dynamic-lora-sidecar/README.md @@ -1,6 +1,6 @@ # Dynamic LORA Adapter Sidecar for vLLM -This directory contains a configmap containing lora adapters configurations and script for a sidecar container to dynamically manage LORA adapters for a vLLM server running in the same Kubernetes pod by reconciling it with a configmap containing lora adapters. +This is a sidecar-based tool to help rolling out new LoRA adapters to a set of running vLLM model servers. The user deploys the sidecar with a vLLM server, and using a ConfigMap, the user can express their intent as to which LoRA adapters they want to have the running vLLM servers to be configure with. The sidecar watches the ConfigMap and sends load/unload requests to the vLLM container to actuate on the user intent. ## Overview From 28779e7bf5e6ab5e17e19f2c133ff80da2c703d8 Mon Sep 17 00:00:00 2001 From: Kunjan Date: Sat, 16 Nov 2024 11:49:22 -0800 Subject: [PATCH 34/34] Update tools/dynamic-lora-sidecar/README.md Co-authored-by: Abdullah Gharaibeh <40361897+ahg-g@users.noreply.github.com> --- tools/dynamic-lora-sidecar/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dynamic-lora-sidecar/README.md b/tools/dynamic-lora-sidecar/README.md index f8d97261..be05f9e9 100644 --- a/tools/dynamic-lora-sidecar/README.md +++ b/tools/dynamic-lora-sidecar/README.md @@ -65,7 +65,7 @@ The sidecar uses the vLLM server's API to load or unload adapters based on the c ## Screenshots & Testing -I tested the sidecar in my cluster with deployment and configmap specified in this repo. Here are the screen grabs of the logs from the sidecar and vllm server. I used the specified configmap, verified that the adapters were loaded by querying `v1/models` and looking at vllm logs. I changed the configmap and validated the same on vllm server. Note: There is slight lag between updates. +The sidecar was tested with the Deployment and ConfigMap specified in this repo. Here are screen grabs of the logs from the sidecar and vllm server. One can verify that the adapters were loaded by querying `v1/models` and looking at vllm logs. ![lora-adapter-syncer](screenshots/lora-syncer-sidecar.png) ![config map change](screenshots/configmap-change.png) ![vllm-logs](screenshots/vllm-logs.png)