自然语言转SQL,一个微调ChatGPT3.5的实例(下)--模型微调及模型性能

提交训练集进行微调

一旦我们创建了JSONL文件(可以在这里或ipfs_here找到一个小样本),下一步是使用以下命令将创建的文件上传到OpenAI:

openai.api_key = os.getenv("OPENAI_API_KEY")
print(openai.File.create(file=open("spider-finetuning.jsonl", "rb"),purpose='fine-tune'))

上传文件后,可以使用以下命令检查上传的状态:


print(openai.File.retrieve(id="file-id"))
# 或者
print(openai.File.list())

结果应该类似于:

{
"object": "file",
"id": "file-id",
"purpose": "fine-tune",
"filename": "file",
"bytes": 71699079,
"created_at": 1693343752,
"status": "uploaded",
"status_details": null
}

当状态变为已处理时(类似于下面的示例),您可以将文件用于微调:

{
"object": "file",
"id": "file-id",
"purpose": "fine-tune",
"filename": "file",
"bytes": 71699079,
"created_at": 1693343752,
"status": "processed",
"status_details": null
}

现在,我们准备开始微调作业。可以使用以下python代码创建一个微调作业:


print(openai.FineTuningJob.create(
training_file="file-id",
model="gpt-3.5-turbo",
suffix = "spider",
hyperparameters = {
"n_epochs": #number_of_epochs,
})
)

微调过程的持续时间将根据微调数据集的大小而有所不同。微调有一个最大令牌限制,设置为50000000个令牌。因此,在使用Spider数据集时,我们将样本数量从7000个减少到5750个,并进行总共2个时期的微调。

您可以使用以下命令检查微调作业的状态:

print(openai.FineTuningJob.retrieve(id="ftjob-id"))

结果应类似于:

{
"object": "fine_tuning.job",
"id": "ftjob-id",
"model": "gpt-3.5-turbo-0613",
"created_at": 1693346245,
"finished_at": 1693353313,
"fine_tuned_model": "ft:gpt-3.5-turbo-0613:dataherald:spider:id",
"organization_id": "org-id",
"result_files": [
"file-id"
],
"status": "succeeded",
"validation_file": null,
"training_file": "file-id",
"hyperparameters": {
"n_epochs": 2
},
"trained_tokens": 44722020
}

模型性能

DIN-SQL是一种用于自然语言到SQL转换的模型,它在处理Spider数据集上取得了最新的研究成果。DIN-SQL代表"Denoising-inductive SQL generation",该模型结合了去噪自编码器和归纳式学习的方法,使用GPT-4作为生成器模型来生成SQL查询语句。DIN-SQL使用了各种高级提示技术,包括少量示例提示、思路链提示和分解提示,以提高其性能和准确度。该模型具有较高的准确性和效率,但在成本和处理时间方面可能较高。

我们将微调模型的性能与未经微调的GPT3.5-Turbo和DIN-SQL + GPT-4(Spider的当前最先进方法)进行了基准测试,以获得零-shot性能。

微调的G-3.5-Turbo的性能与之前的方法相比进的提示技术,包括少量提示、思维链提示和分解提示)保持一致,这是当前最先进的方法。

关键是,与DIN-SQL + GPT-4方法相比,微调模型显著降低了成本和处理时间。下表提供了每个来自Spider基准的问题的不同模型之间的大致成本和速度。

同模型每个问题的成本和速度(来自Spider基准)

如上所示,与DIN-SQL与GPT-4相比,微调的GPT-3.5-Turbo模型的成本降低了30倍,速度提高了12倍

结论

通过投入时间和金钱来构建训练数据集,可以在准确性上与最先进的方法相匹配,同时速度提高12倍,成本降低30倍。如果,针对具体的业务做针对性的微调准确性应该可以进一步提高。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能大模型:定义、发展和应用

⭐简单说两句⭐ ✨ 正在努力的小新~ 💖 超级爱分享,分享各种有趣干货! 👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板 🌈 感谢关注,关注了你就是我的超级粉丝啦! &…

MySQL之基于代价的慢查询优化建议

1.背景 慢查询是指数据库中查询时间超过指定阈值(美团设置为 100ms)的 SQL,它是数据库的性能杀手,也是业务优化数据库访问的重要抓手。 如何优化慢查询呢?最直接有效的方法就是选用一个查询效率高的索引。关于高效率…

C++之条件编译

在C中,条件编译是一种特殊的编译方式,允许在编译时根据特定条件决定是否编译某段代码。条件编译通常用于在编译时根据不同的平台、编译器或配置选项选择性地包含或排除代码。 C中的条件编译可以通过预处理器指令来实现。预处理器是C编译器的一部分&…

Windows中磁盘未知没有初始化怎么办?

当我们尝试在Windows11/10/8/7上使用外部硬盘驱动器时,在小概率情况下可能会遇到磁盘未知没有初始化情况,此时如果您进入磁盘管理工具中查看,将会发现您的外部硬盘驱动器显示为未知、未初始化、没有磁盘空间,或者在某些情况下它还…

VS Code 如何调试Python文件

VS Code中有1,2,3处跟Run and Debug相关的按钮, 1 处:调试和运行就不多说了,Open Configurations就是打开workspace/.vscode下的lauch.json文件,而Add Configuration就是在lauch.json文件中添加当前运行Python文件的Configuratio…

十二.视图

视图 1.常见数据库对象2.视图概述2.1为什么使用视图2.2视图的理解 3.创建视图3.1创建单表视图3.2创建多表联合试图3.3基于试图创建视图 4.查看视图5.更新视图的数据5.1一般情况5.2不可更新的视图 6.修改、删除视图6.1修改视图6.2删除视图 7.总结7.1视图优点7.2视图不足 1.常见数…

能翻页的电子图册怎么做

​随着科技的进步,电子图册已经成为了越来越多企业宣传和展示产品的重要工具。相比于传统的纸质图册,电子图册具有更多的优点,如方便携带、易于分享、可交互性强等。那么,如何制作一款能翻页的电子图册呢? 一、确定主题…

为什么我不建议大学生接公司单?

大家好,我是鱼皮。前两天,我 编程导航 的鱼友提了个问:大学生怎么接公司的单赚点零花钱? 然后我很认真地评论了一句:我不建议大学生接公司单。 这位小伙伴很认真,又通过微信单独问我: 想了想&am…

右键添加 idea 打开功能

1.开始运行regedit 2.找到: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell _3.开始设置 一、右键shell目录新建项Idea二、右键Idea新建command三、选择Idea 右侧空白出新建字符串 名字为Icon 值填入idea的运行程序地址 四、选择command 默认项填入idea的运行程序地址…

真机调试HarmonyOS应用报错

问题表现: 01/04 19:00:01: Launching com.example.simplevideo $ hdc shell am force-stop com.example.simplevideo $ hdc shell bm uninstall com.example.simplevideo $ hdc file send E:\harmony\SimpleVideo\entry\build\default\outputs\default\entry-defau…

nifi详细介绍--一款开箱即用、功能强大可靠,可用于处理和分发数据的大数据组件

目录 目录 一、引言 二、NiFi 的历史背景介绍 三、NiFi 是什么? 核心特性 应用领域 四、NIFI 入门 五 、NiFi 工作流程 六、实际应用场景 七、优势总结 一、引言 NiFi(Apache NiFi),全名为“Niagara Files”&#xff0…

洗地机什么牌子最好?家用洗地机推荐指南

随着人们对健康和卫生的关注日益增长,洗地机成为了现代家庭清洁的必备工具。然而,在市场上琳琅满目的洗地机品牌中,洗地机哪个品牌最好最实用呢?这是消费者最为关心的问题。现本文将为您介绍几个备受推崇的洗地机品牌,帮助您在众…

【期末复习向】数据可视化技术

一、重点复习 题型:填空题(15道,2分一个)与简答题(3道题目,10分一个)与绘图题(选画2个类型的图) 1.什么是数据可视化 在计算机视觉领域,数据可视化是对数据的…

re:Invent 2023 技术上新|Amazon Q 使用生成式 AI 助理,更快更轻松地获得数据洞察...

Amazon Q in QuickSight 现已提供预览版。现在,您可以体验 Amazon QuickSight 于7月26日发布的生成式 BI 功能,以及为业务用户提供的两项附加功能。 利用 Amazon Q in QuickSight 更快地将见解转化为影响力 随着这项功能的发布,业务用户现在…

Linkage Mapper 各工具参数详解——Barrier Mapper

【小白一学就会无需其他教程】此文档用于解析使用Linkage Mapper 各输入输出参数详情以及可能的影响,并介绍了如何解释模型输出结果和输出参数,适合刚入手的人。篇幅很长很啰嗦,是因为每个参数都解释的万分细致。 从以下链接中获取内容&#…

express+mongoDB开发入门教程之mongoose使用讲解

系列文章 node.js express框架开发入门教程 expressmongoDB开发入门教程之mongoDB安装expressmongoDB开发入门教程之mongoose使用讲解 文章目录 系列文章前言一、Mongoose是什么?二、Mongoose安装三、Mongoose在express项目中使用步骤一、连接mongoDB数据库步骤二、…

游戏缺少emp.dll详细修复教程,快速解决游戏无法启动问题

在现代游戏中,我们经常会遇到一些错误提示,其中之一就是“emp.dll丢失”。emp.dll是一个动态链接库文件,它包含了许多程序运行所需的函数和数据。当一个程序需要调用这些函数时,系统会从emp.dll文件中加载相应的内容。因此&#x…

Maven简介及环境搭建和基本使用(Java开发中的实用工具)

一、概述 Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它 用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、 测试、打包和发布等工作。 Maven的相关概念 pom.xml文件:里面可以配置相关信息,指导ma…

Mac内心os:在下只是个工具,指望我干人事?

呜呜呜,今天去医院看病了,乌央央的好多人。最近在研究苹果开发者工具中的HealthKit,等我研究透给大家安利。今天还是继续闲聊吧😂😂提前感谢大家体谅我这个病号,发射小红心,biubiubiu~ 据说&am…

uniapp 无限级树形结构面包屑、单选-多选、搜索、移除功能插件,基于【虚拟列表】高性能渲染海量数据,加入动态高度、缓冲区

hyq-tree-vtw 无限级树形结构面包屑、单选-多选、搜索、移除功能 示例项目 单选-user 单选-任意一项 多选-关联下级 多选-任意一项 已选择数据弹框 说明 本插件需要使用uni-popup、uni-transition用于已选择数据弹框,因此需要有这些依赖,请自行导入本插件基于【虚…