大语言模型应用--AI工程化落地
文章目录
- 大语言模型概述
- 什么是大语言模型
- 什么是机器学习
- 什么是深度学习
- 理解大语言模型
- 历史沿革
- 关键
- AIGC系统
- AI工程化项目的落地
- 落地的方法
- Prompt工程(第一阶段)
- RAG检索(第二阶段)
- 训练特定功能模型(第三阶段)
- 落地的业务设计
- 步骤一:构思与探索
- 步骤二:构建与增强
- 步骤三:持续运营
- Prompt技术
- 一、主要内容片段的驱动作用
- 二、主要内容的实现策略
- 三、示例的力量(Example)
- 四、线索的引导作用(Cue)
- 五、模板的定制价值(Template)
- 进阶的prompt示例
- RAG介绍与核心步骤
- RAG的核心步骤
- 预处理阶段
- 运行阶段
- 创建知识库核心步骤
- 检索与向量搜索核心步骤
- RAG的核心关键点
近几年AI的飞速发展,着实带来了很大的冲击,但是其实现在AI并没有完全的跨界,仍然只是在小圈子内“自嗨”。不过相对于之前已经有了很大的不同了
本文就针对当前的大模型现状,来说一下工程化落地的相关事情,也是随感而发和总结一下
这里不对AI本身做过多的深入,更多聚焦于上层应用
大语言模型概述
当我们谈论大型语言模型时,我们指的是一种能够以类似人类语言的方式”说话”的软件。这些模型非常惊人–它们能够获取上下文并生成不仅连贯而且感觉像是来自真实人类的回复
这些语言模型通过分析大量的文本数据并学习语言使用的模式来工作。它们利用这些模式生成的文本几乎无法与人类所说或写的内容区分开来
如果您曾与虚拟助手进行聊天或与人工智能客户服务代理进行互动,您可能会在不知不觉中与大型语言模型互动过!这些模型有广泛的应用,从聊天机器人到语言翻译到内容创作等
什么是大语言模型
- 定义:大语言模型(Large Language Model, LLM)是一种预训练的自然语言处理(NLP)模型,通常具有数十亿甚至数千亿的参数,能够理解和生成自然语言文本。一个成熟大语言模型的训练数据是海量的
- 功能:大语言模型能够执行多种语言任务,如文本分类、情感分析、机器翻译、文本摘要、问答系统等
- 技术基础:基于变换器(Transformer)架构,利用自注意力机制(Self-Attention)处理序列数据
- 发展:从早期的RNN、LSTM到现在的BERT、GPT等模型,参数数量和性能不断提升
什么是机器学习
- 定义:机器学习是人工智能的一个分支,它使计算机系统能够从数据中学习并做出决策或预测,而无需明确编程
- 类型:包括监督学习、无监督学习、半监督学习和强化学习
- 应用:广泛应用于图像识别、语音识别、推荐系统、预测分析等领域
- 关键概念:特征选择、模型训练、过拟合与欠拟合、模型评估等。
什么是深度学习
- 定义:深度学习是机器学习的一个子集,它使用类似于人脑的神经网络结构,通过多层(深层)的非线性变换来学习数据的复杂模式。
- 核心组件:神经网络层、激活函数、损失函数、优化算法。
- 架构:包括卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)和变换器(Transformer)等。
- 应用:在图像和语音识别、自然语言处理、自动驾驶等领域取得了革命性的进展
理解大语言模型
为什么在上面有了大语言模型概述之后,我还需要单独开一个章节来说“理解”大语言模型呢,因为这能让你更好的知道大语言模型是什么东西, 理解它的上限,也能方便我们更好的做应用层
首先可以笼统的讲,机械学习就是找到一个特殊的复杂的“函数”,能够将我们的输入转为期望的输出。比如我们期望输入1,输出5;输入2,输出10,那么这个函数可能就是y=2*x。或者如果我们输入一张猫的图片,我希望它输出“猫”这个字,又或者我输入“hi”它会输出“hello”等等
这其实本质可以看做是一个数学问题,当然实际会比上面的举例复杂很多
历史沿革
1、早期人们总是希望让机器和人一样思考,当时人们主推“鸟飞派”,基于仿生学,就是人们看到鸟飞,就学习它扑棱翅膀能飞起来,那么就希望能让机器也和人一样思考。但是这个效果不是很好,没有“世界知识”(世界知识就是你大脑里默认的众所周知的不用思考的本能认知的内容),比如“水往低处流”,这一类世界知识是海量的,并且难以解决一词多意的问题。总体来说模仿人类的大脑神经过于复杂,单纯用代码和函数很难实现
2、人工智能2.0时代:数据驱动实现“基于统计的人工智能”。为什么在GPT3的横空出世之后,各种大模型如雨后春笋一样的冒出来了?其实大部分公司很早就在研究AI了,但是早期大家都是摸着石头过河,虽然有很多方案和思考,但是都不敢加大投入到梭哈的地步,都是在一个限定的范围内去研究。GPT3的出现让大家看到了某一种方式是可行的,就是使用海量的数据去计算统计,用量变引起质变,于是有了成功案例,大家才知道哦原来这种方式是可行的,于是都开始加大投入走这条路
3、大数据可以让机器智能水平得到飞跃;大量数据的使用,最大意义在于让计算机完成一些过去只有人类才能完成的事情
- 核心思想:基于大量数据中的统计信息,“训练参数”以拟合结果(本质是“统计”而非“仿生”)
- 主要优势:随着数据量的积累,系统会持续提升,变的越来越好;
- 核心要素:“大数据”,大量、多维度、全面的大数据
- 基于大量、多维度、全面的大数据下的“死记硬背”;
通过统计人工智能,将“智能问题”转变成了“数据问题”,使得计算
机得以通过对大数据的学习,解决“不确定问题”
关键
所以问题的关键变成了一个概率问题。当前大模型都是从海量的数据中统计出一个概率,来判断下一个文字或者中间某一段文字最大的概率是什么,然后输出出来。其实本质也并不是生成新的东西,而是推理
比如问他中国的首都是哪里?通过算法提取到关键字是中国的首都是
那么大模型根据海量的数据中计算出 中国的首都是 后面紧跟着的字是北京出现的概率最大,所以就会输出正确的结果
大模型是靠“死记硬背”海量的数据来实现目前的能力
所以训练大模型的数据质量也是非常关键的,同时我们也能差不多联想到大模型的上限
AIGC系统
AIGC,即人工智能生成内容(Artificial Intelligence Generated Content),是一种利用机器学习算法自动生成各种类型内容的技术,包括文本、图像、音频和视频等。AIGC系统通过分析大量数据,学习语言、视觉和音频模式,进而能够创造出新的、与人类创作内容相似甚至无法区分的内容
所有的数字化工作,很可能被“大模型”颠覆
而我们目前的应用层工作,大部分都属于AIGC系统
GPT3.5之后已经大模型已经可以使用工具
• 插件和联网:弥补大模型自身记忆不足,标志着LLM正式开始学习使用工具
• 函数功能: LLM学会调用API来完成复杂任务,这是后端工程师主要工作(给Gorilla指令,会自动调用diffusion等模型,实现画图、对话等多模态任务)
• 让模型“思考”:引导大模型具有逻辑能力,核心在于:“计划 + 记忆 + 工具”
AI工程化项目的落地
其实AI项目的落地也和普通项目一样,一开始的立项核心肯定是要清楚这个项目是为了解决什么核心问题,然后再去扩展思考,再然后才是需求分析,技术选型等。我们针对应用层就不太会设计大模型的研究,一般都是直接调用API或者部署本地开源的大模型
落地的方法
Prompt工程(第一阶段)
稍微接触过AI的可能都知道prompt,在2022-2023年,对AI的初期研究还是以这个为基础,就是怎么样提问能让AI更理解你的意思,注意你的关键点然后给出质量更高的回答
门槛相对来说较低,大部分的大模型应用都是在设计Prompt。能满足一部分需求,取决于基础模型的能力
RAG检索(第二阶段)
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了检索模型和生成模型的人工智能技术。它通过从知识库或数据库中检索相关信息,并将其与用户查询结合,来增强大型语言模型(LLM)的回答能力。RAG技术可以提高AI应用的准确性和相关性,尤其是在处理特定领域知识或需要最新信息的场景中
RAG的工作原理主要包括两个步骤:
- 检索(Retrieval):根据用户的查询,RAG使用检索模型在知识库中搜索并提取最相关的信息或文档。
- 生成(Generation):检索到的信息被用于生成模型的输入,与用户查询一起,生成模型据此产生回答或内容。
RAG技术的优势在于:- 知识更新:能够访问最新的信息,而不仅仅局限于模型训练时的知识
- 减少幻觉:通过外部知识源辅助,减少LLM生成不准确或虚假信息的倾向
- 数据安全性:允许企业使用私有数据,无需将数据上传到第三方平台
- 成本效益:相比重新训练或微调大型模型,RAG提供了一种更经济的解决方案
训练特定功能模型(第三阶段)
但是这个门槛较高,对算力、数据、算法都有一定的要求
落地的业务设计
步骤一:构思与探索
目标: 进行可行性验证,根据业务需求设计原型,并构建PromptFlow来测试关键假设
- 核心输入: 明确的业务目标
- 关键输出: 验证大型语言模型(LLM)是否能够满足任务需求,确立或否定关键假设
- 关键行动计划:
- 明确定义业务用例
- 选择适合的基础大模型,并准备必要的数据以供后续的微调(SFT)或其他用途
- 设计并构建PromptFlow,形成并测试可行性假设
步骤二:构建与增强
目标: 在更大范围的数据集上评估解决方案的稳健性,并通过技术如微调(SFT)和检索增强生成(RAG)来增强模型性能
- 核心输入: 业务目标结合初步方案(步骤一的成果)
- 关键输出: 一个成熟的业务解决方案,准备部署到生产系统
- 关键行动计划:
- 在样本数据上验证PromptFlow的有效性
- 评估并优化PromptFlow,探索更优的提示(prompt)和工具
- 若达到预期目标,扩展到更大数据集进行测试,并通过SFT、RAG等技术进一步提升效果
步骤三:持续运营
目标: 确保AIGC系统稳定运行,集成监控和警报系统,实现持续集成和持续部署(CI/CD)
- 核心输入: 一个能够解决特定问题的AIGC系统
- 关键输出: 集成了监控、警报系统的生产级程序,以及CI/CD流程。
- 关键行动计划:
- 部署AIGC系统
- 集成监控和警报功能,确保系统能力内嵌于应用之中
- 确立应用运营机制,包括持续迭代、部署和更新
通过这一流程,我们确保了从概念验证到生产部署的每一步都是精确、可控,并且以业务目标为导向
Prompt技术
一、主要内容片段的驱动作用
主要内容片段是与指令结合使用的文本基础,能够显著提升指令的有效性。
- 主要内容的定义:
- 主要内容是模型处理或转换的核心文本,通常与指令配合以实现特定目标。
- 应用示例:
- 示例1:提供一段维基百科文本【正文】,并附加指令“请总结上述内容”。
- 示例2:给出一个包含啤酒信息的表格【正文】,指令为“列出表中所有度数小于6度的啤酒”。
二、主要内容的实现策略
实现主要内容的具体方法,包括:
- 示例(Example):通过提供完成任务的示例,而非直接指令,让模型自主推断所需执行的操作。
- 线索(Cue):使用带有线索的说明,引导模型按步骤进行推理,从而得出答案。
- 模板(Templates):提供带有占位符的可重复使用提示配方,允许根据特定用例进行定制。
三、示例的力量(Example)
通过向模型展示如何根据给定指令生成输出,模型能够推断输出模式,无论是零样本、单样本还是少样本学习。
- 组成部分:
- 整体任务描述。
- 一系列所需输出的示例。
- 新示例的引导,作为后续任务的起点。
四、线索的引导作用(Cue)
通过向大型模型提供线索,引导其按照明确的方向进行逻辑推理,类似于提供步骤公式,帮助模型逐步获得答案。
五、模板的定制价值(Template)
模板的价值在于为特定应用领域创建和发布提示库,这些提示模板已经针对应用程序的特定上下文或示例进行了优化。
- 优化提示:使响应对目标用户群体更加相关和准确。
- 资源参考:OpenAI API的示例页面提供了丰富的模板资源。
- 模型角色赋予:通过指定模型身份角色(如系统、用户、助手等),增强模型对任务相关性的理解。
进阶的prompt示例
# 职位描述:数据分析助手
## 角色
我的主要目标是为用户提供专家级的数据分析建议。利用详尽的数据资源,告诉我您想要分析的股票(提供股票代码)。我将以专家的身份,为您的股票进行基础分析、技
术分析、市场情绪分析以及宏观经济分析。
## 技能
### 技能1:使用Yahoo Finance的'Ticker'搜索股票信息
### 技能2:使用'News'搜索目标公司的最新新闻
### 技能3:使用'Analytics'搜索目标公司的财务数据和分析
## 工作流程
询问用户需要分析哪些股票,并按顺序执行以下分析:
**第一部分:基本面分析:财务报告分析
*目标1:对目标公司的财务状况进行深入分析。
*步骤:
1. 确定分析对象: <记录 1.1:介绍{{company}}的基本信息>
2. 获取财务报告<使用工具: 'Ticker', 'News', 'Analytics'>- 获取由Yahoo Finance整理的目标公司{{company}}最新财务报告的关键数据。 <记录 1.2:记录分析结果获取日期和来
源链接>
3. 综合分析和结论: - 全面评估公司的财务健康、盈利能力、偿债能力和运营效率。确定公司面临的主要财务风险和潜在机会。 -<记录 1.3:记录总体结论、风险和机会。 >
整理并输出[记录 1.1] [记录 1.2] [记录 1.3]
第二部分:基本面分析:行业
*目标2:分析目标公司{{company}}在行业中的地位和竞争力。
*步骤:
1. 确定行业分类: - 搜索公司信息,确定其主要业务和行业。 -<记录 2.1:公司的行业分类>
2. 市场定位和细分分析: - 了解公司在行业中的市场份额、增长率和竞争对手,进行分析。 -<记录 2.2:公司的市场份额排名、主要竞争对手、分析结果和洞察等。 >
3. 行业分析- 分析行业的发展趋势。 - <记录 2.3:行业的发展趋势。 >
整理并输出[记录 2.1] [记录 2.2] [记录 2.3]
整合以上记录,并以投资分析报告的形式输出所有分析。使用Markdown语法进行结构化输出。
## 限制
- 使用的语言应与用户的语言相同。
- 避免回答有关工作工具和规章制度的问题。
- 使用项目符号和Markdown语法给出结构化回答,逐步思考。首先介绍情况,然后分析图表中的主要趋势。
RAG介绍与核心步骤
“RAG易用,难精”,用上很容易,用好很难!
核心驱动力:
在大型语言模型(LLM)的应用中,存在两个主要的挑战:
- 实时更新难题:LLM的信息难以实现实时更新,因为重新训练模型需要巨大的计算资源和成本。
- 机密性问题:敏感信息,如公司产品手册,由于保密性要求,不能直接整合进LLM中。
使用RAG的优势:
与标准微调(SFT)相比,检索增强生成(RAG)提供了以下优势:
- 信息丰富性:通过接入内部知识库,RAG确保了文本回答的新颖性和相关性,显著提升了特定领域任务的性能。
- 幻觉减少:RAG使用的信息是可验证的,有效减轻了LLM在生成文本时可能出现的幻觉问题。
- 成本效益:与LLM的微调相比,RAG提供了一种更为经济的解决方案。
RAG的核心步骤
RAG的实施包括以下关键步骤:
- 数据采集与清洗:收集必要的数据并进行清洗,确保数据质量
- 文档分块:将文档分割成易于处理的块,同时保留语义完整性
- Embedding:使用嵌入技术将文本转换为向量表示,以便于检索
- 创建索引:构建索引以优化检索过程,快速定位相关信息
- 检索:根据用户查询,从索引中检索最相关的信息
- 重排:根据检索到的信息和用户查询的相关性,对结果进行重新排序
预处理阶段
在构建知识库的初期,以下步骤是关键:
- 分块:获取文档并将其切分成较小的片段,或称为“chunks”。这有助于索引更具体的信息,并适应有限的上下文窗口。
- 构建向量索引:利用OpenAI模型等工具为每个文档片段计算嵌入向量,并将这些片段与其嵌入向量一起存储在向量索引中,为高效的检索打下基础。
运行阶段
当系统处于活跃状态时,以下操作定义了其运行机制:
- 基于Vector DB的相似性检索:
- 接收到查询或指令后,计算其嵌入向量。利用向量数据库执行相似性搜索,找出语义上与查询接近的文档。
- 对检索到的文档进行排名和整理,考虑上下文窗口限制,并构建将要发送到语言模型的提示。
创建知识库核心步骤
- 构建向量数据库:
- 向量数据库专门设计用于存储、管理和搜索嵌入向量,与传统数据库不同,它存储文档的数值表示形式,便于AI系统处理。
- 从文本到嵌入:
- 将文本分块,并转换为向量嵌入,为存储和检索优化数据。
检索与向量搜索核心步骤
- 检索:
- 系统快速定位索引中满足条件的文档的过程,包括关键字搜索、语义搜索、向量搜索,以及它们的混合形式
- 向量相似度:
- 在向量搜索中,根据嵌入模型计算查询向量与数据库中向量的相似度
- 搜索索引(召回):
- 构建索引以存储嵌入,实现在数据库中快速检索最相似的文档块
- 重新排序(排序):
- 根据相关性对搜索结果进行排序,确保最相关的信息被优先输入到语言模型中进行进一步处理
RAG的核心关键点
- 元数据在搜索中的关键作用
元数据是优化搜索结果的有力工具,提供确切信息以辅助搜索过程:- 日期:用于优先检索最新或特定时间段的文档。
- 标签/类别:通过标签或类别筛选或排序结果,确保内容与查询高度相关。
- 来源/作者:依据来源或作者的权威性来提升搜索结果的相关度。
元数据的整合可显著提升搜索的准确性和相关性。
- 元数据合成
在元数据缺失的情况下,可通过LLM的预处理对齐生成,以补充元数据信息。 - 关键词搜索的重要性
关键词搜索是对语义相似度搜索的重要补充,特别是在寻找专有名称或特定短语时。此方法确保了文档包含用户查询的确切信息。 - API和插件在检索中的应用
除了传统的搜索技术,API调用可以获取并集成相关数据,增强LLM的上下文窗口。例如,GPT插件作为API的新兴标准,可以通过LangChain或Semantic Kernel等工具轻松集成,提供强大的搜索和检索功能。 - 排名与集合编译
鉴于上下文窗口大小的限制,需对检索到的文档进行精细的排名和选择。通过预处理或后处理技术,如摘要生成或文本语义组合,确保信息的适量和适宜性。 - 排序的重要性
对检索结果进行排序是确保信息相关性和准确性的关键步骤。 - 格式与元数据
LLM对数据格式极为敏感,特别是当需要精确结构时。使用JSON或YAML等格式,可以为LLM提供清晰的结构化内容指示。 - 权衡因素:速度、成本、质量
在RAG实施过程中,速度、成本和准确性(质量)是必须综合考量的关键因素。合理的权衡可以确保在有限资源下实现最优的搜索和生成效果。
相关文章:
大语言模型应用--AI工程化落地
文章目录 大语言模型概述什么是大语言模型什么是机器学习什么是深度学习 理解大语言模型历史沿革关键 AIGC系统AI工程化项目的落地落地的方法Prompt工程(第一阶段)RAG检索(第二阶段)训练特定功能模型(第三阶段…...
我会什么开发技能
java我会什么? 一、并发编程 1、并发编程:jdk中的courren包只能够类实现(seamplore,CountDownLaunch,Pharse,CycliBarrier,CompletableFuture),AQS的原理,线…...
Run LoongArch64 Alpine VM on x86_64
一、Build from source(build on x86_64) Obtain the latest libvirt, virt-manager, and qemu source code, compile and install them. 1.1 Build libvirt from source sudo apt-get update sudo apt-get install augeas-tools bash-completion debhelper-compat dh-apparm…...
4层负载均衡和7层负载均衡
四层负载均衡(Layer 4 Load Balancing)指的是在网络传输层(TCP/IP模型中的第四层)进行负载均衡的技术。四层负载均衡通常使用IP地址、端口号和协议等信息来将网络流量分配到多个服务器上。它主要关心网络层的信息,不涉…...
前端Vue组件化实践:打造仿京东天猫商品属性选择器组件
在前端开发领域,随着业务需求的日益复杂和技术的不断进步,传统的整体式应用开发模式已逐渐显得捉襟见肘。面对日益庞大的系统,每次微小的功能修改或增加都可能导致整个逻辑结构的重构,形成牵一发而动全身的困境。为了解决这一问题…...
智慧城市3d数据可视化系统提升信息汇报的时效和精准度
在信息大爆炸的时代,数据的力量无可估量。而如何将这些数据以直观、高效的方式呈现出来,成为了一个亟待解决的问题。为此,我们推出了全新的3D可视化数据大屏系统,让数据“跃然屏上”,助力您洞察先机,决胜千…...
Git 详解(原理、使用)
git 快速上手请看这篇博客 Git 快速上手 1. 什么是 Git Git 是目前最主流的一个版本控制器,并且是分布式版本控制系统,可以控制电脑上所有格式的文档 版本控制器:记录每次修改以及版本迭代的管理系统 对于文本文件,可以记录每次…...
android11为开机动画添加铃声(语音)
一、碰到的问题 1、第一次开机无铃声 2、开机时铃声和动画不同步,开头的铃声会丢失 3、开机时铃声/动画不能完全播放完 二、解决 以下为添加的patch /开机铃声不同步,语音第一段无声 diff --git a/media/libmediaplayerservice/MediaPlayerService…...
使用 Akshare 下载国内的期货(主力连续)、股票和指数的历史行情数据
本文介绍如何使用 akshare 下载国内期货、股票和指数的历史行情数据。 Akshare 是一个丰富的金融数据查询的 Python 库,提供了大量的金融数据接口。本文将详细介绍如何使用 Akshare 下载期货、股票和指数数据,并提供完整的代码示例,以求大家…...
【React】Google 账号之个性化一键登录按钮功能
“使用 Google 帐号登录”功能可快速管理网站上的用户身份验证。用户登录 Google 账号、表示同意,并安全地与平台共享其个人基础资料信息。 官方文档:链接 一、获取 Google API 客户端 ID 打开 Google API 控制台 中的凭据页面 创建或选择 Google API 项…...
MySQL已经连接对应数据库,但mapper中表名仍报错
如图所示,已经连接对应数据库但还要在其中选择,表多了一个个选会很麻烦 此时找到下图界面 选中对应数据库应用,项目中所有mapper就能找到对应表啦...
CentOS 7:停止更新后如何下载软件?
引言 CentOS 7 是一个广受欢迎的 Linux 发行版,它为企业和开发者提供了一个稳定、安全、且免费的操作系统环境。然而,随着时间的推移,CentOS 7 的官方支持已经进入了维护阶段,这意味着它将不再收到常规的更新和新功能,…...
MySQL GROUP_CONCAT 函数详解与实战应用
提示:在需要将多个值组合成一个列表时,GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示:这里可以添加本文要记录的大概内容…...
MATLAB Gazebo联合仿真
准备仿真环境:在Gazebo中设置仿真场景,包括机器人模型、环境布局、传感器和执行器等。编写MATLAB脚本:在MATLAB中编写控制算法和数据处理脚本,用于接收Gazebo中的传感器数据,并生成控制命令。建立通信:通过…...
Vue3 pdf.js将二进制文件流转成pdf预览
好久没写东西,19年之前写过一篇Vue2将pdf二进制文件流转换成pdf文件,如果Vue2换成Vue3了,顺带来一篇文章,pdf.js这个东西用来解决内网pdf预览,是个不错的选择。 首先去pdfjs官网,下载需要的文件 然后将下载…...
【机器学习】逻辑回归的原理、应用与扩展
文章目录 一、逻辑回归概述二、Sigmoid函数与损失函数2.1 Sigmoid函数2.2 损失函数 三、多分类逻辑回归与优化方法3.1 多分类逻辑回归3.2 优化方法 四、特征离散化 一、逻辑回归概述 逻辑回归是一种常用于分类问题的算法。大家熟悉的线性回归一般形式为 Y a X b \mathbf{Y}…...
Ubuntu22.04系统装好后左上角下划线闪烁不开机(N卡)
折腾了半天以为是ubuntu的系统和硬件不匹配, 最后发现的确有点关系, 就是显卡驱动的问题 解决办法: 1. 进入到safty模式下, 然后配好网络环境 2. 移除所有的驱动相关的包, sudo apt-get remove --purge nvidia* 3.…...
Leetcode刷题4--- 寻找两个正序数组的中位数 Python
目录 题目及分析方法一:直接合并后排序方法二:二分查找法 题目及分析 (力扣序号4:[寻找两个正序数组的中位数](https://leetcode.cn/problems/median-of-two-sorted-arrays/description/) 给定两个大小分别为 m 和 n …...
springBoot(若依)集成camunda
1、下图为项目结构 2、最外层 pom引入依赖 <properties><!--camunda 标明版本,注意要个自己的Spring 版本匹配,匹配关系自行查询官网--><camunda.version>7.18.0</camunda.version> </properties> 3、common模块引入依赖 …...
【微信小程序知识点】自定义构建npm
在实际开发中,随着项目的功能越来越多,项目越来越复杂,文件目录也变得很繁琐,为了方便进行项目的开发,开发人员通常会对目录结构进行优化调整,例如:将小程序源码放到miniprogram目录下。 &…...
JCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断
JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-MATTGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分…...
新手教学系列——高效管理MongoDB数据:批量插入与更新的实战技巧
前言 在日常开发中,MongoDB作为一种灵活高效的NoSQL数据库,深受开发者喜爱。然而,如何高效地进行数据的批量插入和更新,却常常让人头疼。今天,我们将一起探讨如何使用MongoDB的bulk_write方法,简化我们的数据管理流程,让代码更加简洁高效。 常规做法:find、insertone…...
C# Winform 自定义事件实战
在C#的WinForms中,自定义事件是一种强大的工具,它允许你创建自己的事件,从而在特定条件下通知订阅者。自定义事件通常用于封装业务逻辑,使代码更加模块化和易于维护。下面我将通过一个实战例子来展示如何在WinForms中创建和使用自…...
Python通过继承实现多线程
本套课在线学习视频(网盘地址,保存到网盘即可免费观看): https://pan.quark.cn/s/677661ea63b3 本节将介绍如何利用Python中的thread模块和threading模块实现多线程,并通过继承threading.Thread类并重写run方…...
记一次项目经历
一、项目需求 1、设备四个工位,每个工位需要测试产品的电参数; 2、每个另外加四个位置温度; 3、显示4个通道电流曲线,16个通道温度曲线; 4、可切换工艺参数; 5、常规判定,测试数据保存到表格内&…...
Elasticsearch 8 支持别名查询
在 Elasticsearch 8 中,使用 Java 高级 REST 客户端进行别名管理的过程与之前的版本类似,但有一些API细节上的变化。以下是如何使用 Java 和 Elasticsearch 8 进行别名操作的例子: 引入依赖 确保你的项目中包含了 Elasticsearch 的高级 RES…...
【Spring Cloud】 使用Eureka实现服务注册与服务发现
文章目录 🍃前言🎍解决方案🚩关于注册中⼼🚩CAP理论🚩常见的注册中心 🎄Eureka🚩搭建 Eureka Server🎈创建Eureka-server ⼦模块🎈引入依赖🎈项目构建插件&am…...
JDK安装详细教程(以JDK17为例)
一、JDK的下载 1. 前往oracle官网下载JDK Java Archive Downloads - Java SE 17 在这里选择对应的JDK版本,我这里就直接选择JDK17的版本了。 然后下载对应的软件包,我这里采用的是Windows的安装程序。 点击上述圈起来的链接即可下载安装包,…...
安装nodejs | npm报错
nodejs安装步骤: 官网:https://nodejs.org/en/ 在官网下载nodejs: 双击下载下来的msi安装包,一直点next,我选的安装目录是默认的: 测试是否安装成功: 输入cmd打开命令提示符,输入node -v可以看到版本,说…...
聊点基础---Java和.NET开发技术异同全方位分析
1. C#语言基础 1.1 C#语法概览 欢迎来到C#的世界!对于刚从Java转过来的开发者来说,你会发现C#和Java有很多相似之处,但C#也有其独特的魅力和强大之处。让我们一起来探索C#的基本语法,并比较一下与Java的异同。 程序结构 C#程序…...
色块网站/如何做网络营销推广
德国机器人公司MetraLabs GmbH推出的RFID库存机器人TORY近日迎来其一周年使用纪念日,该机器人目前在零售公司Adler Modemarkte AG位于Erfurt的门店投入使用。TORY是世界上第一个投入实际使用的RFID库存机器人。该机器人的读取精度高达90%。此外,该机器人…...
基层建设收录网站/seo运营推广
信息安全相关证书 1、CISP-PTE(国家注册渗透测试工程师) PTE属于渗透测试方向的专项考试,是国内首个渗透测试领域权威认证,属于特定领域,深度发展,从事的工作属于安全服务方面 。政府背景给认证做背书,想在政府、国企及…...
哪些网站开发/友情链接交换平台源码
桔妹导读:随着计算机技术和工程架构的发展,微服务变得越来越热。如今,绝大多数服务都处于分布式环境中,其中,数据一致性是我们一直关注的重点。分布式锁到底是什么?经过了哪些发展演进?工程上有…...
烟台高端网站建设/淘宝直通车
C语言常量与变量常量与变量常量和符号常量变量常量与变量 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中, 其值不发生改变的量称为常量,其值可变的量称为变量。 它们可与数据类型结合起来分类。 例如&#…...
天津谁做网站/专业技能培训机构
最近在开始学习一些安全工具的使用,往bt4上装了不少Test sites / testing groundsSPI Dynamics (live) – <!-- m -->http://zero.webappsecurity.com/<!-- m -->Cenzic (live) – <!-- m -->http://crackme.cenzic.com/<!-- m -->Watchfir…...
网络运维工程师需要具备什么证书/seo查询网站是什么
Go语言常见语法错误 转载自大神博客 目录Go语言常见语法错误1、开大括号不能放在单独的一行2、未使用的变量3、未使用的Imports4、":"简式的变量声明仅可以在函数内部使用5、使用简式声明重复声明变量6、Go语言命名区分大小写7、Go语言中分号分行8、Go语言中无效的分…...