当前位置: 首页 > news >正文

LLM少样本示例的上下文学习在Text-to-SQL任务中的探索

导语

本文探索了如何通过各种提示设计策略,来增强大型语言模型(LLMs)在Few-shot In-context Learning中的文本到SQL转换能力。通过使用示例SQL查询的句法结构来检索演示示例,并选择同时追求多样性和相似性的示例可以提高性能,同时,LLMs也从与数据库相关的知识增强中受益。

  • 会议:EMNLP 2023 Findings
  • 标题:Enhancing Few-shot Text-to-SQL Capabilities of Large Language Models: A Study on Prompt Design Strategies
  • 链接:https://arxiv.org/abs/2305.12586

1 引言

文本到SQL解析作为信息检索系统的关键组成部分,将自然语言查询转化为可从数据库中检索相关信息的SQL语句。近年来,神经符号设计方法结合了神经网络的功能和符号逻辑的严密性,成为提高系统可靠性和鲁棒性的首选技术。本文的重点在于探索和验证各种提示设计策略,旨在提升大型语言模型在文本到SQL解析任务中的表现,并特别关注于利用SQL查询的句法结构来改进示例选择,实验结果证明了这种方法在提升性能方面的有效性。同时也发现LLMs在某些情况下能从数据库知识增强中受益。本研究在Spider数据集上获得的执行准确度高达84.4,超越了目前最先进的系统和最佳微调系统,突显了所提策略的有效性和实用性

image.png

2 方法

2.1 示例选择

该模块的目标是从上下文的示例池中选择一部分标注示例。可以使用的方法如

  • 随机选取:从示例池中随机选择。
  • 基于kNN的增强示例选择(KATE) :利用句子编码器将所有示例转换为连续向量,并根据输入与示例池的相似度选择k个最相似的示例。

本文提出使用输出SQL查询来选择示例,而不是使用输入问题。这是因为作者认为Text-to-SQL中SQL语句包含比输入问题中更明确的关于问题结构的信息。此外,与只能转换成连续语义向量的自然语言问题不同,SQL查询可以根据其语法转换成离散特征向量。为此,首先将所有池实例的SQL查询转换成离散语法向量。然后,这些元素被映射到二进制特征,表示它们在查询中的存在。推理时,首先使用初步预测器生成SQL查询草稿。然后,应用相同的过程将这个草稿查询转换成离散向量,用于检索演示示例。

作者提出了一种与之前不同的演示选择策略,即寻求平衡演示的相似性和多样性,这是通过将给定示例的表示从表示问题语义的连续值向量更改为捕获SQL语法的离散值向量来实现的。为此,首先将标注示例池划分为表示不同类别的不相交分区(基于难度等级)。给定一个测试实例,使用初步预测器生成一个草稿SQL查询,并根据其类别,检索属于相关分区的候选示例。接下来对示例的离散向量实施k-means聚类,选择靠近每个聚类中心的k个多样化示例用于构建提示。演示选择策略过程概述在算法1中。

2.2 指令中的架构表示

指令对于设计提示至关重要,因为它们通过阐明提供的资源如何帮助推理过程来定义任务。本文主要关注于确定指令中表示结构化知识源的最佳方式,并确定可以增强推理过程的补充资源。

作者首先改变结构化知识的线性化方式。在以前的研究中,诸如数据库或表之类的结构化知识源已被线性化为“文本”序列。相反,本文提议使用“代码”序列来表示数据库,特别是用于最初构建表的CREATE查询,如附录中的清单1和2所示。这种线性化方法为每列提供了数据类型信息,并包含了数据库中所有外键约束的细节。此外,本文修改了指令中的其他资源,比如数据库中的问题和示例条目,使它们符合代码序列样式,通过将它们作为注释附加。

image.png

首先通过在整个数据库上下文中阐述每个类和属性的含义来增强每个类和属性的语义。具体来说,使用OpenAI的gpt-3.5-turbo来为每个表中的每列生成自然语言定义,考虑到所有其值和其他列。然后,将这些定义以块注释的形式附加到输入中,或者将它们作为内联注释插入到CREATE查询中。

此外,作者建议通过提供一个概述表之间连接的实体关系摘要来增强数据库结构的表示,以指定它们如何连接。如附录中的图9所示,一个数据库的实体关系图被用来列举不同表之间的所有可能路径。这些路径随后根据它们各自的长度以降序排列。这个总结在实验中被证明对于需要组合多个表的测试实例是有用的。清单5进一步展示了如何安排它们来构建提示。

image.png

image.png

2.3 文本到SQL的综合策略

实验发现,通过上下文学习(ICL)训练的模型对示例数量非常敏感,不同数量的示例导致模型性能表现出显著差异。为了在比较不同提示方法时得出有意义的结论,作者展示了具有相同配置但示例数量不同的模型的平均值和标准差。此外,采用多数投票法对表现多样的模型进行决策。具体来说,获取不同模型的贪婪解码预测结果,通过确定性数据库管理系统(DBMS)排除执行错误的预测,然后选择获得多数票的预测。其他整合方法,如自我一致性采样,也是可行的,但本文将其探索留待未来研究。详细结果可在附录的图10、11、12中查看。

作者提出了以下构建文本到SQL任务提示的程序。首先,给定一组注释示例A,建立一个将池子划分为不相交分区 A α , A β A_α , A_β Aα,Aβ 等的分类,每个分区包含SQL查询语法结构相对相似的示例。接下来,应用第2.1节中详述的k-means策略,为每个分区 A j A_j Aj 获取多样化的示例 D j D_j Dj。对于每个示例,通过将数据库转换成多个CREATE查询并增加与模式相关的知识来构建示例。在推理过程中,使用初步模型生成SQL查询草案,用于确定问题类别,进而确定构建提示的相应 D j D_j Dj。使用 D j D_j Dj中不同数量的样本获得多个预测,并通过多数投票得出最终预测。该方法的详细信息展示在算法2中。

image.png

3 实验

3.1 实验设置

数据集

  • Spider:复杂文本到SQL问题的跨领域数据集。
  • Spider-Syn:使用同义词替换Spider问题中的模式相关词汇,评估系统的鲁棒性。
  • Spider-DK:在Spider示例中添加领域知识,评估跨领域泛化能力。
  • Spider-Realistic:去除列名的明确提及,模拟更现实的文本-表格对齐设置。

模型

  • 使用Codex(基于GPT-3的变体)和ChatGPT (gpt-3.5-turbo)来评估不同ICL策略。
  • Codex在1到10-shot范围内提供结果,而ChatGPT因最大上下文长度限制仅提供1到5-shot的结果。

评估指标

  • 使用执行准确度作为所有实验的评估指标。

Baseline

主要分为Few-shot和Zero-shot上的实验,包括:

  • Few-shot
    • Random sampling ®: 从样本池中随机选择示例。
    • Similarity sampling (S)
    • Diversity sampling (D): 从样本池的k-Means聚类中选择多样化示例。
    • Similarity-Diversity sampling (SD): 根据算法1选择示例。
    • SD + schema augmentation (SA): 通过架构知识增强指令(语义增强或结构增强)。
    • SD + SA + Voting: 根据算法2描述的综合策略。
  • Zero-shot
    • Baseline - DB as text-seq: 文本到SQL任务的标准提示,其中结构化知识被线性化为文本序列。
    • Baseline - DB as code-seq: 通过将结构化知识源线性化为多个SQL CREATE查询来改进指令。
    • Baseline - DB as code-seq + SA: 通过架构知识增强指令。

image.png

3.2 主要结果

作者在code-davinci-002和gpt-3.5-turbo模型上测试了不同示例选择策略的效果。主要发现如下:

  • 相似性和多样性目标的采样过程:结合相似性和多样性目标在采样过程中可以获得更好的性能。
  • 架构表示的增强:在指令中加入架构表示(就是Listing 5中的最下面的那几行注释)可以提高性能。
  • 投票集成策略:结合不同示例数量模型的结果进行投票,可显著提高整体性能。
  • 架构增强在零次学习中的效果:将数据库转换为文本序列和CREATE查询的两种提示线性化方法进行了比较。后者显示出明显的性能提升。
  • 两种架构增强技术的对比:一种在表中的每列中添加语义信息,另一种加入实体关系知识。结果表明,结构增强(添加本体概要)在Few-shot设置中为Codex带来更大的改进,而语义增强(作为块注释添加列概要)在Zero-shot设置中对Codex以及Few-shot设置中对ChatGPT更有益。

image.png

研究显示,通过探索和实施不同的提示设计策略,可以显著提高LLMs在文本到SQL任务中的性能。这些策略不仅包括示例选择的优化,还包括架构表示的增强和投票集成方法的应用。通过这些策略,为利用LLMs在文本到SQL领域中的应用提供了有力的实证支持。

4 分析

4.1 基于预测语法的检索

现有的示例选择方法依赖于问题和数据库的语义表示。本文提出了一种专门针对代码生成任务的替代方法,该方法侧重于解决方案代码的语法。检查了不同策略生成的提示中的语法覆盖率和语法相似度。语法覆盖率是通过计算语法元素(关键字、运算符和标识符)的出现次数并将其除以所有语法元素的总数来计算的。另一方面,语法相似度是通过计算预测的SQL的离散向量表示与所选示例的gold SQL向量之间的欧几里得距离的平均值来测量的。如表1所示,这两个度量都有助于选择示例的质量。此外,两个度量的简单求和表明与系统性能的相关性,如图3所示。

作者通过以下理由论证本文策略的有效性:

  1. 在注释示例池中问题结构的多样性有限的情况下,某些测试问题可能缺乏可用于检索的相似示例;
  2. 问题/数据库的语义表示和距离度量本身不支持不同问题结构的封装和比较,而SQL语法提供了直接测量问题结构的方法。

鉴于这些限制,最佳策略是选择相似的示例,同时确保尽可能覆盖许多语法示例,以减轻基于相似性检索的潜在失败。

4.2 检索方法的比较分析

图4展示了各种基于相似度的检索方法性能的比较分析。此次调查的主要变量是为每个示例提取的表示,重点提取和比较以下嵌入类型:

  1. 由Sentence-BERT,RoBERTa-base、text-embedding-ada-002生成的问题嵌入;
  2. 结合问题和数据库,通过下面的方法获取embedding:
    • 使用单个模型(即在Spider上微调过的T5-base和text-embedding-ada-002)编码线性化文本序列的数据库schema或CREATE查询,
    • 使用不同模型,特别是RoBERTa-base用于编码问题和CodeT5-base或CodeBERTbase用于编码数据库;
  3. 预测SQL的语法嵌入,通过二进制编码来表示SQL语法元素的存在或量化它们的出现次数;
  4. 使用text-embedding-ada-002编码问题、数据库和预测SQL的嵌入。

关于Text-to-SQL任务的基于相似度的检索方法,可以得出以下结论:

  1. 问题本身就能有效地代表不同的示例用于检索;
  2. 与text-embedding-ada-002相比,RoBERTa-base提供了更好的比较嵌入;
  3. 可以使用未对Text-to-SQL示例进行微调的模型进行基于相似度的检索,同时仍然可以实现与微调模型相当的性能;
  4. 将数据库线性化为SQL查询有助于提取更好的嵌入。

image.png

此外,作者还对用于基于多样性的示例选择的多个嵌入进行了比较,包括编码问题、数据库和预测SQL的语义的嵌入,以及捕获预测SQL的语法特征的嵌入。如图5所示,预测SQL的语法嵌入作为基于多样性检索目的对不同示例进行对比的最有效基础。

4.3 架构增强

图6展示了对指令应用的各种架构增强的结果。可以观察到,在少数示例设置中改进不明显;然而,在零示例设置中,将所有表格列的描述纳入的语义增强被证明是有益的。

image.png

image.png

4.4 效果分析

为了确定最受益或最不受益于本文提出的方法的问题类型,本文还评估了不同模型在Spider数据集内各种问题类别的性能。如图7所示,本文的相似性-多样性策略对大多数问题类型都是有益的,除了中等难度的部分,其中包括最多样化的问题。这是相似性基于检索失败和语法覆盖变得更加关键的情况。此外,本文观察到,对于简单和中等难度的部分,增加架构语义更有效(尽管变异性很高),而对于更复杂的问题,增加架构结构更有效。这一观察使本文假设,具有挑战性的问题需要解决更多的表格,因此需要更全面地理解整个数据库结构。最后,综合方法在所有示例中都是有效的,特别是对于那些困难的问题提供了增加的好处。

4.5 初步模型

为评估用于生成草稿SQL的初步模型选择对本文方法的影响,本文对初步模型性能不同的方法进行了测试。图8显示,初步模型对相似性-多样性或综合方法的性能影响相对较小,随着使用更高性能的初步模型而逐渐改善。

image.png

5 相关工作

5.1 上下文学习(In-context Learning)

5.1.1 Prompt组织规范

提示组织探究选择和组织上下文示例的任务,这是提高模型性能的关键方面。多项研究提出了衡量示例适用性的指标,以及确定它们的最优排序。Liu等建议通过在嵌入空间采用k-NN方法,选择与测试示例语义相似的示例。Rubin等基于对比学习训练了一个提示检索器,其中示例被分类为正面或负面,如果它们在语言模型生成目标输出时,根据检索的示例和输入,排在概率的前k或后k位。Zhang等建议使用Q Learning来主动选择演示。Su引入了Vote-k方法,用于选择多样化且具代表性的示例进行池构建,然后基于相似性进行检索。

5.1.2 提示格式化

提示工程学关注于探究提示结构对下游任务性能的影响。对于涉及多步推理和较高复杂性的任务,已经开发了思维链提示方法。这种方法涉及将生成过程分布在多个步骤上,并使用模型自身的中间过程作为输入。Wang提出了采样多种不同的思维链,然后通过边际化所有可能的推理路径来选择最一致的答案。Press建议让LLMs提出后续问题是构建思维链过程的有效方式。Zhou提出了一种自动识别最佳提示的方法,通过在模型生成的指令池中搜索,给它们打分,并选择得分最高的提示。

5.2 与表格相关任务的编码

对结构化数据的编码对于各种与表格相关的任务至关重要,包括表格问答和文本到SQL。在表格问答的情况下,通常使用的方法是首先使用弱监督表格解析器来提取相关的表格单元,如有必要,再对检索到的数据应用相应的聚合操作符。例如,TAPAS在BERT模型中引入了额外的嵌入层,以捕获表格结构和数值信息。为了得到给定问题的答案,TAPAS使用两个分类层来预测聚合函数和相应的表格单元。更近期的工作将表格问答视为序列生成任务。他们将表格平铺成文本序列,并使用特殊标记来指示表格结构,同时对表格数据进行编码。文本到SQL是一项将自然语言问题转换为可以在数据库上执行的SQL查询的任务。在这项任务中,表格架构以输入形式提供。编码器应该能够将自然语言问题中的实体提及与架构对齐,同时理解架构结构信息(例如,外键/主键和列类型)。

6 总结

本研究探索了用于文本到SQL领域语义解析任务的各种提示设计方法。本文提出了一种利用示例的SQL语法结构来选择示例演示的方法,强调多样性和相似性作为采样目标。此外,本文发现大型语言模型(LLMs)从与数据库相关的知识增强中受益。未来的研究可以基于本文的发现来检验本文方法在其他领域的可转移性。通过持续改进LLMs在语义解析方面的能力,本文旨在为开发更准确、更稳健和更易理解的问答系统做出贡献。

相关文章:

LLM少样本示例的上下文学习在Text-to-SQL任务中的探索

导语 本文探索了如何通过各种提示设计策略,来增强大型语言模型(LLMs)在Few-shot In-context Learning中的文本到SQL转换能力。通过使用示例SQL查询的句法结构来检索演示示例,并选择同时追求多样性和相似性的示例可以提高性能&…...

双非本科准备秋招(19.2)—— 设计模式之保护式暂停

一、wait & notify wait能让线程进入waiting状态,这时候就需要比较一下和sleep的区别了。 sleep vs wait 1) sleep 是 Thread 方法,而 wait 是 Object 的方法 2) sleep 不需要强制和 synchronized 配合使用,但 wait 强制和 s…...

使用SpringMVC实现功能

目录 一、计算器 1、前端页面 2、服务器处理请求 3、效果 二、用户登陆系统 1、前端页面 (1)登陆页面 (2)欢迎页面 2、前端页面发送请求--服务器处理请求 3、效果 三、留言板 1、前端页面 2、前端页面发送请求 &…...

spring aop实现接口超时处理组件

文章目录 实现思路实现代码starter组件 实现思路 这里使用FutureTask,它通过get方法以阻塞的方式获取执行结果,并设定超时时间: public V get() throws InterruptedException, ExecutionException ;public V get(long timeout, TimeUnit un…...

c++设计模式之装饰器模式

作用 为现有类增加功能 案例说明 class Car { public:virtual void show()0; };class Bmw:public Car { public:void show(){cout<<"宝马汽车>>"<<endl;} };class Audi:public Car { public:void show(){cout<<"奥迪汽车>>&q…...

WordPress如何实现随机显示一句话经典语录?怎么添加到评论框中?

我们在一些WordPress网站的顶部或侧边栏或评论框中&#xff0c;经常看到会随机显示一句经典语录&#xff0c;他们是怎么实现的呢&#xff1f; 其实&#xff0c;boke112百科前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供…...

【退役之重学前端】vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…...

[linux]-总线,设备,驱动,dts

1. 总线BUS 在物理层面上&#xff0c;代表不同的工作时序和电平特性&#xff1a; 总线代表着同类设备需要共同遵守的工作时序&#xff0c;不同的总线对于物理电平的要求是不一样的&#xff0c;对于每个比特的电平维持宽度也是不一样&#xff0c;而总线上传递的命令也会有自己…...

python3实现gitlab备份文件上传腾讯云COS

gitlab备份文件上传腾讯云COS 脚本说明脚本名称&#xff1a;upload.py 假设gitlab备份文件目录&#xff1a;/opt/gitlab/backups gitlab备份文件格式&#xff1a;1706922037_2024_02_06_14.2.1_gitlab_backup.tar1.脚本需和gitlab备份文件同级目录 2.根据备份文件中的日期判断…...

292.Nim游戏

桌子上有一堆石头。 轮流进行自己的回合&#xff0c; 你作为先手 。 每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数&#xff0c;来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可…...

Spring和Spring Boot的区别

Spring 是一个轻量级的 Java 开发框架&#xff0c;它提供了一系列的模块和功能&#xff0c;例如 IoC&#xff08;控制反转&#xff09;、AOP&#xff08;面向方面编程&#xff09;、数据库访问、Web 开发等。Spring 的目标是使 Java 开发更加简单、高效和可维护。 Spring Boot …...

备战蓝桥杯---动态规划(理论基础)

目录 动态规划的概念&#xff1a; 解决多阶段决策过程最优化的一种方法 阶段&#xff1a; 状态&#xff1a; 决策&#xff1a; 策略&#xff1a; 状态转移方程&#xff1a; 适用的基本条件 1.具有相同的子问题 2.满足最优子结构 3.满足无后效性 动态规划的实现方式…...

FPGA_ip_pll

常使用插件管理器进行ip核的配置&#xff0c;ip核分为计算&#xff0c;存储&#xff0c;输入输出&#xff0c;视频图像处理&#xff0c;接口&#xff0c;调试等。 一 pll ip核简介 pll 即锁相环&#xff0c;可以对输入到fpga的时钟信号&#xff0c;进行分频&#xff0c;倍频&…...

【实验3】统计某电商网站买家收藏商品数量

文章目录 一、实验目的和要求∶二、实验任务∶三、实验准备方案,包括以下内容:实验内容一、实验环境二、实验内容与步骤(过程及数据记录):三、实验结果分析、思考题解答∶四、感想、体会、建议∶一、实验目的和要求∶ 现有某电商网站用户对商品的收藏数据,记录了用户收藏…...

【Qt】Android上运行keeps stopping, Desktop上正常

文章目录 问题 & 背景背景问题 解决方案One More ThingTake Away 问题 & 背景 背景 在文章【Qt】最详细教程&#xff0c;如何从零配置Qt Android安卓环境中&#xff0c;我们在Qt中配置了安卓开发环境&#xff0c;并且能够正常运行。 但笔者在成功配置并完成上述文章…...

算法学习打卡day47|单调栈系列题目

单调栈题目思路 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置&#xff0c;此时我们就要想到可以用单调栈了。时间复杂度为O(n)。单调栈的本质是空间换时间&#xff0c;因为在遍历的过程中需要用一个栈来记录右边第一个比当前元…...

Maven构建OSGI+HttpServer应用

Maven构建OSGIHttpServer应用 官网&#xff08;https://eclipse.dev/equinox/server/http_in_equinox.php&#xff09;介绍有两种方式&#xff1a; 一种是基于”org.eclipse.equinox.http”包的轻量级实现&#xff0c;另一种是基于”org.eclipse.equinox.http.jetty”包&#…...

chrome扩展插件常用文件及作用

Chrome扩展通常包含以下常用文件及其作用&#xff1a; manifest.json&#xff1a; 描述了扩展的基本信息&#xff0c;如名称、版本、权限、图标等。定义了扩展的各种组件和功能&#xff0c;包括后台脚本、内容脚本、页面、浏览器动作按钮等。 background.js&#xff1a; 后台脚…...

PdfFactory Pro软件下载以及序列号注册码生成器

PdfFactory Pro注册机是一款针对同名虚拟打印机软件所推出的用户名和序列号生成器。PdfFactory Pro是一款非常专业的PDF虚拟打印软件&#xff0c;通过使用这款注册机&#xff0c;就能帮助用户免费获取注册码&#xff0c;一键激活&#xff0c;永久免费使用。 pdffactory7注册码如…...

jsp康养小镇管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP康养小镇管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&a…...

Android 无操作之后定时退出

android定时器监用户听对页面无操作5分钟退出登录实现 - 简书 private long advertisingTime 600000;///定时结束退出登录10分(分钟)600000毫秒public CountDownTimer countDownTimer;Overrideprotected void onResume() {super.onResume();//启动定时if (isTimedExitApp()) …...

CMS 检测神器:CMSeek 保姆级教程(附链接)

一、介绍 CMSeek&#xff08;Content Management System Exploitation and Enumeration Toolkit&#xff09;是一款用于检测和利用网站上可能存在的内容管理系统&#xff08;CMS&#xff09;漏洞的开源工具。它旨在帮助安全研究人员和渗透测试人员识别目标网站所使用的CMS&…...

oracle 启动命令以及ORA-01033问题处理、删除归档日志

1 启动数据库:startup 2 关闭数据库&#xff1a;Shutdown immediate 3 查看监听状态&#xff1a;lsnrctl status 4 启动监听&#xff1a;lsnrctl start 5 停止监听&#xff1a;lsnrctl stop 常见问题 1、在服务器重启后会出现&#xff0c;Oracle ORA-01033: ORAC…...

【大模型上下文长度扩展】MedGPT:解决遗忘 + 永久记忆 + 无限上下文

MedGPT&#xff1a;解决遗忘 永久记忆 无限上下文 问题&#xff1a;如何提升语言模型在长对话中的记忆和处理能力&#xff1f;子问题1&#xff1a;有限上下文窗口的限制子问题2&#xff1a;复杂文档处理的挑战子问题3&#xff1a;长期记忆的维护子问题4&#xff1a;即时信息检…...

谷歌seo搜索引擎优化有什么思路?

正常做seo哪有那么多思路&#xff0c;其实就那么几种方法&#xff0c;无非就关键词&#xff0c;站内优化&#xff0c;外链&#xff0c;可以说万变不离其宗&#xff0c;但如果交给我们&#xff0c;你就可以实现其他的思路&#xff0c;或者说玩法 收录可以说是一个网站的基础&…...

腾讯云与IBM共同打造“高性能计算服务解决方案“

腾讯云与IBM共同打造"高性能计算服务解决方案" 腾讯云与IBM达成战略合作&#xff0c;对优势产品及服务进行深度集成&#xff0c;基于腾讯云产品及服务&#xff0c;共同打造"腾讯-IBM混合云与人工智能解决方案"。双方通过更为紧密的嵌入式解决方案的深度合…...

【SparkML实践7】特征选择器FeatureSelector

本节介绍了用于处理特征的算法&#xff0c;大致可以分为以下几组&#xff1a; 提取&#xff08;Extraction&#xff09;&#xff1a;从“原始”数据中提取特征。转换&#xff08;Transformation&#xff09;&#xff1a;缩放、转换或修改特征。选择&#xff08;Selection&…...

LeetCode983. Minimum Cost For Tickets——动态规划

文章目录 一、题目二、题解 一、题目 You have planned some train traveling one year in advance. The days of the year in which you will travel are given as an integer array days. Each day is an integer from 1 to 365. Train tickets are sold in three differen…...

百卓Smart管理平台 uploadfile.php 文件上传漏洞【CVE-2024-0939】

百卓Smart管理平台 uploadfile.php 文件上传漏洞【CVE-2024-0939】 一、 产品简介二、 漏洞概述三、 影响范围四、 复现环境五、 漏洞复现手动复现小龙验证Goby验证 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工…...

项目中常用的一些数据库及缓存

1、常见的开发工具介绍 MySQL: MySQL是一种流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典MySQL AB公司开发&#xff0c;并在后来被Sun Microsystems收购&#xff0c;最终成为Oracle公司的一部分。MySQL广泛用于各种Web应用程序和大型企业应…...

MoE-LLaVA:具有高效缩放和多模态专业知识的大型视觉语言模型

视觉和语言模型的交叉导致了人工智能的变革性进步&#xff0c;使应用程序能够以类似于人类感知的方式理解和解释世界。大型视觉语言模型(LVLMs)在图像识别、视觉问题回答和多模态交互方面提供了无与伦比的能力。 MoE-LLaVA利用了“专家混合”策略融合视觉和语言数据&#xff0…...

【Java】ArrayList和LinkedList的区别是什么

目录 1. 数据结构 2. 性能特点 3. 源码分析 4. 代码演示 5. 细节和使用场景 ArrayList 和 LinkedList 分别代表了两类不同的数据结构&#xff1a;动态数组和链表。它们都实现了 Java 的 List 接口&#xff0c;但是有着各自独特的特点和性能表现。 1. 数据结构 ArrayList…...

RabbitMQ-4.MQ的可靠性

MQ的可靠性 4.MQ的可靠性4.1.数据持久化4.1.1.交换机持久化4.1.2.队列持久化4.1.3.消息持久化 4.2.LazyQueue4.2.1.控制台配置Lazy模式4.2.2.代码配置Lazy模式4.2.3.更新已有队列为lazy模式 4.MQ的可靠性 消息到达MQ以后&#xff0c;如果MQ不能及时保存&#xff0c;也会导致消…...

编程相关的经典的网站和书籍

经典网站&#xff1a; Stack Overflow&#xff1a;作为全球最大的程序员问答社区&#xff0c;Stack Overflow 汇聚了大量的编程问题和解答&#xff0c;为程序员提供了极大的帮助。GitHub&#xff1a;全球最大的开源代码托管平台&#xff0c;程序员可以在上面共享自己的项目代码…...

Java代码实现基数排序算法(附带源码)

基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。由于整数也可以表达字符串&#xff08;比如名字或日期&#xff09;和特定格式的浮点数&#xff0c;所以基数排序也不是只能使用于整数。 1. 基数排序…...

基于python+django,我开发了一款药店信息管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;药品管理、分类管理、顾客管理、用户管理、日志管理、系统信息模块。 代码结构 server目录是后端代码web目录是前端代码 部署运行…...

VSCODE使用ssh远程连接时启动服务器失败问题

错误情况 ping服务器的ip可通并且使用terminal可以ssh连接到远程服务器。但使用vscode的remote-ssh时&#xff0c;在「输出」栏出现了一直报 Waiting for server log… 的情况&#xff01; 解决方法一 重置服务器设置&#xff0c;包括以下手段&#xff1a; 1.清理服务器端的…...

easyexcle 导出csv

导入jar <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.3</version></dependency>代码 private static List<List<String>> head() {List<List<String>&g…...

Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(一)

一、序言 gnome-builder构建器是gnome程序开发的集成环境&#xff0c;支持主力语言C, C, Vala, jscript, python等&#xff0c;界面以最新的 gtk 4.12 为主力&#xff0c;将其下版本的gtk直接压入了depreciated&#xff0c;但gtk4.12与普遍使用的gtk3有很大区别&#xff0c;原…...

ESP32QRCodeReader库使用,ESP32-CAM识别二维码并向自写接口发出请求确认身份。

#include <Arduino.h> #include <WiFi.h> #include <HTTPClient.h> #include <ESP32QRCodeReader.h>#define WIFI_SSID "username" #define WIFI_PASSWORD "password" // 连接电脑主机的IP地址的8088端口 #define WEBHOOK_URL &qu…...

什么是网络渗透,应当如何防护?

什么是网络渗透 网络渗透是攻击者常用的一种攻击手段&#xff0c;也是一种综合的高级攻击技术&#xff0c;同时网络渗透也是安全工作者所研究的一个课题&#xff0c;在他们口中通常被称为"渗透测试(Penetration Test)"。无论是网络渗透(Network Penetration)还是渗透…...

掌握C++中的动态数据:深入解析list的力量与灵活性

1. 引言 简介std::list和其在C中的角色 std::list是C标准模板库&#xff08;STL&#xff09;中提供的一个容器类&#xff0c;实现了双向链表的数据结构。与数组或向量等基于连续内存的容器不同&#xff0c;std::list允许非连续的内存分配&#xff0c;使得元素的插入和删除操作…...

天地伟业接入视频汇聚/云存储平台EasyCVR详细步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

Vue源码系列讲解——虚拟DOM篇【二】(Vue中的DOM-Diff)

目录 1. 前言 2. patch 3. 创建节点 4. 删除节点 5. 更新节点 6. 总结 1. 前言 在上一篇文章介绍VNode的时候我们说了&#xff0c;VNode最大的用途就是在数据变化前后生成真实DOM对应的虚拟DOM节点&#xff0c;然后就可以对比新旧两份VNode&#xff0c;找出差异所在&…...

基于AST实现一键自动提取替换国际化文案

背景&#xff1a;在调研 formatjs/cli 使用&#xff08;使用 formatjs/cli 进行国际化文案自动提取 &#xff09;过程中&#xff0c;发现有以下需求formatjs/cli 无法满足&#xff1a; id 需要一定的语义化&#xff1b; defaultMessage和Id不能直接hash转换&#xff1b; 需要…...

嵌入式硬件工程师与嵌入式软件工程师

嵌入式硬件工程师与嵌入式软件工程师 纯硬件设备与嵌入式设备 纯硬件设备是指内部不包含微处理器&#xff0c;无需烧写软件就能够运行的电子设备。如天线、老式收音机、老式电视机、老式洗衣机等。这类设备通常功能简单&#xff0c;易于操作&#xff0c;用户通常只需要打开电…...

【华为云】云上两地三中心实践实操

写在前面 应用上云之后&#xff0c;如何进行数据可靠性以及业务连续性的保障是非常关键的&#xff0c;通过华为云云上两地三中心方案了解相关方案认证地址&#xff1a;https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiXCBUCNXI057Self-paced/about当前内容为华…...

Linux大集合

Linux Linux是什么&#xff1f; Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、 支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和 64位硬件。 Linux内核 是一个Linux系统…...

深入解析 Spring 事务机制

当构建复杂的企业级应用程序时&#xff0c;数据一致性和可靠性是至关重要的。Spring 框架提供了强大而灵活的事务管理机制&#xff0c;成为开发者处理事务的首选工具。本文将深入探讨 Spring 事务的使用和原理&#xff0c;为大家提供全面的了解和实际应用的指导。 本文概览 首…...

第9章 安全漏洞、威胁和对策(9.11-9.16)

9.11 专用设备 专用设备王国疆域辽阔&#xff0c;而且仍在不断扩张。 专用设备是指为某一特定目的而设计&#xff0c;供某一特定类型机构使用或执行某一特定功能的任何设备。 它们可被看作DCS、物联网、智能设备、端点设备或边缘计算系统的一个类型。 医疗设备、智能汽车、…...