3
3
from abc import ABC , abstractmethod
4
4
from datetime import datetime
5
5
from functools import wraps
6
- from typing import (TYPE_CHECKING , Any , Dict , Generic , List , Optional , Type ,
7
- TypeVar )
6
+ from typing import (TYPE_CHECKING , Any , Dict , Generic , Iterable , List ,
7
+ Optional , Type , TypeVar )
8
8
9
9
import torch
10
+ from torch import is_tensor
10
11
12
+ from vllm .logger import init_logger
11
13
from vllm .model_executor .layers .sampler import SamplerOutput
12
14
from vllm .platforms import current_platform
13
15
from vllm .sequence import IntermediateTensors , SequenceGroupMetadata
17
19
from vllm .attention .backends .abstract import AttentionBackend
18
20
from vllm .model_executor import SamplingMetadata
19
21
22
+ logger = init_logger (__name__ )
23
+
20
24
T = TypeVar ('T' , bound = "BroadcastableModelInput" )
21
25
22
26
@@ -113,6 +117,8 @@ def _wrapper(*args, **kwargs):
113
117
except Exception as err :
114
118
timestamp = datetime .now ().strftime ("%Y%m%d-%H%M%S" )
115
119
filename = f"/tmp/err_{ func .__name__ } _input_{ timestamp } .pkl"
120
+ logger .info ("Writing input of failed execution to %s..." ,
121
+ filename )
116
122
with open (filename , "wb" ) as filep :
117
123
dumped_inputs = {
118
124
k : v
@@ -122,7 +128,19 @@ def _wrapper(*args, **kwargs):
122
128
for i , arg in enumerate (args ):
123
129
if i not in (exclude_args or []):
124
130
dumped_inputs [f"arg_{ i } " ] = arg
131
+
132
+ # Only persist dtype and shape for kvcache tensors
133
+ # (can be way to big otherwise)
134
+ if (kv_caches := dumped_inputs .get ("kv_caches" )) \
135
+ and isinstance (kv_caches , Iterable ):
136
+ dumped_inputs ["kv_caches" ] = [(t .dtype , t .shape )
137
+ for t in kv_caches
138
+ if is_tensor (t )]
139
+
125
140
pickle .dump (dumped_inputs , filep )
141
+ logger .info (
142
+ "Completed writing input of failed execution to %s." ,
143
+ filename )
126
144
raise type (err )(
127
145
f"Error in model execution (input dumped to { filename } ): "
128
146
f"{ str (err )} " ) from err
0 commit comments