利用ChatGPT进行数据分析——如何提出一个好的prompt
使用ChatGPT时,能否得到一个好的输出结果,关键在于能否提出好的prompt。
1.1 prompt是什么
现在大家把向ChatGPT输入的内容称作prompt(提示),它的作用是引导模型理解你的任务或要求。prompt可以是一个简单的问题、一个任务描述或者一个指令。一个好的prompt能帮助ChatGPT更准确地理解你的意图,从而生成令人满意的回答或完成特定的任务。
1.2 如何提出一个有效的prompt
如何提出一个有效的prompt?这个问题等同于“一个有效的prompt需要满足哪些条件“。其实你可以把ChatGPT当作私人助理。如果你要给助理指派一个任务,那么对这个任务的描述需要满足什么条件,你的助理才能完全明白他需要干什么?
根据经验可得,一个有效的prompt需要满足以下几点要求。
- 明确目标:在提问之前,要清楚自己想获得什么信息或完成什么任务。这可以帮助你有针对性地提出问题,进而提高得到准确回答的概率。
- 提供足够的上下文信息:为了让ChatGPT更好地理解你的问题或任务,可以提供一定的上下文信息。这可能包括你希望解决的问题的背景、所需答案的类型等。这有助于ChatGPT生成更符合需求的回答。
- 使用简洁、清晰的语言:避免使用模糊、冗长或复杂的措辞。简单易懂的表述有助于ChatGPT更准确地理解你的需求,从而生成更贴切的回答。
根据上述三点要求,我们来看一些好的prompt和不好的prompt,以增强感受。
(1)明确目标
【1】好的prompt:请列举三种数据清洗技巧
【2】不好的prompt:告诉我一些数据处理的方法
(2)提供足够的上下文信息
【1】好的prompt:当处理缺失数据时,插补方法和删除方法各有哪些优缺点?
【2】不好的prompt:缺失数据如何处理?
(3)使用简洁、清晰的语言
【1】好的prompt:请解释线性回归模型的基本原理
【2】不好的prompt:能不能给我讲讲那个线性回归啥的,就是数据分析里用的那个?
在上述例子中,好的prompt提供了明确的目标、足够的上下文信息,并使用了简洁、清晰的语言;而不好的prompt可能语义模糊或表述不清,导致模型无法正确理解需求。除了上述三点要求以外,还有一个比较好用的技巧——“角色指定”,就是在prompt的开始,让ChatGPT扮演某种角色,比如:
【1】假如你是一名资深的数据分析师,请列举三种数据清洗技巧;
【2】假如你是一名资深的面试官,请针对我的数据分析师求职简历给出修改建议。
根据经验,角色指定能够让ChatGPT的回答更加专业。
1.3 如何调整、优化prompt以获得更好的输出
根据前面三点要求,我们能够提出还算不错的prompt,但有的时候输出结果还是不及预期。这时我们可以尝试通过调整prompt来获得更好的输出结果。常见的调整、优化方法有以下两种。
添加限制条件:在某些情况下,你可能希望限制模型的输出范围。可以在prompt中添加限制条件,如指定回答的长度、格式或内容类型。
逐步细化问题:如果你对ChatGPT的回答不满意,可以尝试逐步细化问题。通过要求提供更多细节、限定范围或询问更具体的问题,来引导ChatGPT生成更精确的回答。
如下图,我让ChatGPT帮忙生成5行电商销售明细样例数据,它直接以文本的形势返回结果,而这不利于我在下一步使用。
通过增加限制条件,让其以Markdown形式输出结果,就符合我的要求了,具体如图所示。
再比如向ChatGPT:为什么数据分析很重要?我们的本意是想知道为什么数据分析在企业中很重要,但是ChatGPT未必能理解我们真实的意图。可以将prompt调整为:请列举数据分析在商业决策中的三个关键作用。这样的prompt就比较具体了。
还有一点很重要,那就是ChatGPT有时给出的结果是错误的。如果大家发现了错误,一定要明确指出,直接把错误内容发送给ChatGPT即可,它会就此给出新的答案。但是需要注意,它再次给出的答案仍有可能是错误的,我们一定要仔细查看。
1.4 针对不同任务类型的prompt示例
ChatGPT可以完成不同类型的任务。对于不同的任务,prompt也会稍有不同。以下是一些示例。
- 问答式任务:数据分析中假设检验的基本原理是什么?
- 文本生成任务:请帮我构建一个关于用户留存专题分析的框架。
- 文本摘要任务:为了让模型对一篇文章或文档进行总结,可以这样输入——请为这篇文章生成一段简短的摘要。
- 文本翻译任务:如果要将一段文本翻译成另一种语言,可以这样输入——请将这句英文翻译成中文,“The quick brown fox jumps over the lazy dog.“。
通过上面的示例,能够看出不同类型任务的prompt措辞不太一样,使用时需要稍加注意。