Noor Khader
04/01/2024, 9:20 AMJian Shen Yap
04/01/2024, 9:21 AMNoor Khader
04/01/2024, 9:27 AM@bentoml.service(traffic={"timeout": 6000, "max_concurrency": 500})
class VLLM:
def __init__(self) -> None:
from vllm import AsyncEngineArgs, AsyncLLMEngine
model_path = "mistral/"
ENGINE_ARGS = AsyncEngineArgs(
model=model_path,
max_model_len=MAX_TOKENS,
gpu_memory_utilization=0.9,
max_num_seqs=1,
)
self.engine = AsyncLLMEngine.from_engine_args(ENGINE_ARGS)
self.request_id = 0
@bentoml.api(batchable=False)
async def generate(
self, prompt: str = "Who are you?", tokens: Optional[List[int]] = None
) -> AsyncGenerator[str, None]:
SAMPLING_PARAM = SamplingParams(max_tokens=MAX_TOKENS, temperature=0)
prompt = PROMPT_TEMPLATE.format(user_prompt=prompt)
stream = await self.engine.add_request(
self.request_id, prompt, SAMPLING_PARAM, prompt_token_ids=tokens
)
self.request_id += 1
async for request_output in stream:
response = request_output.outputs[0].text
return responseJian Shen Yap
04/01/2024, 9:28 AMlarme (shenyang)
04/01/2024, 9:35 AMmax_num_seqs=1 to the engine?Noor Khader
04/01/2024, 9:56 AMlarme (shenyang)
04/01/2024, 9:58 AMNoor Khader
04/01/2024, 10:02 AMlarme (shenyang)
04/01/2024, 10:08 AMlarme (shenyang)
04/01/2024, 10:09 AMNoor Khader
04/01/2024, 10:16 AM