背景
最近听了八叉的一个ChatGPT讲座,讲的是怎么将ChatGPT训练成范畴专家,这样咱们就可以用它来处理该范畴的各种问题。
整个讲座中最让我形象深刻的便是训练办法,它是通过让ChatGPT向咱们发问,然后由咱们给出答案的办法进行训练。这和我日常运用ChatGPT的办法完全相反。
训练办法
榜首步:输入已知需求
咱们需求把当时已知的需求输入给ChatGPT。幻想一下,当咱们需求别人完成一项使命时,要做的榜首件事便是向其介绍使命的基本情况。
第二步:让ChatGPT发问
在输入已知需求后,咱们需求确认ChatGPT是否了解需求。这里最重要的是,要让ChatGPT在不了解需求时提出问题。这就像,在咱们介绍完使命的基本情况后,总要问上一句,“有没有问题?”。
这是最关键的一步。ChatGPT能够帮助咱们发现已知需求中的遗失点,这一般能够引起咱们更深层次的思考。
第三步:答复问题并再次让ChatGPT发问
在ChatGPT提出问题后,咱们要先给出答案,然后回到第二步,看ChatGPT是否还有问题。这就像,在咱们答复完别人的问题后,总要问上一句,“还有问题吗?”。
第四步:重复上述步骤直到ChatGPT没有问题
不断的重复第二步和第三步,直到ChatGPT没有任何问题。这是一个由分散到收敛的进程,刚开始时问题会许多,但随着信息输入的增多,问题会越来越少。
第五步:输出完好需求
在ChatGPT没有任何问题后,咱们可以让其输出一份它了解的完好需求。这份需求便是咱们的范畴模型,在输入该模型后,ChatGPT可以愈加准确的处理该范畴内的问题。
示例
基于上述训练办法,我让ChatGPT帮我完善了一个爬虫程序的需求。
已知需求
在需求描绘完成后,我让ChatGPT在不了解或需求澄清时进行发问。
榜首轮发问
ChatGPT榜首轮问了三个问题
- 在URL不能拜访或返回错误时,程序该怎么处理?
- 怎么实现守时使命?是运用程序外部的守时使命仍是程序内部的守时使命?
- 怎么对S3上的文件进行命名?
第三个问题我没有考虑过,这是ChatGPT找到的榜首个遗失点
第二轮发问
ChatGPT第二轮问了六个问题
- 是否支撑同时爬取多个URL?
- 在S3上传失利时,程序该怎么处理?
- 怎么获取S3的鉴权信息?
- 上传到S3的文件是否有巨细约束?假如有,约束是多大?
- 在主动爬取时,咱们是否需求给用户返回信息?主动爬取是否是一个后台进程?
- 假如一次爬取的时刻超过了5分钟,程序该怎么处理?(在原始需求里,主动爬取的时刻距离是5分钟)
第四个和第六个问题我没有考虑过,这次ChatGPT帮我找到了两个遗失点。
第三轮发问
ChatGPT第三轮问了六个问题
- 假如程序关闭时爬取操作正在进行,是否要停止爬取操作?
- 假如S3上传失利,是否需求重试?假如要,重试几回?
- 主动爬取的时刻距离是否可配置?仍是固定在5分钟?
- 程序是否需求支撑一些特定的返回值?例如301。
- 程序是否需求对一些异常做特殊处理?
- 程序运用的是哪种日志结构?
榜首个,第二个和第四个问题我没考虑过,这次ChatGPT帮我找到了三个遗失点。
第四轮发问
ChatGPT第四轮问了六个问题
- 是否需求支撑HTTPS?
- 爬取时是否有不同的恳求办法?例如POST或PUT。
- 爬取时是否需求设置HTTP Header?例如Authorization。
- 爬取时是否需求设置查询参数?假如需求,S3的文件名要怎么生成?
- 错误音讯的格式是什么?
- 程序是否需求支撑不同的S3区域?
榜首个,第二个,第三个和第四个问题我没有考虑过,这次ChatGPT帮我找到了四个遗失点。
第五轮发问
ChatGPT第五轮只问了一个问题
- 在爬取时是否需求限速?例如,假如某个网站对每分钟的恳求数量有约束,咱们是否需求处理?
这个问题我现已考虑过,但没有写在已知需求里
完好需求
在没有问题后,ChatGPT输出了它所了解的完好需求
总结
在我榜首次听到这种训练办法时,我其实不太信任ChatGPT的发问能够收敛,但事实胜于雄辩,它不但能够收敛,而且还可以找到非常重要的遗失点,让需求愈加完备。