Milvus向量数据库06-RAG检索增强
Milvus向量数据库06-RAG检索增强
文章目录
- Milvus向量数据库06-RAG检索增强
- 1-学习目标
- 2-参考网址
- 3-执行过程记录
- 1-到底什么是RAG
- RAG 的基本流程:
- 为什么 RAG 优于传统的基于检索的方法:
- 示例流程:
- 2-RAG和Elasticsearch对比
- 3-RAG和向量数据库之间是什么关系
- 4-RAG和大模型什么关系
- 5-如何将输入Embedding向量化
- 6-RAG的具体实现方案
网上关于RAG的讲解太多,导致内容不聚焦,大家说的越来越不具象了,在此进行整理,各位按需取用
鸣谢:感谢每一位无私奉献的传道者,在此不一一具名!
1-学习目标
- 1)到底什么是RAG
- 2)RAG和Elasticsearch对比
- 3)RAG和向量数据库之间是什么关系
- 4)RAG和大模型什么关系
- 5)如何将输入Embedding向量化
- 6)RAG的具体实现方案
2-参考网址
- 个人尝试代码仓库:XXXXXX
- 彻底搞懂大模型RAG(检索、增强、生成):https://blog.csdn.net/a2875254060/article/details/142468037
- Milvus向量数据库03-搜索理论:https://blog.csdn.net/2301_77717148/article/details/144314159
3-执行过程记录
1-到底什么是RAG
检索增强生成(Retrieval-augmented Generation),简称RAG
查询向量数据库(Vector Database)是 Retrieval-Augmented Generation (RAG) 流程中的一部分,但并不等同于整个 RAG 流程。RAG
是一种结合了检索和生成的技术,旨在提高语言模型的性能,特别是在需要处理大量上下文或实时数据更新的场景中。
RAG 的基本流程:
-
检索(Retrieval):
- 使用向量数据库或其他检索机制,根据输入查询检索相关文档或信息片段。
- 向量数据库通常用于存储和检索高维向量,如文本的嵌入表示,以便快速找到最相关的文档。
-
生成(Generation):
- 将检索到的相关文档与原始查询一起输入到语言模型中。
- 语言模型根据这些信息生成回复或答案。
为什么 RAG 优于传统的基于检索的方法:
-
上下文理解:
- 传统的检索方法可能只能提供相关文档的列表,而 RAG 能够结合这些文档的内容生成更连贯和准确的回答。
-
减少幻觉:
- 语言模型有时会产生不准确或不存在的信息(称为“幻觉”),而 RAG 通过引入外部知识来减少这种现象。
-
实时更新:
- 向量数据库可以定期更新,确保检索到的信息是最新和最准确的。
示例流程:
-
用户查询:
- 用户向系统提出一个查询,例如:“Zilliz Cloud 的主要功能是什么?”
-
检索阶段:
- 系统将查询转换为向量,并在向量数据库中查找最相关的文档。
- 假设检索到两个文档:
- 文档1:描述 Zilliz Cloud 是一个全面管理的向量数据库和服务,帮助用户释放非结构化数据的潜力,用于 AI 应用。
- 文档2:描述它能够存储、索引和管理由深度神经网络和其他机器学习模型生成的大量嵌入向量。
-
生成阶段:
- 将检索到的文档与原始查询一起输入到语言模型中。
- 语言模型生成回复,整合从多个文档中获取的信息,提供一个全面的答案。
通过这种方式,RAG 充分利用了向量数据库的强大检索能力以及语言模型的生成能力,为用户提供更准确和有用的信息。
2-RAG和Elasticsearch对比
- Milvus向量数据库03-搜索理论:https://blog.csdn.net/2301_77717148/article/details/144314159
RAG相对于elasticsearch,理念上更先进,替换【传递的倒排索引的查找方式】为【向量距离关系查找方式】,而【向量】天生就和【LLM大模型】就耦合在一起,所以【RAG】在【大模型】场景中更适用
RAG(Retrieval-Augmented Generation,检索增强生成)和Elasticsearch是两种不同的技术,它们在某些应用场景中可以相互配合,但各自有不同的特点和用途。以下是它们之间的一些对比:
-
技术类型和用途:
- RAG:RAG是一种结合了检索(Retrieval)和生成(Generation)能力的自然语言处理技术。它通过从外部知识库中检索相关信息片段,然后将这些片段与用户输入一起送入生成模型,以生成更加准确和上下文相关的回答。
- Elasticsearch:Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,主要用于存储、搜索和分析大量数据。
-
数据处理和检索:
- RAG:RAG模型可以有效地利用外部知识库,提供更深入、准确且有价值的答案,提高了生成文本的可靠性。
- Elasticsearch:Elasticsearch以其快速的搜索能力著称,能够处理PB级数据,服务大公司;也可以运行在单机上,服务小公司。
-
可扩展性和性能:
- RAG:RAG模型具有高扩展性,检索和生成模块可以独立扩展,适应不同规模数据。
- Elasticsearch:Elasticsearch可以在笔记本电脑上运行,也可以在承载了PB级数据的成百上千台服务器上运行,具有很好的水平扩展性。
-
实时性和动态性:
- RAG:RAG能通过外部知识库实时更新内容,避免依赖模型静态知识。
- Elasticsearch:Elasticsearch提供近实时的搜索和分析能力,能够在海量数据下实现秒级响应。
-
成本效益:
- RAG:RAG是一个成本效益较高的选项,因为它需要的计算和存储资源较少,无需拥有自己的大型语言模型(LLM),也无需花费时间和资金对模型进行微调。
- Elasticsearch:Elasticsearch作为一个成熟的搜索引擎,其成本效益取决于部署规模和使用情况,但通常需要一定的硬件和维护成本。
-
安全性和隐私管理:
- RAG:RAG可以通过限制知识库的权限来实现安全控制,确保敏感信息不被泄露。
- Elasticsearch:Elasticsearch提供了跨集群复制功能,可以作为热备份随时投入使用,确保数据的安全性和可用性。
-
应用场景:
- RAG:RAG适用于需要结合检索和生成的场景,如问答系统、内容推荐等。
- Elasticsearch:Elasticsearch适用于需要全文搜索、数据分析和日志分析的场景,如站内搜索、BI系统、商品价格监控等。
总的来说,RAG和Elasticsearch在技术特点和应用场景上有所不同,它们可以单独使用,也可以结合使用以发挥各自的优势。例如,在构建基于RAG的搜索功能时,可以利用Elasticsearch来存储和搜索专有数据,以及搜索可从中提取背景信息的其他外部知识库。
3-RAG和向量数据库之间是什么关系
RAG底层核心就是使用Vector向量的距离计算,所以RAG底层的存储系统不是【传统的数据库】而是【向量数据库】
RAG(Retrieval-Augmented Generation,检索增强生成)与向量数据库之间的关系主要体现在以下几个方面:
-
数据检索与增强:RAG技术通过从外部数据源检索相关信息,并将其作为输入提供给大型语言模型(LLMs),以增强模型在特定任务中的表现。向量数据库因其高效的数据存储和检索能力,成为RAG技术实施的重要支持。
-
语义相似性搜索:向量数据库的核心优势在于能够通过语义相似性算法实现海量非结构化数据的快速检索,这使得它在复杂的知识库构建、客户服务高效搜索等方面展现出显著优势。
-
技术互补性:RAG技术与向量数据库的结合,可以看作是一种技术互补。RAG通过检索系统提供具体、相关的事实和数据,而生成模型则能够灵活地构建回答,并融入更广泛的语境和信息。
-
解决大模型限制:RAG通过检索外部信息作为输入,辅助大型模型回答问题,这种方法能显著减少生成信息不准确的问题,增加回答的可追溯性。
-
私有数据管理:RAG提供了一个安全可落地的实践基础,同时也能更好地管理企业现有和新增的知识,解决知识依赖问题。向量数据库在这方面提供了访问权限控制和数据管理的支持。
-
技术实现:在业界实践中,RAG检索通常与向量数据库密切结合,催生了基于ChatGPT + Vector Database +
Prompt的RAG解决方案,简称为CVP技术栈。这一解决方案依赖于向量数据库高效检索相关信息以增强大型语言模型(LLMs)。 -
信息载体:向量数据库作为存储向量化数据的载体,与RAG技术没有直接关系,但可以作为RAG技术的一种具体实现方式。
综上所述,RAG与向量数据库之间的关系是相互依存和互补的。RAG利用向量数据库的高效检索能力来增强大型语言模型的性能,而向量数据库则提供了存储和检索向量化数据的能力,两者共同作用于提升知识管理和内容生成的效率和准确性。
4-RAG和大模型什么关系
RAG(Retrieval-Augmented
Generation,检索增强生成)是一种结合了信息检索技术与语言生成模型的人工智能技术。它通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型(LLMs),以增强模型处理知识密集型任务的能力,如问答、文本摘要、内容生成等。RAG模型由Facebook
AI Research(FAIR)团队于2020年首次提出,并迅速成为大模型应用中的热门方案。
RAG与大模型的关系主要体现在以下几个方面:
-
互补性:RAG作为大语言模型(LLM)的应用开发架构,通过拓展访问特定领域数据库或内部知识库,补足通用模型在垂直领域的知识短板。
-
性能提升:RAG通过整合外部数据库的知识,提高了生成内容的准确性和可信度,减少了大模型的幻觉问题和过时知识的问题。
-
数据安全性:RAG对接的私有数据库不参与大模型数据集训练,能在改善模型性能的同时,更好地保证数据隐私和安全。
-
减少模型幻觉:RAG能有效减少模型幻觉的发生,进一步提升大模型检索和生成性能。
-
无需重新训练:RAG使得开发人员无需为每一个特定任务重新训练整个庞大的模型,他们可以简单地给模型加上一个知识库,通过这种方式增加模型的信息输入,从而提高回答的精确性。
-
应用拓展:RAG作为大模型在垂直领域的应用拓展,允许持续知识更新和集成领域特定信息,推动其成为各类大模型落地项目不可缺少的技术组件。
综上所述,RAG通过检索外部信息来增强大模型的能力,解决大模型在知识更新、准确性和数据安全性方面的挑战,是大模型应用中的一个重要方向。
5-如何将输入Embedding向量化
Embedding示例如下,输出embedding维度就是embedding列表的个数;如果是768位,列表就是768个向量
- Embedding后的数据示例如下:
{"data": [{"embedding": [-0.013840336352586746,0.050973281264305115],"index": 0,"object": "embedding"}],"model": "embedding-2","object": "list","usage": {"completion_tokens": 0,"prompt_tokens": 9,"total_tokens": 9}
}
6-RAG的具体实现方案
当前使用【Milvus向量数据库】进行实现,在下一篇文档中进行详细补充
- Milvus向量数据库07-向量数据库实战:https://blog.csdn.net/2301_77717148/article/details/144383257
相关文章:
Milvus向量数据库06-RAG检索增强
Milvus向量数据库06-RAG检索增强 文章目录 Milvus向量数据库06-RAG检索增强1-学习目标2-参考网址3-执行过程记录1-到底什么是RAGRAG 的基本流程:为什么 RAG 优于传统的基于检索的方法:示例流程: 2-RAG和Elasticsearch对比3-RAG和向量数据库之…...
Unity3D下采集camera场景并推送RTMP服务实现毫秒级延迟直播
技术背景 好多开发者,希望我们能够分享下如何实现Unity下的camera场景采集并推送rtmp服务,然后低延迟播放出来。简单来说,在Unity 中实现采集 Camera 场景并推送RTMP的话,先是获取 Camera 场景数据,通过创建 RenderTe…...
标记数据集生成模型助力无数据情况下的大模型指令微调
在构建大模型应用时,通常有两种方式来改进效果,一种是构建外部知识库,利用RAG来完成。但RAG并不是万能的,对于特定领域的LLM应用,以及无需示例,就能完成特定任务等场合就需要进行微调。然而,微调…...
第六届地博会世界酒中国菜助力广州龙美地标美食公司推动地标发展
第六届知交会暨地博会:世界酒中国菜助力广州龙美地标美食公司推动地标产品创新发展 2024年12月9日至11日,第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会在中新广州知识城盛大启幕。本届盛会吸引了全球众多知识产权领域的专业人士和…...
vue响应式原理
对于响应式原理,我们先了解vue是一个MVVM结构的框架;也就是数据层、视图层、数据-视图层;响应式的原理就是实现当数据更新时,视图层也要相应的更新,基于响应式原理我们可以使数据驱动视图的实现变得简单而高效 一、响…...
SwiftUI 列表(或 Form)子项中的 Picker 引起导航无法跳转的原因及解决
概述 在 SwiftUI 的界面布局中,列表(List)和 Form 是我们秃头码农们司空见惯的选择。不过大家是否知道:如果将 Picker 之类的视图嵌入到列表或 Form 的子项中会导致导航操作无法被触发。 从上图可以看到:当在 List 的…...
使用Allure作为测试报告生成器(Java+Selenium)
背景 JAVA项目中原先用Jenkinsseleniumselenium grid来日常测试UI并记录。 问题 当某一个testSuite失败时,当需要确认UI regression issue还是selenium test case自身的问题,需要去jenkins中查log,一般得到的是“Can not find element xxx…...
【论文阅读】处理器芯片敏捷设计方法:问题与挑战
作者:包云岗老师 包云岗老师是计算机体系结构方向的大牛,推动了体系结构方面的开源事业! 欢迎对本栏目感兴趣的人学习"一生一芯"~ 学习体会: 已有的软硬件生态系统和开发成本制约了对新结构的探索。但目前仍在几种路线上做尝试~ 1…...
系统内核自动处理 TCP 连接(自动发送 RST 数据包来重置连接)
使用原始套接字发送了一个 SYN 数据包后,对方发送了 SYN,ACK 数据包,但系统仍然会自动发送 RST 数据包。这通常是因为操作系统内核在处理 TCP 连接时的行为。 原因分析 内核处理 TCP 连接: 即使你使用了原始套接字来发送和接收数据包&#x…...
VLDB 2024 | 时空数据(Spatial-temporal)论文总结
VLDB 2024于2024年8月26号-8月30号在中国广州举行。 本文总结了VLDB 2024有关时空数据(time series data)的相关论文,主要包含如有疏漏,欢迎大家补充。 🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘…...
以ATTCK为例构建网络安全知识图
ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一个攻击行为知识库和模型,主要应用于评估攻防能力覆盖、APT情报分析、威胁狩猎及攻击模拟等领域。本文简单介绍ATT&CK相关的背景概念,并探讨通过ATT&a…...
Qt初识_对象树
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Qt初识_对象树 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 什么是对象树 为什么要引…...
规范秩相关信息搜集Day2
系列博客目录 文章目录 系列博客目录1.A Survey on Tensor Techniques and Applications in Machine Learning2.有没有研究低秩矩阵有利于分类的计算机方面的论文呢3.Image classification based on low-rank matrix recovery and Naive Bayes collaborative representatio 基于…...
【unity小技巧】分享vscode如何进行unity开发,且如何开启unity断点调试模式,并进行unity断点调试(2024年最新的方法,实测有效)
文章目录 前言一、前置条件1、已安装Visual Studio Code,并且unity首选项>外部工具>外部脚本编辑器选择为Visual Studio Code [版本号],2、在Visual Studio Code扩展中搜索Unity,并安装3、同时注意这个插件下面的描述,需要根…...
交换瓶子(图论 贪心)
1224. 交换瓶子 - AcWing题库 把每一个瓶子看成一个点,从每个瓶子向他应该在的那个位置的瓶子连一条边 通过这个方式,我们就可以连出n条边 观察可以发现这些图有特点: n个点 连成n条边 因为每个点会指向它应该在的位置的那个点ÿ…...
汽车升级到底应不应该设置“可取消“功能
最近,汽车OTA(Over-the-Air)升级频频成为车主讨论的热点。有些车主反映,一些升级增加了实用功能,而另一些却让体验变得复杂甚至带来不便。于是,大家不禁发问:汽车升级功能究竟应不应该允许“可取…...
Mac电脑钓鱼到拿下核心权限
目录 一. 前言 二. PKG后门制作阶段 2.1 环境准备 2.2 制作过程 2.3 成功上线 三 . 浏览器密码抓取 四. 权限维持 1. 手动权限维持 2. MSF自动化维持 五. 参考文章 一. 前言 攻防对抗强度和难度日益演进,传统的渗透测试思路成本逐渐提高,钓鱼已经成为当下攻击者最常…...
Docker多架构镜像构建踩坑记
背景 公司为了做信创项目的亮点,需要将现有的一套在X86上运行的应用系统迁移到ARM服务器上运行,整个项目通过后端Java,前端VUEJS开发通过CICD做成Docker镜像在K8S里面运行。但是当前的CICD产品不支持ARM的镜像构建,于是只能手工构…...
docker 架构详解
Docker架构是基于客户端-服务器(C/S)模式的,包含多个关键组件,以确保容器化应用的高效构建、管理和运行。以下是对Docker架构的详细解析: Docker 架构概述 Docker 架构采用客户端-服务器(C/S)…...
05-标准库开发-STM32-IIC协议
七、STM32中IIC协议 概述 Inter-Integrated Circuit (IIC),也常称为I2C(I squared C),是一种同步、串行、半双工通信总线协议。它主要用于连接低速外围设备到处理器或微控制器上,如MPU6050姿态传感器、OLED显示屏、存…...
vue 封装全局过滤器
1.找到utils下创建fifilter.js 一些常用的过滤方法 export const filters {//url解码urlCode: value > {if (!value) return let v decodeURIComponent(value)let bigIndex v.lastIndexOf(/)let endIndex v.lastIndexOf(.)let url v.substring(bigIndex 1, endIndex)…...
【PlantUML系列】流程图(四)
目录 目录 一、基础用法 1.1 开始和结束 1.2 操作步骤 1.3 条件判断 1.4 并行处理 1.5 循环 1.6 分区 1.7 泳道 一、基础用法 1.1 开始和结束 开始一般使用start关键字;结束一般使用stop/end关键字。基础用法包括: start ... stopstart ...…...
MATLAB中的合并分类数组
目录 创建分类数组 串联分类数组 创建具有不同类别的分类数组 串联具有不同类别的数组 分类数组的并集 此示例演示了如何合并两个分类数组。 创建分类数组 创建分类数组 A,其中包含教室 A 中的 25 个学生的首选午餐饮料。 rng(default) A randi(3,[25,1]); …...
流编辑器sed(stream editor)
一.sed简介 sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处 理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复&…...
R语言的数据结构--矩阵
【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 矩阵是一个二维数组,矩阵中的元素都具有相…...
使用 Python 爬取某网站简历模板(bs4/lxml+协程)
使用 Python 爬取站长素材简历模板 简介 在本教程中,我们将学习如何使用 Python 来爬取站长素材网站上的简历模板。我们将使用requests和BeautifulSoup库来发送 HTTP 请求和解析 HTML 页面。本教程将分为两个部分:第一部分是使用BeautifulSoup的方法&am…...
19 go语言(golang) - 通过反射手动实现json序列化
一、json 在 Go 语言中,JSON 序列化和反序列化通常通过标准库 encoding/json 来实现。这个包提供了简单易用的接口来将 Go 数据结构转换为 JSON 格式字符串(序列化),以及从 JSON 字符串解析出 Go 数据结构(反序列化&a…...
Scala:隐式转换
隐式转换的定义 //隐式转换:编译器自动滴,偷偷滴,把数据A->B object test04 {def main(args: Array[String]): Unit {val i:Int1//把Int类型,转化成Double类型//Int -> Double//隐式转换失败val b:Double1//隐式转换失败v…...
UVM之寄存器模型生成
1.采用python脚本生成寄存器模型 首先用excel表格做好寄存器描述 然后编写脚本生成.ralf文件 (1)首先通过openpyxl读取EXCEL表格, workbook openpyxl.load_workbook(reg.xlsx) # 返回一个workbook数据类型的值 (2ÿ…...
PL/SQL批量生成数据
在PL/SQL中生成大量模拟数据,特别是当你需要生成大量记录(如1亿条)时,有几种常见的方式可以提高生成数据的效率和性能。以下是一些常用的方法和最佳实践: 1. 使用PL/SQL块批量生成数据 PL/SQL块可以通过循环生成大量…...
Xcode模拟器运行报错:The request was denied by service delegate
Xcode模拟器运行报错:The request was denied by service delegate 造成的原因: (1)新的苹果M系列芯片的Mac电脑 (2)此电脑首次安装启动Xcode的应用程序 (3)此电脑未安装Rosetta 2 解决方法: …...
2024小迪安全基础入门第十课
目录 一、传输格式&数据-类型&编码&算法 1. 传输格式: 2. 传输数据: 3. 影响与渗透测试: #传输格式 #传输数据 二、密码存储&混淆-不可逆&非对称性 1. 密码存储: 2. 密码存储的影响: 3.…...
Redisson分布式限流器
Redisson分布式限流器 一、使用1.1、方法1.2、示例 二、原理2.1、设置限流器2.2、获取令牌 三、总结 最近有需求在做分布式限流,调研的限流框架大概有: 1、spring cloud gateway集成redis限流,但属于网关层限流 2、阿里Sentinel,功能强大、带监控平台 …...
xvisor调试记录
Xvisor是一种开源hypervisor,旨在提供完整、轻量、移植且灵活的虚拟化解决方案,属于type-1类型的虚拟机,可以直接在裸机上启动。 启动xvisor步骤: 1、搭建riscv编译环境 首先从github上下载riscv-gnu-toolchain很费劲,建议直接从国内的源下载 git clone https://gitee…...
Android问题记录 - Inconsistent JVM-target compatibility detected for tasks
文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 前段时间升级Android Studio后修复了一堆问题,详情请看:Android问题记录 - 适配Android Studio Ladybug/Java 21/AGP 8.0(持续更新)。我以为问题已经全部解决了…...
【Python系列】使用 `psycopg2` 连接 PostgreSQL 数据库
???欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…...
家庭路由器跑PCND的优点
在当今数字化的时代,PCDN(Peer-to-Peer Content Delivery Network)技术逐渐走入人们的视野,有人考虑在家庭路由器上跑PCDN,下面是优点: 1.资源利用最大化 家庭网络在很多时候存在闲置的带宽和计算资源。通…...
ASP.NET Core API + MySql
环境 数据库: mysql8.0 后端: vs2022 ASP.NET Core API .net 8 前端: Hbuilderx bootstrap 5.3.0 jquery v3.7.1 bootstrap-table 1.23.5 创建项目 添加资源包 AutoMapper Microsoft.EntityFrameworkCore.Tools 8.0.0 Pomelo.EntityFramew…...
torch.optim.lr_scheduler.ReduceLROnPlateau
torch.optim.lr_scheduler.ReduceLROnPlateau 是 PyTorch 中的一种学习率调度器,主要用于在模型训练过程中根据某些指标(如验证损失)动态调整学习率。它是一种基于性能指标动态调整学习率的策略,而不是预定义的固定时间调整。 主要…...
Dubbo
官方文档: Java SDK 手册 | Apache Dubbo 一 RPC及Dubbo 1 什么是RPC dubbo是⼀款⾼性能的rpc框架。什么是rpc呢? rpc是⼀种协议:是⼀种远程过程调⽤(remote procudure call)协议 rpc协议是在应⽤层之上的协议&…...
算法1(蓝桥杯18)-删除链表的倒数第 N 个节点
问题: 给你一个链表,删除链表的倒数第 n 个节点,并且返回链表的头节点。 输入:head 1 -> 2 -> 3 -> 4 -> 5 -> null, n 2 输出:1 -> 2 -> 3 -> 5 -> null输入:head 1 ->…...
SEC_ASA 第一天作业
拓扑: 实验需求: 注意:在开始作业之前必须先读“前言”,以免踩坑!!!(☞敢点我试试) 按照拓扑图配置VLAN连接。 注意:ASA防火墙的 Gi0/1口需要起子接口&#x…...
《C语言程序设计现代方法》note-8 指针和数组的关系
文章目录 助记提要12章 指针和数组12.1 指针的算术运算12.2 指针用于数组处理结合使用*和运算符 12.3 数组名作为指针数组名可以用作指针指针也可以当做数组名数组型实参 12.4 指针和多维数组处理每个元素处理行处理列多维数组名做指针 12.5 指针和变长数组 助记提要 指针支持…...
安科瑞电能质量治理产品在分布式光伏电站的应用-安科瑞黄安南
1.概述 随着全球对可再生能源需求的增加,分布式光伏电站的建设和发展迅速。然而,分布式光伏电站的运行过程中面临着一系列问题,比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率,还会对…...
JavaScript 的原生数组方法和 Vue 的响应式系统之间的差异
发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 JavaScript 的原生数组方法和 Vue 的响应式系统之间的差异主要体现在 Vue 如何追踪数组的变化,以及 Vue 如何处理数组…...
项目组件框架介绍[bRPC]
文章目录 前言bRPC安装bRPC的简单使用protobuf简单使用Echo服务远程调用Echo服务 与etcd关联 前言 bRPC是百度开源的一款工业级RPC框架,功能强大, 常用于搜索、存储、机器学习、广告、推荐等高性能系统。 bRPC安装 使用源码安装即可, 在安装前要确认依赖 sudo apt…...
基于MobileNetV3架构动物声音分类识别与应用系统实现
1.摘要 本文主要实现了一个基于MobileNetV3架构的深度学习模型用于动物声音分类识别任务。该MobileNetV3是一种轻量级的卷积神经网络,旨在实现高效分类性能,本章在猫、狗、海豚等三个动物声音(.wav数据集)上进行了训练和测试,即在…...
ragflow连ollama时出现的Bug
ragflow和ollama连接后,已经添加了两个模型但是ragflow仍然一直warn:Please add both embedding model and LLM in Settings > Model providers firstly.这里可能是我一开始拉取的镜像容器太小,容不下当前添加的模型,导…...
[大数据]Hudi编译集成
1. 编译环境准备 相关组件版本如下: Hadoop3.3.1Hive3.1.3Flink1.13.6,scala-2.12Spark3.3.1,scala-2.12 1)安装Maven (1)上传apache-maven-3.6.1-bin.tar.gz到/opt/software目录,并解压更名…...
rk3588-ubuntu22.04系统网关实现路由器功能:
rk3588-ubuntu22.04系统网关实现路由器功能: 场景需求描述: 需求背景: 场景一:通过网线eth0/(路由器wlan0)访问外网: 如果网关 和 设备所处的环境可以通过网线联网或者路由器联网,那么不需要将网关配置成…...