mirror of
https://github.com/OpenBMB/MiniCPM-V.git
synced 2026-02-05 18:29:18 +08:00
Modify eval_mm for MiniCPM-o 2.6
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user