Skip to content

Commit

Permalink
[Distributed] Make it clear that % should not be in tensor dict keys. (
Browse files Browse the repository at this point in the history
…#5927)

Signed-off-by: Xiaowei Jiang <[email protected]>
  • Loading branch information
xwjiang2010 committed Jun 28, 2024
1 parent 3b752a6 commit b90d8cd
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
10 changes: 9 additions & 1 deletion tests/distributed/test_parallel_state.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typing import Any, Dict

import pytest
import torch

from vllm.distributed.parallel_state import (_split_tensor_dict,
Expand All @@ -24,14 +25,21 @@ def test_split_tensor_dict():
assert torch.allclose(tensor_list[2], test_dict["key_c"]["key_2"])


def test_split_tensor_dict_invalid_key():
test_dict = {
"a%b": "a",
}
with pytest.raises(AssertionError):
_split_tensor_dict(test_dict)


def test_update_nested_dict():
flattened_keys_values = [("key1%key2%key3", "value1"),
("key1%key2%key4", "value2"),
("key1%key5", "value3"), ("key6%key7", "value4"),
("key8", "value5")]
res: Dict[str, Any] = {}

# Update the nested dictionary with each flattened key-value pair
for flat_key, value in flattened_keys_values:
_update_nested_dict(res, flat_key, value)
assert res == {
Expand Down
3 changes: 3 additions & 0 deletions vllm/distributed/parallel_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ def _split_tensor_dict(
metadata_list: List[Tuple[str, Any]] = []
tensor_list = []
for key, value in tensor_dict.items():
assert "%" not in key, (
"Avoid having '%' in key "
"as it is used as a separator for nested entries.")
if isinstance(value, torch.Tensor):
# Note: we cannot use `value.device` here,
# because it contains not only the device type but also the device
Expand Down

0 comments on commit b90d8cd

Please sign in to comment.