FinGPT——金融领域开源大模型

news2024/11/29 6:39:31

文章目录

  • 背景
  • 论文摘要
  • 相关工作
    • 大型语言模型(LLMs)和ChatGPT
    • 金融领域的LLMs
    • 为什么需要开源的金融LLMs?
  • 以数据为中心的方法用于FinLLMs
    • 金融数据和独特特性
    • 应对处理金融数据的挑战
  • FINGPT 概述:FINLLM 的开源框架
    • 数据来源
    • 面向金融NLP的实时数据工程流程
    • 大型语言模型(LLM)
    • 应用
  • 结论
  • 未来工作

背景

FinGPT 是2023年6月哥伦比亚大学联合上海纽约大学推出全新大模型产品,这是一款面向金融领域的大模型产品。

论文:https://arxiv.org/abs/2306.06031
github:https://github.com/AI4Finance-Foundation/FinGPT

论文摘要

大型语言模型(LLMs)展示了在不同领域中革新自然语言处理任务的潜力,引发了金融领域的极大兴趣。获取高质量的金融数据是金融语言模型(FinLLMs)面临的首要挑战。虽然像BloombergGPT这样的专有模型利用了其独特的数据积累优势,但目前需要一些开源的替代方案,以实现互联网规模的金融数据的民主化。

在本文中,我们介绍了一个针对金融行业的开源大型语言模型FinGPT。与专有模型不同,FinGPT采用了以数据为中心的方法,为研究人员和实践者提供了可访问和透明的资源来开发他们的FinLLMs。我们强调了自动数据筛选流程和轻量级低秩适应技术在构建FinGPT中的重要性。此外,我们展示了一些潜在的应用,例如机器人顾问、算法交易和低代码开发。通过开源AI4Finance社区的协作努力,FinGPT旨在刺激创新,民主化FinLLMs,并在开放金融中开辟新的机会。两个相关的代码库分别是:https://github.com/AI4Finance-Foundation/FinGPT,https://github.com/AI4Finance-Foundation/FinNLP。

人工智能的持续扩展和演进为大型语言模型的普及提供了肥沃的土壤,从而在不同领域的自然语言处理中带来了一场变革性的转变。这一巨大的变化引发了人们对这些模型在金融领域潜在应用的浓厚兴趣。然而,很明显,获取高质量、最新的相关数据是开发高效的开源金融语言模型的关键因素

在金融领域利用语言模型面临着复杂的障碍。这些障碍包括获取数据的困难、处理多样化的数据格式和类型、处理数据质量的不一致性,以及对最新信息的基本需求。特别是,由于不同的数据介质,如Web平台、API、PDF文档和图像,历史或专业金融数据的提取变得复杂。

在专有领域,像BloombergGPT这样的模型利用其对专业数据的独占访问来训练针对金融领域的语言模型。然而,其数据收集和训练协议的限制性可访问性和透明性凸显了对更开放和包容性的替代方案的需求。为了满足这一需求,我们正在见证向开源领域中民主化互联网规模的金融数据的趋势转变。

在本文中,我们针对与金融数据相关的上述挑战,并介绍了一个名为FinGPT的端到端开源框架,用于构建金融领域的大型语言模型(FinLLMs)。FinGPT采用以数据为中心的方法,强调数据获取、清理和预处理在开发开源FinLLMs中的关键作用。通过倡导数据可访问性,FinGPT旨在促进金融领域的研究、协作和创新,为开放金融实践铺平道路。

我们的贡献总结如下:

民主化:作为一个开源框架,FinGPT旨在民主化金融数据和FinLLMs,揭示开放金融中未开发的潜力。

以数据为中心的方法:认识到数据筛选的重要性,FinGPT采用了以数据为中心的方法,并实施了严格的数据清理和预处理方法,以处理各种数据格式和类型,从而确保高质量的数据。

端到端框架:FinGPT采用了一个全面的框架,用于构建FinLLMs,包括四个层次:

(1)数据源层:该层确保全面的市场覆盖,并通过实时信息捕获来解决金融数据的时间敏感性。

(2)数据工程层:为实时NLP数据处理进行了优化,该层应对金融数据中的时间敏感性和低信噪比的固有挑战。

(3)LLMs层:该层专注于一系列的微调方法,减轻金融数据的高度动态性,确保模型的相关性和准确性。

(4)应用层:展示实际应用和演示,该层突出了FinGPT在金融领域的潜在能力。

相关工作

大型语言模型(LLMs)和ChatGPT

大型语言模型(LLMs)已被公认为自然语言处理的技术突破,例如GPT-3和GPT-4 。它们采用了基于Transformer的架构,在各种生成任务中展示出令人印象深刻的性能。

作为OpenAI开发的GPT系列的一个分支,ChatGPT旨在根据输入提示生成类似人类的文本。它在多种应用中展示了显著的实用性,从起草电子邮件到编写代码,甚至创建书面内容。

金融领域的LLMs

LLMs已被应用于金融领域的各种任务,从预测建模到从原始金融数据中生成富有见地的叙述。最近的文献专注于使用这些模型进行金融文本分析,因为金融领域存在大量的文本数据,如新闻文章、盈利电话会议记录和社交媒体帖子。

金融LLMs的第一个例子是BloombergGPT ,它是在金融和一般来源的混合数据集上进行训练的。尽管其具有令人印象深刻的能力,但存在访问限制,并且训练成本高昂,这促使我们需要低成本的领域自适应。

我们的FinGPT应对这些挑战,提出了一个开源的金融LLM。它采用人类反馈的强化学习(RLHF)来理解和适应个体偏好,为个性化的金融助手铺平了道路。我们的目标是将ChatGPT等通用LLMs的优势与金融自适应相结合,充分利用LLMs在金融领域的能力。

为什么需要开源的金融LLMs?

AI4Finance基金会是一个非营利性的开源组织,致力于将人工智能(AI)和金融应用集成在一起,包括金融大型语言模型(FinLLMs)。基金会在培育金融科技工具创新生态系统方面有着良好的记录,例如FinRL 和FinRL-Meta 。该基金会致力于加速金融LLMs的进一步发展。其坚定的承诺和尖端的贡献为人工智能在金融领域的变革性应用铺平了道路。

推动平等机会,通过民主化FinLLMs:采用开源方法促进对最先进技术的普遍访问,秉持民主化FinLLMs的理念。

培养透明度和信任:开源的FinLLMs提供了其基础代码的全面概述,增强了透明度和信任。

加速研究和创新:开源模型推动了人工智能领域的研发进展。研究人员可以利用现有模型,从而促进创新和科学发现的更快进展。

增强教育:开源的FinLLMs作为强大的教育工具,为学生和研究人员提供了通过与完全运行的模型直接互动来探索FinLLMs复杂性的机会。

促进社区发展和协作参与:开源促进了全球贡献者社区的形成。这种协作参与增强了模型的长期耐用性和效果。

以数据为中心的方法用于FinLLMs

对于金融大型语言模型(FinLLMs),成功的策略不仅仅依赖于模型架构的能力,而且同样依赖于训练数据。我们的数据中心方法优先考虑收集、准备和处理高质量的数据。

金融数据和独特特性

金融数据来自各种不同的来源,具有独特的特性。我们深入探讨了不同金融数据来源的具体细节,例如金融新闻、公司报告、社交媒体讨论和公司公告

金融新闻,提供了有关世界经济、特定行业和个别公司的重要信息。这种数据来源通常具有以下特点:

  • 及时性:金融新闻报道具有及时性和最新性,通常捕捉到金融世界中最近的发展动态。
  • 动态性:金融新闻中所包含的信息是动态变化的,会随着经济条件和市场情绪的演变而迅速变化。
  • 影响力:金融新闻对金融市场具有重大影响力,影响着交易员的决策,有可能导致剧烈的市场波动。

公司报告和公告,是企业向监管机构提交的官方文件,提供了有关公司的财务状况和战略方向的见解。这些文件具有以下特点:

  • 细节度:这些文件提供了关于公司财务状况的详细信息,包括资产、负债、收入和盈利能力等方面的数据。
  • 可靠性:公司报告包含由监管机构审核的可靠和经过验证的数据。
  • 周期性:公司报告是周期性的,通常每季度或每年提交一次,定期提供公司财务状况的快照。
  • 影响力:公司公告常常对市场产生重大影响,影响股价和投资者情绪。

与金融相关的社交媒体讨论,可以反映公众对特定股票、行业或整体市场的情绪。这些讨论往往呈现出以下特点:

  • 多样性:社交媒体讨论在语调、内容和质量上差异很大,因此它们是丰富而复杂的信息源。
  • 实时情绪:这些平台通常能够捕捉到实时的市场情绪,可以检测到公众舆论的趋势和变化。
  • 波动性:在社交媒体上表达的情绪可以非常波动,对新闻事件或市场变动作出迅速反应。

趋势,往往可以通过像Seeking Alpha、Google Trends和其他面向金融的博客和论坛等网站观察到,它们提供了对市场动向和投资策略的关键见解。它们具有以下特点:

  • 分析师观点:这些平台提供了来自经验丰富的金融分析师和专家的市场预测和投资建议。
  • 市场情绪:这些平台上的讨论可以反映出对特定证券、行业或整体市场的集体情绪,为了解当前市场情绪提供了宝贵的见解。
  • 广泛覆盖:趋势数据涵盖了多样的证券和市场领域,提供了全面的市场覆盖。

每个数据来源都提供了对金融世界的独特见解。通过整合这些多样化的数据类型,像FinGPT这样的金融语言模型可以促进对金融市场的全面理解,并支持有效的金融决策。

应对处理金融数据的挑战

我们将处理金融数据面临的三个主要挑战总结如下:

高度的时间敏感性:金融数据具有高度的时间敏感性。市场影响力的新闻或更新一经发布,投资者仅有短暂的时间窗口来最大化他们的α值(衡量投资相对回报的指标)。

高度的动态性:金融领域不断演变,每天都有大量的新闻、社交媒体帖子和其他与市场相关的信息涌现。频繁重新训练模型以适应这些变化是不现实且成本高昂的。

低信噪比:金融数据通常表现出较低的信噪比,这意味着有用的信息往往被大量的无关或噪音数据所淹没。从这些海量信息中提取有价值的见解需要先进的技术手段。

解决这些挑战对于有效利用财务数据和最大限度地发挥FinLLMs的潜力至关重要。

FINGPT 概述:FINLLM 的开源框架

在这里插入图片描述
FinGPT代表了一个创新的开源框架,专门用于在金融领域应用大型语言模型(LLMs)。如图1所示,FinGPT由四个基本组件组成:数据源、数据工程、LLMs和应用程序。每个组件在维护FinGPT的功能和适应性方面发挥着关键作用,以应对动态的金融数据和市场状况。

数据源层:FinGPT流程的起点是数据源层,该层协调从各种在线来源获取广泛的金融数据。通过整合来自新闻网站、社交媒体平台、财务报表、市场趋势等数据,确保全面的市场覆盖。目标是捕捉市场的每一个细微差别,从而应对金融数据固有的时间敏感性。

数据工程层:该层专注于实时处理自然语言处理(NLP)数据,以解决金融数据中的高时间敏感性和低信噪比的挑战。它采用最先进的NLP技术来过滤噪声并突出最重要的信息。

LLMs层:作为核心层,它涵盖了各种微调方法,重点是轻量级调整,以保持模型的更新和相关性。通过保持更新的模型,FinGPT可以处理高度动态的金融数据,确保其回应与当前的金融环境保持一致。

应用程序层:FinGPT的最后一个组件是应用程序层,旨在展示FinGPT的实际应用性。它提供金融任务的实践教程和演示应用程序,包括机器人顾问服务、量化交易和低代码开发。这些实际演示不仅为潜在用户提供指导,还强调了LLMs在金融领域的变革潜力。

数据来源

FinGPT的第一个阶段涉及从各种在线来源收集广泛的金融数据。这些来源包括但不限于:

金融新闻:诸如路透社、CNBC、雅虎财经等网站是丰富的金融新闻和市场更新的来源。这些网站提供有关市场趋势、公司收益、宏观经济指标和其他金融事件的宝贵信息。

社交媒体:Twitter、Facebook、Reddit、微博等平台提供了大量关于公众情绪、热门话题和对金融新闻和事件的即时反应的信息。

报告文件:金融监管机构的网站,如美国证券交易委员会(SEC),提供公司报告文件的访问。这些报告文件包括年度报告、季度盈利报告、内幕交易报告和其他重要的公司特定信息。证券交易所的官方网站(如纽约证券交易所、纳斯达克、上海证券交易所等)提供了关于股票价格、交易量、公司上市、历史数据和其他相关信息的重要数据。

趋势数据:网站,如Seeking Alpha、Google Trends和其他金融专注的博客和论坛,提供分析师的观点、市场预测、特定证券或市场领域的动态以及投资建议。

学术数据集:提供经过精心策划和验证的信息,用于复杂的金融分析的基于研究的数据集。
为了利用这些多样化数据源的丰富信息,FinGPT采用了能够从结构化和非结构化数据中进行数据获取的工具,包括API、网络抓取工具和直接访问数据库(如果可用)。此外,系统设计旨在遵守这些平台的服务条款,确保数据收集是合法和合规的。

数据API:在FinGPT框架中,API不仅用于初始数据收集,还用于实时数据更新,确保模型训练使用的是最新的数据。此外,实施了错误处理和速率限制策略,以尊重API的使用限制,并避免数据流中的中断。

面向金融NLP的实时数据工程流程

金融市场实时运作,对新闻和情绪高度敏感。证券价格可以因为新信息的出现而迅速变动,而处理信息的延迟可能导致错失机会或增加风险。因此,在金融NLP中,实时处理至关重要。

实时NLP流程的主要挑战在于高效管理和处理持续涌入的数据。流程的第一步是建立一个系统来实时接收数据。这些数据可以从我们的数据源API中实时获取。下面是设计数据获取的实时NLP流程的步骤:

数据清洗:实时数据可能含有噪声和不一致性。因此,实时数据清洗包括删除不相关的数据、处理缺失值、文本归一化(如转换为小写)和错误纠正。

分词:在实时应用中,需要即时进行分词。这涉及将文本流分解为更小的单元或标记。
停用词去除和词干提取/词形还原:对于实时处理,可以使用预定义的停用词列表从标记流中过滤掉这些常见词。同样,可以应用词干提取和词形还原技术将单词缩减为其词根形式。

特征提取和情感分析:特征提取涉及将原始数据转化为机器学习模型可理解的输入。在实时系统中,这通常需要是一个快速高效的过程。可以使用TF-IDF、词袋模型或嵌入向量(如Word2Vec)等技术。还可以对清洗后的数据进行情感分析,将文本片段分类为积极、消极或中性。

提示工程:创建有效的提示,以指导语言模型生成期望的输出。
警报/决策制定:一旦输入提示,需要将结果传达或采取相应行动。这可能涉及根据特定条件触发警报、通知实时决策过程或将输出输入到另一个系统中。

持续学习:在实时系统中,模型应该能够适应数据的变化。可以实现持续学习系统,定期使用新数据对模型进行重新训练,或使用在线学习算法,每个新数据点都可以更新模型。

监控:实时系统需要持续监控,以确保其正常运行。流程中的任何延迟或问题都可能产生即时影响,因此重要的是建立强大的监控和警报机制。

大型语言模型(LLM)

一旦数据被正确准备好,就可以与LLM一起用于生成有洞察力的金融分析。LLM层包括:

LLM API:来自已建立的LLM的API提供基本的语言功能。

可训练模型:FinGPT提供可训练的模型,用户可以在其私有数据上进行微调,以定制金融应用。

微调方法:各种微调方法使得FinGPT能够适应个性化的机器顾问。

为什么要对LLM进行微调而不是从头开始重新训练?

利用现有的大型语言模型(LLM)并对其进行微调,为金融领域提供了一种高效、经济实惠的替代方案,避免了昂贵且耗时的从头训练模型的成本。

虽然BloombergGPT在金融特定能力方面非常出色,但它需要大量计算资源。它的训练过程大约使用了130万个GPU小时,根据AWS云计算的2.3美元费率计算,训练成本惊人地高达约300万美元。与BloombergGPT等高计算成本模型相比,FinGPT通过专注于对顶级开源LLM的轻量级调整,提供了一种更为可行的解决方案。调整的成本大大降低,估计每次训练不到300美元。

这种方法确保了及时的更新和适应性,这在不断变化的金融领域中至关重要。作为开源项目,FinGPT不仅促进了透明度,还允许用户进行定制,迎合了个性化金融咨询服务的兴起趋势。最终,FinGPT的经济实惠、灵活的框架有潜力实现金融语言建模的民主化,并促进以用户为中心的金融服务。

通过低秩适应(LoRA)进行微调

在FinGPT中,我们利用一份新颖的金融数据集对预训练的LLM进行微调。众所周知,高质量的标注数据对于许多成功的LLM(包括ChatGPT)至关重要。然而,获取这种顶级标注数据往往在时间和资源上代价高昂,并且通常需要金融专业人士的专业知识。

如果我们的目标是利用LLM来分析与金融相关的文本数据,并在量化交易中提供帮助,那么充分利用市场固有的标注能力似乎是明智的选择。因此,我们使用每条新闻项的相对股价变动百分比作为输出标签。我们根据新闻项的情感将这些标签划分为三个类别——正面、负面和中性,并建立了阈值。

在相应的提示工程过程中,我们还提示模型从正面、负面和中性输出中选择一个。这种策略确保了对预训练信息的最佳利用。通过使用LLM的低秩适应(LoRA),我们将可训练参数的数量从61.7亿减少到仅仅367万。

通过股票价格的强化学习(RLSP)进行微调

类似地,我们可以将股票价格的强化学习(RLSP)替代ChatGPT中的人类反馈强化学习。这种替代的原因在于,股票价格提供了一个可量化、客观的度量标准,反映了市场对新闻和事件的情绪。这使得股票价格成为我们训练模型的一个强大、实时的反馈机制。

强化学习(RL)允许模型通过与环境的交互和接收反馈来学习。在RLSP的情况下,环境是股票市场,反馈以股票价格的变动形式提供。这种方法使得FinGPT能够改进其对金融文本的理解和解读,提高其预测市场对各种金融事件的响应能力。通过将新闻情绪与相关股票的后续表现联系起来,RLSP提供了一种有效的微调FinGPT的方式。实质上,RLSP使得模型能够推断市场对不同新闻事件的反应,并相应地调整其理解和预测。

因此,将RLSP集成到FinGPT的微调过程中为改进模型对金融市场的理解和预测准确性提供了强大的工具。通过使用实际股票价格的变动作为反馈,我们直接利用市场的智慧来使我们的模型更加有效。

应用

FinGPT可以在金融服务领域广泛应用,帮助专业人士和个人做出明智的金融决策。潜在的应用包括:

机器顾问:提供个性化的财务建议,减少常规面对面咨询的需求。

量化交易:为明智的交易决策提供交易信号。

投资组合优化:利用众多经济指标和投资者资料构建最佳投资组合。

金融情绪分析:评估不同金融平台上的情绪,提供深入的投资指导。

风险管理:通过分析各种风险因素制定有效的风险策略。

金融欺诈检测:识别潜在的欺诈交易模式,提升金融安全性。

信用评分:根据金融数据预测信用状况,帮助贷款决策。

破产预测:基于财务和市场数据预测公司的潜在破产或破产。

并购预测:通过分析财务数据和公司概况预测潜在的并购活动,帮助投资者预测市场动向。

ESG(环境、社会、治理)评分:通过分析公共报告和新闻文章评估公司的ESG评分。

低代码开发:通过用户友好的界面促进软件的创建,减少对传统编程的依赖。

金融教育:作为人工智能导师,简化复杂的金融概念,提高金融素养。

通过连接这些独立但相互关联的组件,FinGPT为在金融领域利用人工智能提供了一种全面和可行的解决方案,促进了金融行业中的研究、创新和实际应用。

结论

综上所述,将大型语言模型(LLMs)与金融领域进行深度融合带来了独特的复杂性和广阔的机遇。在金融数据中,高时间敏感性、动态的金融环境以及低信噪比等挑战需要高效的解决方案。FinGPT通过利用现有的LLMs并对其进行细化调整以适用于特定的金融应用,以创新的方式应对这些挑战。与BloombergGPT等模型相比,这种方法显著降低了适应成本和计算需求,为金融语言建模提供了更加可访问、灵活和具有成本效益的解决方案。因此,它能够持续更新以确保模型的准确性和相关性,这在动态和时间敏感的金融世界中至关重要。

未来工作

金融大型语言模型(FinLLMs)展示了未来的愿景,即个性化的机器人顾问或助手将成为每个人的选择。它旨在实现对高质量金融建议的民主化访问,利用先进的语言建模技术理解大量的金融数据,并将其转化为可操作的洞察力。以下蓝图概述了FinLLM未来的发展方向:

个性化:FinLLM战略的核心是个性化微调的概念。通过使用LoRA和QLoRA等技术,FinLLM使用户能够根据其特定需求定制模型,从而创建个人化的机器人顾问或助手。这与金融服务领域的定制化趋势相一致,因为消费者越来越需要与其独特的风险配置和财务目标相符的个性化建议。

开源和低成本适应:FinLLM倡导开源价值观,以低成本(通常在100到300美元之间)为用户提供将大型语言模型(LLMs)适应到其需求的工具。这不仅使得先进的金融建模技术民主化,还培育了一个充满活力的开发者和研究者社区,共同推动金融人工智能领域的发展。

获取高质量的金融数据:FinLLM不仅提供建模技术,还提供高质量的金融数据。这确保用户拥有有效训练模型所需的数据,同时简化数据整理过程。此外,通过提供带演示的数据整理流程,进一步增强了用户利用其金融数据的潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1356550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++多态性——(4)纯虚函数与抽象类

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 我们不能选择命运,但我们可…

微服务注册中心之Eureka

微服务注册中心之Eureka eureka 搭建集群 版本说明 Spring Boot 2.1.7.RELEASE spring-cloud-starter-netflix-eureka-server Finchley.SR2 spring-boot-starter-security 2.1.7.RELEASE pom.xml 文件 <?xml version"1.0" encoding"UTF-8"?> &l…

2023-2024 年广东省职业院校技能大赛高职组 “软件测试”赛项竞赛规程

2023-2024 年广东省职业院校技能大赛&#xff08;高职组&#xff09; “软件测试”赛项竞赛规程 一、赛项信息 赛项名称&#xff1a;软件测试 赛项编号&#xff1a;GZ034 赛项组别&#xff1a;高职组 二、竞赛目标 软件是新一代信息技术的灵魂&#xff0c;是数字经济发展的基础…

若依项目(ruoy-vue)多模块依赖情况简要分析

主pom文件关键点分析 properties标签声明变量信息&#xff1a;版本号、编码类型、java版本spring-boot依赖形式&#xff1a;spring-boot-dependencies、pom、importdependencies中添加本项目内部模块&#xff0c;同时在modules中声明模块packaging打包选择pom设置打包maven-co…

Linux 进程(八) 进程的退出码

main 函数的返回值叫做进程的退出码。当进程成功退出的时候&#xff0c;我们一般用0来表示。进程失败的时候一般用非零来表示。我们使用不同的数字来表示进程退出时不同的失败原因。 我们查看系统的有多少退出码以及其含义时需要用到strerror() 他的头文件和用法如下。 通过一…

智能客服系统适用行业:提升客户服务效率与满意度的解决方案

作为一家企业管理者的你&#xff0c;是否在疑惑您的企业需不需要一套智能客服系统&#xff1f;您的企业需要什么样的智能客服系统&#xff1f;再做决定之前&#xff0c;我们结合行业看看哪些行业需要智能客服系统&#xff1f;他们为什么需要智能客服系统&#xff1f;智能客服系…

conda安装transformers包

使用 conda 自 Transformers 4.0.0 版始&#xff0c;我们有了一个 conda 频道&#xff1a; huggingface。 &#x1f917; Transformers 可以通过 conda 依此安装&#xff1a; conda install -c huggingface transformers安装起来就很通畅 查看安装的transformer的版本号 co…

【算法每日一练]-动态规划(保姆级教程 篇14) #三倍经验 #散步 #异或和 #抽奖概率

目录 今日知识点&#xff1a; 金字塔的正反dp两种方案&#xff0c;转移方程取决于dp的具体含义 取模实现循环走m步回到原点的方案 在统计上升子序列的时候使用最小结尾元素进行标记&#xff0c;一举两得 将亏本的概率转换各种情况的方案&#xff0c;然后统计亏本的情况的方…

2下载Spring,第一个Spring程序+引用Log4j2

https://www.yuque.com/dujubin/ltckqu/kipzgd#&#xff0c;注意的是&#xff0c;现在&#xff08;202401&#xff09;SpringFramework从release搬到了snapshot下&#xff0c;在这下面找到6.0.2下载. 下载后解压到文件夹&#xff0c;整个框架包含非常多jar包。 然后就可以在p…

机器人动力学一些笔记

动力学方程中&#xff0c;Q和q的关系(Q是sita) Q其实是一个向量&#xff0c;q(Q1&#xff0c;Q2&#xff0c;Q3&#xff0c;Q4&#xff0c;Q5&#xff0c;Q6)&#xff08;假如6个关节&#xff09; https://zhuanlan.zhihu.com/p/25789930 举个浅显易懂的例子&#xff0c;你在房…

详细解读QLC SSD无效编程问题-1

此前小编关于QLC SSD有过多篇文章&#xff0c;具体参考如下&#xff1a; 为什么QLC NAND才是ZNS SSD最大的赢家&#xff1f; HDD与QLC SSD深度对比&#xff1a;功耗与存储密度的终极较量 QLC SSD在数据中心的发展前景如何&#xff1f; 多维度深入剖析QLC SSD硬件延迟的来源 …

CNN——VGG

1.VGG简介 论文下载地址&#xff1a;https://arxiv.org/pdf/1409.1556.pdf VGGNet 是由牛津大学视觉几何小组&#xff08;Visual Geometry Group, VGG&#xff09;提出的一种深层卷积网络结构&#xff0c;他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分类任务的亚军&#xff…

MindSpore Serving与TGI框架 の 对比

一、MindSpore Serving MindSpore Serving是一款轻量级、高性能的服务工具&#xff0c;帮助用户在生产环境中高效部署在线推理服务。 使用MindSpore完成模型训练>导出MindSpore模型&#xff0c;即可使用MindSpore Serving创建该模型的推理服务。 MindSpore Serving包含以…

C# 2中的一些小特性

一、局部类型 在C#当中有这样一个关键字partial 用来声明类&#xff0c;结构&#xff0c;接口分为多个部分来声明。使用场景可以一部分类中写实例方法&#xff0c;一部分写属性&#xff0c;我在实际工作测试中就是将属性与实际方法是分开的。相互之间的成员互相通用。 举个例子…

【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

基于普中开发板51单片机的篮球计分器液晶LCD1602显示 1.主要功能&#xff1a;讲解视频&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; 基于51单片机的篮球计分器液晶LCD1602显示 ( pr…

【水浸传感器】软硬件一体水浸监测整套方案远程监测解决各种环境漏水问题

一、痛点分析 在工业生产中&#xff0c;水浸传感器可以安装在数据中心、半导体厂房、输油管道、车间仓库、变电室等易发生水浸的区域。一旦检测到漏水情况&#xff0c;立即发出信号反馈。然而&#xff0c;水浸传感器分散在各个地点&#xff0c;导致管理不集中、不便捷&#xf…

关于TypeScript Interface你需要知道的10件事

TypeScript接口的10种使用场景——可能只有20%的web开发人员完全掌握它们 TypeScript中的接口是一个非常灵活的概念。除了抽象类的部分行为外&#xff0c;它还经常用于描述“对象的形状”。 必需的属性 在定义接口时&#xff0c;需要使用 interface 关键字: interface Use…

流量困境下,2024年餐饮商家的直播带货生意到底怎么做?

据官方数据显示&#xff0c;截至2023年2月&#xff0c;抖音生活服务餐饮商家直播间数量达到43万&#xff0c;2023年7月&#xff0c;抖音生活服务餐饮行业自播商家数较1月增长134%。可以说&#xff0c;直播带货已经成为餐饮商家的常态化的线上营销模式&#xff0c;也成为各大餐饮…

SwiftUI之深入解析ContentUnavailableView的实战应用

一、基本用法 SwiftUI 引入了新的 ContentUnavailableView 类型&#xff0c;允许在应用程序中展示空状态、错误状态或任何其他内容不可用的状态。那么&#xff0c;如何使用 ContentUnavailableView 引导用户浏览应用程序中的空状态呢&#xff1f;首先看看 ContentUnavailableV…

redis服务迁移数据工具--RDM

一、背景&#xff1a; 在日常的运维工作经常遇见各种数据迁移工作&#xff0c;例如mysql数据库迁移、redis数据库迁移、minio数据迁移等等工作。这里介绍一下redis数据库的迁移过程。 二、迁移思路&#xff1a; redis服务/集群的数据迁移思路是需要新建一个配置、密码一样的re…