Skip to content

Compatibility issue with vllm 0.32 #704

@ghost

Description

Describe the issue as clearly as possible:

A recent merge into vllm broke the integration with outlines. The deepcopy introduced does not work with outlines due to the dictionaries nested. This throws the following error:

TypeError: cannot pickle 'dict_values' object

vllm-project/vllm#2881

Steps/code to reproduce the bug:

Running vllm with the latest pull of vllm 

python -m outlines.serve.serve --model="mistralai/Mistral-7B-Instruct-v0.2"

Expected result:

vllm running normally

Error message:

INFO:     127.0.0.1:40000 - "POST /generate HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 29, in _raise_exception_on_finish
    task.result()
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 411, in run_engine_loop
    has_requests_in_progress = await self.engine_step()
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 382, in engine_step
    await self.engine.add_request_async(**new_request)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 241, in add_request_async
    return self.add_request(
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 468, in add_request
    sampling_params = copy.deepcopy(sampling_params)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 206, in _deepcopy_list
    append(deepcopy(a, memo))
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/home/azureuser/miniconda3/envs/vllm/lib/python3.10/copy.py", line 161, in deepcopy
    rv = reductor(4)
TypeError: cannot pickle 'dict_values' object

Outlines/Python version information:

Version information

``` (command output here) ```

Context for the issue:

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions