语义搜索云平台的构建方法、系统及设备和存储介质转让专利

申请号 : CN202310735695.7

文献号 : CN116501947B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王素平朱立谷赵虹宁

申请人 : 中国传媒大学

摘要 :

本发明提供一种语义搜索云平台的构建方法,属于深度学习技术领域,通过搭建云平台的层次化架构,在存储中间件层中创建语料存储集群和分布式向量数据库,保证海量舆论数据的高效存储和语义向量化嵌入和检索过程,突破单节点数据库存在的性能瓶颈,实现标量向量的混合查询;解决关键词搜索可能忽略潜在语义相似的舆论数据的问题;设计语料存储集群和分布式向量数据库形成分布式底层存储集群服务,包括非结构化的语料存储和向量化的海量索引存储;解决了现有技术中大规模数据实时增加导致存储空间需要弹性扩缩问题;通过设计容器化部署层的架构以及预设嵌入流水线扩展调度规则,实时对采集的舆论数据进行增量嵌入,最终实现端到端的语义搜索系统。

权利要求 :

1.一种语义搜索云平台的构建方法,其特征在于,包括如下步骤:

创建语义搜索云平台的层次化架构;其中,所述层次化架构包括业务微服务层、存储中间件层及容器化部署层;

在所述业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为所述多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,所述语义搜索服务与所述向量化模型服务建立连接关系;其中,在所述层次化架构中,采用业务微服务的方式将复杂的平台系统功能解耦成组件式平台系统,所述数据采集服务通过设置数据爬取端口从网络中实时爬取多模态语料的数据;

在所述存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将所述分布式向量数据库与所述向量化模型服务建立连接关系;将所述分布式向量数据库与所述语料存储集群建立映射关系;

在所述容器化部署层,基于预设嵌入流水线扩展调度规则,将所述存储中间件层中的数据部署至预设的容器,以完成对所述语义搜索云平台的构建;其中,所述预设嵌入流水线扩展调度规则为:通过过滤函数对所述预设的容器的节点进行筛选,以判断节点是否满足待调度数据需求,将满足所述待调度数据需求的节点加入节点队列;

根据所述待调度数据是否携带请求扩展资源的请求,以选取对所述节点队列的打分优选策略;

当所述待调度数据不请求扩展资源时,采用预设默认打分策略,并按照所述预设默认打分策略对所述节点队列中的节点按照由高到低的得分进行排序,并将打分最靠前的节点与所述待调度数据绑定;其中,所述预设默认打分策略为将对CPU的打分和对内存的打分之和作为节点的得分;

当所述待调度数据请求扩展资源时,采用预设扩展打分策略,并按照所述预设扩展打分策略对所述节点队列中的节点按照由高到低的打分进行排序,并将打分最靠前的节点与所述待调度数据绑定;其中,所述预设扩展打分策略为将对CPU的打分乘以预设CPU权重值、对所述内存的打分乘以预设内存权重值、对GPU的打分乘以预设GPU权重值、对显存资源剩余的打分乘以预设显存资源剩余权重值和待调度数据资源类型需求量与节点相同资源类型剩余量的匹配度的打分乘以匹配度权重值之和作为节点的得分;所述预设CPU权重值、所述预设内存权重值、所述预设GPU权重值、所述预设显存资源剩余权重值和所述匹配度权重值之和为1;所述预设CPU权重值和所述预设内存权重值均设定为x;所述预设GPU权重值、所述预设显存资源剩余权重值和所述匹配度权重值均设定为2x;其中,所述对CPU的打分的公式为: ;其中,totalCPU为

Node节点包含逻辑CPU总量,usedCPU为Node节点正在使用的CPU总量;

所述对内存的打分的公式为: ;其中,

totalMemory为Node节点的内存总量,usedMemory为Node节点正在使用的内存总量;

所述对GPU的打分的公式为: ;

其中,totalGPU为Node节点的GPU总量, usedGPU为Node节点正在使用的GPU总量;

所述对显存资源剩余的打分的公式: ;

其中,totalvram为Node节点的显存资源总量, usedvram为Node节点正在使用的显存资源总量;

所述对待调度数据资源类型需求量与节点相同资源类型剩余量的匹配度的打分的公式为: ;其中,;

、 、 、 分别为Node节点的

CPU、内存、GPU和显存资源的待调度数据的需求量;

、 、 、 分别为Node节点的CPU、内存、GPU和显

存资源的资源剩余量。

2.根据权利要求1所述的语义搜索云平台的构建方法,其特征在于,所述层次化架构还包括模型分布式训练层;

在所述模型分布式训练层中分别创建向量化模型训练服务、对所述向量化模型训练服务训练得到的模型进行优化迭代的模型迭代服务以及将所述模型迭代服务迭代优化所产生的模型更新至所述向量化模型服务的模型更新服务。

3.根据权利要求1所述的语义搜索云平台的构建方法,其特征在于,所述层次化架构还包括系统效能支撑层;

在所述系统效能支撑层中分别创建存储所述业务微服务层中的服务开发代码仓库、控制业务微服务层中的服务开发阶段的回溯的版本控制服务、对所述代码仓库中的开发代码进行部署的持续集成服务、将通过所述持续集成服务部署好的开发代码交付至所述业务微服务层的持续交付服务和存储所述语义搜索云平台中的镜像文件的镜像仓库。

4.根据权利要求1所述的语义搜索云平台的构建方法,其特征在于,在所述存储中间件层中创建记录所述语料存储集群和所述分布式向量数据库中数据操作信息的日志存储服务和记录接收到的来自用户请求的数据操作信息的缓存消息队列服务。

5.根据权利要求1所述的语义搜索云平台的构建方法,其特征在于,在所述容器化部署层中分别创建对所述存储中间件层中的数据进行容器部署的Docker容器化部署服务、对所述存储中间件层中的数据进行多个节点同时运行编排的Kubernetes容器编排服务、以及存放所述存储中间件层中的数据的NFS存储服务器。

6.根据权利要求1所述的语义搜索云平台的构建方法,其特征在于,所述索引服务的服务方法包括:建立与所述分布式向量数据库之间的连接;

将经过向量化模型服务处理后的多模态语料向量化得到的向量集合按照预先设置的索引算法计算,为所述向量集合生成向量索引,并将向量和对应的索引值插入所述分布式向量数据库。

7.一种语义搜索云平台的构建的系统,其特征在于,包括:

架构创建模块,用于创建语义搜索云平台的层次化架构;其中,所述层次化架构包括业务微服务层、存储中间件层及容器化部署层;

微服务创建模块,用于在所述业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为所述多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,所述语义搜索服务与所述向量化模型服务建立连接关系;其中,在所述层次化架构中,采用业务微服务的方式将复杂的平台系统功能解耦成组件式平台系统,所述数据采集服务通过设置数据爬取端口从网络中实时爬取多模态语料的数据;

存储创建模块,用于在所述存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将所述分布式向量数据库与所述向量化模型服务建立连接关系;将所述分布式向量数据库与所述语料存储集群建立映射关系;

部署模块,用于在所述容器化部署层,基于预设嵌入流水线扩展调度规则,将所述存储中间件层中的数据部署至预设的容器,以完成对所述语义搜索云平台的构建;其中,所述预设嵌入流水线扩展调度规则为:通过过滤函数对所述预设的容器的节点进行筛选,以判断节点是否满足待调度数据需求,将满足所述待调度数据需求的节点加入节点队列;

根据所述待调度数据是否携带请求扩展资源的请求,以选取对所述节点队列的打分优选策略;

当所述待调度数据不请求扩展资源时,采用预设默认打分策略,并按照所述预设默认打分策略对所述节点队列中的节点按照由高到低的得分进行排序,并将打分最靠前的节点与所述待调度数据绑定;其中,所述预设默认打分策略为将对CPU的打分和对内存的打分之和作为节点的得分;

当所述待调度数据请求扩展资源时,采用预设扩展打分策略,并按照所述预设扩展打分策略对所述节点队列中的节点按照由高到低的打分进行排序,并将打分最靠前的节点与所述待调度数据绑定;其中,所述预设扩展打分策略为将对CPU的打分乘以预设CPU权重值、对所述内存的打分乘以预设内存权重值、对GPU的打分乘以预设GPU权重值、对显存资源剩余的打分乘以预设显存资源剩余权重值和待调度数据资源类型需求量与节点相同资源类型剩余量的匹配度的打分乘以匹配度权重值之和作为节点的得分;所述预设CPU权重值、所述预设内存权重值、所述预设GPU权重值、所述预设显存资源剩余权重值和所述匹配度权重值之和为1;所述预设CPU权重值和所述预设内存权重值均设定为x;所述预设GPU权重值、所述预设显存资源剩余权重值和所述匹配度权重值均设定为2x;其中,所述对CPU的打分的公式为: ;其中,totalCPU为

Node节点包含逻辑CPU总量,usedCPU为Node节点正在使用的CPU总量;

所述对内存的打分的公式为: ;其中,

totalMemory为Node节点的内存总量,usedMemory为Node节点正在使用的内存总量;

所述对GPU的打分的公式为: ;

其中,totalGPU为Node节点的GPU总量, usedGPU为Node节点正在使用的GPU总量;

所述对显存资源剩余的打分的公式: ;

其中,totalvram为Node节点的显存资源总量, usedvram为Node节点正在使用的显存资源总量;

所述对待调度数据资源类型需求量与节点相同资源类型剩余量的匹配度的打分的公式为: ;其中,;

、 、 、 分别为Node节点的

CPU、内存、GPU和显存资源的待调度数据的需求量;

、 、 、 分别为Node节点的CPU、内存、GPU和显

存资源的资源剩余量。

8.一种电子设备,其特征在于,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一所述的语义搜索云平台的构建方法中的步骤。

9.一种计算机可读存储介质,存储有至少一个指令,其特征在于,所述至少一个指令被电子设备中的处理器执行时实现如权利要求1至6中任一所述的语义搜索云平台的构建方法。

说明书 :

语义搜索云平台的构建方法、系统及设备和存储介质

技术领域

[0001] 本发明属于深度学习技术领域,具体涉及一种语义搜索云平台的构建方法、系统及设备和存储介质。

背景技术

[0002] 数据智能化时代,社交媒体中产生的舆论数据爆炸式增长,面对突发性、随机性、多样性的媒体舆论数据,如何支撑海量数据合理高效地存储,同时能够快速且准确地搜索出满足需求的有价值信息,成为构建大规模、多模态、增量式的信息搜索系统中亟需解决的问题。
[0003] 传统基于关键词匹配的搜索引擎,主要依赖于匹配查询中的关键词和文档中的关键词。它通常使用词频和逆文档频率(TF‑IDF)等统计方法来衡量关键词的重要性。关键词搜索系统主要关注文档中关键词的出现次数和分布,而不关注文档的整体含义。传统检索方式存在很大的局限性,它难以理解用户的查询意图和语义关系,更容易受到词义歧义等问题的影响,因此无法满足用户快速获取信息的需求,同时,搜索出的新闻文章列表的结果排名也会受到关键词出现次数等因素的影响,而导致出现搜索结果排序不合理的问题。

发明内容

[0004] 基于以上传统基于关键词匹配的搜索引擎的现状,本发明提供一种语义搜索云平台的构建方法、系统及设备和存储介质,用以克服现有技术中存在的至少一个技术问题。
[0005] 为实现上述目的,本发明提供一种语义搜索云平台的构建方法,包括:
[0006] 创建语义搜索云平台的层次化架构;其中,所述层次化架构包括业务微服务层、存储中间件层及容器化部署层;
[0007] 在所述业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为所述多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,所述语义搜索服务与所述向量化模型服务建立连接关系;
[0008] 在所述存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将所述分布式向量数据库与所述向量化模型服务建立连接关系;将所述分布式向量数据库与所述语料存储集群建立映射关系;
[0009] 在所述容器化部署层,基于预设嵌入流水线扩展调度规则,将所述存储中间件层中的数据部署至预设的容器,以完成对所述语义搜索云平台的构建。
[0010] 为了解决上述问题,本发明还提供一种基于真实世界数据语义搜索云平台的构建的系统,包括:
[0011] 架构创建模块,用于创建语义搜索云平台的层次化架构;其中,所述层次化架构包括业务微服务层、存储中间件层及容器化部署层;
[0012] 微服务创建模块,用于在所述业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为所述多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,所述语义搜索服务与所述向量化模型服务建立连接关系;
[0013] 存储创建模块,用于在所述存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将所述分布式向量数据库与所述向量化模型服务建立连接关系;将所述分布式向量数据库与所述语料存储集群建立映射关系;
[0014] 部署模块,用于在所述容器化部署层,基于预设嵌入流水线扩展调度规则,将所述存储中间件层中的数据部署至预设的容器,以完成对所述语义搜索云平台的构建。
[0015] 为了解决上述问题,本发明还提供一种电子设备,电子设备包括:
[0016] 至少一个处理器;以及,
[0017] 与所述至少一个处理器通信连接的存储器;其中,
[0018] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的语义搜索云平台的构建方法中的步骤。
[0019] 为了解决上述问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有至少一个指令,至少一个指令被电子设备中的处理器执行时实现上述的语义搜索云平台的构建方法。
[0020] 本发明提供的语义搜索云平台的构建方法、系统及设备和存储介质,通过搭建包括业务微服务层、存储中间件层及容器化部署层的层次化架构,在存储中间件层中创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,保证海量舆论数据的高效存储和语义向量化过程,突破单节点数据库存在的性能瓶颈,实现标量向量的混合查询;解决关键词搜索可能忽略潜在语义相似的舆论数据的问题;设计语料存储集群和分布式向量数据库形成分布式底层存储集群服务,包括非结构化的语料存储和向量化的海量索引存储;解决了现有技术中大规模数据实时增加导致存储空间需要弹性扩缩问题;通过设计容器化部署层的架构以及预设嵌入流水线扩展调度规则,实时增量对采集的舆论数据进行嵌入,最终实现端到端的语义系统调用。

附图说明

[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1为本发明一实施例提供的语义搜索云平台的构建方法的流程示意图;
[0023] 图2为本发明一实施例提供的语义搜索云平台的构建系统的模块示意图;
[0024] 图3为本发明一实施例提供的实现语义搜索云平台的构建方法的电子设备的内部结构示意图;
[0025] 图4为本发明一实施例提供的语义搜索云平台的层次化架构的结构示意图;
[0026] 图5为本发明一实施例提供的语料存储集群的部署示意图;
[0027] 图6为本发明一实施例提供的为多模态语料的向量化和索引构建的整体架构图;
[0028] 图7为本发明一实施例提供的索引向量构建流程图;
[0029] 图8为本发明一实施例提供的语义查找流程图;
[0030] 图9为本发明一实施例提供的预设嵌入流水线扩展调度规则的流程图;
[0031] 图10为本发明一实施例提供的图9中优选阶段的优选阶段流程图。
[0032] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0033] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034] 基于上述现有技术中存在的问题,本发明主要提供一种语义搜索云平台的构建方法、系统及设备和存储介质,其主要目的在于能够解决现有技术中,传统信息搜索引擎基于关键词匹配存在局限性,难以理解用户的查询意图和语义关系,更容易受到词义歧义等问题的影响,无法满足用户快速获取信息的需求;以及传统多模态数据提取特征向量的过程复杂而繁琐,配置环境需要花费大量的时间和精力和单节点数据库存储数据存在的性能瓶颈等问题。
[0035] 图1为本发明一实施例提供的语义搜索云平台的构建方法的流程示意图。该方法可以由一个系统执行,该系统可以由软件和/或硬件实现。
[0036] 图1对语义搜索云平台的构建方法进行了整体性的描述。如图1所示,在本实施例中,语义搜索云平台的构建方法包括步骤S110 S140。~
[0037] S110、创建语义搜索云平台的层次化架构;其中,层次化架构包括业务微服务层、存储中间件层及容器化部署层。
[0038] 具体的,针对传统信息搜索引擎基于关键词匹配的弊端,以及针对大规模数据实时增加导致存储空间需要弹性扩缩的问题,本发明设计一套分布式底层存储集群服务的层次化架构,包括根据海量语料的实时变化可实时采集语料以及用于用户输入搜索的业务微服务层、非结构化的语料存储和向量化的海量索引存储的存储中间件层和用于对数据进行部署的容器化部署层;因此实现针对传统多模态数据提取特征向量(embedding)的过程复杂而繁琐,配置环境需要花费大量的时间和精力问题,在层次化架构中借助底层服务器的硬件资源以及集群的容器编排能力,提供封装好的多模态数据嵌入微服务,并借助从多模态数据中提取的语义信息对外提供多模态语义搜索服务。根据海量数据实时更新的特点,语义搜索云平台中构建语料存储集群优选为分布式的MongoDB集群,以实现一套稳定可靠的底层语料存储服务,突破单节点MongoDB存在的性能瓶颈。
[0039] 如图4所示,云平台的层次化架构采取分层架构模式,不同层的功能各不相同。底层是一个带有GPU资源和NFS存储服务器的PaaS平台。由Master节点、Worker节点和存储服务器组成。Worker节点由CPU高性能服务器和GPU服务器组成。每个CPU高性能服务器配有40核逻辑CPU和128G内存。另外还有两台GPU服务器,一台配有8块NVIDIA RTX 3080 10G的GPU显卡,另外一台配有1块NVIDIA Tesla V100 32GB的GPU显卡,可以协助完成语义搜索服务对GPU算力需求或使用GPU进行检索过程的加速工作。这些物理机器基于Kubernetes进行高可用集群搭建,可以很好的实现不同用户容器之间的隔离和调度工作,并且使得云平台具备横向扩展能力,当大规模采集的舆论数据存储空间达到当前存储空间上限时,弹性添加新的工作节点与资源且不影响当前系统功能的使用。同时整个集群对接NAS存储服务器,NAS服务器利用NFS协议来实现不同容器环境的数据挂载到分配好的目录文件中,达到数据持久化存储的目的。
[0040] 在整个PaaS平台的基础上进行了平台的功能建设工作。首先是基于Docker容器技术和Kubernetes集群技术进行非结构化向量数据库Milvus和大规模语料的MongoDB集群搭建,该数据库可以快速高效的存储、查询、索引非结构化数据的向量信息。其次是流水线推理服务和模型服务,通过代码实现流水线的定制工作,可以根据需求设置数据推理格式、数据的解码算法、数据的特征提取即embedding模型调用。最后通过Dockerfile文件进行流水线镜像的构建工作,可以指定Cuda版本以及Nvidia Triton等高性能推理框架。通过微服务的形式提供给用户进行非结构化数据的处理工作。
[0041] 作为本发明的一个可选实施例,层次化架构还包括模型分布式训练层;
[0042] 在模型分布式训练层中分别创建向量化模型训练服务、对向量化模型训练服务训练得到的向量化模型进行优化迭代的模型迭代服务以及将模型迭代服务迭代优化所产生的向量化模型更新至向量化模型服务的模型更新服务。
[0043] 具体的,为提高基于向量索引的海量舆论数据语义搜索的召回率,云平台中支撑多模态检索服务的分布式训练,通过模型训练、模型更新、优化迭代等环节,将筛选出的最优模型接入业务微服务层以供搜索时调用。此外,在进行模型的分布式训练过程中,利用embedding嵌入流水线的扩展调度策略,加速模型的训练过程并提升整体云平台资源的利用率。
[0044] 作为本发明的一个可选实施例,层次化架构还包括系统效能支撑层;
[0045] 在系统效能支撑层中分别创建存储业务微服务层中的服务的开发代码的代码仓库、控制业务微服务层中的服务开发阶段的回溯的版本控制服务、对代码仓库中的开发代码进行部署的持续集成服务、将通过持续集成服务部署好的开发代码交付至业务微服务层的持续交付服务和存储语义搜索云平台中的镜像文件的镜像仓库。
[0046] 具体的,云平台的层次化架构增加系统效能支撑层以提升整体云平台的系统开发效率并保证业务微服务层中各功能模块流程的自动化。具体的说,通过Gitlab代码仓库中代码的pull拉取、push推送等操作实现团队协作式开发模式;同时版本控制能够支撑系统各开发阶段的快照,便于出现功能bug时的快速版本回溯;持续集成与持续交付能够与Gitlab结合完成对代码的高效自动化部署工作;搭建镜像仓库支撑并维护系统中创建的各个镜像文件。
[0047] 作为本发明的一个可选实施例,层次化架构还包括服务监控与治理层。
[0048] 具体的,云平台的层次化架构中实现各个服务模块的监控和治理体系,以此对云平台的层次化架构提供多维度的动态资源监控及对不同镜像的版本管理和存储功能。具体的说,服务监控与治理体系中涵盖服务监控、服务恢复、服务配置管理、服务状态通知、数据挂载设置、镜像管理、镜像文件存储设置等功能模块。整个云平台贯彻DevOps理念,使用CI/CD(持续集成/持续部署)的方式实现语义搜索系统的前、后端在云平台集群内部的自动化部署,减轻了开发人员繁琐的部署工作,并且整个系统拥有良好的版本控制。云平台的服务统一使用Restful API的接口风格,使用GET、SEARCH等方法实现对后端资源的访问,并通过Haproxy/Nginx+Keepalived实现负载均衡和整个集群的高可用。
[0049] S120、在业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,语义搜索服务与向量化模型服务建立连接关系。
[0050] 具体的,在业务微服务层中创建数据采集服务,例如,设置数据爬取端口从网络中实时爬取多模态语料的数据;创建向量化模型服务,对采集到的多模态语料的数据进行向量化处理;创建索引服务以对向量化的多模态语料创建索引;再创建语义搜索服务,以 FAISS、Annoy、HNSW 等向量搜索策略进行构建,核心是解决稠密向量相似度检索的问题,此外,舆论数据即多模态语料采用数据分区分片、数据持久化、增量数据摄取、标量向量混合查询的技术提升检索的性能。云平台结合高维向量的非结构化及稠密特征,引入Milvus向量数据库和向量召回技术,针对向量查询与检索设计,保障能够为向量数据建立索引。
[0051] 作为本发明的一个可选实施例,索引服务的服务方法包括:
[0052] 建立与分布式向量数据库之间的连接;
[0053] 将经过向量化模型服务处理后的多模态语料向量化得到的向量集合按照预先设置的索引算法计算,为向量集合生成向量索引,并将向量和对应的索引值插入分布式向量数据库。
[0054] 具体的,如图7所示,采集到的多模态语料如文本、图像等经过深度学习语义搜索模型嵌入后转化为向量,包括向量id和向量数据,以便进行相似性索引。索引文件是对向量数据进行聚类运算后的结果,包括索引的类型,每个簇的中心向量,每个簇分别有哪些向量等信息。
[0055] 客户端发起建索引的请求之后,proxy代理收到请求做一些静态检查,然后将请求转发到核心调度器,调度器将构建索引的请求持久化到key‑value键值存储中,立马返回给proxy代理,proxy代理返回给客户端SDK。真正的建索引过程是核心调度器向索引控制器发起构建索引的请求。
[0056] S130、在存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将分布式向量数据库与向量化模型服务建立连接关系;将分布式向量数据库与语料存储集群建立映射关系。
[0057] 具体的,针对实时增加的海量舆论的多模态语料是非结构化的,云平台中底层存储是基于MongoDB分片集群部署,可包含3部分,mongos路由节点来提高路由导向功能,mongo‑config配置节点用来存储元数据以及集群配置信息,mongod是实际的存储节点并且通过副本集的方式维护集群的稳定性,实现故障转移、切换、恢复。搭建的MongoDB集群即语料存储集群的整体部署情况如图5所示。
[0058] 针对embedding向量化处理多模态数据的流程,云平台中结合存储和计算分离的底层架构,将语料存储集群,优选MongoDB集群与分布式向量数据库优选Milvus集群结合,实现原始语料和向量化索引的并行管理和支撑语义搜索系统的底层存储,保障入库的语料同步实时被embedding向量化嵌入。向量空间中存在海量且高维的特征向量,根据舆论数据的特征为数据集合设置合适的索引类型、向量距离计算方式等配置项可提高向量检索速度和准确性。向量化索引的请求、调度的消息传递等过程构建的整体架构如图6所示。
[0059] 语义搜索云平台的向量数据库底层架构中,主要设计可分为五个层次,以支撑云平台系统的弹性扩缩和资源的灵活调度。
[0060] 1)请求接入层由多个proxy代理组成。对外提供统一的连接接口,并对客户端的请求进行验证。使用大规模并行处理架构,proxy组件会先对执行节点返回的中间结果进行全局聚合和处理,再返回至客户端。
[0061] 2)核心调度器模块负责不同任务的下发。包括集群负载均衡管理、数据管理和定时器管理等,此外,管理海量数据的索引构建并索引元数据的维护。
[0062] 3)索引构建和语义搜索模块主要负责执行从核心调度器中发出的各种任务以及代理请求的数据操作请求,完成多模态数据处理云平台的高效扩缩容和高可用。其中,海量语料节点从消息队列中获取日志信息,处理数据请求,并将日志数据打包存储在对象存储上实现日志信息的持久化存储;索引节点则负责执行索引构建的任务,通过调度embedding嵌入的流水线过程,实现舆论数据的向量化过程;查询节点通过订阅信息存储获取日志数据,提供标量+向量的混合查询和搜索功能。
[0063] 4)存储服务类型将云平台中所有的数据信息进行合理规划,划分为对海量语料的非结构化存储、向量化嵌入数据的存储、索引存储以及平台中日志数据的存储。
[0064] 5)基于以上的存储服务需求,搭建底层存储支撑集群,分别对云平台中大规模语料和向量化索引数据进行持久化存储。此外,结合元数据存储将向量数据中的结合信息、节点状态信息等进行快照存储,能够实现极高的可用性和强一致性; 针对系统中可能遭遇执行节点故障或者停机维护的问题,采用消息存储的方式回溯历史消息,保证数据查询、事件通知和结果返回等数据的完整性。
[0065] 整体的云平台的层次化架构中,采用微服务的方式将复杂的系统功能进行解耦,保证组件式系统搭建,各功能的读写操作记录都以日志的形式保存,记录所有更改数据库和数据集状态的操作。同时持续集成和交付的开发模式能够保证代码更新后的自动化部署,以及系统出现故障时的版本回滚,尽可能保障系统功能的可用性。
[0066] 向量数据的录入流程:批量插入向量,但是并不是每次插入向量都去写磁盘,向量数据库会给每个表在内存里开辟一块空间作为可写缓冲mutable buffer,数据可以快速直接写入可写缓冲,当积累到一定数量后,可写缓冲被标记为immutable buffer,并且会开辟新的可写缓冲等待新的数据。
[0067] 作为本发明的一个可选实施例,在存储中间件层中创建记录语料存储集群和分布式向量数据库中数据操作信息的日志存储服务和记录接收到的来自用户端的数据操作信息的缓存消息队列服务。
[0068] 具体的,数据元信息用来管理文件的状态和信息,使用MySQL管理元数据,程序启动后会在数据库中创建两张表,Tables和TableFiles,Tables用来记录全部表的信息,TableFiles则是记录全部数据文件以及索引文件的信息。Tables元数据信息中包括表名、向量维度、创建日前、状态、索引类型、聚类的分簇数量、距离计算方式等;TableFiles记录了文件所属的表名、文件索引类型、文件名、文件类型、文件大小、向量行数和创建日期。
[0069] S140、在容器化部署层,基于预设嵌入流水线扩展调度规则,将存储中间件层中的数据部署至预设的容器,以完成对语义搜索云平台的构建。
[0070] 具体的,针对多模态语料的特征向量提取流程中,向量增量式生成及索引实时构建的特点,构建大规模embedding嵌入数据的分布式向量存储架构;针对多模态embedding流水线的数据处理需求,提出了一种embedding流水线扩展调度策略。整个策略对调度过程的预选阶段和优选阶段进行优化。设计扩展过滤策略以及扩展打分策略,扩展过滤策略通过在默认调度策略的基础上定义新的扩展资源对象,优化对GPU以及GPU显存资源的评估过滤。
[0071] 作为本发明的一个可选实施例,在容器化部署层中分别创建对存储中间件层中的数据进行容器部署的Docker容器化部署服务、对存储中间件层中的数据进行多个节点同时运行编排的Kubernetes容器编排服务、以及存放存储中间件层中的数据的NFS存储服务器。
[0072] 具体的,云平台通过构建微服务的方式,将多模态embedding流水线打包至镜像,部署到集群中,并保证整个云平台的负载均衡;云平台中结合Gitlab代码仓库与CI/CD自动化构建,完成对代码的自动化推送和平台功能的迭代更新,其中,整个CI/CD自动化构建的流程包括代码的推送、编译、构建镜像、集群部署等过程。
[0073] 作为本发明的一个可选实施例,预设嵌入流水线扩展调度规则为:
[0074] 通过过滤函数对所述预设的容器的节点进行筛选,以判断节点是否满足待调度数据需求,将满足待调度数据需求的节点加入节点队列;
[0075] 根据待调度数据是否携带请求扩展资源的请求,以选取对节点队列的打分优选策略;
[0076] 当待调度数据不请求扩展资源时,采用预设默认打分策略,并按照预设默认打分策略对节点队列中的节点按照由高到低的得分进行排序,并将打分最靠前的节点与待调度数据绑定;其中,预设默认打分策略为将对CPU的打分和对内存的打分之和作为节点的得分;
[0077] 当待调度数据不请求扩展资源时,采用预设扩展打分策略,并按照预设扩展打分策略对节点队列中的节点按照由高到低的打分进行排序,并将打分最靠前的节点与待调度数据绑定;其中,预设扩展打分策略为将对CPU的打分乘以预设CPU权重值、对内存的打分乘以预设内存权重值、对GPU的打分乘以预设GPU权重值、对显存资源剩余的打分乘以预设显存资源剩余权重值和待调度数据资源类型需求量与节点相同资源类型剩余量的匹配度的打分乘以匹配度权重值之和作为节点的得分;预设CPU权重值、所述预设内存权重值、预设GPU权重值、预设显存资源剩余权重值和匹配度权重值之和为1;预设CPU权重值和预设内存权重值均设定为x;预设GPU权重值、预设显存资源剩余权重值和匹配度权重值均设定为2x。
[0078] 具体的,为了更好的解决多模态数据处理的资源调度问题,本发明在默认的Kube‑scheduler调度策略上进行了优化设计。预设嵌入流水线扩展调度规则。在调度的预选和优选过程中分别进行了调度策略的优化和扩展。在预选过滤阶段首先考虑了待调度数据Pod优先级问题,根据Pod实际资源请求设置合理的Pod优先级队列,并且定义了两种扩展资源,针对两种新的扩展资源进行Node节点过滤操作。在优选打分阶段增加了节点匹配度和GPU指标的打分权重,可以更加针对性的为embedding流水线微服务选择合适的最优节点,以达到数据处理高速高效的目的。多任务并行调度策略原理如下,首先通过默认预选策略对Node节点进行过滤,如果检测到待调度数据Pod含有扩展资源请求,触发扩展过滤策略进行Node节点过滤。过滤后的Node节点进行优选打分,先通过默认打分策略打分,再触发扩展打分策略进行打分,最后进行求和筛选出排名最高的Node节点与待调度数据Pod进行绑定操作,整体流程如图9所示。
[0079] 采用添加调度扩展程序的方式来进行embedding流水线扩展调度策略的设计,即为Kubernetes添加新的调度规则。分别在预选和优选阶段进行扩展,在默认的调度规则中添加扩展声明。首先对预选阶段的扩展程序进行编写,在这里需要定义两个参数,定义扩展过滤策略的参数名称为Name,这里定义扩展过滤策略名为Gpu_filter,定义扩展过滤策略的函数实现为Function。该函数的输入参数为待调度数据Pod以及候选Node节点,通过过滤函数来判断该Node节点是否满足待调度数据Pod的需求。如果满足需求即可将Node节点加入节点队列进入下一个优选打分流程。
[0080] 通过预选阶段得到的Node节点队列进入优选阶段,在优选阶段中采用新的扩展打分策略,Kubernetes默认调度打分策略中只考虑CPU和内存使用量,并且在计算Node节点与待调度数据Pod匹配度的时候也只考虑了CPU和内存的匹配。为了更好的针对embedding流水线的资源分配,需要对优选阶段扩展新的打分策略,需要重点突出GPU、显存的打分权重,以及更好的Node节点与Pod匹配度。对Node节点内资源的打分策略,这里先参考Kubernetes的默认打分策略中对CPU和内存的打分,定义 为Node节点上CPU得分,具体如公式如下:
[0081] ;
[0082] 其中totalCPU为Node节点包含逻辑CPU总量,usedCPU为Node节点正在使用的CPU总量。同理定义 为Node节点上内存得分、 为Node节点上GPU使用情况得分、 为Node节点上GPU显存使用情况得分,具体如公式分别如下:
[0083] ;
[0084] ;
[0085] ;
[0086] 接下来需要考虑Node节点剩余资源与待调度数据Pod资源需求的整体匹配程度。采用相同的资源类型(CPU、内存、GPU、显存)来表示Node节点资源剩余量以及待调度Pod资源需求量,定义两个向量 和 分别表示这两种资源量,公式分别如下:
[0087] ;
[0088]
[0089] 其中, 为待调度数据Pod资源类型需求量,分别为CPU、内存、GPU、显存的资源需求,定义在描述待调度数据Pod的Yaml资源文件当中, 为Node节点相
同类型资源剩余量,分别为CPU(restcpu)、内存(restmemory)、GPU(restgpu)、显存(restvram)的资源剩余,将向量相似度定义为两个向量之间的余弦夹角。定义 为待调度Pod
与Node节点之间的匹配度,很显然两个向量之间的余弦值越大,表示这两个向量相似性越低,即待调度Pod与Node节点资源匹配度低。 值越小,代表这两个向量相似性
越高,即待调度Pod与Node节点资源匹配度高。 具体的计算公式如下:
[0090] ;
[0091] 通过上文定义的计算各种资源得分公式,将扩展打分策略中的总得分公式定义如下:
[0092]
[0093] 其中, 、 、 、 、 分别为CPU、内存、GPU、显存和资源匹配度的权重值,这些权重值和为1。将CPU和内存的权重值设为x,GPU、显存、资源匹配度的权重值设为2x。整个优选阶段打分流程如图10所示。
[0094] 整个优选阶段先得到了预选阶段的Node队列,针对待调度数据Pod队列的队首Pod进行打分操作,先检测待调度Pod是否携带了扩展资源的请求,如果携带请求则使用扩展打分策略对Node节点队列进行打分,否则采用默认打分策略。最后将得分最高的Node节点与待调度Pod进行绑定,随后检查待调度Pod队列是否还有待调度Pod,如果没有则结束整个调度过程,如果有继续循环整个预选优选流程。
[0095] 接着随预选阶段和优选阶段的扩展策略进行打包构建镜像操作,通过编写Dokcerfile实现镜像的构建,首先使用Ubuntu作为基础镜像,然后将编写好的扩展策略程序打包进Ubuntu的可执行目录下,添加可执行权限,最后运行扩展策略文件。具体文件内容如下:
[0096] 运行Dockerfile构建镜像,将镜像上传至私有Harbor镜像仓库。接着编写扩展组件的配置文件,通过编写ConfigMap的形式注册接口,最后通过编写Deployment文件对扩展调度进行编排部署工作,配置文件大致如下:
[0097] 通过Deployment配置文件将扩展调度组件部署在集群中,embedding流水线扩展调度策略可完成部署。
[0098] 针对多模态embedding流水线的扩展调度策略,充分考虑了任务的资源需求、负载均衡、数据局部性、弹性伸缩以及故障恢复等方面,可以有效地提高多模态embedding流水线的数据处理性能和资源利用率。
[0099] 如图8所示,语义搜索服务的流程如下:
[0100] 使用LRU(Latest Recently Used)策略作为数据的置换策略。第一次查询为冷查询,第一次查询时数据在硬盘上,需要把数据加载到内存,另外还有部分数据加载到显存;当第二次查询时部分数据或全部数据已经在内存中,省去了读硬盘的时间,查询会变得很快。
[0101] 向量的检索有两个关键参数,一个是n,指n条目标向量,另一个是k,指最相似的前k个向量。对于一次查询,结果集是n组key‑value键值对,每组键值对有k对键值。调度器先检索得出结果集,然后对结果集两两归并,经过两轮归并后,得到最终的结果集。
[0102] 如图2所示,本发明提供一种语义搜索云平台的构建的系统200,本发明可以安装于电子设备中。根据实现的功能,该语义搜索云平台的构建的系统200可以包括架构创建模块210、微服务创建模块220、存储创建模块230以及部署模块240。本发明单元也可以称之为模块,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0103] 在本实施例中,关于各模块/单元的功能如下:
[0104] 架构创建模块210,用于创建语义搜索云平台的层次化架构;其中,层次化架构包括业务微服务层、存储中间件层及容器化部署层;
[0105] 微服务创建模块220,用于在业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为所述多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,语义搜索服务与向量化模型服务建立连接关系;
[0106] 存储创建模块230,用于在存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将分布式向量数据库与所述向量化模型服务建立连接关系;将分布式向量数据库与所述语料存储集群建立映射关系;
[0107] 部署模块240,用于在容器化部署层,基于预设嵌入流水线扩展调度规则,将存储中间件层中的数据部署至预设的容器,以完成对语义搜索云平台的构建。
[0108] 本发明的语义搜索云平台的构建的系统200通过搭建包括业务微服务层、存储中间件层及容器化部署层的层次化架构,在存储中间件层中创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,保证海量舆论数据的高效存储和语义向量化过程,突破单节点数据库存在的性能瓶颈,实现标量向量的混合查询;解决关键词搜索可能忽略潜在语义相似的舆论数据的问题;设计语料存储集群和分布式向量数据库形成分布式底层存储集群服务,包括非结构化的语料存储和向量化的海量索引存储;解决了现有技术中大规模数据实时增加导致存储空间需要弹性扩缩问题;通过设计容器化部署层的架构以及预设嵌入流水线扩展调度规则,实时增量对采集的舆论数据进行嵌入,最终实现端到端的语义系统调用。
[0109] 如图3所示,本发明提供一种语义搜索云平台的构建方法的电子设备3。
[0110] 该电子设备3可以包括处理器30、存储器31和总线,还可以包括存储在存储器31中并可在所述处理器30上运行的计算机程序,如基于语义搜索云平台的构建程序32。存储器31还可以既包括基于语义搜索云平台的构建系统的内部存储单元也包括外部存储设备。存储器31不仅可以用于存储安装于应用软件及各类数据,例如基于语义搜索云平台的构建程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0111] 其中,所述存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器31在一些实施例中可以是电子设备3的内部存储单元,例如该电子设备3的移动硬盘。所述存储器31在另一些实施例中也可以是电子设备3的外部存储设备,例如电子设备3上配备的插接式移动硬盘、智能存储卡(Smart Media Card, SMC)、安全数字(Secure Digital, SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括电子设备3的内部存储单元也包括外部存储设备。所述存储器31不仅可以用于存储安装于电子设备3的应用软件及各类数据,例如基于语义搜索云平台的构建的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0112] 所述处理器30在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器30是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块(例如基于语义搜索云平台的构建程序等),以及调用存储在所述存储器31内的数据,以执行电子设备3的各种功能和处理数据。
[0113] 所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器31以及至少一个处理器30等之间的连接通信。
[0114] 图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备3的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0115] 例如,尽管未示出,所述电子设备3还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理系统与所述至少一个处理器30逻辑相连,从而通过电源管理系统实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备3还可以包括多种传感器、蓝牙模块、Wi‑Fi模块等,在此不再赘述。
[0116] 进一步地,所述电子设备3还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI‑FI接口、蓝牙接口等),通常用于在该电子设备3与其他电子设备之间建立通信连接。
[0117] 可选地,该电子设备3还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light‑Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备3中处理的信息以及用于显示可视化的用户界面。
[0118] 应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0119] 所述电子设备3中的所述存储器31存储的基于语义搜索云平台的构建程序32是多个指令的组合,在所述处理器30中运行时,可以实现:
[0120] S110、创建语义搜索云平台的层次化架构;其中,层次化架构包括业务微服务层、存储中间件层及容器化部署层;
[0121] S120、在业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,语义搜索服务与向量化模型服务建立连接关系;
[0122] S130、在所述存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将分布式向量数据库与向量化模型服务建立连接关系;将分布式向量数据库与语料存储集群建立映射关系;
[0123] S140、在容器化部署层,基于预设嵌入流水线扩展调度规则,将存储中间件层中的数据部署至预设的容器,以完成对语义搜索云平台的构建。
[0124] 具体地,所述处理器30对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述语义搜索云平台的构建程序的私密和安全性,上述数据库高可用处理数据存储于本服务器集群所处节点中。
[0125] 进一步地,所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或系统、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)。
[0126] 本发明实施例还提供一种计算机可读存储介质,所述存储介质可以是非易失性的,也可以是易失性的,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:
[0127] S110、创建语义搜索云平台的层次化架构;其中,层次化架构包括业务微服务层、存储中间件层及容器化部署层;
[0128] S120、在业务微服务层,分别创建实时采集多模态语料的数据采集服务、对采集的多模态语料向量化处理的模型服务、为多模态语料的向量构建索引的索引服务、以及为用户输入搜索的语义搜索服务;其中,语义搜索服务与向量化模型服务建立连接关系;
[0129] S130、在所述存储中间件层,分别创建存储多模态语料的语料存储集群和存储带索引的多模态语料的向量的分布式向量数据库,并将分布式向量数据库与向量化模型服务建立连接关系;将分布式向量数据库与语料存储集群建立映射关系;
[0130] S140、在容器化部署层,基于预设嵌入流水线扩展调度规则,将存储中间件层中的数据部署至预设的容器,以完成对语义搜索云平台的构建。
[0131] 具体地,所述计算机程序被处理器执行时具体实现方法可参考实施例语义搜索云平台的构建方法中相关步骤的描述,在此不赘述。
[0132] 在本发明所提供的几个实施例中,应该理解到,所揭露的设备,系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0133] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0134] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0135] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0136] 因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0137] 此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或系统也可以由一个单元或系统通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0138] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。