访问方式
目前可以访问/使用gpt模型的方式主要有以下几种,大部分需要使用科学上网:
- 免费用户只能使用GPT3.5模型,目前响应较慢,且在高峰时段几乎不可用;
- Plus用户可以使用GPT4.0模型,响应较快,效果较好,20美元一个月,但也限制使用频率(25条/3小时);
- 数据为历史数据,暂不支持图片/网页识别,后续会通过插件形式支持
- 官方接口调用,可以植入代码,可玩性拓展性强;
- 按模型/tokens数量计费;
- 交互较好,可以结合网页/实时搜索结果等信息
- 每次对话有条数限制,目前已经拓展到15-20条
- 国内其他封装的接口,本质都是3.5的接口,目前大多也都被封禁了
应用场景
因为本人是程序员,所以就从程序员的角度和大家分享一下近一个多月来的使用经验。在许多地方,chatgpt确实能帮助我节省很多时间。注:为了信息安全,以下场景都是从工作中抽象出来的场景
一、代码生成
1.1 Mysql 数据库场景
作为sql boy,第一个想到的场景就是sql相关的,看看chatgpt能做到什么程度
1.1.1 sql建表
可以让chatgpt帮忙建表,并给出测试数据,从结果来看是可以准确给出的。表的字段全面,类型准确,完全符合日常使用,稍作调整即可满足业务需要。示例数据中,订单号是按照测试日期排列,支付方式包含alipay和wechat_pay等,语义精准。
同时,我也对文心一言做了测试,可以看到,给出的结果有些简单,全部是数值类型,给出的测试数据也全部是1,还有提升空间
1.1.2 增删改查
CRUD程序员,create,read,update和delete就是工作的大部分了,这部分让gpt来做做看
可以看出gpt准确理解了我的要求,并且每一类给出四个不同的示例,字段也与自己之前建表一致。
而在这一言对题目的理解就开始出现偏差了
1.1.3 写慢SQL
我们每天都会不停的写大量的慢SQL,gpt也不例外,让他来写几个慢sql看看
我们要求他写出5个不同类型的慢SQL,他也都给出来了,而且给出了慢sql的原因
1.1.4 优化慢SQL
高级的sql boy不仅会写sql,还要能优化慢sql,为了确认他是否真的搞懂这些慢sql,我们试图让他优化一下。
结果还是很好的,其中很多方法都是实际工程中用到的方法,比如分页查询,使用缓存(汇总表)把实时计算转换成离线计算等。
1.1.5 彩蛋
看到这里我想删库跑路了,不过这两个笑话还是比较冷的。。。。
1.2 PySpark场景
最近日常工作中,涉及到大数据机器学习场景多了起来,所以要接触pyspark,但之前在这个方面的经验很少,让gpt来帮忙。
1.2.1 建表
这次的建表也准确理解了含义,即使复杂的语义,列表类型的数据也能准确给出;并且中文部门与英文部门也准确对应
1.2.2 展开某一列
这里随便选择了一个场景,对某一列进行展开
1.2.3 表join
为了给他增加难度,我要求另一个表包含table_66,table_88,但不含table_4。然后与展开后的表做了join,也准确记住了展开后的表格,并且也知道关联后的结果如何。能准确说出结果不含table_4的原因
二、项目设计
既然简单的函数可以写了,那么对于项目工程,我们可以拆分成不同的模块交给他去做。这里我虚构了一个场景。只要你把你的项目拆分的足够清晰,并且表达清楚,chatgpt是可以短时间给你一个开箱即用的函数的。大部分情况下稍作修改也可以满足需求了。
2.1 构造小函数
2.1.1 创建数据集
2.1.2 数据预处理
我们对历史数据进行异常点检测,并将异常点做一个替换,形成第一个函数
2.1.3 数据预测
第二步,我们让gpt帮忙写一个预测函数
2.1.4 模型评估
第三步,我们让gpt写一个模型评估函数
2.2 整合&优化项目
有了上述简单的函数,就可以基于上面的模块组合起来,形成一整个项目了。
2.2.1 模块组合
2.2.2 项目工程优化
从工程上,gpt认为数据量与for循环导致了运行效率低,推荐我们改成向量化并并行计算
2.2.3 算法优化
对于算法方面,gpt也找到了当前比较领先的两个预测算法,一个是深度学习算法,一个是facebook开源的prophet算法,在实际工作中确实有用到这个算法
三、代码理解
经常看到同事的代码,里面好多陌生函数,也不知道这个逻辑要干嘛,把示例数据和代码交给ai看一看
3.1 SQL代码阅读
select * from ( select date, job, array_join(slice(split(path, '/'), 1, cardinality(split(path, '/')) -2), '/') as new_path from hdfs.hdfs_path_info where date = '20230401' and operation = 'read' group by date, job, array_join(slice(split(path, '/'), 1, cardinality(split(path, '/')) -2), '/') hdfs_path_info_tmp left join ( select table, table_path, date, table_size from table_raw_info where date = '20230401' ) table_size_info on hdfs_path_info_tmp.newpath = table_size_info.table_path order by table_size desc
这个场景比较简单,多表join的时候很容易把自己看晕,chatgpt帮忙梳理之后,逻辑会更加清晰
3.2 python 代码阅读
选了一个最近看到的代码库AnomalyTransformer目前来看gpt的解释还很简单,但对于初学者来说,能对代码有个大概理解。希望后续能实现跨脚本之间的阅读
四、论文&文档概括
4.1 论文概括
对于一篇新的论文可以让newbing快速帮你概括一下,并且推荐相关领域的类似论文
4.2 文档概括
拿一篇github上的文档做测试github文档
4.2.1 对文档内容总结
4.2.2 对文档内容提问
五、陌生领域知识学习
对于程序员来说,经常会接触到陌生的新业务领域,需要对业务知识有一些理解。这个时候可以求助gpt帮忙介绍 比如说,我想去业务做个量化,就可以跟gpt去了解一些基本的知识
六、文档润色&翻译
6.1 周报润色
每周最困扰的就是写周报了,划水了一周,或者不知道怎么表达
6.2 邮件翻译
一些简单的英语不是问题,但是怎么写的得体就很困难了,那还不如让gpt帮忙给马斯克写一封邮件,假设我在推特的推荐部门工作,希望他不要裁员我。
七、对话机器人聊天
剩下就是大家可以自由发挥了,让chatgpt学习各种语气与你对话,问一些有趣的问题。
总结
整体看chatgpt可以帮我们节省大量重复简单的工作,但也存在一些问题:
- 连接不稳定,目前比较依赖科学上网,而且openai服务器本身也不稳定,对访问频率限制越来越高
- 答案的质量很大程度上取决于问题的质量,good question很重要,学会提问,这也是为什么会有Prompt Engineer的出现与火爆了
- 不是100%的可靠!不是100%的可靠!不是100%的可靠!代码类别的回答可以验证,但是其他领域知识类的回答,ai经常会一本正经胡说八道,要谨慎使用
- 目前只适用了以上领域,还有更多领域的应用可以尝试,ai的上限是人类的想象力吧
本文正在参加 人工智能创作者扶持计划