Databend 如何利用 GPT-4 进行质量保证

2023-12-10 04:30

本文主要是介绍Databend 如何利用 GPT-4 进行质量保证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

在数据库行业,质量是核心要素。

Databend 的应用场景广泛,特别是在金融相关领域,其查询结果的准确性对用户至关重要。因此,在快速迭代的过程中,如何确保产品质量,成为我们面临的重大挑战。

随着 Databend 开源社区的快速发展,新功能的持续增加和现有功能的优化提出了新的测试挑战。我们致力于在每次代码更新中实施严格的测试,确保稳定性并防止任何潜在问题。

Databend  的测试方法

为了确保软件的稳定性和可靠性,Databend 的测试方法覆盖从代码级到系统级的各个方面。

Unit Tests

单元测试作为测试的基石,着重验证代码的基本功能和逻辑。我们在每次代码提交前自动运行单元测试,确保及时捕捉任何潜在问题。

SQL Logic Tests

Databend 引入了大量的 DuckDB、CockroachDB 和 PostgreSQL 的 SQL 逻辑测试(感谢他们)。这些测试覆盖了广泛的 SQL 场景,帮助我们发现并修复潜在问题,保障 SQL 查询的精确性。

Compatible Tests

兼容性测试确保新版本与旧版本的向后兼容,帮助用户平稳过渡到 Databend 的更新版本,保障业务的连续性和稳定性。

Perf Tests

Databend 使用 ClickBench hits 数据集和 TPCH-SF100 作为性能指标,通过这些测试来确保每个版本的性能都符合预期。

Longrun Tests

Longrun 测试专注于数据写入、更新和合并等操作的长期效果,通过监测 CPU 和内存的稳定性,确保 Databend 的长期运行稳定性和可靠性。

除 Longrun Tests 外,这些测试在每个 GitHub Pull Request 提交时都会执行,以保证任何更改都符合我们的质量标准。

借助 GPT-4 生成测试模型

尽管已经采用了多种测试方法,Databend 团队始终在寻求创新。近期,我们引入了 GPT-4 来进一步提升测试流程。

双缝探测模型

针对涉及核心路径的修改,我们采用双缝探测模型进行验证。这种方法通过比较当前 PR 版本与主分支(main)版本的结果集来进行验证。如果两者结果一致,则可视为无大碍。但这些验证的 SQL 语句的质量至关重要,这正是我们利用 GPT-4 生成的部分。首先,我们指导 GPT-4 根据需求推理出随机数据生成方式,如 setup.sql 所示。然后,基于这些数据,GPT-4 进一步生成用于校验的 SQL 语句,例如 check.sql。这些验证 SQL 语句可以根据不同场景进行调整。接下来,我们在这两个版本的 Databend 上运行这些 SQL 语句,以验证结果集的一致性。

结果集正确性模型

为了确保 Databend 的结果集的正确性,我们选择了 Snowflake 作为参考。这一方法包括三个步骤:

  • setup.sql: 在 Databend 和 Snowflake 上分别构建表并导入随机数据集。
  • action.sql:在 Databend 和 Snowflake 上分别执行数据变更操作,如 Replace/Merge 等。
  • check.sql: 在 Databend 和 Snowflake 上分别执行并验证结果。

这些 SQL 语句都是由 GPT-4 根据 setup.sql 的数据模式生成的,更加复杂和随机,以便更有效地探测潜在的问题。

总结

Databend 团队通过引入 GPT-4,为测试流程带来了显著的进步。我们已在 Databend Wizard 项目中发布了更多测试集:

GitHub - datafuselabs/wizard: A GPT4 powered tool for detecting bugs in Databend

借助这些 GPT-4 生成的测试模型,Databend 的质量和稳定性又前进了一大步,科技是第一生产力。 

References

[1] datafuselabs/wizard
[2] Databend
[3] Snowflake

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

👨‍💻‍ Databend Cloud:https://databend.cn

📖 Databend 文档:Databend - The Future of Cloud Data Analytics. | Databend

💻 Wechat:Databend

✨ GitHub:GitHub - datafuselabs/databend: Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. Cloud: https://databend.com

这篇关于Databend 如何利用 GPT-4 进行质量保证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476018

相关文章

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

Python脚本:对文件进行批量重命名

字符替换:批量对文件名中指定字符进行替换添加前缀:批量向原文件名添加前缀添加后缀:批量向原文件名添加后缀 import osdef Rename_CharReplace():#对文件名中某字符进行替换(已完结)re_dir = os.getcwd()re_list = os.listdir(re_dir)original_char = input('请输入你要替换的字符:')replace_ch

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型