评估大语言模型(LLM)在分子预测任务能够理解分子几何形状性能
摘要
论文地址:https://arxiv.org/pdf/2403.05075
近年来,机器学习模型在各个领域越来越受欢迎。学术界和工业界都投入了大量精力来提高机器学习的效率,以期实现人工通用智能(AGI)。其中,大规模语言模型(LLM)等生成模型的巨大进步彻底改变了自然语言处理(NLP)领域。大规模语言模型在理解和生成类人文本方面表现出了非凡的能力,已成为机器翻译、常识推理和编码任务等各种自然语言处理任务中不可或缺的工具。
最近的一项突破,即上下文学习(ICL),通过在推理过程中获取特定任务的知识,进一步提高了大规模语言模型的适应性,从而减少了对大量微调的需求。虽然大规模语言模型已在各种自然语言处理应用中证明了其有效性,但它们在其他领域的全部潜力尚未得到充分研究。特别是,大规模语言模型在处理结构化数据(如图)时非常吃力,在处理特定领域查询(如生物学和化学)时也面临挑战。
为了填补这一空白,本文探讨了以下关键研究问题:"大规模语言模型能否有效处理分子预测任务?为了回答这个研究问题,我们确定了包括分类和回归预测任务在内的关键任务,并使用六个基准分子数据集(如 ogbg-molbace、ogbg-molbbbp、ogbg-molhiv、ogbg-molesol、ogbg-molfreesolv 和ogbg-molipo)进行调查。
如下图所示,分子可以用多种表示格式表示,包括 SMILES 字符串和几何结构。然而,现有大规模语言模型的一个主要局限是依赖于非结构化文本,这使它们无法将重要的几何结构作为输入。为了应对这一挑战,Fatemi 等人提出了一种将图形结构编码为文本描述的方法。在本文中,这种方法被扩展到将分子的原子属性和图形结构都编码到文本描述中,如下图所示。
然后,战略性地设计一系列提示,利用大规模语言模型的各种能力(如领域知识、ICL 能力)生成对分子任务的响应。然后,根据下游任务的一致性和性能对这些回答进行评估,并与针对分子预测任务设计的现有机器学习模型生成的回答进行比较。
研究表明,与现有的机器学习模型相比,大规模语言模型缺乏有竞争力的性能,尤其是专门用于捕捉分子几何形状的模型显示出较差的结果。ICL 技术可以大大提高大规模语言模型的性能,但仍与现有机器学习模型存在差距,这凸显了当前大规模语言模型直接处理分子任务的能力有限。
然后,我们探讨了将大规模语言模型的反应与现有机器学习模型相结合的可能性,并观察到在许多情况下都有显著的改进。结果表明,目前使用大规模语言模型作为领域知识增强器比让它们直接处理分子预测任务更有效。此外,研究还深入探讨了现有大规模语言模型在分子任务中的局限性和有前途的方法。希望这项工作能为设计由大规模语言模型增强的分子任务跨学科框架提供新的见解。
方法
本文旨在评估大规模语言模型在处理生物学领域结构化分子数据的挑战性预测任务时的性能。分子可以用多种格式表示,如 SMILES 字符串或几何结构。然而,现有的大规模语言模型受限于对非结构化文本的依赖,无法将重要的几何结构作为输入。为了克服这一限制,Fatemi 等人提出了一种将图形结构编码为文本描述的方法。本文进一步扩展了这种方法,将分子的原子属性和图形结构都编码到文本描述中。这样就可以将重要的分子特性纳入不同的预测任务中。
首先,让我们讨论一下问题的设置。首先,分子 G 表示为 G=(𝑆, 𝐺, 𝐷)其中,𝑆 是 SMILES 字符串,𝐺 是几何结构,𝐷 是对 G 生成的原子属性和图结构的描述,𝑦∈Y 表示 G 的标签。其中,分子集 M={G1,G2,… , G𝑚} ,让MT⊂M包含已知标签𝑦𝑣 的分子。目标是预测所有 G𝑦𝑢 的未知标签𝑦𝑢∈ M𝑡𝑒𝑠𝑡 (M𝑡𝑒𝑠𝑡 =M𝑢𝑡)。此外,MT 被分成两个子集:M𝑡𝑟𝑎𝑖𝑛和 M𝑣𝑎𝑙;M𝑡𝑟𝑎𝑖𝑛作为训练集,M𝑣𝑎𝑙 作为验证集。这种分离允许对模型参数进行微调,减少过拟合,并在将机器学习(ML)模型应用于测试数据集 M𝑡𝑒𝑠𝑡 之前对其进行验证。
提示工程的下一个目标是将问题 Q 以适当的形式格式化,以便大规模语言模型(𝑓𝐿𝑀)返回相应的答案𝐴。本文的目的是为大规模语言模型提供有用的、全面的分子知识,使其能够对测试数据集进行预测。微调和 LoRA 等方法可用于提高大规模语言模型的性能,但这些方法通常需要访问模型的内部结构,且计算成本高昂,因此通常难以应用于实际场景。因此,本文针对的情况是𝑓𝐿𝑀及其参数是固定的,并且𝑓𝐿𝑀是黑盒设置中唯一的文本输入和输出。随着专有模型数量的增加及其硬件要求的提高,这种设置尤为重要。
第一组提示(IF、IP、IE)提供分子的 SMILES 字符串𝑆 和描述𝐷,并要求大规模语言模型在没有预先训练或任务知识的情况下生成所需格式的输出。大规模语言模型的指令只提供背景信息。特别是,IF 要求大规模语言模型提供对预测任务有用的有意义的见解。
IPs 寻求对分子特性的预测,IEs 寻求进一步的解释,而大规模语言模型应阐明解释的生成过程,并提供有用的证据来理解预测。作为对 IF、IP 和 IE 描述的补充,还衍生出了 IFD、IPD 和 IED 提示。描述提供了更全面的分子图特征和结构信息,但会产生大量的标记,这可能会影响大规模语言模型中应答的一致性和约束性。
下面的提示集(FS)提供了少量任务和所需输出的示例,允许大规模语言模型从这些示例中学习,并在新输入上执行任务。该方法被归类为简单的语境内学习(ICL)技术,提示模板作为样本呈现;FS-𝑋 显示了提示中的𝑋 个语境知识实例。本文不讨论 FSD 提示,因为生成的描述包含大量标记,可能超出大规模语言模型的输入限制。
最近流行的 ICL 技术包括思维链(CoT)、思维树(ToT)、思维图(GoT)和检索增强生成(RaG)。从理论上讲,这些技术可以支持复杂的任务,并包含大量的知识背景。然而,早期实验表明,CoT、ToT 和 GoT 在分子特性预测任务中的表现明显较差。这归因于设计适当的链式思维需要扎实的专业知识;RaG 的实现不稳定,查询速度慢,性能不如 FS。作者认为这是由于信息检索系统的质量造成的,并计划在今后的研究中对此进行更详细的讨论。
此外,本文还介绍了为目标分子 M𝑡𝑠𝑡生成预测的预测模型。本文讨论了大规模语言模型(LLM)、语言模型(LM)和基于图神经网络(GNN)的方法,以提供分子信息的全面视角。
基于大语言模型的方法将根据上述模板生成的提示作为输入,并根据指定格式生成答案。其中,LLMSolo 将基于 IF、IP、IE 和 FS 模板的查询作为输入,而 LLMDuo 则将基于 IFD、IPD 和 IED 模板的查询作为输入。
语言模型根据可用的文本信息生成预测。例子包括大规模语言模型提供的 SMILES 字符串、描述和回复。实验结果表明,使用描述的语言模型的性能无法与其他设置相比。因此,本文采用了两种设计:一种是仅将 SMILES 字符串作为输入(LMSolo),另一种是由大规模语言模型提供 SMILES 字符串和响应(LMDuo)。
图神经网络模型是分子性质预测任务中最先进的方法,因为它们能有效捕捉分子的几何结构信息。此外,在语言模型的帮助下,可用的文本信息可以转换成附加特征,然后输入图神经网络模型。
特别是,语言模型的灵活性允许将文本信息转换为嵌入信息,从而使图神经网络模型能够灵活地纳入来自不同角度的信息。本文采用了三种设计,即 GNNSolo、GNNDuo 和 GNNTrio,如下图所示(转载)。
试验
本节介绍实证研究和分析,以评估大规模语言模型在分子预测任务中的有效性。分析的重点是特别具有挑战性的分子图性质预测任务。
首先介绍实验设置。我们使用了机器学习研究中常用的六个基准分子特性预测数据集。这些数据集包括:ogbg-molbace、ogbg-molbbbp、ogbg-molhiv、ogbg-molesol、ogbg-molfreesolv 和 ogbg-mollipo。下表概述了所收集的数据集。
为了研究大规模语言模型在分子预测任务中的有效性,我们还考虑了两类不同的机会学习模型:第一类是只将文本信息作为输入的语言模型,使用 DeBERTa;第二类是捕捉这些信息的图神经网络,我们考虑了两种经典的图神经网络变体 GCN 和 GIN。我们考虑了两种经典的图神经网络变体:GCN 和 GIN。这些框架如下图所示。
本文重点讨论大规模语言模型参数固定且系统可在黑盒环境中使用的情况。在这种情况下,Llama-2-7b、Llama-2-13b、GPT-3.5 和 GPT-4 被用作大规模语言模型,其中 GPT-3.5 是大多数实验中的主要大规模语言模型。这些模型来自官方 API 或官方实现。
机器学习预测模型是根据官方实施方案实现的。例如,我们采用 OGB 基准排行榜上的图神经网络模型变体的可用代码;对于 DeBERTa,我们采用官方实现并将其纳入管道。对于大型语言模型,我们调用由 OpenAI 提供的 API 或官方实现,并使用默认超参数设置。
接下来是评估过程的工作流程。下图给出了一个概览。传统的评估工作流程是评估模型在下游任务中的性能,而这次还分析了大规模语言模型的响应一致性。
大规模语言模型会造成知识错觉(幻觉),并可能产生偏离用户预期的回答。因此,我们计算了大规模语言模型中遵循所需格式的回答比例(回答一致性)。为了确保比较的公平性,我们采用了 Hu 等人提供的固定分割方法。这确保了不同实验中评估条件的一致性,并允许对不同模型进行有意义的比较。
初步研究还利用 ogbg-molhiv 数据集评估了各种大规模语言模型的效果。提示是根据模板(IP、IPD、IE、IED、FS-1、FS-2 和 FS-3)生成的。如下图所示,在所有评估指标上,GPT 模型都优于 Llama 模型,表现出一致的性能。
这表明,GPT 模型在分子预测任务中更具优势。然而,GPT-4 应用程序接口的使用成本是 GPT-3.5 的 20 倍,响应时间也比 GPT-3.5 慢 10 倍。因此,出于性能和计算效率的考虑,本文采用 GPT-3.5 作为默认的大规模语言模型。
下表显示了对六个数据集的分析结果。结果显示,LLM 一直不如三种 ML 模型。这表明,作为分子预测任务的专家,依赖大规模语言模型可能是不够的。有必要了解大规模语言模型的局限性,并探索提高预测准确性的替代方法。
目前的大规模语言模型依赖于非结构化文本,这限制了它们将分子几何结构作为输入的能力。为了解决这一限制,Fatemi 等人提出了一种将图形结构编码成文本的方法。然而,上表中的结果显示,在提示中添加解释可能不会提高性能,反而会降低性能。他们认为这是由于额外的标记分散了注意力,增加了大规模语言模型的复杂性。
下表(转载于后)中的结果显示,整合了几何结构的模型优于未整合几何结构的模型。现有的大规模语言模型很难将几何信息直接整合到提示中,因为生成的解释中的词块数量超过了限制条件。
论文指出,应对这一挑战对未来研究非常重要。可能的解决方案包括令牌管理技术、复杂的提示工程策略或可处理多种输入表示的替代模型架构。这将使大规模语言模型能够更好地捕捉分子的几何复杂性,并提高其在化学建模任务中的预测能力。
除了将大规模语言模型直接用于分子预测任务之外,我们还探索了将这些模型与现有机器学习模型集成的潜在优势。按照下图所示的框架(如下图所示),机器学习模型(如图神经网络)的输入特征与大规模语言模型生成的响应相辅相成。
下面两个表格中的结果表明,引入大规模语言模型的响应作为额外的输入特征可显著提高预测性能。这表明,使用大规模语言模型生成的响应可以补充传统机器学习模型捕获的信息,并提高预测精度。这种混合方法是推动分子性质预测技术发展的一个很有前途的方向。
下表 显示了分子图形特性在六个数据集(ogbg-molbace、ogbg-molbbbp、ogbg-molhiv、ogbg-molesol、ogbg-molfreesolv、ogbg-mollipo )上的预测性能,并遵循了 Duo 管道:ogbg-molbace、ogbg-molbbbp、ogbg-molhiv、ogbg-molesol、ogbg-molfreesolv、ogbg-mollipo 。它遵循 Duo 流程。分类任务用 ROC-AUC 进行评估(↑:越高越好),回归任务用 RMSE 进行评估(↓:越低越好)。每个模型的最佳性能以下划线表示,最佳总体性能以粗体表示。
下表还显示了分子图形特性在六个数据集(ogbg-molbace、ogbg-molbbbp、ogbg-molhiv、ogbg-molesol、ogbg-molfreesolv、ogbg-mollipo)中的预测性能,这些数据集遵循 Trio管道。分类任务用 ROC-AUC 进行评估(↑:越高越好),回归任务用 RMSE 进行评估(↓:越低越好)。每个模型的最佳性能以下划线表示,总体最佳性能以粗体表示。
总结
本文就大规模语言模型处理分子相关任务的能力提出了重要见解:对六个基准数据集的综合分析表明,大规模语言模型在预测分子任务中的竞争力低于现有的机器学习模型。显然,它们的竞争力低于学习模型。此外,研究人员还提出了利用大规模语言模型作为补充工具的潜力,表明将大规模语言模型与现有机器学习模型相结合可以提高预测准确性。这为大规模语言模型与传统机器学习模型的有效结合提供了一种很有前景的方法。
这项工作凸显了大规模语言模型目前在分子相关任务中的局限性,同时也为未来的研究开辟了新的方向。特别是,它探索了创新方法,将大规模语言模型与特定领域的知识和结构信息更好地整合在一起,从而有可能缩小观察到的性能差距。这篇论文让人们更好地了解了大规模语言模型在分子相关任务中的优缺点,并为其在化学、生物学及相关领域的实际应用提出了明智的策略建议。
除了分子预测任务,未来还有许多其他有前景的研究方向。特别是,解决大规模语言模型在理解分子几何结构方面的局限性非常重要。大规模语言模型无法捕捉此类结构的微妙之处,往往会导致结果不准确。克服这一局限,加强大规模语言模型对分子几何结构的理解,对于扩大大规模语言模型在分子任务中的应用至关重要。
尽管本文提出了将大规模语言模型与传统机器学习模型相结合的简单而有效的框架,但在这方面仍有进一步完善方法的空间。设计一个复杂的框架,将大规模语言模型与现有的机器学习模型无缝集成,是未来研究的一个很有前景的方向,可以提高预测性能和模型的可解释性。
开发专用于分子的大规模语言模型也被认为非常重要。尽管大规模语言模型在许多任务中不如基线模型,但它们能从有限的样本中推导出解决方案,这表明了通用智能在分子领域的潜力。不过,目前的大规模语言模型在化学任务中表现出明显的幻觉(晕轮),表明还有改进的余地。为了提高大规模语言模型解决实际化学问题的效率,我们需要继续开发大规模语言模型,并研究如何减少幻觉(晕轮)。
相关文章:
评估大语言模型(LLM)在分子预测任务能够理解分子几何形状性能
摘要 论文地址:https://arxiv.org/pdf/2403.05075 近年来,机器学习模型在各个领域越来越受欢迎。学术界和工业界都投入了大量精力来提高机器学习的效率,以期实现人工通用智能(AGI)。其中,大规模语言模型&a…...
2024-12-04OpenCV视频处理基础
OpenCV视频处理基础 OpenCV的视频教学:https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV视频捕获 在 OpenCV 中,cv2.VideoCapture() 是一个用于捕获视频流的类。它可以用来从摄像头捕获实时视频,或者从视频文件中读取帧。以下是如何使用…...
Springboot 2.7+解决跨域问题,到底是在SpringBoot中添加拦截器还是修改Nginx配置
文章目录 1摘要2 核心代码2.1 SpringBoot 全局跨域拦截器2.2 Nginx 配置跨域处理2.3 Nginx 和 SpringBoot 同时添加允许跨域处理会怎么样? 3 推荐参考资料 1摘要 跨域问题报错信息: Referrer Policy:strict-origin-when-cross-origin跨域问题是在前后端分离的情况…...
在Mac上安装多个Java版本
1、获取 Homebrew 的历史版本库 执行下面命令来获取 Homebrew 的历史版本库 brew tap homebrew/cask-versions2、安装java //java8 brew install java8 --cask//java11 brew install java11 --cask//java17 brew install --cask homebrew/cask-versions/microsoft-openjdk17…...
[小白系列]Ubuntu安装教程-安装prometheus和Grafana
Docker安装prometheus 拉取镜像 docker pull prom/prometheus 配置文件prometheus.yml 在/data/prometheus/建立prometheus.yml配置文件。(/data/prometheus/可根据自己需要调整) global:scrape_interval: 15s # By default, scrape targets ev…...
HTTP中GET和POST详细理解
HTTP中GET和POST 简单来说 GET 的语义是从服务器获取指定的资源,这个资源可以是静态的文本、页面、图片视频等。GET 请求的参数位置一般是写在 URL 中,URL 规定只能支持 ASCII,所以 GET 请求的参数只允许 ASCII 字符 ,而且浏览器…...
Vant UI Axure移动端元件库:提升移动端原型设计效率
UI框架的选择对于提升开发效率和用户体验至关重要。Vant UI,作为一款基于Vue.js的轻量、可靠的移动端组件库,自2017年开源以来,凭借其丰富的组件库、良好的性能以及广泛的兼容性,在移动端开发领域崭露头角,赢得了众多开…...
y3编辑器文档3:物体编辑器
文章目录 一、物体编辑器简介1.1 界面介绍1.2 复用(导入导出)1.3 收藏夹(项目资源管理)1.4 对象池二、单位2.1 数据设置2.2 表现设置2.3 单位势力和掉率设置2.4 技能添加和技能参数修改2.5 商店2.5.1 商店属性设置2.5.2 商店物品设置三、装饰物3.1 属性编辑3.2 碰撞体积四、…...
【ESP32】ESP-IDF开发 | DAC数模转换器+余弦波输出例程
1. 简介 ESP32上的数字模拟转换器 (DAC) 带有 2 个 8 位通道,因此可输出2路模拟信号。在低功耗模式下也可由 ULP 协处理器通过控制寄存器来实现完全控制。内部自带余弦波形生成器,可用于生成余弦波形/正弦波形,用户可调整频率、振幅、相位和直…...
java中的递归
大家好,今天我们来学习一下java中的递归,相信大家应该也对递归有一点了解吧,如果没有也没有关系,我们现在就来了解一下。 五、递归 自身中包含了自己,遇到的问题直接并不好解决,但是发现将原问题拆分成其子问题之后,子问题与原问…...
残差网络连接,使得输入与输出的尺寸一样
def forward(self, x):out self.layer1(x)out self.layer2(out)# 使用插值将输入x上采样至与layer2输出相同的尺寸x F.interpolate(x, size(out.size(2), out.size(3)), modebilinear, align_cornersFalse)# 确保x的通道数与out匹配x x[:, :out.size(1), :, :] # 选择前ou…...
SAP SD学习笔记18 - 投诉处理4 - 请求书订正依赖,投诉处理流程的总结
上一章讲了 Credit/Debit Memo依赖,Credit/Debit Memo。Credit Memo依赖 本质上是一张受注票;Credit Memo 本质上是一张请求票。 SAP SD学习笔记17 - 投诉处理3 - Credit/Debit Memo依赖,Credit/Debit Memo-CSDN博客 本章继续讲本图中的内容…...
记录下nginx接口代理配置问题
其中api和api1是前面定义的upstream,ip相同只是端口不同。 一开始/api1/直接 像api一样 proxy_pass http://api1这样是不行的,因为会代理到 后端的 /api1/...接口,而后端实际接口地址是 /api/..... 所以必须像上面写法才能将外网的 /api…...
flink-connector-mysql-cdc:01 mysql-cdc础配置代码演示
flink-connector-mysql-cdc: 01 mysql-cdc基础配置代码演示02 mysql-cdc高级扩展03 mysql-cdc常见问题汇总04 mysql-cdc-kafka生产级代码分享05 flink-kafka-doris生产级代码分享06 flink-kafka-hudi生产级代码分享 flink-cdc版本:3.2.0 flink版本&…...
001-Redis介绍
目录 一、Redis 简介 二、Redis 特性 三、Redis 下载安装 四、Redis 可视化管理界面工具 一、Redis 简介 1.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的 key-value 数据库。 2. 它在内存中存储数据,并提供了持久化功能,可以将数据保存到磁盘中,它是一种 NoS…...
数据结构---单链表
目录 一、概念 二、分类 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 三、接口实现 1.定义结构 2、申请节点 3、尾插 4、头插 5、尾删 6、头删 7.查找,也可以充当修改 8、在pos之前插入x 9、在pos之后插入x 编辑 10、删除pos位置 …...
从一个Bug谈前端响应拦截器的应用
一、问题场景 今天在开发商品管理系统时,遇到了一个有趣的问题:当添加重复的商品编号时,页面同时弹出了两条 "商品编号已存在" 错误提示: 这个问题暴露了前端错误处理机制的混乱,让我们从这个问题出发&…...
在做题中学习(78):数组中第K个最大元素
解法:快速选择算法 说明:堆排序也是经典解决topK问题的算法,但时间复杂度为:O(NlogN) 而将要介绍的快速选择算法的时间复杂度为: O(N) 先看我的前两篇文章,分别学习:数组分三块,随机选择基准…...
药剂学试卷
1【单选题】在倍氯米松气雾剂中加入四氟乙烷是用作 C A、 助悬剂 B、 乳化剂 C、 抛射剂 D、 防腐剂 2【单选题】一步制粒机可完成的工序是 B A、 粉碎→混合→制粒→干燥 B、 混合→制粒→干燥 C、 过筛→制粒→混合→干燥 D、 过筛→制粒→混合 3【单选题】小檗碱片包…...
3D 生成重建020-Gaussian Grouping在场景中分割并编辑一切
3D 生成重建020-Gaussian Grouping在场景中分割并编辑一切 文章目录 0 论文工作1 方法2 实验结果 0 论文工作 最近提出的高斯Splatting方法实现了高质量的实时三维场景新视角合成。然而,它仅仅关注外观和几何建模,缺乏细粒度的物体级场景理解。为了解决…...
力扣143.重排链表
题目描述 题目链接143. 重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值ÿ…...
本文介绍麒麟信安服务器系统(kylinsec)的安装。
本文介绍麒麟信安服务器系统(kylinsec)的安装。 下载 在开源欧拉官方找到商业版本的介绍找到相关产品: https://www.openeuler.org/zh/download/commercial-release/ 麒麟信安kylinsec下载地址: https://mirrors.kylinsec.com…...
单链表---回文结构
判断某一个单链表是否是回文结构,是返回true、不是返回false。 所谓的回文结构,就是类似对称结构: 对于奇数与偶数个结点均是如此。 那么就有思路:①找到链表的中间结点②逆置后半部分或前半部分③比较两者 ①找中间结点&#x…...
Java --- 反射
目录 一.什么是反射? 二.反射的核心方法和功能: 1.获取类的元信息: 2. 动态实例化对象: 3. 访问字段(包括私有字段): 4. 调用方法(包括私有方法): 5.…...
python编程Day12-属性和方法的分类
私有和公有 在python中 定义类的时候,可以给 属性和方法设置 访问权限,即规定在什么地方可以使用。 权限一般分为两种:公有权限、私有权限 公有权限 定义:直接定义的属性和方法就是公有的特点: 可以在任何地方访问和使…...
C#实现TCP客户端和服务器
本文将介绍如何使用C#实现TCP客户端和服务器的基本功能,客户端与服务器可以相互发送消息。 效果展示 服务器端实现 首先,我们实现TCP服务器。以下是服务器端所需的类和代码: using System; using System.Collections.Generic; using Syste…...
数据库编程: JDBC 中数据库驱动包的安装,配置及引用
目录 驱动包的下载安装 1. 去oracle 官方网站下载 2. github 的开源软件 3. 中央仓库(推荐使用这个) 驱动包的配置及引用 1. 第一步: 打开idea, 在 idea 中创建新的项目 2. 然后我们要在 jdbc_1 目录下创建一个新的目录包 3. 最后引入MySQL 的驱动包, 作为项目的依赖 尾…...
mx linux 在konsole终端中无法输入中文的解决方法
在mx linux系统中,浏览器可以正常输入中文,但是终端窗口中无法输入中文的解决方法,可以通过以下步骤安装 fcitx - frontend - qt5 组件: 1. 打开终端。你可以通过系统菜单或者快捷键(如 Ctrl Alt T )来…...
./configure 安装ngnix的命令
./configure 是一个在 Unix 和类 Unix 系统中常用的 shell 脚本命令,主要用于配置软件源代码包,以便进行编译和安装。这个命令通常在从源代码编译软件之前执行,它会自动检测系统的配置并生成适合该系统的 Makefile。 以下是 ./configure 脚本…...
网络安全之接入控制
网络安全之接入控制 身份鉴别 定义:验证主题真实身份与其所声称的身份是否符合的过程,主体可以是用户、进程、主机。同时也可实现防重放,防假冒。 分类:单向鉴别、双向鉴别、三向鉴别。 主题身份标识信息:密钥、用户名和口令、证书和私钥 I…...
2.1 关系模型
关系模型的基本概念 关系:二维表,通常在数据库中表现为一个表; 属性:关系中的一个列即为关系的一个属性; 域: 每个属性的取值范围即为该属性的域; 元组:关系中的一个行是一个元组…...
深入浅出 Go 语言 sync包中的互斥锁、条件变量
深入浅出 Go 语言 sync包中的互斥锁、条件变量 引言 在并发编程中,多个 Goroutine 同时访问共享资源可能会导致数据竞争(Race Condition),进而引发程序的不一致性或崩溃。为了确保并发程序的正确性和稳定性,Go 语言提…...
利用Python实现子域名简单收集
免责申明 本文仅是用于学习研究子域名信息收集,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《中华人民共和国网络安全法》【学法…...
npm发布插件到私有仓库保姆级教程
在开发项目的过程中,我们经常需要安装插件依赖,那么怎么把自己开发的组件封装成一个插件,并发布到npm 插件市场或者上传到私有仓库里面呢?今天总结下自己发布插件到私有仓库的记录: 一、创建组件 执行命令创建一个空…...
利用Java easyExcel库实现高效Excel数据处理
在Java应用程序中,处理Excel文件是一项常见任务,尤其是在需要读取、写入或分析大量数据时。easyExcel是一个基于Java的高性能Excel处理库,它提供了简洁的API和优化的性能,以简化Excel文件的处理。本文将指导您如何使用easyExcel库…...
基于Springboot的校园交友网站设计与实现
1.1 管理信息系统概述 管理信息系统是计算机在信息管理领域的一种实用技术。通过运用管理科学、数学和计算机应用的原理及方法,在符合软件工程规范的原则下,形成一套完整的理论和方法体系。是一个以人、计算机和其他外部设备组成的可以进行信息的收集、…...
android studio 读写文件操作(应用场景三)
android studio版本:2023.3.1 patch2 例程:filesaveandread 其实我写这个都是我记录我要做后个数独小游戏,每一个都是为了解决一个问题。即是分享也是备忘,反正我什么都不会,就是一顿瞎改,不行就研究。这…...
小程序 —— Day1
组件 — view和scroll-view view 类似于HTML中的div,是一个块级元素 案例:通过view组件实现页面的基础布局 scroll-view 可滚动的视图区域,用来实现滚动列表效果 案例:实现纵向滚动效果 scroll-x属性:允许横向滚动…...
使用 PyTorch 和 Horovod 来编写一个简单的分布式训练 demo
使用 PyTorch 和 Horovod 来编写一个简单的分布式训练 demo,可以帮助你理解如何在多GPU或多节点环境中高效地训练深度学习模型。Horovod 是 Uber 开发的一个用于分布式训练的框架,它支持 TensorFlow、Keras、PyTorch 等多个机器学习库。下面是一个基于 P…...
【Linux】以 CentOS 为例备份与恢复/home分区,并调整分区容量
在 Linux 系统中,这里举例对 /home 目录进行备份、重建和恢复操作,并调整分区大小、更换文件系统或修复损坏的分区等。 〇、前提条件 确认文件系统类型为 xfs。 确认 /home 目录确实没有重要数据,或者已经做好了数据备份。 确保在执行这些…...
OpenAI 12Days 第二天 强化微调(RFT):推动语言模型在科学研究中的应用
OpenAI 12Days 第二天 强化微调(RFT):推动语言模型在科学研究中的应用 文章目录 OpenAI 12Days 第二天 强化微调(RFT):推动语言模型在科学研究中的应用RFT的工作原理与应用领域案例研究:基因突变…...
神经网络的梯度反向传播计算过程,举例说明
目录 神经网络的梯度反向传播计算过程 网络结构 权重和偏置 激活函数 前向传播 损失函数 反向传播 参数更新 举例 神经网络的梯度反向传播计算过程 为了说明神经网络的梯度反向传播计算过程,我们考虑一个简单的全连接网络,该网络有一个输入层、一个隐藏层和一个输出…...
定点数乘法:补码一位算法(booth算法)
方法 初始化 将被乘数A放在寄存器A中。 将乘数B放在寄存器B中,并在最低位添加一个额外的位Q(-1) 0。 结果寄存器P初始化为0,长度为2n位。 迭代过程(重复n次) 对于i从0到n-1: 检查乘数B的最后两位(B 和…...
robots.txt
robots.txt 文件是网站管理者用来告知搜索引擎爬虫(也称为机器人或蜘蛛)哪些页面可以抓取,哪些页面不应该被抓取的一种文本文件。它位于网站的根目录下,并且文件名必须全部小写。这个文件对于SEO(搜索引擎优化…...
如何用 JavaScript 操作 DOM 元素?
如何用 JavaScript 操作 DOM 元素?——结合实际项目代码示例讲解 在前端开发中,DOM(文档对象模型)操作是与页面交互的核心。通过 DOM 操作,开发者可以动态地修改页面内容、响应用户交互、控制样式等。JavaScript 提供…...
vue3使用后端传递的文件流进行文件预览
文章目录 一、 注意事项1、responseType设置为:arraybuffer2、Blob设置type,来源于后台封装的response.headers[content-type]3、使用encodeURIComponent(),避免符号影响文件名 二、java接口 一、 注意事项 1、responseType设置为࿱…...
ubuntu20.04设置远程桌面
安装xrdp sudo apt install xrdp 2、 检查xrdp状态 sudo systemctl status xrdp3、(若为Ubuntu 20)添加xrdp至ssl-cert sudo adduser xrdp ssl-cert 4、重启服务 sudo systemctl restart xrdp最后可以远程了,注意一个账号只能一个登录...
在vue3里使用scss实现简单的换肤功能
实现的换肤功能:主题色切换、亮色模式和暗黑模式切换、背景图切换 主题色就是网站主色,可以配置到组件库上面;亮色模式又分为两种风格:纯白风格和背景图风格,不需要背景图的话可以删掉这部分逻辑和相关定义;…...
flyway执行sql遇到变量执行报错解决
前两天在公司使用flyway工具执行sql时,开发写的sql里面有变量,于是这个flyway工具不识别这个变量直接报错,不接着往下执行了。报错信息如下: flyway工具执行sql报错 information: No value provided for placeholder: ${ep1} 于是…...
解谜类游戏《迷失岛2》等如何抽象出一套通用高效开发框架?
解谜类游戏以精妙的谜题设计和引人入胜的故事叙述为特点,考验着玩家的智慧与观察力。《迷失岛2》与《南瓜先生2九龙城寨》正是这一领域的佳作。游戏以独特的艺术风格和玩法设计吸引了大量玩家,而它们背后隐藏着一套强大的框架。 上海胖布丁游戏的技术总…...