当前位置: 首页 > news >正文

【RAG】一篇文章介绍多模态RAG(MRAG)

一、引言

  1. 研究背景与动机:随着大语言模型(LLMs)的广泛应用,其在处理复杂任务时暴露出如产生幻觉、算术能力不足和缺乏可解释性等问题。多模态学习的兴起为解决这些问题提供了新方向,通过融合图像、文本、音频等多种模态信息,能提升模型对世界的理解和交互能力。检索增强生成(RAG)技术结合了语言模型和信息检索技术,通过检索外部知识来指导文本生成,已成为增强模型能力的重要手段。在此背景下,多模态检索增强生成(MRAG)应运而生,旨在进一步拓展RAG技术,使其能处理和利用多种模态的知识,以应对当前人工智能发展中的挑战,如提高生成内容的真实性、增强推理能力、提升可解释性和鲁棒性等。
  2. 研究目的与意义:全面梳理和分析MRAG的研究现状,涵盖其核心组件、技术方法、应用场景、评估方式以及面临的挑战。为研究人员提供深入理解,明确该领域的研究重点和发展方向,推动MRAG技术在多模态信息处理领域的进一步发展和创新应用,助力开发更强大、智能的多模态人工智能系统。
  3. 研究方法与结构安排:系统地在学术数据库(如ACL Anthology、arXiv等)和学术搜索引擎(如Google Scholar)中使用相关关键词进行检索,对筛选出的文献进行深入研读和分析。文章结构如下:首先介绍MRAG的基本概念和发展历程;接着详细阐述其关键组件与技术;然后探讨相关数据集和评估指标;随后分析面临的挑战;最后展望未来研究方向并总结全文。

二、MRAG基础概念

  1. 多模态学习:多模态学习旨在使人工智能系统能够处理和整合来自多种感官或数据格式的信息,如文本、图像、音频、视频等。不同模态数据具有独特的特点和优势,例如文本擅长表达抽象概念和逻辑关系,图像能直观呈现丰富的视觉信息,音频包含语音内容和环境声音等信息。多模态学习通过融合这些不同模态的数据,让模型更全面地理解信息,增强其对复杂任务的处理能力,如在智能客服中,结合文本对话和客户的语音情绪,能更精准地提供服务;在自动驾驶场景中,融合摄像头图像、雷达数据和语音指令,提升驾驶决策的准确性和安全性。
  2. 检索增强生成(RAG):RAG结合了语言模型和信息检索技术。其工作流程包括检索、增强和生成三个主要步骤。在检索阶段,根据用户查询,通过嵌入模型将查询转换为向量,与向量数据库中的知识进行比对,利用相似性搜索获取最相关的前k个数据;增强阶段,把查询内容和检索到的知识整合到预设的提示词模板中;生成阶段,将增强后的提示词输入大型语言模型,生成最终的输出。RAG在多种自然语言处理任务中展现出优势,如在问答系统中,它能从大量文档中检索相关信息,为用户提供更准确的答案,相比传统语言模型,减少了生成内容的幻觉现象;在文档生成任务中,基于检索的知识填充文本,使生成的内容更具信息价值和准确性。

三、MRAG的发展历程与架构演进

  1. MRAG的发展阶段
    • MRAG1.0:作为MRAG的初始阶段,常被称为“伪MRAG” 。它在RAG基础上进行扩展,架构主要包含文档解析与索引、检索和生成三个组件。在文档解析与索引环节,采用光学字符识别(OCR)或格式特定的解析技术处理多模态文档,将其转换为文本形式,同时使用专门模型为图像、视频等非文本元素生成描述性字幕。检索组件通过与索引时相同的嵌入模型将用户查询编码为向量,从向量数据库中检索相关内容。生成组件则将用户查询和检索到的文档整合为提示,由大语言模型生成响应。但该阶段存在诸多局限性,如文档解析过程复杂,易造成多模态信息丢失;检索召回率低,文本分块策略易导致关键词碎片化;生成阶段组织多模态元素成提示困难,且对输入质量敏感。
    • MRAG2.0:随着多模态技术的发展,MRAG进入“真正的多模态”时代。与MRAG1.0相比,它不仅支持多模态输入查询,还在知识库中保留原始多模态数据。利用多模态大语言模型(MLLMs)的能力,生成模块可直接处理多模态数据,减少了数据转换过程中的信息损失。在文档解析和索引方面,使用统一的MLLM或多个MLLMs提取字幕,简化了模块复杂度。检索模块增强为支持多模态用户输入和跨模态检索,丰富了数据源。生成模块通过集成MLLMs,提高了问答任务的准确性,尤其是在处理相关多模态数据的场景中。然而,MRAG2.0仍面临挑战,如多模态数据输入可能降低传统文本查询描述的准确性,当前多模态检索能力仍逊于文本检索,数据格式的多样性给生成模块带来组织和定义输入的困难。
    • MRAG3.0:MRAG3.0在结构和功能上有重大创新。在文档解析方面,引入新方法保留文档页面截图,减少信息损失;实现真正的端到端多模态,不仅在知识库构建和系统输入阶段支持多模态,还具备多模态输出能力;拓展了应用场景,通过调整和添加模块,将理解和生成能力集成,应用于检索增强、视觉问答、多模态生成、融合多模态输出等多种场景。在多模态生成场景中,通过检索增强,提升了生成任务的整体性能;在融合多模态输出场景中,可根据不同需求生成包含多种模态的输出,如在回答“如何制作蛋糕”的问题时,不仅提供文字步骤,还能插入相关图片或视频。
  2. MRAG的架构与关键组件
    • 多模态文档解析与索引:多模态文档可分为无结构多模态数据(如文本、图像、视频、音频)、半结构化多模态数据(如PDF、HTML、XML、JSON)和结构化多模态数据(如关系数据库、知识图谱)。处理方法主要有提取式和基于表示的方法。提取式方法早期从纯文本提取发展到多模态数据提取,如对PDF等半结构化文档,可按结构规则解析,但存在无法提取图像内文本、处理复杂文档格式困难和丢失文档结构信息等问题。基于OCR的方法在文本检测、识别和解析方面有发展,但存在计算资源占用大、错误传播等问题。基于表示的方法利用MLLMs直接使用文档截图作为元数据索引的主要数据,通过统一编码框架处理文档截图及其子图像,但也面临页面级文档分割影响模型捕捉完整上下文和部分间关系的问题。
    • 多模态搜索规划:分为固定规划和自适应规划。固定规划早期包括单模态检索规划(如文本中心和图像中心范式)和多模态检索规划,但存在策略不灵活、易引入冗余信息和计算开销大等问题。自适应规划如OmniSearch引入自自适应规划代理,动态分解复杂多模态问题为子问题链并调整检索策略;CogPlanner迭代优化查询和选择检索策略,提高了系统对复杂多模态输入的处理能力。
    • 多模态检索:核心组件包括检索器、重排器和精炼器。检索器根据架构可分为单/双流结构和生成结构,涉及单模态和跨模态信息检索。单/双流结构在处理多模态关系时各有优缺点,生成结构通过训练生成模型来检索文档。重排器基于大模型(LLMs和MLLMs)分为微调重排器和提示重排器,用于对检索到的文档列表进行重新排序,提高相关性。精炼器通过硬提示和软提示方法优化检索和重排后的信息,以适应LLM的输入要求,提高生成响应的质量。
    • 多模态生成:基于MLLMs实现,根据输入和输出的模态分类。在模态输入方面,从最初将图像模态纳入大模型输入,发展到支持视频等更复杂模态以及统一的任意模态输入。在模态输出方面,从基本的视觉问答任务中生成文本结果,发展到生成包含多种模态的输出,如文本 - 图像、图像 - 视频等。实现多模态输出的常见工作流程包括生成文本答案后确定插入多模态数据的位置,检索候选多模态数据,最后通过相关性匹配模型确定最终插入的数据。

四、MRAG的关键技术

  1. 多模态数据处理技术
    • 多模态数据融合:旨在将不同模态的数据有机结合,形成统一的表示。常见方法有特征拼接、融合嵌入等。特征拼接是直接将不同模态的特征向量连接在一起,简单直观,但可能忽略模态间的复杂关系。融合嵌入则通过学习一个共享的嵌入空间,使不同模态的数据在该空间中具有更好的对齐性和语义关联,如使用Transformer架构的模型,通过自注意力机制捕捉模态间的交互信息,提升多模态数据的融合效果。
    • 跨模态转换与对齐:跨模态转换技术能将一种模态的数据转换为另一种模态的表示,如将图像转换为文本描述(图像字幕生成)或从文本生成图像。跨模态对齐则是使不同模态的数据在语义上相互对应,通过对比学习等方法,拉近相似语义的不同模态数据在嵌入空间中的距离,如在图像 - 文本检索任务中,通过训练使图像和对应的文本描述在嵌入空间中具有较高的相似度,提高检索准确性。
  2. 检索技术
    • 单模态检索:文本检索是信息检索的核心,包括稀疏检索和密集检索。稀疏检索早期基于向量空间模型和词袋假设,使用tf - idf、BM25等方法计算词项权重和构建倒排索引,但存在假设词项独立、依赖词汇匹配等局限性。近年来,结合预训练语言模型的稀疏检索方法通过引入上下文信息和扩展词汇,提升了检索效果。密集检索利用深度学习和预训练语言模型,将文本映射为低维欧氏空间中的密集向量,通过计算向量间的距离衡量相关性,在多种信息检索任务中表现出色。同时,为提高检索效率,发展了近似最近邻搜索(ANNS)算法及其变体。
    • 跨模态检索:实现从一种模态的查询中检索出另一种模态的相关数据。如文本 - 图像检索,早期基于CNN/RNN的方法分别提取图像和文本特征,通过正负样本构建约束进行特征对齐;基于Transformer的方法利用多头自注意力机制编码多模态关系,优化模态特定编码器;基于视觉 - 语言预训练(VLP)模型的方法通过大规模视觉 - 语言数据集联合预训练,显著提升了跨模态检索性能。此外,还有文本 - 视频、文本 - 音频等跨模态检索任务,各自根据模态特点采用不同的技术方法。
  3. 生成技术
    • 基于MLLMs的生成:MLLMs结合了语言模型和多模态处理能力,能够生成跨多种模态的内容。在生成过程中,模型根据输入的多模态信息和检索到的知识,利用自身的参数和训练学习到的模式,生成连贯、准确且符合上下文的输出。如在视觉问答任务中,MLLMs能结合图像和问题文本生成合理的答案;在文本 - 图像生成任务中,根据文本描述生成相应的图像。
    • 生成策略与优化:为提高生成内容的质量和多样性,采用多种策略和优化方法。如在训练过程中使用强化学习,通过奖励机制引导模型生成更符合要求的输出;采用对抗训练,让生成器和判别器相互博弈,提升生成内容的真实性和质量;在推理时,通过调整温度参数、采用核采样等方法控制生成的多样性和确定性。

五、MRAG的应用场景

  1. 智能问答系统:结合多模态信息,如在回答关于旅游景点的问题时,不仅能提供文字介绍,还能检索相关图片、视频,使回答更直观、丰富,提升用户体验。例如用户询问“埃菲尔铁塔是什么样的”,系统可同时返回文字描述、埃菲尔铁塔的图片甚至相关视频,帮助用户更全面地了解。
  2. 文档生成与编辑:在文档生成任务中,根据输入的多模态信息,如图片、图表和文本提示,生成内容丰富、逻辑连贯的文档。在学术论文写作辅助场景中,可根据研究数据图表和相关文献检索结果,自动生成论文的部分内容,提高写作效率和质量。
  3. 智能教育:为教育领域提供更个性化、互动性强的学习体验。如在语言学习中,根据学生的语音输入和学习资料中的文本、图像等多模态信息,进行智能辅导和反馈;在科学教育中,结合实验视频、图表和文字解释,帮助学生更好地理解抽象概念。
  4. 多媒体信息检索:实现更精准、多样化的信息检索。在图像检索中,用户可以用文本描述检索相关图像,也可以通过上传图像检索相似图像或相关文本信息;在视频检索中,结合视频内容的文本描述、关键帧图像等进行检索,提高检索的准确性和效率。
  5. 智能客服与虚拟代理:能够更好地理解用户的多模态输入,如文本、语音、图片等,提供更准确、高效的服务。在电商客服中,用户可以发送商品图片并描述问题,客服系统通过MRAG技术快速检索相关产品信息和解决方案,为用户提供精准服务,提升客户满意度。

六、MRAG的数据集与评估指标

  1. 数据集
    • 用于检索与生成的数据集:包括综合类(如KB - VQA、FVQA等),用于评估系统在多种知识和模态下的检索与生成能力;视觉常识推理类(如VCR、VisualCOMET),侧重于评估模型在视觉场景下的常识推理能力;视频理解与推理类(如KnowIT VQA、SOK - Bench),主要针对视频内容的理解和推理任务;视觉广告类(如Ads),用于评估系统对广告图像和视频的理解能力。这些数据集涵盖不同类型的问题和多模态数据,为评估MRAG系统在不同场景下的性能提供了基础。
    • 用于生成的数据集:涵盖综合、光学字符识别、结构文档、数学、视频理解、工业、对话式问答、多学科等多个类别。如综合类的VQA v2、MME等,用于全面评估MLLMs的各种能力;光学字符识别类的TextVQA、OCR - VQA等,专注于评估模型对文本识别和相关推理的能力;结构文档类的FigureQA、DocVQA等,针对图表、文档等结构化数据的理解和处理能力进行评估。
  2. 评估指标
    • 基于规则的指标:精确匹配(EM)用于判断模型输出与标准答案是否完全一致,直观反映模型的准确性,但对语义等价但词汇不同的情况不敏感。ROUGE - N衡量生成文本与参考文本的N - gram重叠程度,注重召回率,能在一定程度上评估生成文本对关键内容的覆盖情况。BLEU用于评估机器生成文本与参考文本的相似度,最初用于机器翻译,在多模态生成中可评估文本与其他模态的对齐情况,但在捕捉语义深度和上下文连贯性方面存在局限。平均倒数排名(MRR)用于评估检索系统返回相关结果的排序质量,反映系统快速找到正确信息的能力。CIDEr和SPICE分别通过量化文本相似度和解析场景图来评估图像描述生成的质量,强调语义一致性。BERTScore利用BERT的上下文嵌入来衡量语义相似性,能捕捉更深层次的语义关系。
    • 基于LLM/MLLM的指标:答案精度评估模型生成答案的知识与标准答案的匹配程度,反映模型利用检索数据生成准确答案的能力。召回率衡量模型生成响应中对标准答案知识的覆盖程度,体现模型对相关信息的检索和整合能力。检索上下文精度评估检索到的上下文与标准答案响应的一致性,用于评估检索系统的精确性和上下文适应性。检索上下文召回率评估检索到的上下文对生成标准答案所需知识的涵盖程度,反映检索机制的有效性。忠实度评估生成文本与检索文档信息的一致性,确保生成内容基于可靠信息,减少幻觉现象。幻觉指标衡量生成输出中包含的虚假或无根据内容的比例,用于评估模型响应的可靠性。

七、MRAG面临的挑战

  1. 数据处理挑战
    • 多模态数据的异质性:不同模态的数据在结构、特征和表示方式上差异巨大。文本是离散的符号序列,依赖语法和语义结构;图像是连续的像素矩阵,需要特定的卷积或Transformer架构提取特征。这种异质性使得跨模态数据的对齐和融合面临困难,难以找到统一的特征表示方法来准确捕捉不同模态间的语义关系。
    • 数据噪声与不完整性:多模态数据在采集、传输和处理过程中容易引入噪声,如图片的模糊、文本的错别字等。同时,数据可能存在不完整性,部分信息缺失会影响模型的理解和推理能力。在医疗影像分析中,图像的部分区域模糊或标注不完整,可能导致模型对病情的误判。
  2. 模型性能挑战
    • 跨模态理解与推理困难:实现跨模态的深度理解和有效推理是MRAG面临的关键挑战之一。尽管当前模型在单模态处理上取得了一定进展,但在跨模态场景下,准确捕捉和利用不同模态之间的复杂关系仍存在困难。在文本 - 图像联合理解任务中,模型难以精确理解图像内容与文本描述之间的细微关联,导致检索和生成结果的不准确。
    • 模型效率与可扩展性问题:随着数据量和模型规模的增加,MRAG模型的计算效率和可扩展性成为瓶颈。处理多模态数据需要大量的计算资源和时间,训练和推理过程中的内存占用大,难以满足实时性和大规模应用的需求。在实际应用中,如实时视频分析和大规模文档处理,模型的效率和可扩展性限制了其应用范围。

相关文章:

【RAG】一篇文章介绍多模态RAG(MRAG)

一、引言 研究背景与动机:随着大语言模型(LLMs)的广泛应用,其在处理复杂任务时暴露出如产生幻觉、算术能力不足和缺乏可解释性等问题。多模态学习的兴起为解决这些问题提供了新方向,通过融合图像、文本、音频等多种模…...

学习笔记:黑马程序员JavaWeb开发教程(2025.3.25)

11.3 案例-文件上传-本地存储 文件名后缀解决,找到文件最后一个点的位置,截取点及其后面的字符,得到扩展名。代码实现,找到最后一个点的位置,使用方法originalFilename.lastIndexOf(“.”),括号里面是指…...

启动当前文件夹下所有快捷方式批处理bat文件

新建文本文件写入下列代码 ​ echo off chcp 65001 >nul setlocal enabledelayedexpansionfor %%F in (*.lnk) do (echo 正在运行:%%Fstart "" "%%F" )echo 所有快捷方式已启动。 exit​ 将文件重命名为 start.bat 双击运行...

蓝桥杯算法实战分享:C/C++ 题型解析与实战技巧

蓝桥杯全国软件和信息技术专业人才大赛,作为国内知名的算法竞赛之一,吸引了众多编程爱好者参与。在蓝桥杯的赛场上,C/C 因其高效性和灵活性,成为了众多选手的首选语言。本文将结合蓝桥杯的赛制特点、常见题型以及实战案例&#xf…...

IDEA下载kotlin-compiler-embeddable特别慢

问题: 在创建IDEA插件项目时发现 下载kotlin-compiler-embeddable特别慢,然后等待几十分钟然后失败 可以先用控制台显示正在下载的链接,下载好 jar包: https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compi…...

武装Burp Suite工具:HaE 分析辅助类_插件.【高亮标记和信息提取利器】

武装 Burp Suite 插件:HaE 分析辅助类. ​​HaE 分析辅助类​​是一款基于正则表达式的高效数据提取与标记工具,常用于安全测试、日志分析等场景,通过预定义规则快速定位敏感信息(如API密钥、URL参数),提升…...

使用Nacos 打造微服务配置中心

一、背景介绍 Nacos 作为服务注册中心的使用方式,同时 Nacos 还可以作为服务配置中心,用于集中式维护各个业务微服务的配置资源。 作为服务配置中心的交互流程图如下。 这样设计的目的,有一个明显的好处就是:有利于对各个微服务…...

C++——多态、抽象类和接口

目录 多态的基本概念 如何实现多态 在C中,派生类对象可以被当作基类对象使用 编程示例 关键概念总结 抽象类 一、抽象类的定义 基本语法 二、抽象类的核心特性 1. 不能直接实例化 2. 派生类必须实现所有纯虚函数才能成为具体类 3. 可以包含普通成员函数和…...

模拟实现strncat、qsort、atoi

目录 前言 一、模拟实现strncat 参数 代码演示: 二、模拟实现qsort 参数 代码演示: 前言 本文主要是对strncat,qsort,atoi的模拟实现 一、模拟实现strncat C 库函数 char *strncat(char *dest, const char *src, size_t n…...

记录学习的第三十天

今天终于又开始写博客了。 还是滑动窗口问题,这段时间不出意外都是这了 上面的思路是我自己做的,但是不知道为什么不行,有没有大佬能指点一下我。 接下来这道题是进阶的。不过我之前的基础都做的很艰难,道阻且长啊。...

图像预处理-直方图均衡化

一.什么是直方图 反映图像像素分布的统计图,横坐标就是图像像素的取值,纵坐标是该像素的个数。 二.绘制直方图 histcv2.calcHist(images, channels, mask, histSize, ranges) - images:输入图像列表(必须用[ ]包裹)&a…...

应用案例|兵器重工:某体系需求视图模型开发

某体系需求视图模型开发 一、项目背景 本项目为某体系的需求视图模型开发,其中体系设计建模过程可以分解为7大部分,即建模前期准备、全景视点模型正向设计、能力视点模型正向设计、作战视点模型正向设计、系统视点模型正向设计、体系模型反向追溯设计以…...

YOLOv8改进:ShapeIoU与InnerShapeIoU损失函数的理论与实践

文章目录 YOLOv8 损失函数概述ShapeIoU 与 InnerShapeIoU 损失介绍ShapeIoU 损失InnerShapeIoU 损失 ShapeIoU 和 InnerShapeIoU 损失函数的实现ShapeIoU 损失函数代码实现InnerShapeIoU 损失函数代码实现损失函数在 YOLOv8 中的应用 实验效果与分析ShapeIoU 和 InnerShapeIoU …...

用Go语言正则,如何爬取数据

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

Java中实现单例模式的多种方法:原理、实践与优化

单例模式(Singleton Pattern)是设计模式中最简单且最常用的模式之一,旨在确保一个类只有一个实例,并提供全局访问点。在 Java 开发中,单例模式广泛应用于配置管理、日志记录、数据库连接池和线程池等场景。然而&#x…...

Pikachu靶场-RCE漏洞

1. RCE漏洞原理 核心问题:应用程序未对用户输入进行严格过滤,直接将输入内容拼接至系统命令、代码执行函数或反序列化过程中。常见触发场景:命令注入:用户输入被拼接到操作系统命令(如system()、exec())。代…...

OpenCv高阶(七)——图像拼接

目录 一、图像拼接的原理过程 1. 特征检测与描述(Feature Detection & Description) 2. 特征匹配(Feature Matching) 3. 图像配准(Image Registration) 4. 图像变换与投影(Warping&…...

​​电商系统用户需求报告(示例)

目录 电商系统用户需求报告​​ ​​1. 引言​​ 1.1 目的 1.2 范围 ​​2. 用户角色与核心需求​​ ​​2.1 消费者​​ ​​2.2 商家​​ ​​2.3 平台管理方​​ ​​3. 非功能性需求​​ ​​4. 业务流程​​ ​​4.1 消费者购物流程​​ ​​4.2 商家入驻流程…...

图像挖掘课程笔记-第一章:了解机器视觉

一、什么是图像挖掘(Image Mining)? 图像挖掘是一种从大量图像中自动提取有用信息、知识或模式的技术,它融合了图像处理、机器学习、数据库、人工智能、数据挖掘等多个领域的内容。 🧠 图像挖掘与图像处理的区别 图像…...

Spring集合注入Bean

Spring框架中实现Bean集合注入的详细方法 1. 基础自动注入方式1.1 使用Autowired注入List1.2 使用Autowired注入Map 2. 更精细的控制方式2.1 使用Qualifier进行筛选2.2 使用自定义注解筛选 3. Java配置类方式4. 排序注入的Bean集合4.1 使用Order注解4.2 实现Ordered接口 5. 条件…...

实验一 进程控制实验

一、实验目的 1、掌握进程的概念,理解进程和程序的区别。 2、认识和了解并发执行的实质。 3、学习使用系统调用fork()创建新的子进程方法,理解进程树的概念。 4、学习使用系统调用wait()或waitpid()实现父子进程同步。 5、学习使用getpid()和getppi…...

[预备知识]4. 概率基础

概率基础 本章节介绍深度学习中的概率基础知识,包括基本概念、概率分布和统计推断。 1. 概率基础 1.1 基本概念 随机变量:可以取不同值的变量,其值由随机试验的结果决定概率分布:描述随机变量取值的可能性分布条件概率&#x…...

第33周JavaSpringCloud微服务 电商进阶开发

一、课程介绍 1. 定时任务 课程主题 :Spring Cloud 电商进阶开发定时任务定义 :学习什么是定时任务。定时任务学习内容 :定时任务实现方法、cron 表达式。定时任务实践 :在 Spring 中使用 schedule 注解,定期关闭过期…...

基于cubeMX的hal库STM32实现硬件IIC通信控制OLED屏

1、通常的方法是使用软件模拟IIC来实现OLED屏的显示控制,这里用STM32单片机的硬件IIC来实现OLED屏的显示,主控芯片为STM32F103RCT6,正点原子mini开发板。 2、cubemx配置过程 (1)配置时钟和下载 (2&#x…...

游戏工作室为何要更换IP进行多开?工作室使用代理IP要注意什么?

在当今的游戏产业中,游戏工作室为了提升效率、规避风险或突破平台限制,常常需要通过更换IP进行多开操作。这一现象背后涉及技术、商业规则和网络安全等多重因素,而代理IP的选择与使用也成为工作室运营中的关键环节。以下是关于游戏工作室为何…...

postgreSQL 如何使用 dblink

SELECT b.id, flow_name, user_id,u.name FROM bpm_form_info b JOIN vrms_user u on b.user_idu.id dblink SELECT b.id, flow_name, user_id,u.name FROM bpm_form_info b – vrms_user u on b.user_idu.id JOIN dblink( ‘dbnameuser_db userpostgres passwordWs199612’,…...

121.在 Vue3 中使用 OpenLayers 实现去掉鼠标右键默认菜单并显示 Feature 信息

🎯 实现效果 👇 本文最终实现的效果如下: ✅ 地图初始化时绘制一个多边形; ✅ 鼠标 右键点击地图任意位置; ✅ 若命中 Feature,则弹出该图形的详细信息; ✅ 移除浏览器默认的右键菜单,保留地图交互的完整控制。 💡 整个功能基于 Vue3 + OpenLayers 完成,采用 Com…...

复盘20250422

深度分析及个股推荐 1. 行业前景与个股逻辑梳理 从提供的股票信息来看,主要涉及以下行业:合成尼古丁(电子烟)、化工、跨境支付、跨境电商、农药、食品饮料、光刻机、电子商务、造纸等。需结合行业景气度、政策支持、公司核心竞争…...

MQ底层原理

RabbitMQ 概述 RabbitMQ 是⼀个开源的⾼性能、可扩展、消息中间件(Message Broker),实现了 Advanced Message Queuing Protocol(AMQP)协议,可以帮助不同应⽤程序之间进⾏通信和数据交换。RabbitMQ 是由 E…...

30分钟编写十大排序算法完成

import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;//排序算法 public class test_04_22 {public static void swap(int[] nums, int i, int j){int temp nums[i];nums[i] nums[j];nums[j] temp;}//冒泡排序-稳定…...

为什么家电主板采用GND走线而不是整面铺GND铜

不管什么接地方式,本质是为了使得电流的回流路径最短。只要电流的回流路径最短,怎么都可以! 如下图的芯片的一个信号的回流路径,是一个很糟糕的接地!!!!!!&a…...

NVIDIA 自动驾驶技术见解

前言 参与 NVIDIA自动驾驶开发者实验室 活动,以及解读了 NVIDIA 安全报告 自动驾驶 白皮书,本文是我的一些思考和见解。自动驾驶技术的目标是为了改善道理安全、减少交通堵塞,重塑更安全、高效、包容的交通生态。在这一领域,NVI…...

真我推出首款 AI 翻译耳机,支持 32 种语言翻译

2025 年 4 月 22 日,真我手机官微宣布,其首款 AI 翻译耳机 Buds Air7 Pro 将于 4 月 23 日 16 时正式上市1。这款耳机接入了讯飞星火认知大模型 4.0 Ultra,支持中文与 32 种语言面对面翻译,以及同声传译功能。 除了 AI 翻译功能&a…...

如何简化复杂流程提升执行效率

简化复杂流程、提升执行效率的关键在于:聚焦核心目标、减少冗余环节、推动系统自动化、赋能一线决策、流程分级设计。其中,聚焦核心目标 是流程优化的第一步。流程不该为了“流程而流程”,而应服务于业务目标。Gartner在《数字化运营报告》中…...

动态规划算法:完全背包类问题

前言 现在我们考虑下面的问题: (1)小明有一个背包,背包容积为v,有m种物品,其中第i种物品的价值为val[i],体积为t[i],每样物品有无限个,请问背包内物品总价值最大为多少?…...

数据存储方式补码原码反码

1. 关于数据存储(补码、原码、反码) 有符号类型(Signed Types) 存储方式:现代计算机普遍采用 补码(Two’s Complement) 存储有符号整数。 原码:最高位为符号位(0正&…...

【AAudio】A2dp sink创建音频轨道的源码流程分析

一、AAudio概述 AAudio 是 Android 8.0(API 级别 26)引入的 C/C++ 原生音频 API,专为需要低延迟、高性能音频处理的应用设计,尤其适用于实时音频应用(如音频合成器、音乐制作工具、游戏音效等)。 1.1 主要特点 低延迟:通过减少音频数据在内核与用户空间之间的拷贝,直…...

黑马点评之Feed流技术实现关注推送与滚动分页查询

Feed流 关注推送也叫做Feed流,直译为“投喂”。为用户持续的提供“沉浸式体验”,通过无限下拉刷新获取新的信息。 Feed流(信息流)是一种常见的内容分发形式,通过动态更新的内容列表向用户展示个性化或实时信息。典型应…...

vue3+canvas裁剪框样式【前端】

目录 canvas绘制裁剪框:拖拽改变框的大小:圆圈样式:方块样式: canvas绘制裁剪框: // 绘制裁剪框 const drawCropRect (ctx: CanvasRenderingContext2D): void > {if (cropRect.value.width > 0 && crop…...

Python 设计模式:模板模式

1. 什么是模板模式? 模板模式是一种行为设计模式,它定义了一个操作的算法的骨架,而将一些步骤延迟到子类中。模板模式允许子类在不改变算法结构的情况下,重新定义算法的某些特定步骤。 模板模式的核心思想是将算法的固定部分提取…...

usb2.0的硬件知识(一)

一、USB2.0的硬件知识 1.1 USB2.0速率 USB 2.0协议支持3种速率:低速(Low Speed,1.5Mbps)、全速(Full Speed, 12Mbps)、高速(High Speed, 480Mbps);USB Hub、USB设备,也分为低速、全速、高速三种类型。 1.2 USB2.0硬件线序组成 U…...

LangGraph(二)——QuickStart样例中的第二步

目录 1. 添加依赖2. 官网QuickStart——第二步:用工具增强聊天机器人2.1 Tavily Search2.2 简单测试Tavily Search2.3 添加带工具的ChatBot node2.4 添加tool node2.5 添加条件边2.6 可视化StateGraph2.7 构建聊天循环 参考 1. 添加依赖 LangGraph(一)——QuickStar…...

机器学习第二篇 多变量线性回归

数据集:世界幸福指数数据集中的变量有幸福指数排名、国家/地区、幸福指数得分、人均国内生产总值、健康预期寿命、自由权、社会支持、慷慨程度、清廉指数。我们选择GDP per Capita和Freedom,来预测幸福指数得分。 文件一:linear,…...

【MCP Node.js SDK 全栈进阶指南】中级篇(3):MCP高级资源设计

前言 在MCP TypeScript-SDK的初级篇中,我们介绍了资源开发的基础知识,包括静态资源与动态资源的创建、资源模板设计与参数提取,以及基本的资源列表与发现机制。随着应用规模的扩大和复杂性的提高,我们需要更加高级的资源设计方案来应对各种挑战。 本文作为中级篇的第三篇…...

PostgreSQL 常用日志

PostgreSQL 常用日志详解 PostgreSQL 提供了多种日志类型&#xff0c;用于监控数据库活动、排查问题和优化性能。以下是 PostgreSQL 中最常用的日志类型及其配置和使用方法。 一、主要日志类型 日志类型文件位置主要内容用途服务器日志postgresql-<日期>.log服务器运行…...

PostgreSQL认证培训推荐机构

首先来看一张2025年4月份db-engines上的数据库排行情况&#xff0c;前三名是雷打不动的Oracle、MySQL、Microsoft SQL Server&#xff0c;排名第四的就是我们今天的主角 - PostgreSQL数据库&#xff0c;从这张图上可以看出&#xff0c;PostgreSQL数据库的上升超非常明显&#x…...

2025年NISP一级题库试题

NISP一级考试只考50道单选题&#xff0c;难度不算大&#xff0c;话不多说&#xff0c;直接上硬菜&#xff01; 1、物理销毁的方式不包括&#xff08;&#xff09; .消磁 B.焚化炉烧毀 C.反复覆写数据 &#xff24;.机器硏磨粉碎 2、信息安全应该建立贯穿信息系统的整个生命周期…...

pip install pymysql报错

python安装pymysql报错解决 【现象】 很多时候会出现安装pip包报错的问题&#xff0c;看过很多网上教程以及ai都是如下说法&#xff1a; 镜像问题pip版本问题ssh证书问题网络问题… 在遇见这些情况时&#xff0c;上述的各种解决方法都一一实验过但最后都是ERROR。 【解决办…...

达梦官方管理工具 SQLark 更新--不仅支持达梦、Oracle、MySQL,还新增 PostgreSQL 数据库!

SQLark 是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;已支持达梦、Oracle、MySQL数据库&#xff1b;在最新的 V3.4 版本中&#xff0c;SQLark 新增了对 PostgreSQL 的支持&#xff0c;兼容 PostgreSQL…...

Windows 同步-互锁变量访问

互锁变量访问 应用程序必须同步对多个线程共享的变量的访问。 应用程序还必须确保对这些变量的作以原子方式执行&#xff08;完全或根本不执行&#xff09;。 对正确对齐的 32 位变量的简单读取和写入是原子作。 换句话说&#xff0c;你最终不会只更新变量的一部分;所有位都以…...