Modify eval_mm for MiniCPM-o 2.6

This commit is contained in:
Poppy Xu
2025-01-21 15:34:54 +08:00
parent ec68cefc17
commit d8f382e157
82 changed files with 14279 additions and 843 deletions

View File

@@ -1,5 +1,5 @@
from ..smp import *
from ..dataset import img_root_map
from ..dataset import img_root_map, DATASET_TYPE
from abc import abstractmethod
@@ -125,7 +125,8 @@ class BaseModel:
while len(messages):
try:
return self.chat_inner(messages, dataset=dataset)
except:
except Exception as e:
logging.info(f'{type(e)}: {e}')
messages = messages[1:]
while len(messages) and messages[0]['role'] != 'user':
messages = messages[1:]
@@ -162,6 +163,36 @@ class BaseModel:
video = [x['value'] for x in message if x['type'] == 'video'][0]
return prompt, video
else:
import sys
warnings.warn('Model does not support video input.')
sys.exit(-1)
logging.critical('Model does not support video input.')
raise NotImplementedError
def message_to_promptvideo_withrole(self, message, dataset=None):
if self.VIDEO_LLM:
system, user, assistant, video_list = '', '', '', []
for msg in message:
if msg['type'] == 'text':
if 'role' in msg and msg['role'] == 'system':
system += msg['value']
elif 'role' in msg and msg['role'] == 'assistant':
assistant += msg['value']
else:
user += msg['value']
elif msg['type'] == 'video':
video_list.append(msg['value'])
question = {
'system': system,
'user': user,
'assistant': assistant
}
if assistant == '':
if listinstr(['MCQ'], DATASET_TYPE(dataset)):
question['assistant'] = 'Best Option: ('
else:
del question['assistant']
if len(video_list) > 1:
print('VLMEvalKit only support single video as input, take first video as input')
video = video_list[0]
return question, video
else:
logging.critical('Model does not support video input.')
raise NotImplementedError