一个5月份完成训练的大模型,无法对《黑神话·悟空》游戏内容相关问题给出准确回答。
这是大模型的老毛病了。
因为《黑神话》8月才上市,训练数据里没有它的相关知识。
众所周知,大模型的训练和微调会消耗大量计算资源和时间,这意味着频繁更新大模型的参数是不切实际的。
然而,现实世界中的信息是实时产生的且不断变化的。这使得大模型在完成训练后,对于后续新产生的信息感到陌生,所以无法提供准确可靠的反馈。
为此,上海人工智能实验室、北京理工大学、浙江大学、香港大学联合提出即插即用的SearchLVLMs框架,可以无缝整合任意的多模态大模型。
该框架在推理阶段对大模型进行互联网检索增强,使得大模型无需微调即可对实时信息进行准确的反馈。
研究团队提出首个辅助多模态大模型对实时信息进行反馈的开源检索增强框架SearchLVLMs。
该框架主要包括查询生成、搜索引擎调用、分层过滤三个部分。
以视觉问答为例,该框架会基于问题和图片生成查询关键词,并调用搜索引擎查找相关信息,再由粗到细地对检索结果进行过滤,得到对回答该问题有帮助的信息。
这些信息会以prompt的形式在推理阶段提供给模型,以辅助回答。
同时,团队提出一个数据生成框架UDK-VQA,它可以自动生成依赖实时信息进行回答的视觉问答数据。
基于此框架,数据集可以完成动态更新,以保证测试数据的时效性。
目前已有UDK-VQA-240401-30、UDK-VQA-240816-20两个版本的数据集,涉及到的时间跨度分别是2024年4月1日-2024年4月31日和2024年8月16日-2024年9月5日。
研究者在超过15个开源、闭源模型上进行了实验,包括GPT-4o、Gemini 1.5 Pro、InternVL-1.5、LLaVA-1.6等。
在UDK-VQA数据集上的回答准确率,则配备了SearchLVLMs的SOTA LVLMs超过了自带互联网检索增强的GPT-4o模型35%。
SearchLVLMs框架主要由三部分组成:
在查询生成阶段,需要对问题和图像进行充分地理解,以转化为适用于搜索引擎的文本查询。
对于问题而言,直接使用手工设计的prompt调用LLM得到问题查询词。
对于图像而言,调用必应视觉搜索得到包含该图像或与该图像相关的网页,提取这些网页的题目/快照的最长公共子串作为图像查询词。
在搜索引擎调用阶段,用户可以根据问题类型自主选择调用的搜索引擎类别。
比如:对于实时性较强的新闻相关问题,可以选择调用必应新闻搜索;对于常识性问题,可以选择调用必应通用搜索。
调用搜索引擎后会得到多个网页的题目、摘要和链接。
在分层过滤阶段,首先调用网页过滤器对得到的网页进行初筛,基于网页的题目和摘要对这些网页进行重排。
对于排序靠前的网页,使用爬虫获取网页的文本内容,每三句切分成一个片段,使用内容过滤器对这些片段进行重排。
对于排序靠前的片段,基于CLIP特征对它们进行聚类,选择离每个聚类中心的最近的片段,以避免内容重复片段对大模型预测带来的误导。
被选择的片段被直接拼接在一起,用于提示大模型。
其中,网页过滤器和内容过滤器是两个独立训练的LLaVA-1.5模型,作用是为网页/片段进行打分——网页/片段对于回答该问题的帮助程度。
为了训练这两个过滤器,也为了测试大模型对实时信息的反馈能力,研究团队进一步提出了一个数据生成框架——UDK-VQA,如下图所示。
UDK-VQA数据生成主要遵循五个步骤:
分别是查询搜集、问题生成、图像分配、伪标注生成、人为验证。
第一步,查询搜集。
查询搜集主要包括两方面,一方面是从谷歌每日搜索趋势上爬取热门搜索词,另一方面是人为搜集一些热门搜索词来对前者进行补充。
第二步,问题生成。
研究人员首先根据搜集到的搜索词调用搜索引擎得到相关的新闻,将新闻内容进行切分,得到多个内容片段。
然后要求GPT根据内容片段自问自答,得到<问题,答案>的集合。
在第三步图像分配阶段,团队会提取出问题中的实体,使用图片搜索引擎得到实体的图片,并将问题中的实体单词替换为其上分位词,与图片一起组成视觉问答样本。
第四步,伪标注生成。
为了训练网页过滤器和内容过滤器,需要对网页/片段进行打分。
对于一个视觉问答样本和一个网页/片段,研究者基于两个原则进行打分:
① 如果该样本是基于该网页/片段生成的,分数为1.0。
② 如果该样本不是基于该网页/片段生成的,使用5个开源模型在该网页/片段下尝试回答该样本,根据模型回答的正确率进行打分。
基于这样的伪标注方法,研究人员构造了~80w样本用于训练。
最后一步,人为验证。
构造测试集时,研究者对第3步得到的视觉问答样本进行了人为筛选,确保测试样本的正确性。
为了避免训练数据和测试数据需要参考相似的实时信息,在构造训练集和测试集时,研究过程中使用不同时间区间的谷歌每日搜索趋势来爬取热门搜索词。
下图中(a)、(b)、(c)分别展示了训练样本、测试样本和测试样本的分布。
基于数据生成框架UDK-VQA,很容易可以构造出需要实时信息进行回答的视觉问答样本。
研究团队声明会不断更新测试集,保证测试样本的时效性。
目前,研究人员已经构造了两个版本的测试集,分别涉及到2024年5月份和2024年9月份的信息。
SearchLVLMs框架团队在UDK-VQA上测试了15个现有的LVLMs,主要实验结果如下表所示。
其中,Raw表示模型的原始版本(没有检索增强功能)、Long-Context (LC)表示将搜索引擎返回的网页爬取内容后,直接拼接起来提示模型,IAG表示使用了模型内嵌的互联网检索增强能力。
Gen.、Cham.和CLIP→FID (C→F)分别表示[1]、[2]和[3]中的方法。
从实验结果中可以有以下发现:
1、接收长上下文输入可以一定程度上避免对搜索引擎的返回内容进行二次筛选。
Gemini Pro 1.5 (LC)的性能高于内嵌互联网检索增强的GPT-4V和GPT-4o,但是长上下文会引入额外的计算消耗,并引入一些不必要的信息对模型造成误导。
经过SearchLVLMs的分层过滤模型进行二次筛选还有,可以进一步提升模型性能。
2、具备检索增强能力的闭源商用模型在性能上显著高于不具备检索增强能力的开源模型。
GPT-4V和GPT-4o由于内嵌互联网检索增强模块,在准确率上大幅领先开源模型,如LLaVA-1.6和InternVL-1.5,差距约为20%~30%。
3、SearchLVLMs框架可以整合任意的多模态大模型,并大幅度提高它们对于依赖实时信息的问题的回答能力。
无论是在闭源商用模型Gemini 1.5 Pro、GPT-4o、GPT-4V,还是开源SOTA模型LLaVA-1.6和InternVL-1.5上,SearchLVLMs均能带来超过50%的性能提升。
4、SearchLVLMs带来的性能提升,远高于已有方法。
研究对比了检索增强方法Gen.、C→F和调用搜索引擎来辅助回答的框架Cham.,SearchLVLMs在应对实时信息检索任务时,表现出明显的优越性。
5、使用SearchLVLMs整合开源模型,性能可以大幅超过内嵌互联网检索增强能力的闭源商用模型。
InternVL-1.5+SearchLVLMs的准确率为92.9%,远高于GPT-4o(IAG)的57.8%。
这一发现表明,开源模型具有巨大的潜力,SearchLVLMs在性能、可定制性和透明度上具有显著的优势。
参考文献
[1] Yu et al. Generate rather than retrieve: Large language models are strong context generators. arXiv 2023.
[2] Lu et al. Chameleon: Plug-and-play compositional reasoning with large language models. NeurIPS 2023.
[3] Chen et al. Can pre-trained vision and language models answer visual information-seeking questions? EMNLP 2023.
文章链接: https://arxiv.org/abs/2405.14554
项目主页:https://nevermorelch.github.io/SearchLVLMs.github.io/
文章来自于微信公众号“量子位”,作者“李川皓”
【开源免费】ScrapeGraphAI是一个爬虫Python库,它利用大型语言模型和直接图逻辑来增强爬虫能力,让原来复杂繁琐的规则定义被AI取代,让爬虫可以更智能地理解和解析网页内容,减少了对复杂规则的依赖。
项目地址:https://github.com/ScrapeGraphAI/Scrapegraph-ai
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】MindSearch是一个模仿人类思考方式的AI搜索引擎框架,其性能可与 Perplexity和ChatGPT-Web相媲美。
项目地址:https://github.com/InternLM/MindSearch
在线使用:https://mindsearch.openxlab.org.cn/
【开源免费】Morphic是一个由AI驱动的搜索引擎。该项目开源免费,搜索结果包含文本,图片,视频等各种AI搜索所需要的必备功能。相对于其他开源AI搜索项目,测试搜索结果最好。
项目地址:https://github.com/miurla/morphic/tree/main
在线使用:https://www.morphic.sh/
【免费】ffa.chat是一个完全免费的GPT-4o镜像站点,无需魔法付费,即可无限制使用GPT-4o等多个海外模型产品。
在线使用:https://ffa.chat/
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0