- 
                Notifications
    
You must be signed in to change notification settings  - Fork 727
 
Description
In the example ai.djl.examples.inference.clip.ImageTextComparison, running on GPU causes an error.
Is this because tokenizers do not support GPU? The GPU error log is shown below:
`
Exception in thread "main" ai.djl.translate.TranslateException: ai.djl.engine.EngineException: The following operation failed in the TorchScript interpreter.
Traceback of TorchScript, serialized code (most recent call last):
File "code/torch/transformers/models/clip/modeling_clip.py", line 35, in forward
_2 = (vision_model).forward1(pixel_values, )
_3, _4, = _2
_5 = (text_model).forward1(input_ids, attention_mask, )
~~~~~~~~~~~~~~~~~~~~ <--- HERE
_6, _7, = _5
_8 = (visual_projection).forward1(_3, )
File "code/torch/transformers/models/clip/modeling_clip.py", line 119, in forward1
inverted_mask = torch.rsub(torch.to(_41, 6), 1.)
attention_mask1 = torch.masked_fill(inverted_mask, torch.to(inverted_mask, 11), -3.4028234663852886e+38)
_42 = (encoder).forward1(_33, causal_attention_mask, attention_mask1, )
~~~~~~~~~~~~~~~~~ <--- HERE
_43 = (final_layer_norm).forward1(_42, )
_44 = ops.prim.NumToTensor(torch.size(_43, 0))
File "code/torch/transformers/models/clip/modeling_clip.py", line 234, in forward1
layers21 = self.layers
_0 = getattr(layers21, "0")
_68 = (_0).forward1(argument_1, causal_attention_mask, attention_mask, )
~~~~~~~~~~~~ <--- HERE
_69 = (_1).forward1(_68, causal_attention_mask, attention_mask, )
_70 = (_2).forward1(_69, causal_attention_mask, attention_mask, )
File "code/torch/transformers/models/clip/modeling_clip.py", line 277, in forward1
layer_norm1 = self.layer_norm1
_82 = (layer_norm1).forward1(argument_1, )
_83 = (self_attn).forward1(_82, causal_attention_mask, attention_mask, )
~~~~~~~~~~~~~~~~~~~ <--- HERE
input = torch.add(argument_1, _83)
_84 = (mlp).forward1((layer_norm2).forward1(input, ), )
File "code/torch/transformers/models/clip/modeling_clip.py", line 398, in forward1
attn_weights = torch.bmm(query_states, torch.transpose(key_states1, 1, 2))
_143 = torch.view(attn_weights, [_119, 8, _128, _142])
attn_weights4 = torch.add(_143, causal_attention_mask)
~~~~~~~~~ <--- HERE
_144 = [int(torch.mul(bsz, CONSTANTS.c2)), _127, _141]
attn_weights5 = torch.view(attn_weights4, _144)
Traceback of TorchScript, original code (most recent call last):
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(293): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(379): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(650): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(721): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(1120): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/jit/_trace.py(967): trace_module
/Users/qingla/PycharmProjects/pt/testclip.py(20): 
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
at ai.djl.inference.Predictor.batchPredict(Predictor.java:200)
at ai.djl.inference.Predictor.predict(Predictor.java:133)
at smartai.examples.vision.djl.ClipModel.compareTextAndImage(ClipModel.java:68)
at smartai.examples.vision.djl.ImageTextComparison.compareTextAndImage(ImageTextComparison.java:46)
at smartai.examples.vision.djl.ImageTextComparison.main(ImageTextComparison.java:36)
Caused by: ai.djl.engine.EngineException: The following operation failed in the TorchScript interpreter.
Traceback of TorchScript, serialized code (most recent call last):
File "code/torch/transformers/models/clip/modeling_clip.py", line 35, in forward
_2 = (vision_model).forward1(pixel_values, )
_3, _4, = _2
_5 = (text_model).forward1(input_ids, attention_mask, )
~~~~~~~~~~~~~~~~~~~~ <--- HERE
_6, _7, = _5
_8 = (visual_projection).forward1(_3, )
File "code/torch/transformers/models/clip/modeling_clip.py", line 119, in forward1
inverted_mask = torch.rsub(torch.to(_41, 6), 1.)
attention_mask1 = torch.masked_fill(inverted_mask, torch.to(inverted_mask, 11), -3.4028234663852886e+38)
_42 = (encoder).forward1(_33, causal_attention_mask, attention_mask1, )
~~~~~~~~~~~~~~~~~ <--- HERE
_43 = (final_layer_norm).forward1(_42, )
_44 = ops.prim.NumToTensor(torch.size(_43, 0))
File "code/torch/transformers/models/clip/modeling_clip.py", line 234, in forward1
layers21 = self.layers
_0 = getattr(layers21, "0")
_68 = (_0).forward1(argument_1, causal_attention_mask, attention_mask, )
~~~~~~~~~~~~ <--- HERE
_69 = (_1).forward1(_68, causal_attention_mask, attention_mask, )
_70 = (_2).forward1(_69, causal_attention_mask, attention_mask, )
File "code/torch/transformers/models/clip/modeling_clip.py", line 277, in forward1
layer_norm1 = self.layer_norm1
_82 = (layer_norm1).forward1(argument_1, )
_83 = (self_attn).forward1(_82, causal_attention_mask, attention_mask, )
~~~~~~~~~~~~~~~~~~~ <--- HERE
input = torch.add(argument_1, _83)
_84 = (mlp).forward1((layer_norm2).forward1(input, ), )
File "code/torch/transformers/models/clip/modeling_clip.py", line 398, in forward1
attn_weights = torch.bmm(query_states, torch.transpose(key_states1, 1, 2))
_143 = torch.view(attn_weights, [_119, 8, _128, _142])
attn_weights4 = torch.add(_143, causal_attention_mask)
~~~~~~~~~ <--- HERE
_144 = [int(torch.mul(bsz, CONSTANTS.c2)), _127, _141]
attn_weights5 = torch.view(attn_weights4, _144)
Traceback of TorchScript, original code (most recent call last):
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(293): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(379): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(650): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(721): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/transformers/models/clip/modeling_clip.py(1120): forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1118): _slow_forward
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/nn/modules/module.py(1130): _call_impl
/Users/qingla/PycharmProjects/pt/venv/lib/python3.9/site-packages/torch/jit/_trace.py(967): trace_module
/Users/qingla/PycharmProjects/pt/testclip.py(20): 
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
at ai.djl.pytorch.jni.PyTorchLibrary.moduleRunMethod(Native Method)
at ai.djl.pytorch.jni.IValueUtils.forward(IValueUtils.java:57)
at ai.djl.pytorch.engine.PtSymbolBlock.forwardInternal(PtSymbolBlock.java:146)
at ai.djl.nn.AbstractBaseBlock.forward(AbstractBaseBlock.java:79)
at ai.djl.nn.Block.forward(Block.java:129)
at ai.djl.inference.Predictor.predictInternal(Predictor.java:150)
at ai.djl.inference.Predictor.batchPredict(Predictor.java:175)
... 4 more
`