向量搜索:信息检索领域的变革力量

浅谈向量检索 文章目录浅谈向量检索背景什么是向量什么是向量检索距离度量检索方法ANN的基本思路举个容易理解栗子举个正常的例子具体算法树方法KD-TreeAnnoyHash方法LSH 算法矢量量化方法乘积量化码本的建立码字搜索算法倒排乘积量化临近图方法HNSW 算法朴素想法Delaunay算法NSW 主要思想NSW构图NSW查找参考 浅谈向量检索 背景 索引一直被认为是检索引擎最重要的组成部分,之所以数据库能够快速的查询出来结果。系统设计中很多常见的多种数据结构都是为了快速命中索引设计的, 比如 红黑树、跳跃表、倒排索引、 阅读详情

图片

在当今数字化时代,数据量呈爆炸式增长,如何从海量数据中高效、准确地获取所需信息,成为了一项极具挑战性的任务。而向量搜索技术的出现,犹如一道曙光,为信息检索带来了全新的解决方案。

一、向量搜索的本质与特点

向量搜索是一种独特的信息检索方法,其核心在于对数据的数字表示形式 —— 向量进行操作。与传统基于关键字的搜索方式截然不同,向量搜索能够深入理解数据的语义和上下文信息,从而依据语义相似性而非单纯的精确匹配来查找相关内容。例如,在客户支持场景中,对于 “screen frozen”(屏幕冻结)和 “display not responding”(显示无响应)这两个表述,尽管它们并非完全一致的关键字,但向量搜索能够敏锐地识别出其语义上的相似性,进而提供相关的解决方案或信息。

二、向量搜索的重要意义

1. 卓越的语义理解能力

在自然语言处理领域,向量搜索展现出了非凡的优势。它能够精准地捕捉语言中的细微差别和复杂语境,为实现更智能、更准确的搜索奠定了基础。这对于处理自然语言中的各种变化和歧义至关重要,使得搜索结果更加贴合用户的实际需求。

2. 非结构化数据处理的利器

面对文本、图像、音频等多种类型的非结构化数据,传统搜索方法往往力不从心。然而,向量搜索通过将这些数据转换为统一的数值表示形式,成功地突破了这一困境。在多媒体数据库中,它能够实现跨数据类型的搜索,例如根据文本描述查找匹配的图像,或者依据音频特征找到相似的歌曲,极大地拓展了信息检索的边界。

3. 个性化推荐的核心支撑

在电子商务、内容流平台以及社交媒体等领域,向量搜索扮演着不可或缺的角色。它通过将用户偏好和项目特征转化为向量,能够精准地为用户推荐符合其兴趣的项目,从而打造高度个性化的体验。以 Netflix 的电影推荐和 Spotify 的播放列表生成为例,背后都离不开向量搜索技术的有力支持。

4. 多模态查询的创新驱动

随着多媒体技术的发展,用户对于信息检索的需求也日益多样化。向量搜索顺应这一趋势,为多模态查询提供了可能。例如,在电子商务场景中,用户可以同时上传产品图片并添加文字描述,向量搜索系统能够综合这些信息,准确找到类似的商品。Pinterest 的视觉搜索功能便是这一应用的典型代表,它允许用户选取图像的部分区域,并查找视觉上相似的图钉,为用户带来了全新的搜索体验。

5. 提升大型系统效率的关键

随着数据规模的不断扩大,传统搜索方法的效率逐渐降低。向量搜索与适当的索引技术相结合,能够在海量数据集中快速执行相似性搜索,显著提高了搜索效率。这对于金融交易中的实时欺诈检测、大规模科学数据分析等对时效性要求较高的应用场景而言,具有重要的实际意义。

三、向量搜索的系统组成

向量搜索系统由多个关键组件构成,共同协作实现高效的信息检索。

首先是数据矢量化过程,即将原始数据转换为数值向量,这是向量搜索的基础步骤,为后续的操作提供了统一的数据格式。

向量数据库负责存储和索引这些向量,确保数据的高效存储和快速检索,如同一个精心组织的数字仓库,使得向量数据能够被有序管理和快速访问。

查询处理环节则将用户的查询转化为向量形式,以便与数据库中的向量进行匹配和比较,实现查询与数据在同一语义空间中的交互。

最后,相似性搜索模块通过特定的算法和策略,在众多向量中找出与查询向量最为相似的那些,从而为用户提供准确的搜索结果。

四、向量搜索中的语言模型

1. 语言模型的选择策略

语言模型在向量搜索中起着至关重要的作用,尤其是在基于文本的应用中。不同的语言模型具有不同的特点和适用场景,因此选择合适的模型对于向量搜索系统的性能至关重要。例如,BERT 模型在理解语言上下文和细微差别方面表现出色,适用于法律、医学等对语义理解要求较高的领域。而 Word2Vec 模型则具有轻量级和快速的特点,更适合于对速度要求较高的应用,如实时聊天系统或搜索自动完成功能。在选择语言模型时,需要综合考虑应用的特定需求,包括准确性、速度以及计算资源等因素,以确保选择的模型能够最佳地满足实际应用的要求。

2. 双编码器模型的优势

双编码器模型是向量搜索中的一种特殊架构,它为查询和文档分别使用单独的编码器。这种架构具有显著的优势,能够实现高效的索引和检索。在大规模应用中,如 Facebook 的社区问答神经搜索系统,文档可以预先进行编码和存储,而在搜索过程中只需对查询进行实时编码,从而大大提高了搜索效率,尤其适用于对索引速度和查询延迟要求严格的场景。

3. 嵌入质量验证与性能指标

为了确保向量搜索的有效性和准确性,需要对嵌入的质量进行验证,并采用合适的性能指标来评估系统的性能。

验证嵌入质量的方法之一是余弦相似性检查,即语义相似的项目在向量空间中应具有较高的余弦相似性分数。通过这种方式,可以判断生成的向量是否准确地捕获了数据中的语义关系。

另一种方法是聚类分析,即同一类别的项目在向量空间中应聚集在一起。例如,在产品搜索系统中,不同型号的智能手机的嵌入向量应聚集在一个区域,与笔记本电脑的嵌入向量区分开来。

在评估向量搜索系统性能时,常用的指标包括精度、召回率和平均精度均值等。不同的指标适用于不同的应用场景,例如在 Web 搜索引擎中,标准化折扣累积收益(NDCG)等指标可能更能反映搜索结果的质量,因为它考虑了结果的顺序。此外,在实际应用中进行 A/B 测试对于评估向量搜索系统对用户满意度和参与度的实际影响具有重要意义,能够为系统的优化和改进提供直接的依据。

五、混合搜索:融合优势的新范式

混合搜索将向量搜索与传统的基于关键字的搜索方法相结合,充分发挥了两者的优势。在某些情况下,既需要准确的语义理解,又需要精确的关键字匹配,混合搜索能够提供更为可靠和准确的搜索结果。这种融合的搜索方式为信息检索提供了更全面、更灵活的解决方案,适应了不同用户需求和应用场景的多样性。

六、Vespa:统一搜索与大数据服务平台

Vespa 是一个具有创新性的开源平台,它将向量搜索功能与传统搜索和大数据处理有机地融合在一起,为复杂的搜索和数据服务需求提供了解决方案。

图片

1. 大数据实时索引与服务

Vespa 具备强大的实时索引和查询能力,能够对海量数据集进行快速更新和实时查询。例如,在新闻聚合平台中,使用 Vespa 可以在新文章发布的瞬间进行索引,并立即提供给用户进行搜索,确保用户始终能够获取到最新的信息,极大地提高了信息的时效性和可用性。

2. 高级排名与张量计算

其排名框架支持复杂的多阶段排名模型,这在电子商务等场景中具有重要价值。在线市场可以利用 Vespa 实施综合考虑多种因素的排名模型,如相关性、价格、卖家评分和运输时间等,从而为用户提供更加精准和符合实际需求的搜索结果。同时,其张量计算功能能够高效处理复杂特征,基于用户行为和偏好实现实时个性化推荐,进一步提升了用户体验和服务质量。

3. 可扩展性与高可用性

Vespa 设计旨在实现水平扩展,能够轻松应对不断增长的数据量和查询负载。对于社交媒体平台等用户规模庞大且增长迅速的应用场景,Vespa 允许通过添加更多节点来扩展集群,从而保证系统性能的稳定性和一致性。此外,该平台还提供了数据复制和故障转移机制,为金融服务、医疗保健等关键应用领域提供了高可用性保障,确保在面对各种突发情况时,系统能够持续稳定运行,数据不丢失,服务不中断。

4. 机器学习模型集成

Vespa 的强大还在于它能够无缝集成机器学习模型。在图像托管服务中,Vespa 可以集成计算机视觉模型,自动对上传的图像进行标记和分类。这些标签不仅可用于传统的关键词搜索,还能应用于语义向量搜索,为用户提供了丰富多样的搜索方式和更加智能的搜索体验,进一步拓展了搜索的深度和广度。

七、向量搜索的未来展望

向量搜索作为信息检索技术领域的重大突破,凭借其在机器学习和高维数据表示方面的强大能力,为用户带来了更加直观、准确和上下文感知的搜索体验。随着技术的不断演进和应用场景的不断拓展,我们有理由相信,向量搜索将在电子商务推荐、科学研究、智能客服等众多领域发挥越来越关键的作用,成为推动各行业数字化发展的重要力量。它将持续创新和优化,为我们的生活和工作带来更多的便利和价值,开启信息检索的新时代。

图片

- end -

ES8 向量搜索(knn-search)java-api 实践 es8 向量搜索, java-api 实践 阅读详情

相关推荐

向量检索算法综述

向量检索是大数据应用很关键的一个环节,在多种推荐,搜索中都有广泛的应用。本文分类介绍业界向量检索算法的原理,让读者对向量检索有一个初步的认识。

半城月的专栏 6680

浅谈:向量数据库、向量搜索库和向量搜索插件

也不是说所有的向量数据库都一样,每个都有它独特的地方,适合不同的场景。对于那些只需要处理几百万向量的小规模生产环境,向量搜索库和插件还是挺友好的,如果你的数据量不大,只需要基本的向量搜索功能,这些技术就够用了。现在市面上有好多向量搜索技术,不光有Python的NumPy这种机器学习库,还有FAISS这样的向量搜索库,还有基于传统数据库构建的向量搜索插件,以及Milvus这样的专业向量数据库。但是,如果你的业务需要处理上亿的向量,还得要求实时响应,那专业的向量数据库,比如Milvus,就是我们的首选了。

qianggezhishen的专栏 2191

Office/WPS接入DeepSeek等多个AI工具,开启办公新模式!

DeepSeek 是一款基于深度学习技术构建的智能搜索与数据处理平台。它不仅能够处理海量数据,还通过自然语言处理(NLP)和语义理解技术,实现对复杂信息的精准检索与智能匹配。DeepSeek 的出现,为信息密集型行业带来了全新的搜索体验和高效的数据分析能力。蓝耘科技作为国内领先的人工智能和大数据技术供应商,致力于为各行业提供专业的 AI 解决方案。通过持续的技术创新和产品迭代,蓝耘科技已在智能制造、金融风控、医疗诊断等多个领域获得显著成效,助力企业数字化转型。

s13166803785的博客 106

OpenSearch图搜图、文搜图向量检索最佳实践

本文介绍如何通过OpenSearch【向量检索版】帮助企业在没有向量数据的情况下快速搭建图像搜索服务,解决图片向量化、向量搜索等检索难题,实现以图搜图、以文搜图等多种图像检索能力。并通过数据压缩功能,降低存储空间,降低业务成本,为企业提供效果、性能双保障。

阿里云云栖号 2953

打造高效精准的RAG系统:构建智能知识切分降噪体系,强化Query改写与意图抽取能力、精细化提升数据召回策略和后置处理技术

打造高效精准的RAG系统:构建智能知识切分降噪体系,强化Query改写与意图抽取能力、精细化提升数据召回策略和后置处理技术

丨汀、的博客 1018

3、自然语言处理:从基础到应用

本文全面介绍了自然语言处理(NLP)的基础知识、核心技术及其应用。从NLP的基本概念出发,探讨了自然语言与编程语言的区别、自然语言理解(NLU)和生成(NLG)的工作原理,并结合实际案例,如构建聊天机器人,详细说明了NLP的操作步骤。同时,文章还展望了NLP的未来发展趋势,包括多模态融合、低资源语言处理、常识推理、个性化服务以及伦理安全等方面,帮助读者全面理解NLP的技术潜力和社会影响。

palm99的专栏 64

人工智能和机器学习如何改变信息检索

人工智能和机器学习如何改变信息检索

2401_89014665的博客 816

快速入门:使用 SQL Server Management Studio (SSMS) 连接和查询 SQL Server 实例

开始使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例并运行一些 Transact-SQL (T-SQL) 命令。本文介绍如何连接和查询实例SQL Server。有关 Azure SQL,请参阅连接。若要使用,请参阅连接和查询。若要详细了解如何SQL Server Management Studio,请参阅其他。......

m0_72938729的博客 5729

2025三掌柜赠书活动第三十九期 AI搜索:基础与前沿

在人工智能技术飞速迭代的当下,一个显著的变革正深刻重塑着技术应用的边界与产业发展的格局,Agent 技术已成功跨越实验室理论研究的局限,逐步渗透到金融、医疗、旅游、制造等众多行业领域,成为驱动各行业数字化转型、提升运营效率与创新能力的核心技术力量。在这一技术浪潮中,深入理解 Agent 智能时代的第一性原理,无疑为我们探寻 Agent 技术的发展脉络、把握其演进方向提供了至关重要的认知视角。

全沾软贱开发攻城狮 1万+

virtualbox虚拟机里面最顶部没有控制、设置和帮助等选项

无意中操作,导致virtualbox虚拟机里面最顶部没有控制,设置和帮助选项  virtualbox虚拟机窗口显示如下如: 如何设置,窗口显示如下图所示呢: virtualbox虚拟机窗口模式显示设置,切换可以通过如下图所示操作进行切换: PS:一定要是右边的Ctrl+C

WEL测试 8780

从“烧电路”到“软杀伤”:拆解高功率微波(HPM)让无人机失灵的三种物理效应

本文深度解析高功率微波(HPM)如何通过热效应、电磁效应和非线性效应三种物理机制使无人机失灵。从电子元件的热损伤到系统的电磁干扰,再到电路中的非线性破坏,HPM技术为反无人机系统提供了高效的非动能打击手段。文章还探讨了现代无人机的多层级防护策略与应对方案。

weixin_42531886的博客 254

为生成式人工智能革新你的搜索应用

为生成式人工智能革新你的搜索应用

publishtool的博客 799

OpenClaw 在教育领域的创新应用:智能助手如何重塑学习体验

在教育数字化转型浪潮下,OpenClaw 作为运行于用户自有设备的个人AI助手框架,凭借多Agent架构、强大工具集成与灵活记忆系统,为教育领域提供智能化解决方案。该系统涵盖智能答疑、作业批改、学习进度跟踪、教学管理辅助及个性化学习方案等核心应用场景,能够为学生提供全天候、多学科的个性化学习支持,为教师分担重复性答疑与批改工作,为家长搭建透明高效的家校沟通桥梁。在实际应用中,智能答疑、作业批改、学习进度跟踪等功能可显著提升教育教学效率,推动教育公平与质量提升。

痴迷于AI技术,AI 生态的小猿猴 1188

蓝鸟四轴飞控系统C程序V3.0(基础版本)深度解读

2. 解析遥控通道数据(油门 / 横滚 / 俯仰 / 偏航),转换为标准化值(-1000~+1000);3. 封装PID初始化(PID_Init,配置KP/KI/KD、输出限幅、积分限幅);,包含姿态角(Attitude_Data.Roll/Pitch/Yaw)、角速度(Gyro_Data.X/Y/Z)、遥控值(RC_Data[0~5])、电池电压(Bat_Volt)、电机PWM值(Motor_PWM[0~3])、系统状态(Sys_State),校验和通过Check_Sum()函数计算;

搏博的专栏 344

(2-4-01)目标检测与分割:地面提取(1)

请看下面的例子,生成了虚拟 LiDAR 点云数据,然后使用 DBSCAN 聚类方法进行 LiDAR 地面提取,并根据聚类结果可视化地面和非地面点云。首先生成虚拟 LiDAR 点云数据,然后基于设定的高程阈值进行地面提取,并通过 Open3D 可视化地面和非地面点云。地面提取是LiDAR(激光雷达)数据处理中的一个重要步骤,其目标是从点云数据中分离出地面点,即地面表面上的点。LiDAR点云数据通常包含地面点和非地面点(例如建筑物、树木等),地面提取的目标是从这些点中准确识别和提取地面点。

码农三叔 703

AI人工智能实践技术全面指南:从基础知识到前沿应用

人工智能(Artificial Intelligence),英文缩写为AI。[24] 它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是新一轮科技革命和产业变革的重要驱动力量。人工智能是智能学科重要的组成部分,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

zmjia111的博客 370

YOLOv11改进策略【Head】| AFPN渐进式自适应特征金字塔,增加针对小目标的检测头(附模块详解和完整配置步骤)

一、本文介绍 本文利用AFPN对YOLOv11的网络模型进行优化提升。AFPN采用渐近式融合及自适应空间融合操作。通过渐近式架构,逐步整合不同层级特征,有效避免非相邻层级间因语义差距过大导致的信息丢失或降级问题,确保在多尺度特征融合过程中既能保留高层语义信息,又能融入低层细节特征。本文将AFPN应用于YOLOv11中,并配置了针对小目标的检测头,能显著增强模型对不同尺度目标的检测能力,使其在复杂场景下更聚焦于目标物体特征,减少背景等无关信息的影响。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、

Limiiiing的博客 2718

检索增强生成(RAG)技术全解析:从核心组件、架构模式到 Python 实现与生产实践

摘要 检索增强生成(RAG)技术通过动态整合外部知识源,有效解决了大语言模型存在的幻觉问题、知识过时和领域专业性不足等挑战。该技术包含检索-增强-生成三个核心环节:首先通过相似度匹配从知识库获取相关文档,然后利用检索内容增强上下文,最后生成更准确、实时的响应。RAG系统采用文档分块、向量嵌入和高效索引等技术,支持结构化与非结构化数据处理,可应用于客户支持、研究助手等多个场景。文章详细解析了RAG架构、实现流程及评估方法,并提供了Python实现示例,展示了这种AI工程范式如何显著提升模型输出的准确性和时效性

XXQuagmireXX的博客 1746

LPDDR6 技术标准详解(JESD209-6)

是继 LPDDR5/5X 之后的新一代低功耗 DRAM 标准,专为满足移动终端、AI、边缘计算等高带宽、低功耗场景而设计。该标准通过全新架构、动态功耗控制机制和增强型数据完整性机制,实现性能、能效与可靠性的全面升级。LPDDR6 并非仅是速度升级,更是内存架构设计思路的演进,围绕“低功耗 + 高带宽 + 强安全”的三维目标,构建下一代 SoC 平台关键基础。✅ 高带宽:支持 32B/64B 动态突发✅ 低功耗:动态电压、通道切换✅ 高可靠性:ECC + 自测试 + 安全区。

weixin_43199439的博客 2587

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Elasticsearch:什么是检索增强生成 - RAG?

RAG 一直在自然语言处理 (NLP) 领域掀起波澜。RAG 的核心是一个混合框架,它集成了检索模型和生成模型,生成的文本不仅上下文准确,而且信息丰富。RAG 在 NLP 中的重要性怎么强调都不为过。传统的语言模型,尤其是早期的语言模型,可以根据训练的数据生成文本,但通常缺乏在生成过程中获取额外的特定信息的能力。RAG 有效地填补了这一空白,在检索模型的广泛功能和生成模型(例如 LLMs)的文本生成过程之间架起了一座桥梁。

Elastic 中国社区官方博客 7874

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

生成式人工智能实战(三)

将专有数据与 RAG 模型集成的好处是增强了 AI 系统的特定性、相关性、战略一致性、个性化、数据安全性和创新潜力。与仅仅扩大 LLM 的上下文窗口相比,使用专有数据提供了多个优势,因为前者提供了更准确、相关和个性化的答案。在生产环境中,使用向量数据库和向量索引来管理、安全和扩展嵌入对于性能和成本至关重要。获取专有数据、将其分块、创建嵌入并将详细信息保存到向量数据库中的过程取决于现有数据的形状。这可能需要大量的规划和数据工程工作。

龙哥盟 1125

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

检索增强生成(RAG)工作流详解:原理与实现步骤

RAG(Retrieval-Augmented Generation,检索增强生成)是一种融合信息检索与文本生成的技术架构。其名称直接体现了核心工作原理:通过检索(Retrieval)机制获取相关知识,再基于这些信息进行增强(Augmented)的内容生成(Generation)。这种协同设计有效提升了大语言模型输出的准确性和可靠性。

m0_59162559的博客 1350

MCP与检索增强生成(RAG):AI应用的强大组合

模型上下文协议(MCP)和检索增强生成(RAG)是两项互补的人工智能技术,分别适用于不同场景。MCP作为标准化通信协议,适合处理结构化、静态的上下文信息,如公司规则和用户偏好;而RAG则擅长处理大规模动态数据,如知识库和实时信息。二者结合可实现更全面的人工智能解决方案:MCP提供实时数据接口,RAG确保知识准确性。技术实现上可采用LangChain协调组件,结合向量数据库和API集成。这种协同方案既能减少AI幻觉,又能提高响应效率,但也面临延迟和集成复杂度

AI人工智能的学习之路 1535

论文阅读:A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications

提示工程已成为扩展大语言模型(LLMs)和视觉语言模型(VLMs)能力的不可或缺的技术。该方法利用称为提示的任务特定指令来提升模型效能,而无需修改核心模型参数。提示无需更新模型参数,仅通过给定提示引导模型产生所需行为,从而实现预训练模型与下游任务的无缝集成。提示可以是提供上下文以引导模型的自然语言指令,也可以是激活相关知识的学习向量表示。这一新兴领域已在从问答到常识推理的各种应用中取得成功。然而,目前缺乏对多样化提示工程方法和技术的系统性组织与理解。

m0_53605808的博客 1072
上一篇: 云时代基础设施模型:可变与不可变之析
下一篇: 优维HAO案例:500强旗下全牌照综合性券商CMDB平台项目
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值