Description
参考readme进行推理,使用图像+文本的推理方式。第一次可以正常运行,第二次执行processor(messages, images=[image], videos=None),则报错IndexError: list index out of range
使用脚本
`from PIL import Image
from modelscope import AutoTokenizer
from decord import VideoReader, cpu
tokenizer = AutoTokenizer.from_pretrained(model_path)
processor = model.init_processor(tokenizer)
image = Image.new('RGB', (500, 500), color='red')
messages = [
{"role": "user", "content": """<|image|>
Describe this image."""},
{"role": "assistant", "content": ""}
]
inputs = processor(messages, images=[image], videos=None)
inputs.to('cuda')
inputs.update({
'tokenizer': tokenizer,
'max_new_tokens':100,
'decode_text':True,
})
g = model.generate(**inputs)
print(g)`
报错
执行一次processor(messages, images=[image], videos=None)后,再执行processor(messages, images=[image], videos=None),则会报错:
----> 1 processor(messages, images=[image], videos=None)
File /nvme1/huggingface/modules/transformers_modules/mPLUG-Owl3-7B-241101/processing_mplugowl3.py:226, in mPLUGOwl3Processor.call(self, messages, images, videos, max_length, cut_enable, return_tensors, **kwargs)
224 for text_content in text_list:
225 if text_content in ['<|image|>', '<|video|>']:
--> 226 media_item = medias[image_token_ptr]
227 image_token_ptr += 1
228 if text_content == '<|image|>':
IndexError: list index out of range
版本
transformers==4.44