bagel在源代码当中其实提供了多batch的处理流程,但是不知道出于何种原因,这个处理流程在发布的时候被藏起来了。模型处理多batch的思路很成熟,把文本token和图像token交叉放置到同一个序列里面,然后一起放到LLM当中推理,推理结束之后再从序列里面把数据取出来。
原版设计思路可以参见eval/gen/gen_images_mp.py,具体的应用方式如下(以文生图为例):
1、准备多段文本,和每张图片的尺寸。bagel处理的时候会按照图片尺寸参数的数量来决定需要同时生成几张,多余的部分会被直接丢弃。
2、对inferencer.py当中的init_gen_context函数做如图的修改:

。
然后直接把数据塞进interleave_inference函数就可以了。
bagel在源代码当中其实提供了多batch的处理流程,但是不知道出于何种原因,这个处理流程在发布的时候被藏起来了。模型处理多batch的思路很成熟,把文本token和图像token交叉放置到同一个序列里面,然后一起放到LLM当中推理,推理结束之后再从序列里面把数据取出来。
原版设计思路可以参见
eval/gen/gen_images_mp.py,具体的应用方式如下(以文生图为例):1、准备多段文本,和每张图片的尺寸。bagel处理的时候会按照图片尺寸参数的数量来决定需要同时生成几张,多余的部分会被直接丢弃。

2、对
inferencer.py当中的init_gen_context函数做如图的修改:。
然后直接把数据塞进interleave_inference函数就可以了。