Update modeling_minicpmv.py
Browse files- modeling_minicpmv.py +4 -3
modeling_minicpmv.py
CHANGED
|
@@ -186,7 +186,7 @@ class MiniCPMV(MiniCPMVPreTrainedModel):
|
|
| 186 |
return model_input
|
| 187 |
|
| 188 |
def _process_list( # pad input tensors
|
| 189 |
-
self, tokenizer, data_list: List[str], max_inp_length: Optional[int] = None, padding_side: str = "
|
| 190 |
):
|
| 191 |
# pad_keys = ["input_ids"]
|
| 192 |
input_tensors = []
|
|
@@ -241,7 +241,7 @@ class MiniCPMV(MiniCPMVPreTrainedModel):
|
|
| 241 |
|
| 242 |
|
| 243 |
|
| 244 |
-
def pad(orig_items, max_length=None, padding_value=0, padding_side="
|
| 245 |
"""
|
| 246 |
Args:
|
| 247 |
orig_items: a list of input_ids, each input_ids should be [1, length_i]
|
|
@@ -266,6 +266,7 @@ def pad(orig_items, max_length=None, padding_value=0, padding_side="left"):
|
|
| 266 |
for i, item in enumerate(items):
|
| 267 |
length = item.shape[0]
|
| 268 |
if padding_side == "left":
|
|
|
|
| 269 |
tensor[i, -length:] = item
|
| 270 |
attention_mask[i, -length:] = 1
|
| 271 |
else:
|
|
@@ -445,7 +446,7 @@ class MiniCPMVEmbedding(MiniCPMV): # MiniCPMVEmbedding -> MiniCPMV -> Ultimatel
|
|
| 445 |
img_list = [[] for i in range(bs)]
|
| 446 |
assert bs == len(img_list)
|
| 447 |
|
| 448 |
-
model_inputs = self._process_list(tokenizer, data_list, max_inp_length, padding_side="
|
| 449 |
|
| 450 |
if vision_hidden_states is None:
|
| 451 |
pixel_values = transform_image_mp(img_list, self.transform, self.device, max_workers=8)
|
|
|
|
| 186 |
return model_input
|
| 187 |
|
| 188 |
def _process_list( # pad input tensors
|
| 189 |
+
self, tokenizer, data_list: List[str], max_inp_length: Optional[int] = None, padding_side: str = "right"
|
| 190 |
):
|
| 191 |
# pad_keys = ["input_ids"]
|
| 192 |
input_tensors = []
|
|
|
|
| 241 |
|
| 242 |
|
| 243 |
|
| 244 |
+
def pad(orig_items, max_length=None, padding_value=0, padding_side="right"):
|
| 245 |
"""
|
| 246 |
Args:
|
| 247 |
orig_items: a list of input_ids, each input_ids should be [1, length_i]
|
|
|
|
| 266 |
for i, item in enumerate(items):
|
| 267 |
length = item.shape[0]
|
| 268 |
if padding_side == "left":
|
| 269 |
+
raise NotImplementedError("left padding can cause model performance degrade, see `https://huggingface.co/openbmb/MiniCPM-Llama3-V-2_5/discussions/26`")
|
| 270 |
tensor[i, -length:] = item
|
| 271 |
attention_mask[i, -length:] = 1
|
| 272 |
else:
|
|
|
|
| 446 |
img_list = [[] for i in range(bs)]
|
| 447 |
assert bs == len(img_list)
|
| 448 |
|
| 449 |
+
model_inputs = self._process_list(tokenizer, data_list, max_inp_length, padding_side="right")
|
| 450 |
|
| 451 |
if vision_hidden_states is None:
|
| 452 |
pixel_values = transform_image_mp(img_list, self.transform, self.device, max_workers=8)
|