Text-to-SQL小白入门(12)Awesome-Text2SQL开源项目star破1000

news2024/10/7 10:13:44

项目介绍

项目地址

23年9月份刚开源这个项目,大半年过去了,star数终于破1000啦,决定在知乎更新一下内容,看看内容变化,知乎有上当时项目介绍的链接:追光者:Text-to-SQL小白入门(六)Awesome-Text2SQL项目介绍

  • GitHub地址:https://github.com/eosphoros-ai/Awesome-Text2SQL

项目首页

  • 截止2024.5.1日,项目已经有1014个star, 80个fork, 7个海内外贡献者,欢迎大家围观参与、使用!

如果项目对您有帮助的话,也可以star支持一下,您的支持就是我们更新最大的动力!

项目理念

这个项目是DB-GPT开源社区的子项目,支持中英文两种语言,主要收集了针对大型语言模型和Text2SQL等的精选教程和资源,希望能够共同学习、共同推动Text2SQL领域进步!

同时,考虑到Text2SQL和其他领域的相似性,未来也会更新Text2DSL、 Text2API、 Text2Vis 等内容,欢迎各位伙伴一起贡献合作!

项目内容

主要内容有:

  • 贡献说明

  • 数据集排行榜

  • 介绍

  • 综述

  • 经典Text2SQL模型

  • 火热的开源LLM

  • 微调方法

  • 数据集

  • 评价指标

  • Python第三方库

  • 实践项目

榜单

这里收集了知名的WikiSQL、Spider、Bird数据集榜单的top10相关数据,持续更新中!

值得注意的是:spider1.0 数据集在2024.2.5日也停止更新了,等待spider 2.0 数据问世。

简介

这里主要介绍了Text2SQL的概念

  • Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的自然语言(Natural Language,NL)问题,转化为在关系型数据库中可以执行的结构化询语言(Structured Query Language,SQL),因此Text-to-SQL也可以被简写为NL2SQL。

  • 输入:自然语言问题,比如“查询表t_user的相关信息,结果按id降序排序,只保留前10个数据”

  • 输出:SQL,比如“SELECT * FROM t_user ORDER BY id DESC LIMIT 10”

图片来源于DB-GPT项目

综述

这里罗列了一些Text2SQL领域的综述文章

  • (2023-International Conference on Very Large Data Bases,VLDB,CCF-A)A survey on deep learning approaches for text-to-SQL [paper]

  • (2022-IEEE Transactions on Knowledge and Data Engineering,TKDE,CCF-A) A Survey on Text-to-SQL Parsing: Concepts, Methods, and Future Directions [paper]

  • (2022-International Conference on Computational Linguistics,COLOING,CCF-B) Recent Advances in Text-to-SQL: A Survey of What We Have and What We Expect [paper]

  • (2022-arXiv)Deep Learning Driven Natural Languages Text to SQL Query Conversion: A Survey [paper]

经典模型

这里主要介绍了Text2SQL领域的经典模型,最近的工作都以LLM+Text2SQL为主,附上了使用的数据集和论文代码链接。

  • (2023-arXiv, None)MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL [paper] [code]

  • (2023-arXiv, None)DBCᴏᴘɪʟᴏᴛ: Scaling Natural Language Querying to Massive Databases [paper] [code]

  • (2023-arXiv, None) Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation [paper] [code]

  • (2023-AAAI 2023, CCF-A) RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL[paper] [code]

基础LLM

这里主要以时间顺序列举了一些主要的开源大模型:比如Llama、ChatGLM、Baichuan、Qwen、phi、CodeLlama、Mistral-7B、Deepseek系列等,值得一提的是,Meta 在2024年4月18日 将 llama3 开源,太牛啦!

  • Llama [paper] [code] [model]

  • 2023年2月,Meta AI提出开源大模型Llama,有7b、13b、33b、65b共4种规模。

  • ChatGLM [paper] [code] [model]

  • 2023年3月,清华大学提出了开源的双语大模型ChatGLM,基于GLM框架,参数规格为6b。

  • Alpaca [paper] [code] [model]

  • 2023年3月,斯坦福大学提出基于Llama 7b模型微调的开源大模型Alpaca,有7b共1种规格,训练更简单和便宜。

  • Vicuna [paper] [code] [model]

  • 2023年3月,UC伯克利大学联合CMU、斯坦福大学提出的开源大模型Vicuna,有7b、13b共2种规格。

  • WizardLM [paper] [code] [model]

  • 2023年4月,北京大学和微软提出进化指令大模型WizardLM,有7b、13b、30b共3种规格,2023年6月,提出了数学领域的大模型WizardMath,2023年8月提出了代码领域的大模型WizardCoder。

  • Falcon [paper] [code] [model]

  • 2023年6月, 阿联酋提出了大模型Falcon,这是一种仅在网络数据集上训练的开源大模型,具有 1b、7b、40b和180b四个参数规范。值得注意的是,其中Falcon 40B的性能超过了LLaMA 65B。

  • ChatGLM2[paper] [code] [model]

  • 2023年6月,清华大学提出了ChatGLM的第二代版本ChatGLM 2,规范为6b,具有更强的性能、更长的上下文、更高效的推理和更开放的许可。

  • Baichuan-7b [code] [model]

  • 2023年6月,百川智能提出Baichuan-7B,这是一个基于Transformer架构的开源大规模预训练语言模型,包含70亿个参数,训练了约​​1.2万亿个tokens。支持中文和英文,上下文窗口长度为4096。

  • Baichuan-13b [code] [model]

  • 2023年7月,百川智能继Baichuan-7B之后,提出开源、可商用的大规模语言模型Baichuan-13B,有预训练版本(Baichuan-13B-Base)和对齐版本(Baichuan-13B-Chat)。

  • InternLM [paper] [code] [model]

  • 2023年7月,上海人工智能实验室和商汤科技等提出了InternLM,开源了针对实际场景量身定制的7b和20b参数模型和聊天模型以及训练系统。

  • Llama 2 [paper] [code] [model]

  • 2023年7月,Meta AI提出第二代Llama系列开源大模型Llama 2,和Llama 1相比,训练数据多40%,上下文长度翻倍,模型有7b、13b、34b、70b共4种规格,但是34b没有开源。

  • Code Llama [paper] [code] [model]

  • 2023年8月,Meta AI 在 Llama 2 的基础上提出 Code LLama。Code Llama 在多个代码基准测试中达到了开放模型中最先进的性能。有基础模型 (Code Llama)、Python 专业化 (Code Llama - Python) 和指令跟踪模型(instruction-following models),每个模型都有 7B、13B 和 34B 参数。2024年1月,Meta AI开源CodeLLama-70b、CodeLLama-70b-Python和CodeLLama-70b-Instruct。

  • Qwen [paper] [code] [model]

  • 2023年8月,阿里云提出大语言模型系列Qwen-7B(简称通义千问),在海量数据上进行预训练,包括网页文本、书籍、代码等,开源了两个版本Qwen-7B和Qwen-7B-Chat。 2023年9月,阿里云更新了Qwen-7B和Qwen-7B-Chat,并开源了Qwen-14B和Qwen-14B-Chat。2023年11月, 他们开源了Qwen-1.8B,Qwen-1.8B-Chat,Qwen-72B以及Qwen-72B-Chat.

  • Baichuan 2 [paper] [code] [model]

  • 2023年9月,百川智能提出新一代开源大语言模型Baichuan 2,在2.6万亿个tokens的高质量语料上训练,有7B和13B的基础版和聊天版,以及4bits量化版聊天模型。

  • Phi-1.5 [paper] [model]

  • 2023年9月,微软研究院提出开源语言模型phi-1.5,一个拥有1.3b个参数的Transformer,使用与phi-1相同的数据源进行训练,增加了由各种NLP合成文本组成的新数据源。当根据测试常识、语言理解和逻辑推理的基准进行评估时,phi-1.5在参数少于10b的模型中表现出近乎最先进的性能。2023年12月,他们提出了Phi-2,一个 2.7b参数的语言模型,展示了出色的推理和语言理解能力,展示了参数少于13b的基础语言模型中最先进的性能。

  • Mistral-7B [paper] [code] [model]

  • 2023年10月,Mistral-AI 公司提出开源 LLM Mistral 7B,这是一个具有7b参数的语言模型,旨在实现卓越的性能和效率。Mistral 7B 在所有评估基准中均优于开源的llama2 13B,在推理、数学和代码生成方面优于llama1-34B模型。他们还提供了一个经过微调以遵循指令的模型Mistral 7B–Instruct,该模型在人类和自动化基准测试上都超越了Llama2-13B-Chat。2023年12月,他们提出了开源LLM Mixtral-8x7B,一种预训练的生成式稀疏专家混合物,在大多数基准测试上优于Llama2 70B。

  • Deepseek [paper] [code] [model]

  • 2023年11月, DeepSeek-AI公司提出了开源LLM deepseek,它是在包含2万亿个中英文token的庞大数据集上从头开始训练的。同样,deepseek LLM主要有base和chat两大类,分别有7b和67b两种参数格式。论文中的数据显示,deepSeek LLM 67b 在一系列基准测试中都超越了LLaMA2 70b,特别是在代码、数学和推理领域。 此外,与GPT-3.5相比,DeepSeek LLM 67B Chat 表现出卓越的性能。

  • MiniCPM [paper] [code] [model]

  • 2024年2月, 面壁智能与清华大学自然语言处理实验室开源了大模型MiniCPM,这是一个系列端侧大模型,主体语言模型 MiniCPM-2B 仅有 24亿(2.4B)的非词嵌入参数量, 总计2.7B参数量。值得注意的是,经过 SFT 后,MiniCPM 在公开综合性评测集上,MiniCPM 与 Mistral-7B相近(中文、数学、代码能力更优),整体性能超越 Llama2-13B、MPT-30B、Falcon-40B 等模型。

  • Llama 3 [paper] [code] [model]

  • 2024年4月,Meta AI提出第三代Llama系列开源大模型Llama 3,模型有8b、70b共2种参数规格, 每种规则都有base和instruct版本。令人兴奋的是,Llama 3 模型是 Llama 2 的重大飞跃,并为这些参数规模的 LLM 模型建立了新的最先进水平。

模型微调

这里主要收集了一些常见的大模型微调Text2SQL的方法,比如LoRA、QLoRA、RLHF等,想看微调具体实践可以参考原来知乎总结:追光者:Text-to-SQL小白入门(十)RLHF在Text2SQL领域的探索实践

  • P-Tuning [paper] [code]

  • 2021年3月,清华大学等提出了针对大模型微调方法P-Tuning,采用可训练的连续提示词嵌入,降低了微调成本。

  • LoRA [paper] [code]

  • 2021年6月,微软提出的针对大模型微调的Low-Rank Adaptation(LoRA)方法,冻结预训练权重。

  • P-Tuning V2 [paper] [code]

  • 2021年10月,清华大学提出了P-Tuning的改进版本P-Tuning V2,性能更优。

  • RLHF [paper] [code]

  • 2022年12月,OpenAI使用RLHF方法训练ChatGPT,利用人类反馈信号直接优化语言模型,表现优异。

  • RRHF [paper] [code]

  • 2023年4月,阿里巴巴提出了一种新的学习范式称为RRHF(Rank Responses to Align Language Models with Human Feedback without tears),可以像微调一样轻松调整并实现PPO算法在HH数据集中的性能。

  • QLoRA [paper] [code]

  • 2023年5月,华盛顿大学基于冻结的4bit量化模型,结合LoRA方法训练,进一步降低了微调门槛。

  • RLTF [paper] [code]

  • 2023年7月,腾讯提出了RLTF(Reinforcement Learning from Unit Test Feedback),这是一种新颖的online强化学习框架,具有多粒度的单元测试反馈,用于细化code LLMs。

  • RRTF [paper]

  • 2023年7月,华为提出RRTF(Rank Responses toalign Test&Teacher Feedback)。与 RLHF 相比,RRHF可以有效地将语言模型的输出概率与人类偏好对齐,调优期间只需要1-2个模型,并且在实现、超参数调优和训练方面比PPO更简单。

  • RLAIF [paper]

  • 2023年9月,谷歌提出了RLAIF(来自AI反馈的强化学习RL),这是一种由现成的LLM代替人类来标记偏好的技术。他们发现RLHF和 RLAIF方法在摘要任务上取得了相似的结果。

数据集

  • WikiSQL [paper] [code] [dataset]

  • 2017年9月,Salesforce提出的一个大型的Text-to-SQL数据集,数据来源于Wikipedia,属于单领域,包含了80654个自然语言问题,77840个SQL语句,SQL语句形式比较简单,不包含排序、分组、子查询等复杂操作。

  • Spider [paper] [code] [dataset]

  • 2018年9月,耶鲁大学提出的多数据库、多表、单轮查询的Text-to-SQL数据集,也是业界公认难度最大的大规模跨领域评测榜单,包含了10181个自然语言问题,5693个SQL语句,涉及138个不同领域的200多个数据库,难易程度分为:简单、中等、困难、特别困难。2024年2月,耶鲁大学开源了Spider1.0排行榜单的test数据集,并且他们将在3月开源Spider 2.0数据集。

  • SParC [paper] [code] [dataset]

  • 2019年6月,耶鲁大学提出了一个大型数据集SParC,用于复杂、跨域、上下文相关(多轮)语义解析和Text-to-SQL任务,该数据集由4298个连贯的问题序列组成(有12k+个自然语言问题到SQL标注的Question-SQL对,由14名耶鲁大学学生标注),通过用户与138个领域的200个复杂数据库的交互获得。

  • CSpider [paper] [code] [dataset]

  • 2019年9月,西湖大学提出了一个大型中文数据集CSpider,用于复杂和跨领域的语义解析和Text-to-SQL任务,由2位NLP研究人员和1位计算机专业学生从数据集Spider翻译而来,其中包含200个数据库上的10181个问题和5693个独特的复杂SQL查询,具有涵盖138个不同领域的多个表的数据库。

  • CoSQL [paper] [code] [dataset]

  • 2019年9月,耶鲁大学和Salesforce Research提出了一种跨域数据库CoSQL,它由30k+轮次和10k+带注释的SQL查询组成,这些查询是从Wizard-of-Oz (WOZ)集合中获得的,该集合包含3k个对话,查询跨越 138个域的200个复杂数据库。

  • TableQA [paper] [dataset]

  • 2020年6月,追一科技公司提出了一个大规模跨领域Text-to-SQL数据集TableQA,其中包含64891个问题和6000多个表的20311个唯一SQL查询。

  • DuSQL [paper] [dataset]

  • 2020年11月,百度针对跨域文本到SQL任务提出了一个大规模、实用的中文数据集DuSQL,它包含200个数据库、813个表和23797个Question-SQL对。

  • CHASE [paper] [code] [dataset]

  • 2021年8月,西安交通大学和微软等提出了首个跨领域、多轮Text-to-SQL中文数据集,包含了5459个多轮问题组成的列表,17940个<query, SQL>二元组。

  • BIRD-SQL [paper] [code] [dataset]

  • 2023年5月,香港大学和阿里巴巴提出了一个大规模跨域数据集BIRD,其中包含超过12751个独特的问题 SQL、95个大数据库,总大小为33.4GB。它还涵盖区块链、曲棍球、医疗保健和教育等超过37个专业领域。

  • KaggleDBQA [paper] [code] [dataset]

  • 2021年6月,华盛顿大学和微软研究院提出了KaggleDBQA,这是一个真实Web数据库的跨域评估数据集,具有特定领域的数据类型、原始格式和不受限制的问题。 它包括跨 8 个数据库的 272 个示例,每个数据库平均有 2.25 个表。 该数据集以其真实世界的数据源、自然的问题创作环境以及具有丰富领域知识的数据库文档而闻名。 主要统计数据:8.7% WHERE 子句、73.5% VAL、24.6% SELECT 和 6.8% NON-SELECT。

评测指标

除了查看论文中的指标计算,还可以直接查看spider数据集Leaderboard榜单

  • 执行准确率(Execution Accuracy,简称EX)[paper]

  • 定义:计算SQL执行结果正确的数量在数据集中的比例,结果存在高估的可能。

  • 逻辑形式准确率(Exact Match,简称EM) [paper]

  • 定义:计算模型生成的SQL和标注SQL的匹配程度,结果存在低估的可能。

如果想查看具体的计算公式和逻辑,可以直接去对应数据集的开源仓库中去运行eval相关代码。

库函数

  • mindsql

  • MindSQL 是一个 Python RAG(检索增强生成)库,旨在仅使用几行代码来简化用户与其数据库之间的交互。 MindSQL 与 PostgreSQL、MySQL、SQLite 等知名数据库无缝集成,还通过扩展核心类,将其功能扩展到 Snowflake、BigQuery 等主流数据库。 该库利用 GPT-4、Llama 2、Google Gemini 等大型语言模型 (LLM),并支持 ChromaDB 和 Fais 等知识库。

实践项目

目前主要尝试了DB-GPT-Hub项目的全流程,比如模型选用vicuna、code llama等等。

  • DB-GPT-Hub

  • eosphoros组织提出的专注于大模型Text-to-SQL微调的开源项目,包含了大模型下载、数据集预处理、LoRA和QLoRA等微调技术、模型预测、模型评估等步骤。

  • sqlcoder

  • Defog组织提出的先进的Text-to-SQL的大模型,表现亮眼,效果优于GPT3.5、wizardcoder和starcoder等,仅次于GPT4。

  • modal_finetune_sql

  • 项目基于LLaMa 2 7b模型进行Text-to-SQL微调,有完整的训练、微调、评估流程。

  • LLaMA-Efficient-Tuning

  • 这是一个易于使用的LLM微调框架,支持LLaMA-2、BLOOM、Falcon、Baichuan、Qwen、ChatGLM2等。

友情链接

  • eosphoros

  • 他们是一支由来自互联网公司的技术爱好者和热衷于开源项目的NLP研究生组成的团队。他们的重点是开发保护数据库和大型语言模型的隐私和安全的解决方案。他们的目标是确保这些模型的能力保持绝对私密、安全和受控。

  • Awesome-AIGC-Tutorials

  • Awesome AIGC Tutorials 包含一系列精选的教程和资源,涵盖大型语言模型、AI 绘画和相关领域。探索适合初学者和高级人工智能爱好者的深入见解和知识。

最后附上项目的star增长曲线,持续开源,坚持笔耕不缀、久久为功!

其他文章学习

xt-to-SQL小白入门(一)综述文章学习

Text-to-SQL小白入门(二)Transformer学习

Text-to-SQL小白入门(三)IRNet:引入中间表示SemQL

Text-to-SQL小白入门(四)指令进化大模型WizardLM

Text-to-SQL小白入门(五)开源代码大模型Code Llama

Text-to-SQL小白入门(六)Awesome-Text2SQL项目介绍

Text-to-SQL小白入门(七)PanGu-Coder2论文——RRTF

Text-to-SQL小白入门(八)RLAIF论文:AI代替人类反馈的强化学习

Text-to-SQL小白入门(九)InstructGPT论文:教你如何训练ChatGPT

Text-to-SQL小白入门(十)RLHF在Text2SQL领域的探索实践

Text-to-SQL小白入门(十一)DAIL-SQL教你刷Spider榜单第一

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

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

相关文章

【Qt QML】Frame组件

Frame&#xff08;框架&#xff09;包含在&#xff1a; import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局&#xff0c;但需要自己对元素位置进行设置和定位&#xff0c;例如通过…

Spring Boot Admin

概述 Spirng Boot Admin 登录页面 Spring Boot Admin是一个用于管理Spring Boot应用的监控工具,它允许你查看和管理多个Spring Boot应用实例。用于应用信息进行界面化的展示&#xff0c;常常辅助我们开发人员快速查看服务运行状态在微服务架构中&#xff0c;Spring Boot Admin通…

【linux】进程(深入理解linux进程状态)

开始之前先说一个与本文无关的小知识&#xff0c;chdir命令可以更改当前进程的工作目录哦。 目录 linux具体进程状态&#xff1a;R && S&#xff1a;T && t&#xff1a;D&#xff1a;僵尸进程 && 孤儿进程&#xff1a; OS的理论线&#xff1a;运行&…

JMeter性能压测脚本录制

第一步&#xff1a;电脑打开控制面板设置代理服务器 第二步&#xff1a;jmeter的测试计划添加一个HTTP&#xff08;S&#xff09;脚本记录器 在脚本记录器里配置好信息&#xff0c;然后保存为脚本文件&#xff08;.*表示限定&#xff09; 此方框内容为项目地址&#xff08;可改…

如何安装cuda版本的torch-sparse和torch-scatter

安装对应cuda版本的torch&#xff0c;确保cuda可用 使用nvidia-smi查看cuda版本&#xff0c;我的是11.4&#xff0c;然后就找到pytorch历史版本&#xff0c;页面搜索cuda 11.4&#xff0c;没搜到&#xff0c;继续往小版本搜&#xff0c;搜到cuda 11.3&#xff0c;果断安装&…

日拱一卒,月进一步(10)

303. 区域和检索 - 数组不可变 - 力扣&#xff08;LeetCode&#xff09; 动态规划~ 前缀和 最朴素的思想是存储数组nums的值&#xff0c;每次调用sumRange时&#xff0c;通过循环的方法计算数组nums从下标i到下标j的元素和&#xff0c;需要计算j-i1个元素的和。由于每次检索…

Sobel算法:边缘提取的原理与实践【基于python、C++基于opencv的代码实现!!】

Sobel算法&#xff1a;深入解析边缘检测的原理与实现 在图像处理领域&#xff0c;边缘检测是一项至关重要的任务。其中&#xff0c;Sobel算法以其高效和稳定的性能&#xff0c;成为边缘检测中的常用方法之一。本文将深入解析Sobel算法的原理与实现&#xff0c;带您了解如何通过…

02_机器学习算法_基于XGBoost的分类预测

1. XGBoost 算法 1.1 XGBoost 的介绍 XGBoost是2016年由华盛顿大学陈天奇老师带领开发的一个可扩展机器学习系统。严格意义上讲XGBoost并不是一种模型,而是一个可供用户轻松解决分类、回归或排序问题的软件包。它内部实现了梯度提升树(GBDT)模型,并对模型中的算法进行了诸多…

通过先序和中序求后序(通过后序和中序求先序)

一、通过先序和中序求后序 二、通过后序和中序求后序 1、利用后序和中序的特点来求出二叉树 2、后序输出二叉树 如图&#xff0c;先给了一个后序和中序&#xff0c;后序的最后一个为根节点 然后在中序中查找相同的元素&#xff0c;在这个元素左边的为左子树&#xff0c;右…

最简方式安装oracle 23c free

简介 我一直认为&#xff0c;最靠谱的文档就是原厂官网的文档&#xff0c;阅读再次加工的文档都有可能把你带偏。 oracle官网提供了大量的文档&#xff0c;一个好的oracle使用者&#xff0c;应该首先是好的oracle官网阅读者。 oracle数据库作为收费颇贵的商业数据库软件&#…

C++ 优先级队列priority_queue

1、常用接口 底层使用的是堆实现&#xff0c;默认为大堆 2、理解&#xff1a; 优先级队列就是即使插入的是一个乱序的&#xff0c;但是依旧会按照有序的顺序出队列 优先级队列就是会根据大小来出队列&#xff0c;而不是谁在队头就出谁。 优先级队列底层是使用堆实现&#x…

Android Studio Jellyfish | 2023.3.1,快来看看有什么更新吧

大家节日快乐&#xff0c;在这个快乐的节日里&#xff0c;Android Studio 又迎来了它新一轮更新&#xff0c;虽然本次更新里有一大份和我们“没什么关系”&#xff0c;但是也许你的“网络”支持呢&#xff1f;一起来感受下全新的 Jellyfish &#xff08;水母&#xff09; 给我们…

使用Python及R语言绘制简易数据分析报告

Pytohn实现 在python中有很多包可以实现绘制数据分析报告的功能&#xff0c;推荐两个较为方便的包&#xff1a;pandas-profiling 和 sweetviz 。 使用 pandas-profiling 包&#xff08;功能全面&#xff09; 这个包的个别依赖包与机器学习的 sklearn 包的依赖包存在版本冲突&a…

Upload-labs 靶场通关解析(上)

前言 文件上传漏洞是一种常见的网络安全漏洞&#xff0c;存在于许多Web应用程序中。攻击者利用这个漏洞可以上传恶意文件到目标服务器&#xff0c;从而执行各种恶意操作&#xff0c;如执行恶意代码、获取敏感信息、控制服务器等。 文件上传漏洞的原理是&#xff0c;Web应用程…

商超物联网方案-Hotspot Service和客流分析方案概述

商超物联网方案-Hotspot Service和客流分析方案概述 场景概述 大型商场、大型综合体在相互竞争及线上消费的影响下&#xff0c;利润增长缓慢&#xff0c;迫切需要通过提供个性化服务提升顾客购物体验&#xff0c;促进利润增长。 向不同顾客推送其感兴趣的广告&#xff0c;不仅…

判断100以内的素数(筛选法)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;int i 0;int j 0;int n 0;int a[101] { 0 };//循环填充数组a…

Qt简单离线音乐播放器

有上传本地音乐文件&#xff0c;播放&#xff0c;暂停&#xff0c;拖拉进度条等功能的播放器。 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMediaPlayer> #include <QFileDialog> #include <QTime&g…

GORM数据库连接池对接Prometheus

一、背景与介绍 Golang的database/sql包定了关于操作数据库的相关接口&#xff0c;但是没有去做对应数据库的实现。这些实现是预留给开发者或者对应厂商进行实现的。 其中让我比较关注的是Golang的sql包有没有实现连接池pool的机制呢? 毕竟Golang是静态语言&#xff0c;类似J…

【模板】二维前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 二维前缀和&#xff1a;pre[i][j]a[i][j]pre[i-1][j]pre[i][j-1]-pre[i-1][j-1]; 子矩阵 左上角为(x1,y1) 右下角(x2,y2…

计算机网络chapter1——家庭作业

文章目录 复习题1.1节&#xff08;1&#xff09; “主机”和“端系统”之间有何不同&#xff1f;列举几种不同类型的端系统。web服务器是一种端系统吗&#xff1f;&#xff08;2&#xff09;协议一词常用来用来描述外交关系&#xff0c;维基百科是如何描述外交关系的&#xff1…