【observability】【evaluation23】多模态RAG评估案例分析

发布时间:2026/11/5 3:52:54

【observability】【evaluation23】多模态RAG评估案例分析 案例目标本案例演示如何评估一个多模态RAG(Retrieval-Augmented Generation)系统。与纯文本案例类似我们分别考虑对检索器(Retriever)和生成器(Generator)的评估。具体来说本案例使用美国手语(ASL)字母表图像和文本描述作为多模态数据构建并评估多模态RAG系统。案例的主要目标包括构建基于CLIP图像嵌入和GPT-4V文本描述的多模态RAG系统使用不同多模态LLM(GPT-4V和LLaVA)作为生成器评估检索器的性能(使用hit_rate和mrr指标)评估生成器的性能(使用正确性、相关性和忠实度指标)比较不同多模态RAG系统的性能差异技术栈与核心依赖llama-indexllama-index-llms-openaillama-index-multi-modal-llms-openaillama-index-multi-modal-llms-replicatePILmatplotlibpandas核心组件MultiModalVectorStoreIndex: 多模态向量存储索引用于处理图像和文本数据OpenAIMultiModal: OpenAI的多模态LLM接口(GPT-4V)ReplicateMultiModal: Replicate的多模态LLM接口(LLaVA)MultiModalRetrieverEvaluator: 多模态检索器评估器CorrectnessEvaluator: 正确性评估器MultiModalRelevancyEvaluator: 多模态相关性评估器MultiModalFaithfulnessEvaluator: 多模态忠实度评估器环境配置# 安装必要的依赖 %pip install llama-index-llms-openai %pip install llama-index-multi-modal-llms-openai %pip install llama-index-multi-modal-llms-replicatefrom PIL import Image import matplotlib.pyplot as plt import pandas as pd import json from llama_index.core.multi_modal_llms.generic_utils import load_image_urls from llama_index.core import SimpleDirectoryReader, Document需要配置OpenAI的API密钥以访问GPT-4V服务以及Replicate的API密钥以访问LLaVA模型。案例实现数据准备与索引构建多模态RAG系统构建检索器与生成器评估数据准备本案例使用ASL(美国手语)字母表图像和文本描述作为多模态数据ASL字母表示例图像图像数据来源于ASL-Alphabet Kaggle数据集并进行了修改以在图像上添加相应的字母标签。文本描述来源于https://www.deafblind.com/asl.html。加载图像和文本数据# 加载图像数据 image_path ./asl_data/images image_documents SimpleDirectoryReader(image_path).load_data() # 加载文本描述数据 with open(asl_data/asl_text_descriptions.json) as json_file: asl_text_descriptions json.load(json_file) text_format_str To sign {letter} in ASL: {desc}. text_documents [ Document(texttext_format_str.format(letterk, descv)) for k, v in asl_text_descriptions.items() ]构建多模态索引from llama_index.core.indices import MultiModalVectorStoreIndex from llama_index.core.node_parser import SentenceSplitter node_parser SentenceSplitter.from_defaults() image_nodes node_parser.get_nodes_from_documents(image_documents) text_nodes node_parser.get_nodes_from_documents(text_documents) asl_index MultiModalVectorStoreIndex(image_nodes text_nodes)构建基于文本描述的索引为了比较不同RAG系统我们构建另一个使用GPT-4V生成图像文本描述的索引from llama_index.multi_modal_llms.openai import OpenAIMultiModal from llama_index.core.schema import ImageDocument # 使用GPT-4V生成图像描述 openai_mm_llm OpenAIMultiModal(modelgpt-4o, max_new_tokens300) image_with_text_documents SimpleDirectoryReader(image_path).load_data() # 为每个图像生成文本描述 for img_doc in tqdm.tqdm(image_with_text_documents): response openai_mm_llm.complete( promptDescribe the images as an alternative text, image_documents[img_doc], ) img_doc.text response.text # 解析为节点 image_with_text_nodes node_parser.get_nodes_from_documents( image_with_text_documents ) # 构建基于文本描述的索引 asl_text_desc_index MultiModalVectorStoreIndex( nodesimage_with_text_nodes text_nodes, is_image_to_textTrue )案例效果通过多模态RAG评估我们获得了以下关键发现检索器性能文本检索(asl_index-text)表现完美命中率和MRR均为1.000000基于GPT-4V文本描述的检索(asl_text_desc_index)表现良好命中率和MRR均为0.925926基于CLIP图像嵌入的检索(asl_index-image)表现尚可命中率和MRR均为0.814815当检索器检索到正确图像时通常将其放在第一位因此命中率和MRR相同生成器性能使用LLaVA的RAG系统在正确性、相关性和忠实度方面均优于使用GPT-4V的系统mm_clip_llava在正确性方面得分最高(4.092593)mm_clip_llava在相关性方面得分最高(0.851852)mm_clip_llava和mm_text_desc_gpt4v在忠实度方面得分最高(0.888889)观察与结论评估结果表明使用LLaVA的RAG系统在各项指标上均优于使用GPT-4V的系统。一个有趣的发现是GPT-4V在某些情况下会生成类似我无法基于提供的图像回答查询因为系统目前不允许我视觉分析图像的响应即使图像已被正确检索。这类生成的响应可能是GPT-4V生成评分低于LLaVA的原因之一。案例实现思路多模态RAG评估的实现思路如下数据准备收集ASL字母表图像和相应的文本描述构建多模态数据集索引构建使用MultiModalVectorStoreIndex构建两种不同的多模态索引基于CLIP图像嵌入的索引基于GPT-4V文本描述的索引RAG系统构建构建四种不同的多模态RAG系统比较不同嵌入模型和生成器的组合检索器评估使用MultiModalRetrieverEvaluator评估检索器的性能计算命中率和MRR生成器评估使用正确性、相关性和忠实度评估器评估生成器的性能结果分析比较不同RAG系统的性能分析差异原因技术要点实现过程中的关键技术点包括使用MultiModalVectorStoreIndex处理多模态数据、通过is_image_to_text参数控制使用图像嵌入还是文本描述嵌入、使用MultiModalRetrieverEvaluator评估检索器性能、以及使用多模态评估器(MultiModalRelevancyEvaluator和MultiModalFaithfulnessEvaluator)评估生成器性能。扩展建议基于当前实现可以考虑以下扩展方向扩展多模态数据增加更多类型的多模态数据如视频、音频等改进嵌入模型尝试更先进的多模态嵌入模型如CLIP-ViT-L/14等优化提示工程改进生成提示提高生成质量扩展评估指标引入更多评估指标如多样性、连贯性等领域特定评估针对特定领域(如医疗、教育)定制评估标准人工评估对比引入人工评估作为黄金标准与多模态评估器进行对比评估效率优化优化评估过程提高大规模评估的效率多语言支持扩展对多语言多模态内容的评估能力总结多模态RAG评估案例展示了如何使用llama-index评估工具评估多模态RAG系统。主要收获包括MultiModalVectorStoreIndex提供了处理多模态数据的有效方法不同的嵌入模型(CLIP vs GPT-4V文本描述)对检索性能有显著影响不同的多模态LLM(GPT-4V vs LLaVA)对生成质量有显著影响多模态评估器(MultiModalRelevancyEvaluator和MultiModalFaithfulnessEvaluator)提供了有效的生成评估方法评估结果可以帮助选择最适合特定应用场景的多模态RAG系统该案例为评估多模态RAG系统提供了有价值的参考特别是在需要处理图像和文本混合内容的场景中。通过比较不同嵌入模型和生成器的组合可以更好地理解各组件的优势和局限性从而做出更明智的选择。
延伸阅读

更多相关文章

2026/11/5 3:20:43

如何用Cocos Creator开发开心消消乐:新手必备的10个核心技能

如何用Cocos Creator开发开心消消乐:新手必备的10个核心技能 【免费下载链接】kaixinxiaoxiaole 使用cocos creator 编写的三消游戏 开心消消乐 项目地址: https://gitcode.com/gh_mirrors/ka/kaixinxiaoxiaole 想要学习使用Cocos Creator开发一款像开心消消…

2026/10/30 22:49:41

为什么我一直喜欢能力比我强的下属

你知道我当年为什么想着去带团队吗?原因其实很简单。因为只有带团队,才能承担更大的责任,才能做更大的贡献。一个人能力再强,影响的始终只是自己负责的那一小块事情。但有了团队以后,就能承担更复杂的项目、更大的业务…

2026/11/5 6:08:01

SSH MAC校验失败排查:从链路MTU到双端抓包

下午三点多,一条跑了十几分钟的传输命令停在了六成进度上,终端里蹦出这么一行:ssh_dispatch_run_fatal: Connection to x.x.x.x port 22: message authentication code incorrect。手动重连,能连上;再跑一次&#xff0…

2026/11/5 6:08:01

医疗语音识别技术MedASR的突破与实践指南

1. 医疗语音识别技术的现状与挑战医疗场景下的语音识别一直是个特殊的技术领域。不同于日常对话,医生在诊疗过程中使用的专业术语密度极高,一个普通的门诊记录可能包含数十个药物名称、解剖学部位和医学术语。传统语音识别模型在这类场景下的准确率往往不…

2026/11/5 6:08:01

医疗语音识别技术MedASR的创新与应用

1. 医疗语音识别技术的现状与挑战医疗场景下的语音识别技术一直面临着独特的行业挑战。与通用领域的语音转写不同,医疗对话中充斥着大量专业术语、药物名称和检查项目缩写。普通ASR模型在遇到"羟考酮缓释片"、"磁共振胰胆管造影"这类词汇时&…

2026/11/5 6:08:01

STM32蓝牙电机控制工程:串口协议、PWM调速与PID闭环

简介:这份基于STM32的蓝牙与电机控制工程包,面向具备C语言和单片机基础的嵌入式学习者,围绕蓝牙无线指令驱动直流电机或步进电机的典型场景,帮助理解串口通信、脉宽调制调速、方向控制与调试流程。压缩包共136个文件,约…

2026/11/5 6:08:01

FinalShell连接服务器失败排查指南:从报错到根因的完整链路分析

1. 连接失败这件事,先别急着甩锅给网络干运维和开发这些年,被问得最多的一类问题就是“终端工具连不上服务器了,是不是服务器挂了”。说实话,十次里有八次服务器活得好好的,问题出在链路的某一环——可能是本地网络策略…

2026/11/5 6:03:01

小商品城商业模式解析与数字化转型路径

1. 小商品城商业模式的本质特征小商品城作为中国特色的商贸流通平台,其商业模式的核心在于构建"低成本、高效率"的交易生态系统。与传统零售业态相比,小商品城最显著的特征体现在三个维度:首先是规模集聚效应。以义乌国际商贸城为例…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑