🧠 图解记忆:策略1:图像拼接(早期方案);点击图片可查看原图。
💡 答案要点
多图处理的三种策略:
策略1:图像拼接(早期方案)
python
# 把多图拼接成一张大图
grid = make_grid(images, nrow=2) # 2×2拼接
# 缺点:分辨率下降,位置信息丢失策略2:独立编码+注意力融合(主流方案)
python
# 每张图独立编码
image_tokens = [vision_encoder(img) for img in images]
# → [Token1(图片1), Token2(图片2), ..., TokenN(图片N)]
# 拼接送入LLM
all_tokens = text_tokens + sum(image_tokens, [])
response = llm(all_tokens)策略3:原生多图支持(GPT-4o/Gemini)
python
# 原生支持多图,无需特殊处理
response = gpt4o.chat([
{"type": "text", "text": "比较图1和图2的差异"},
{"type": "image_url", "image_url": {"url": "图1base64"}},
{"type": "image_url", "image_url": {"url": "图2base64"}}
])实战案例:UI截图对比Agent
python
# 场景:检测UI改版前后的视觉差异
def detect_ui_changes(before_img, after_img, spec):
prompt = f"""
你是一个UI测试Agent。
需求规格:{spec}
请比较改版前后的截图,列出所有视觉差异。
"""
response = multimodal_llm.generate([
{"type": "text", "text": prompt},
{"type": "image_url", "image_url": {"url": before_img}},
{"type": "image_url", "image_url": {"url": after_img}}
])
# 解析差异列表
changes = parse_changes(response)
return changes面试话术:
"多图处理的核心是位置编码和对齐。我在实现UI测试Agent时,用独立编码+顺序拼接,让Agent明确知道'图1是改版前,图2是改版后'。原生多图模型(如GPT-4o)在这个场景优势明显,不需要手动处理。"
📚 参考:Qwen-VL(多图输入能力见模型论文)
