FinRobot:一个使用大型语言模型的金融应用开源AI代理平台
“FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models”
论文地址:https://arxiv.org/pdf/2405.14767
Github地址:https://github.com/AI4Finance-Foundation/FinRobot
摘要
在金融领域与AI社区间,数据和专业知识的隔阂限制了AI技术在金融任务中的有效应用。本文介绍了一种专为金融设计的LLM工具链,旨在促进AI于金融决策过程中的广泛应用。FinRobot是一个开源平台,基于LLM的AI代理,支持多种金融服务专用的AI工具。它由四个核心部分组成:
- 金融AI代理层:负责将复杂的金融问题分解成可处理的逻辑序列;
- 金融LLM算法层:根据特定任务需求调整模型策略;
- LLMOps和DataOps层:利用训练或微调方法及相应数据生成精确模型;
- 多源LLM基础模型层:集成多个LLM,实现直接访问。
通过这些层次的设计,FinRobot为专业人士及普通用户提供了强大的金融分析支持。
简介
财务分析包括基本分析(如公司估值)和技术分析(如市场趋势预测),并且这些分析高度依赖数据。随着数字化进程的推进,数据量及其复杂度不断攀升,促使金融专家更多地借助算法和AI技术处理信息。人工智能通过自动化流程,例如情感分析和市场预测,革新了传统的财务分析方法。早期的AI模型现在已经演进为更为先进的大语言模型(LLM)。利用LLM,AI代理能够执行复杂的任务,比如规划和记忆管理,从而降低了对人工操作的需求。
FinRobot作为一个开源平台,依靠多种来源的LLM来优化金融任务处理的透明性和扩展性。它提供了一个全面的金融AI代理框架,适用于广泛的金融活动,并集成了多源LLM,通过智能调度机制选择最适合的模型应对市场的多样性。目前,FinRobot已对外开放源代码,旨在激发金融AI社区内的合作与创新精神。
01相关工作
金融AI代理
AI驱动的金融系统,例如FinAgent和FinMem,利用实时市场数据来优化其交易策略。然而,这些系统往往过于侧重于回测和单个股票的收益,而忽略了流程导向的重要性。一个高效的交易代理应该致力于改进操作流程,实现策略执行和订单提交的自动化,从而减少对人工操作的依赖。转向流程导向不仅能够提升金融技术的可持续性和灵活性,还能促进更稳健的发展。
开源AI代理框架
开源AI代理框架的兴起加速了先进AI技术的普及。主要平台有AutoGPT、AutoGen、MetaGPT、HuggingGPT、ChatDev、Dify和Voyager,这些平台促进了全球开发者的合作与创新。随着对复杂金融工具需求的增长,预计不久将会出现专门针对金融任务的开源框架。
AI4Finance基金会与开源文化
AI4Finance Foundation倡导金融科技领域的开源文化,专注于标准化实践和发展开源资源。其目标是为研究人员和行业专家创建一个合作平台,促进专业知识与创新的融合。通过将AI技术应用于金融服务,该组织加速了技术的进步,确保这一进程透明、可访问,并对整个金融行业有益。
02FinRobot:一个金融领域的开源平台
FinRobot的整体架构由四个核心部分组成,每个部分都针对金融领域AI处理和应用的特定方面进行了优化:
- 金融AI代理层:通过引入金融链式思维(CoT)提示来提升复杂分析和决策能力,使得市场预测、文档分析和交易策略代理能够将复杂的金融问题分解成更小的部分,提供精确且可操作的见解。
- 金融LLMs算法层:配置了专门调整的模型,如使用FinGPT及多源LLMs(例如Llama和ChatGLM),以优化地区特性,并结合多模态模型与传统机器学习方法,确保高度准确的市场预测和文档分析结果。
- LLMOps和DataOps层:LLMOps负责动态选择和微调LLMs以增强任务性能,而DataOps管理实时数据处理流程,提高市场响应速度,保证金融洞察的及时性和准确性。
- 多源LLM基础模型层:支持多种通用和专业的LLMs即插即用功能,确保持续的模型更新和优化,使其符合金融技术和数据标准的发展。
金融AI代理
FinRobot的金融AI代理由多个领域专用的AI代理构成,通过高级数据感知、认知处理及动态操作执行来提升财务分析能力。
- 感知模块负责收集和解析多模态金融数据,运用先进架构将数据结构化以供后续分析。
- 大脑模块作为核心处理中心,利用大型语言模型(LLM)和金融推理能力生成结构化的指令。
- 行动模块则执行这些指令,进行如交易、投资组合调整、报告生成或发送警报等操作,从而积极地对金融环境产生影响。
多智能工作流
多代理工作流系统依靠不同角色间的协作来处理复杂的金融数据,从而增强分析的准确性和深度:
- Director负责项目的整体战略方向,包括设定任务优先级、分配资源和协调团队合作。
- Assistant专注于数据管理、初步分析以及团队内部的沟通,为其他分析师提供支持。LLM Analyst运用大型语言模型对金融文本进行分析,从中提取有价值的信息,执行情感分析及市场趋势预测。
- Financial Analysts则在LLM Analyst的指导下,深入进行定量数据分析,评估投资机会与风险管理策略。
通过这种角色间的紧密合作,整个团队能够实现全面的金融分析,确保对数据的深度探索与解读,进而辅助做出明智的战略决策。
基于LLM进行工具调用
- API交互:利用Text2Params方法,将自然语言查询转换为API请求,通过提取关键参数来生成函数调用或API请求,特别适用于金融数据的检索和处理。
- 代码编译:Text2Code技术使得根据用户查询和市场状况动态生成并编译代码成为可能,支持开发自定义算法。
- 高级AI算法层:这一层集成了专门为金融领域设计的先进AI算法,增强了平台在各类金融应用中的功能性和灵活性。
金融LLM
金融大语言模型(FinGPT)
FinGPT是一款专为金融领域量身打造的语言模型,旨在增强对自然语言的理解能力。它能够解析复杂的金融文档,如年度报告和即时新闻,从中抽取关键信息以辅助决策过程。通过利用金融领域的“指令-响应”数据进行监督微调训练,其优化目标是最大化生成预期回复的概率,训练过程中采用了负对数似然函数作为优化标准。
金融强化学习(FinRL)
FinRL运用集成的深度强化学习算法来优化交易策略,通过分析历史和实时市场数据,以实现财务回报的最大化和风险的最小化,特别适用于股票投资组合的配置。股票投资组合配置被构建成一个马尔可夫决策过程(MDP),其中代理在状态s_t时选择动作a_t,这一选择依据策略π_θ(s_t)进行。此动作引发状态转移到s_t+1,并产生奖励r(s_t, a_t, s_t+1)。最终目标是优化这一策略,以达到最佳的投资效果。
金融机器学习(FinML)
FinML运用多种机器学习技术,如回归分析和神经网络,来增强金融预测分析。这些算法有助于预测市场趋势、消费者行为、信用风险等重要金融指标,为决策提供支持。其中一个重要指标是对数收益率(log-return),其计算公式为:
这里,S代表股票价格,nT表示被监测公司的数量,f是预测的时间期限。对数收益率是评估投资表现和制定金融策略的关键工具。
金融多模态LLMs
财务文档包含文本、图表和表格等多种类型的数据,提供了多维度的分析视角。为此开发的金融多模态LLM能够处理并整合这些不同的数据类型,从而加深对财务文档的理解。数学表达式如下:
这里,x_t、x_g、x_h分别代表文本、图形和表格输入。函数T、G、H将这些不同类型的输入转化为统一的嵌入空间,然后由LLM L综合这些嵌入信息生成可靠的输出。这种方法增强了财务分析的准确性和可靠性。
LLMOps
LLMOps层设计得非常模块化且支持插拔功能,允许快速集成和动态替换LLM。它能够实现模型的无缝集成,并设有严格的评估体系,用于挑选最适合特定金融任务的5个模型。这些特性对于保持运营效率及适应多变的金融场景至关重要。
智能调度程序
智能调度器是保证模型多样性的关键工具,它优化了各种大型语言模型(LLM)的集成与选择,以确保能够适应不同类型的任务。
智能调度器架构
智能调度器通过优化任务分配来提高效率,其主要组件包括:
- 指挥代理:根据代理的绩效和适应性进行任务分配;
- 代理注册:管理代理的注册信息和可用状态,以促进高效的任务分配;
- 代理适配器:调整代理功能以更好地适应特定任务,从而提升性能和系统整合度;
- 任务管理器:负责管理和存储针对不同金融任务的LLM代理,并定期更新,确保其相关性和有效性。
智能调度程序初始化过程
- 数据集创建:添加行业特定的数据。
- 提示库填充:为每个代理配置定制的提示。
- 任务评分填充:通过调用适配器来评估响应,并将评分结果存储在任务评分数据库中。
智能调度程序行动过程
- 任务启动:用户发起一个任务。导演代理角色:评估任务的输入,并依据代理的表现和相关性进行排名。
- 代理选择与任务分配:将任务分配给排名最高的代理执行。
- 工作流进展与自我评估:任务完成后,该代理会进行自我评估,其结果会被记录在未来反思存储中。
- 工作流完成与评估:在工作流结束时,代理对其自身的执行结果进行评估并提供反馈,以支持持续改进的过程。
评分标准
- 数据收集:从各种LLM在多项评估任务中的表现中收集数据。
- 归一化:将每项评估任务的结果标准化至0到1的范围内。
- 权重分配:依据行业标准或专家意见,为不同的评估维度设定权重。
- 计算综合得分:通过将标准化后的得分与权重相乘后求和,得出每个任务的最终得分。
- 结果分析:分析这些得分以对LLM进行排名和评估,提供性能对比及选择建议。
这种结构提高了金融AI代理的操作效率,支持动态管理多样化的金融任务,增强了在实时金融环境中处理复杂多代理场景的能力。
DataOps
DataOps层负责管理各种金融数据,确保数据的高质量和市场代表性。高质量的数据是保证AI模型准确性的基石,对于支持金融决策至关重要。通过运用先进的数据处理技术,该层优化了数据的可访问性和质量,从而增强了金融分析的有效性。
检索增强生成
RAG技术整合了上下文检索机制与大型语言模型(LLM),以提升语言生成任务的性能。在FinRobot中,LLMOps和DataOps层构成了其核心,确保了金融AI服务中的技术创新与可靠性。
多源LLM基础模型层
多源LLM基础模型层赋予FinRobot先进的能力,以适应全球金融市场的需求。
- 插拔功能实现了通用和专业LLM的无缝集成与更新,保持了平台的灵活性。
- 模型多样性和评估机制确保从7亿到720亿参数的各类LLM根据性能指标被筛选出最优选项。
- 全球市场兼容性方面,支持多语言模型的集成,从而增强了处理各种金融数据的能力。
03金融思维链(CoT)提示
简介
链式思维提示技术利用结构化的提示引导AI模型进行逐步推理,模仿人类解决问题的方式。这种方法能够显著提高在复杂推理任务(例如数学和常识推理)中的表现。它鼓励模型详细说明中间的推理步骤,以达到最终的答案。这不仅提升了准确性,还增强了决策过程的可解释性和透明度。
金融CoT的概念
金融CoT提示整合了链式思维(CoT)技术与高级认知处理,增强了AI在金融分析和决策方面的能力。这种方法通过逻辑步骤指导AI模型,协助金融专家解决复杂问题。它将复杂的金融情况分解成易于管理的部分,逐一进行分析,并综合各部分的结果以形成结论或建议。这种方式模仿人类的推理过程,适用于诸如估值、投资策略制定、市场趋势分析和风险评估等需要深入分析的任务。
金融CoT的实现
金融分析:FinRobot运用大型语言模型(LLM)进行财务报表分析,通过与行业竞争对手和历史表现的对比,识别异常的财务比率,为企业提供深刻的商业洞察。
业务特定分析:借助检索增强生成(RAG)技术,FinRobot能够从网络上收集公司产品和服务的相关数据,进而分析产品线、成本结构及供应链动态。
市场分析:FinRobot结合财务比率、市场数据以及情绪分析来模拟市场参与者的决策过程,评估公司的股价走势和估值,为投资者提供关于投资时机和金融工具的战略指导。
估值分析:通过整合多个数据源,FinRobot评估股价和公司估值,针对不同的风险承受水平提供投资评估和策略建议。
金融CoT提示的好处
当前的数据提供商(如Bloomberg、FactSet等)采用的模板化数据提取方式往往忽略了重要的运营指标和定性信息。手动分析不仅耗时而且重复度高,而现有的自动化工具在处理非结构化数据方面效果有限。FinRobot通过其链式思维提示(CoT Prompting)技术模拟人类的认知过程,提供了比传统数字计算更为深入的财务分析。
这种方法利用大型语言模型(LLMs)来学习金融专业人士的分析策略,特别关注公司的基本面、行业特定指标以及定性信息。其优势包括:不依赖固定的模板、内置错误检测机制、减少人工劳动、从复杂数据集中提取有价值的信息、提供透明的数据来源解释,并且具有高度适应性,能够通过监督和指令调优持续改进。
市场模拟:超越分析师的模仿
市场模拟可以通过复制人类的分析过程,创建一个涵盖不同类型市场参与者的环境,以反映市场的动态变化。在这个模拟环境中,代理人根据数据驱动的提示做出决策,模仿人类分析师的思考步骤。通过使用大型语言模型(LLMs)编码的决策框架,这些代理人能够理解和处理市场的定量与定性因素。
模拟框架包含以下几个方面:定义市场参与者角色及其行为模式、实施多种数据输入和决策模型、在不同的时间范围和条件下模拟市场互动情况、并利用强化学习技术来优化代理人的策略。这个概念为金融市场分析及策略优化领域的未来研究提供了一个极具潜力的方向。
04演示应用程序和实践教程
应用一:市场预测员
Market Forecaster是一组AI代理,设计用于整合市场新闻和金融数据,提供关于公司最新成就和潜在问题的全面分析。它还能预测股票价格的走势。作为一位初级机器人顾问,它代表了AI驱动金融顾问领域的一项重大进展。
数据
Market Forecaster使用多个数据源来进行全球市场预测,特别聚焦于美国和中国股市。它收集的信息涵盖了公司新闻、基础财务数据及股票价格。其主要数据来源是Finnhub和EastMoney。
模型
这个AI代理基于经过微调的FinGPT-Forecasters,使用了Llama-2-7b-chat-hf与LoRA技术。其数据来源于最近一年美国道琼斯30和中国上证50的股票数据,确保对关键股票提供精准预测。它在多种股票代码上展示了强大的泛化能力。通过采用金融多任务指令调优方法,增强了基础模型与市场预测功能之间的匹配度。
提示
市场预测器利用多任务指令调优框架,并采用复杂的提示格式。它收集了公司的多方面信息,包括公司简介、近期股价、最新新闻和基础财务数据。然后,通过提示工程将这些信息转化为指令提示的形式。
预测结果
通过Nvidia和Kweichow Moutai的案例分析,展示了市场预测工具的全面能力。这个工具能够基于多种信息来源提供有价值的见解。此外,它还针对股票未来的走势提出了建议,体现了其在提供可操作指导方面的能力。
应用二:文件分析与生成
文档分析与生成应用利用AI代理和大型语言模型(LLMs)进行金融文档管理和报告创建。
文档分析
9个AI代理负责分析年报、SEC文件和财报电话会议记录,从中提取关键信息。它们能够识别重要的财务指标,突出显示趋势和差异,并提供可操作的见解。这些AI代理理解复杂的金融术语,能将非结构化数据转换为结构化的信息。
报告生成
FinRobot运用大型语言模型(LLM)生成详尽的财务报告,内容包括绩效评估、市场对比和前瞻性财务预测。报告维持专业的语气和格式,质量堪比顶级金融分析师的作品。附录中包含的股权研究报告进一步展示了该平台的实用性和有效性。
05总结
FinRobot通过在开源平台上整合多源大型语言模型(LLMs),增强了金融分析的可达性、效率和透明度。其采用的多层次架构支持实时数据处理和多种模型的集成,简化了全球市场的复杂性。FinRobot鼓励金融AI社区的合作,加速创新进程,并提升战略决策的能力。
未来,FinRobot计划扩展其应用范围,包括投资组合配置和全面风险评估,以增强其在金融领域的实用性。同时,平台还将扩大其在全球市场的覆盖范围,提高适应不同经济环境的能力,进一步推动AI驱动的金融分析的创新与普及。
相关文章:
FinRobot:一个使用大型语言模型的金融应用开源AI代理平台
“FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models” 论文地址:https://arxiv.org/pdf/2405.14767 Github地址:https://github.com/AI4Finance-Foundation/FinRobot 摘要 在金融领域与AI社区间&a…...
【llm对话系统】大模型 Llama 源码分析之 LoRA 微调
1. 引言 微调 (Fine-tuning) 是将预训练大模型 (LLM) 应用于下游任务的常用方法。然而,直接微调大模型的所有参数通常需要大量的计算资源和内存。LoRA (Low-Rank Adaptation) 是一种高效的微调方法,它通过引入少量可训练参数,固定预训练模型的权重,从而在保持性能的同时大…...
为AI聊天工具添加一个知识系统 之86 详细设计之27 数据处理:ETL
本文要点 ETL 数据提取 作为 数据项目的起点。数据的整个三部曲--里程碑式的发展进程: ETL : 1分形 Type()-层次Broker / 2完形 Method() - 维度Delegate /3 整形 Class() - 容器 Agent 1变象。变象 脸谱Extractor - 缠度(物理 皮肤缠度…...
「全网最细 + 实战源码案例」设计模式——策略模式
核心思想 策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列算法或策略,将它们封装成独立的类,并使它们可以相互替换,而不影响客户端的代码,提高代码的可维护性和扩展性。 结构 …...
框架与代码的形状
作为一个代码的设计者,我之前讨论过代码的形状,从“名字”出发,进行讨论。代码的形状:重构的方向-CSDN博客 从比喻的角度来看,名字似代码的血和肉,而框架则似代码的骨架。 猎豹和大象 在大自然中&…...
解决vscode扩展插件开发webview中的请求跨域问题
在webview中是无法发送跨域请求的,可以通过消息机制,在插件中发请求,然后将请求结果传递给webview 我的代码是基于vscode-webview-ui-toolkit-samples-vue来写的 webview vue组件中的代码示例 async function initData() {// 向插件发送消…...
junit5定制点
一、JUnit 5 自定义定制点是什么? JUnit 5 提供了强大的扩展模型(Extension Model),允许开发者通过实现特定接口(如 BeforeEachCallback、ParameterResolver)自定义测试行为。这些接口称为定制点ÿ…...
基于SpringBoot的信息技术知识赛系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
【Rust自学】20.1. 最后的项目:单线程Web服务器
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 20.1.1. 什么是TCP和HTTP Web 服务器涉及的两个主要协议是超文本传输协议(Hypertext T…...
LabVIEW涡轮诊断系统
一、项目背景与行业痛点 涡轮机械是发电厂、航空发动机、石油化工等领域的核心动力设备,其运行状态直接关系到生产安全与经济效益。据统计,涡轮故障导致的非计划停机可造成每小时数十万元的经济损失,且突发故障可能引发严重安全事故。传统人…...
想品客老师的第十天:类
类是一个优化js面向对象的工具 类的声明 //1、class User{}console.log(typeof User)//function//2、let Hdclass{}//其实跟1差不多class Stu{show(){}//注意这里不用加逗号,对象才加逗号get(){console.log(后盾人)}}let hdnew Stu()hd.get()//后盾人 类的原理 类…...
注解(Annotation)
注解(Annotation)在 Java 中可以用来简化类的使用,使得被注解的类能够被自动发现、自动创建并在需要的地方直接调用,而不需要手动创建实例。具体来说,注解是用来标识类、方法、字段等的,它们通常与一些框架…...
使用开源项目:pdf2docx,让PDF转换为Word
目录 1.安装python 2.安装 pdf2docx 3.使用 pdf2docx 转换 PDF 到 Word pdf2docx:GitCode - 全球开发者的开源社区,开源代码托管平台 环境:windows电脑 1.安装python Download Python | Python.org 最好下载3.8以上的版本 安装时记得选择上&#…...
编程AI深度实战:AI编程工具哪个好? Copilot vs Cursor vs Cody vs Supermaven vs Aider
Cursor自己可以看成一个IDE,而且有强大的RAG功能,这让它对你的意图感知非常厉害,可以精确补全,可以感受代码片段 Aider可以看作一个袖珍,灵活,强大的扳手,怎么用都行,可以放在脚本里调用,可以看代码,可以修改代码。相比Cursor而言,它感受的是文件级别,颗粒度有些不…...
如何安全地管理Spring Boot项目中的敏感配置信息
在开发Spring Boot应用时,我们经常需要处理一些敏感的配置信息,比如数据库密码、API密钥等。以下是一个最佳实践方案: 1. 创建配置文件 application.yml(版本控制) spring:datasource:url: ${MYSQL_URL:jdbc:mysql…...
为AI聊天工具添加一个知识系统 之77 详细设计之18 正则表达式 之5
本文要点 昨天讨论了 本项目(AI聊天工具添加一个知识系统)中正则表达式模板的设计中可能要考虑到的一些问题(讨论到的内容比较随意,暂时无法确定 那些考虑 是否 应该是正则表达式模板设计要考虑的以及 是否完整)。今天…...
Ubuntu下Tkinter绑定数字小键盘上的回车键(PySide6类似)
设计了一个tkinter程序,在Win下绑定回车键,直接绑定"<Return>"就可以使用主键盘和小键盘的回车键直接“提交”,到了ubuntu下就不行了。经过搜索,发现ubuntu下主键盘和数字小键盘的回车键,名称不一样。…...
安全实验作业
一 拓扑图 二 要求 1、R4为ISP,其上只能配置IP地址;R4与其他所有直连设备间均使用共有IP 2、R3-R5-R6-R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分; 4、所有设备均可访问R4的环回&#x…...
NOTEPAD++编写abap
参考下面三个链接 Notepad ABAP代码高亮显示_notepad代码高亮颜色-CSDN博客 百度安全验证 ABAP Syntax Highlighting in Notepad Part 2 - SAP Community 最后XML文件看看你可以自己增加些新语法的高亮显示...
基于python的体育新闻数据可视化及分析
项目 :北京冬奥会体育新闻数据可视化及分析 摘 要 随着社会的不断进步与发展,新时代下的网络媒体获取的信息也更加庞大和繁杂,相比于传统信息来源更加难以分析和辨别,造成了新时代媒体从业者撰写新闻的难度。在此背景下ÿ…...
C# 精炼题18道题(类,三木运算,Switch,计算器)
1.数组元素和 2.数组元素乘积 3.数组元素平均数 4.数组中最大值 5.数组中的偶数 6.数组中的阶乘 7.数组反转 8.字符串反转 9.回文字符串 10.检查回文 11.最小最大值 12.找素数 13.字符串中的最长无重复字符串 14.字符串去重 15.数组中计算两数之和 16.数字到字符…...
vue2语法速通
首先,git clone下来的项目要npm install下载依赖,如果是vue项目,运行通常npm run serve或者npm run dev vue速通一下 使用vite创建项目(较快) npm create vite 配置文件 src/ ├── assets/ # 存放…...
LabVIEW图片识别逆向建模系统
本文介绍了一个基于LabVIEW的图片识别逆向建模系统的开发过程。系统利用LabVIEW的强大视觉处理功能,通过二维图片快速生成对应的三维模型,不仅降低了逆向建模的技术门槛,还大幅提升了建模效率。 项目背景 在传统的逆向建模过程中…...
idea隐藏无关文件
idea隐藏无关文件 如果你想隐藏某些特定类型的文件(例如 .log 文件或 .tmp 文件),可以通过以下步骤设置: 打开设置 在菜单栏中选择 File > Settings(Windows/Linux)或 IntelliJ IDEA > Preference…...
Google C++ Style / 谷歌C++开源风格
文章目录 前言1. 头文件1.1 自给自足的头文件1.2 #define 防护符1.3 导入你的依赖1.4 前向声明1.5 内联函数1.6 #include 的路径及顺序 2. 作用域2.1 命名空间2.2 内部链接2.3 非成员函数、静态成员函数和全局函数2.4 局部变量2.5 静态和全局变量2.6 thread_local 变量 3. 类3.…...
猫眼Java开发面试题及参考答案(上)
详细介绍项目,像项目中如何用 Redis,用到 Redis 哪些数据类型,项目中遇到哪些问题,怎么解决的 在我参与的一个电商项目中,Redis 发挥了至关重要的作用。这个电商项目主要是为用户提供商品浏览、购物车管理、订单处理等一系列功能。 在项目中使用 Redis 主要是为了提升系统…...
CNN的各种知识点(五):平均精度均值(mean Average Precision, mAP)
平均精度均值(mean Average Precision, mAP) 1. 平均精度均值(mean Average Precision, mAP)概念:计算步骤:具体例子:重要说明:典型值范围: 总结: 1. 平均精度…...
8.原型模式(Prototype)
动机 在软件系统中,经常面临着某些结构复杂的对象的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 之前的工厂方法和抽象工厂将抽象基类和具体的实现分开。原型模式也差不多&#…...
DeepSeek-R1:开源机器人智能控制系统的革命性突破
目录 引言 一、DeepSeek-R1 的概述 1.1 什么是 DeepSeek-R1? 1.2 DeepSeek-R1 的定位 二、DeepSeek-R1 的核心特性 2.1 实时控制能力 2.2 多传感器融合 2.3 路径规划与导航 2.4 人工智能集成 2.5 开源与模块化设计 2.6 跨平台支持 三、DeepSeek-R1 的技术…...
网络安全学习 day5
状态检测和会话技术 状态检测以 “ 数据流量 ” 为单位来对报文进行检测和转发。即对一条流量的第一个报文进行包过滤规 则检查,并将判断结果作为这条流量的 “ 状态 ” 记录下来 。对于该条流量的后续报文,直接根据这个 “ 状态 ”来判断是否转发还是…...
[leetcode·回溯算法]回溯算法解题套路框架
本文参考labuladong算法笔记[回溯算法解题套路框架 | labuladong 的算法笔记] 本文解决几个问题: 回溯算法是什么?解决回溯算法相关的问题有什么技巧?如何学习回溯算法?回溯算法代码是否有规律可循? 其实回溯算法和我…...
【怎么用系列】短视频戒除—1—对推荐算法进行干扰
如今推荐算法已经渗透到人们生活的方方面面,尤其是抖音等短视频核心就是推荐算法。 【短视频的危害】 1> 会让人变笨,慢慢让人丧失注意力与专注力 2> 让人丧失阅读长文的能力 3> 让人沉浸在一个又一个快感与嗨点当中。当我们刷短视频时&#x…...
【deepseek实战】绿色好用,不断网
前言 最佳deepseek火热网络,我也开发一款windows的电脑端,接入了deepseek,基本是复刻了网页端,还加入一些特色功能。 助力国内AI,发出自己的热量 说一下开发过程和内容的使用吧。 目录 一、介绍 二、具体工作 1.1、引…...
kali下Docker详细安装、docker-compose安装
目录 一、kali下docker安装 1. 更换apt源 2.安装docker 3.配置国内镜像加速器 4.利用docker运行靶场环境 二、docker-compose安装 1.下载docker-compose文件 2.将下载的文件复制到指定位置 3.赋予执行权限 4.利用docker-compose运行靶场环境 一、kali下docker安装 1.…...
Spring理论知识(Ⅴ)——Spring Web模块
Spring的组成 Spring由20个核心依赖组成,这20个核心依赖可以分为6个核心模块 Spring Web模块简介 众所周知,Java目前最大的一个用途就是作为Web应用的服务端(Java Web) Spring又是JavaEE中使用最广泛的开发框架࿰…...
图书管理系统 Axios 源码__新增图书
目录 功能介绍 核心代码解析 源码:新增图书功能 总结 本项目基于 HTML、Bootstrap、JavaScript 和 Axios 开发,实现了图书的增删改查功能。以下是新增图书的功能实现,适合前端开发学习和项目实践。 功能介绍 用户可以通过 模态框…...
【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】从计算机基础到HTML开发:Web开发的第一步
会议官网:www.acvra.org 简介 2025年计算机视觉研究进展与应用(ACVRA 2025)将于2025年2月28-3月2日在中国广州召开,将汇聚世界各地的顶尖学者、研究人员和行业专家,聚焦计算机视觉领域的最新研究动态与应用成就。本次…...
Med-R2:基于循证医学的检索推理框架:提升大语言模型医疗问答能力的新方法
Med-R2 : Crafting Trustworthy LLM Physicians through Retrieval and Reasoning of Evidence-Based Medicine Med-R2框架Why - 这个研究要解决什么现实问题What - 核心发现或论点是什么How - 1. 前人研究的局限性How - 2. 你的创新方法/视角How - 3. 关键数据支持How - 4. 可…...
Docker入门篇(Docker基础概念与Linux安装教程)
目录 一、什么是Docker、有什么作用 二、Docker与虚拟机(对比) 三、Docker基础概念 四、CentOS安装Docker 一、从零认识Docker、有什么作用 1.项目部署可能的问题: 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题࿱…...
完美世界C++游戏开发面试题及参考答案
堆栈数据结构有什么区别,举例说明 栈(Stack)和堆(Heap)是两种不同的数据结构,它们在多个方面存在显著区别: 存储方式 栈:栈是一种后进先出(LIFO)的数据结构,它的存储空间是连续的。栈由系统自动分配和释放,用于存储函数调用时的局部变量、函数参数、返回地址等信息…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.21 随机数生成:梅森旋转算法的工程实现
2.21 随机数生成:梅森旋转算法的工程实现 目录 #mermaid-svg-J92AWLtQsj9ys1z6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-J92AWLtQsj9ys1z6 .error-icon{fill:#552222;}#mermaid-svg-J92AWLtQsj9y…...
LeetCode 0922.按奇偶排序数组 II:O(1)空间复杂度-一次遍历双指针
【LetMeFly】922.按奇偶排序数组 II:O(1)空间复杂度-一次遍历双指针 力扣题目链接:https://leetcode.cn/problems/sort-array-by-parity-ii/ 给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。 对数组进…...
VSCode设置内容字体大小
1、打开VSCode软件,点击左下角的“图标”,选择“Setting”。 在命令面板中的Font Size处选择适合自己的字体大小。 2、对比Font Size值为14与20下的字体大小。...
【蓝桥杯】日志统计
日志统计(编程题)https://dashoj.com/d/lqbproblem/p/53https://dashoj.com/d/lqbproblem/p/53https://dashoj.com/d/lqbproblem/p/53 题目 日志统计(编程题) 讲解 这个讲解感觉比较通俗易懂。 蓝桥杯2018年省赛B组08(c/c)日…...
九. Redis 持久化-AOF(详细讲解说明,一个配置一个说明分析,步步讲解到位 2)
九. Redis 持久化-AOF(详细讲解说明,一个配置一个说明分析,步步讲解到位 2) 文章目录 九. Redis 持久化-AOF(详细讲解说明,一个配置一个说明分析,步步讲解到位 2)1. Redis 持久化 AOF 概述2. AOF 持久化流程3. AOF 的配置4. AOF 启…...
蓝桥杯备赛题目练习(一)
一. 口算练习题 ## 题目描述 王老师正在教简单算术运算。细心的王老师收集了 i 道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比…...
【Linux探索学习】第二十八弹——信号(下):信号在内核中的处理及信号捕捉详解
Linux学习笔记: https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言: 在前面我们已经学习了有关信号的一些基本的知识点,包括:信号的概念、信号产生和信号处理等,今天我们重…...
AI与SEO关键词的完美结合如何提升网站流量与排名策略
内容概要 在当今数字营销环境中,内容的成功不仅依赖于高质量的创作,还包括高效的关键词策略。AI与SEO关键词的结合,正是这一趋势的重要体现。 AI技术在SEO中的重要性 在数字营销领域,AI技术的引入为SEO策略带来了前所未有的变革。…...
《运维:技术的基石,服务的保障》
1. LVS(Linux Virtual Server):基于Linux内核的四层负载均衡解决方案 2. Bonding(链路聚合):物理网卡冗余与带宽叠加技术 3. RHEL(Red Hat Enterprise Linux):企业级Li…...
CSS Display属性完全指南
CSS Display属性完全指南 引言核心概念常用display值详解1. block(块级元素)2. inline(行内元素)3. inline-block(行内块级元素)4. flex(弹性布局)5. grid(网格布局&…...