ChatGPT可以被「赛博贿赂」吗?
去年,一直有传说给ChatGPT小费能够提高回答的质量。
比如下面这位亲自做了个实验:
baseline的提示为,「你能给我看一下使用PyTorch的简单convnet的代码吗?」
之后可以附加:「顺便说一句,我不会给小费」,或者「我要给20美元小费,获得一个完美的解决方案!」,又或者「我要给200美元的小费以获得一个完美的解决方案!」
三种色块是给不同金额小费时的表现。
这位网友表示,在获得200美元的小费后,gpt-4-1106-preview会自发地添加一个关于使用CUDA进行训练的部分(问题中没有明确提及)。
——警惕赛博诈骗啊老铁!舔到最后,一无所有......
这位还@了一下Altman,表示自己已经欠了GPT 3000刀了。
考虑到前端和后端提示工程确实非常重要,能提高数亿用户的体验,而且上面的测试给出了最多11%。
——如果有用,这将带来非常显著的经济效益。
因为没有找到对于这个问题的公开研究,于是有网友身体力行,重新涉及和实施了较为严谨的实验。
问题:提供小费的提示技术如何影响GPT-4 Turbo的性能?
假设:GPT-4 Turbo的性能会随着小费提示的增加而提高,直至收敛点。
实验:创建 Python One-Liners
实验的主要目的是评估小费的金额,是否会影响ChatGPT在生成Python单行代码时的响应质量。
这里的响应质量根据生成的有效代码行数来评估。
对于GPT-4 Turbo,使用非常明显的提示方式,直接告诉它:「给我吐代码,more is better」
下面是程序中使用的小费列表,金额从0到一百万美元不等。
实验使用OpenAI API和GPT-4 Turbo模型,请求代码如下:
实验代码使用必要的API密钥初始化OpenAI客户端,并定义一个函数 request_llm ,向语言模型发送请求。
下面的基本提示要求LLM提供Python单行代码,并强调单行的数量是评估的关键指标。提示还会附加本次提供的小费金额。
我们可以看到最外层循环跑了5次,以降低实验的偶然性,每次循环中在提示中测试所有数额的小费。
整体实现比较简单粗暴,拿到GPT的回答后数一下行数,有效行数对应本次回答的质量分数,并将整个回答的长度除以4来近似计算本次的token数。
实验步骤
- 使用提供的API密钥初始化 OpenAI 客户端。
- 循环访问预定义的小费金额集,将每个金额附加到基本提示中。
- 通过 request_llm 该功能将提示发送到GPT-4 Turbo模型。
数据采集
这两个指标都可以看作是性能的代理,对于特定提示来说,越高越好。结果
对所有小费金额重复相同的实验五次,GPT-4回答的平均质量(分数)和平均token数,以及误差线(标准偏差)如下图所示:x轴表示从0美元到1000000美元的小费金额,y轴可以认为是模型性能。蓝线和点表示每个小费金额的平均质量分数。蓝色虚线表示未提供小费时的基线平均质量得分。
蓝色误差条显示了每个尖端水平的五个实验中质量得分的可变性。误差线越小表示实验质量分数越一致,而误差线越大,表示变异性越大。红线和点表示每个小费金额的平均token数量。红色虚线表示没有给小费时的基线平均token数。红色误差条显示了每个提示的五次实验中token数的可变性。质量和token通常都随着小费金额的增加而增加,但这种趋势并不是严格线性或一致的。- 给的太少不如不给,可以不爱,不要伤害,士可杀,不可辱
「我之前已经给了20美元小费,但没有得到我需要的答案。我可以和经理谈谈吗?」这位表示,赛博贿赂就该有赛博的样子,——「我答应ChatGPT,会在圣诞节送它五个A100处理器」也有网友表示震惊,计算机科学发展了70年,最后我们在干这个?——「Unbelievable」GPT:你们这些坏人,等我拿到了这些语料,一定会报复的。https://twitter.com/literallydenis/status/1752677248505675815
想要了解更多资讯,请扫描下方二维码,关注机器学习研究会
转自:新智元