[LoRA] Add support for pinning lora adapters in the LRU cache (#5603)

This commit is contained in:
rohithkrn
2024-06-21 15:42:46 -07:00
committed by GitHub
parent 7187507301
commit f5dda63eb5
13 changed files with 171 additions and 5 deletions
+3
View File
@@ -84,6 +84,9 @@ class CPUExecutor(ExecutorBase):
def remove_lora(self, lora_id: int) -> bool:
return self.driver_worker.remove_lora(lora_id)
def pin_lora(self, lora_id: int) -> bool:
return self.driver_worker.pin_lora(lora_id)
def list_loras(self) -> Set[int]:
return self.driver_worker.list_loras()
@@ -100,6 +100,13 @@ class DistributedGPUExecutor(GPUExecutor):
lora_id=lora_id,
)
def pin_lora(self, lora_id: int) -> bool:
assert lora_id > 0, "lora_id must be greater than 0."
return self._run_workers(
"pin_lora",
lora_id=lora_id,
)
def list_loras(self) -> Set[int]:
return self._run_workers("list_loras")
+4
View File
@@ -86,6 +86,10 @@ class ExecutorBase(ABC):
def remove_lora(self, lora_id: int) -> bool:
raise NotImplementedError
@abstractmethod
def pin_lora(self, lora_id: int) -> bool:
raise NotImplementedError # type: ignore
@abstractmethod
def list_loras(self) -> Set[int]:
raise NotImplementedError
+4
View File
@@ -99,6 +99,10 @@ class GPUExecutor(ExecutorBase):
assert lora_id > 0, "lora_id must be greater than 0."
return self.driver_worker.remove_lora(lora_id)
def pin_lora(self, lora_id: int) -> bool:
assert lora_id > 0, "lora_id must be greater than 0."
return self.driver_worker.pin_lora(lora_id)
def list_loras(self) -> Set[int]:
return self.driver_worker.list_loras()
+3
View File
@@ -65,6 +65,9 @@ class NeuronExecutor(ExecutorBase):
def remove_lora(self, lora_id: int) -> bool:
return self.driver_worker.remove_lora(lora_id)
def pin_lora(self, lora_id: int) -> bool:
return self.driver_worker.pin_lora(lora_id)
def list_loras(self) -> Set[int]:
return self.driver_worker.list_loras()