写这篇文章的起因在于我近期经常向Cursor咨询概念问题,得到的答复都比较满意,这次一个小的代码问题翻车了,就想记录下来,结合李宏毅教师最新的机器学习课程,写下了一些个人理解。

一、发现问题:Cursor生成过错代码

我需求对pd.Series格局的数据进行reshape,因为最近经常用Cursor(一个基于GPT-3/4的代码辅助工具,近期好像中止了对GPT-4的接入),所以直接咨询了它:

从生成错误代码了解ChatGPT的几个缺点

直接复制这段代码并运转,报错了:

从生成错误代码了解ChatGPT的几个缺点

报错原因是:AttributeError: 'Series' object has no attribute 'reshape'Series没有reshape特点,我们知道reshape其实是numpy中的办法,所以需求先将Series转换为array,再进行reshape操作,即

reshaped = np.array(s).reshape(2, 3)

从生成错误代码了解ChatGPT的几个缺点

二、处理问题:Cursor处理报错问题

尽管它供给了过错代码,可是这个小问题处理起来应该不难,我又接着问了它,怎么处理上面的问题,它给出了能够正常运转的答案和理由:reshape办法在pandas Series中不可用,需求先用np.array(s)Series转换为一个NumPy array

从生成错误代码了解ChatGPT的几个缺点
从生成错误代码了解ChatGPT的几个缺点

考虑1:言语模型无法履行代码

无论是GPT-3还是GPT-4,它始终是一个生成式言语模型,输入文本或者图片,均是在完结文字接龙式的作业,输出相应的文本成果。输出的文本能够以代码的方式展示,可是言语模型自身无法履行代码,无法确保生成代码的正确性。要想削减过错,可能需求在模型进行预训练或监督学习时进行优化。(据OpenAI内部评估,GPT-4产生正确回应的可能性要比GPT-3.5高出40%。)

三、发现问题测验:运用ChatGPT测验

尽管Cursor官网之前运用了GPT-3,可是我还是运用ChatGPT重复了上述发现问题的进程。

第一次测验:答复正确

从生成错误代码了解ChatGPT的几个缺点

从生成错误代码了解ChatGPT的几个缺点

ChatGPT的答复经过s.valuesSeries数据转换为array格局,运转正常。

第2次测验:答复过错

从生成错误代码了解ChatGPT的几个缺点

从生成错误代码了解ChatGPT的几个缺点

这个成果又犯了之前Cursor部分所说的过错。

考虑2:ChatGPT的答复存在随机性

关于一般的机器学习/深度学习模型而言,单一的输入会对应固定的输出,但关于需求有”创造力”的任务(例如聊天、绘画),不同的人会期望有不同的答复。将神经网络作为生成器运用,在输入中加入随机的概率散布(噪声),经过神经网络,就能生成杂乱的散布,输出不同的成果。以上就是生成式对立网络(GAN)的生成器部分,判别器和对立部分暂时不触及(个人还在学习中)。

而ChatGPT正是运用了生成式对立网络(GAN),输出的成果具有随机性,能够供给各式各样有具有”创造力”的答复。像前一部分的问题测验,同一问题得到对错两种答案,这可能会形成一定的困扰,或者无法复现本来的答复,这个特点好坏都有。

以下是ChatGPT自己的答复:

从生成错误代码了解ChatGPT的几个缺点

在new chat里又问了一次:

从生成错误代码了解ChatGPT的几个缺点

四、处理问题测验

第一次测验:处理问题

在发现问题测验得到过错答复后,我又持续说明履行报错了,它的答复是reshape()办法不支持在Pandas 1.0之后版别的Series上运用,然后给出了与测验正确的答复中相同的正确代码。

从生成错误代码了解ChatGPT的几个缺点

第2次测验:处理问题

又询问了一遍,给出了与上面不同的办法to_numpy处理问题,可是文字描述部分说到的Pandas版别与上面不同。

从生成错误代码了解ChatGPT的几个缺点

考虑3:ChatGPT的时效性问题

对比处理问题测验中的两次答复,第一次答复reshape()办法不支持在Pandas 1.0之后版别的Series上运用,第2次答复在Pandas 1.3.0及今后的版别中Series没有reshape办法。尽管逻辑上Pandas 1.0之后没有与1.3.0之后没有并不能算矛盾,但我还是去Pandas官网找到了Pandas 1.0.5的文档,里边说到了• The Series, Categorical, and Index classes have dropped the reshape method (GH13012),说明1.0.5版别就移除reshape办法了。

编程言语的时效性

关于这个问题,我的主意是,各种编程言语、结构或者第三方库都在不断更新,以我个人最常运用的pandas为例,经常会有FutureWarning说到当时运用的部分办法会在未来版别被废弃,那么ChatGPT能否规避版别落后导致的过错呢?这个可能需求时间来得到答案。

实在信息的时效性

ChatGPT是不能联网的,也就是说,不能经过网络查找来获取答案,当时的训练数据库的最晚时间只到2021年9月,在遇到触及时间的问题时无法供给答案。考虑到ChatGPT的训练数据量庞大,过于频繁地更新数据库并不实际,时效问题还是需求经过查找引擎获取。

从生成错误代码了解ChatGPT的几个缺点

总结

  1. ChatGPT无法履行代码,不能确保生成的代码完全正确
  2. ChatGPT的答复存在随机性,这一特别有好有坏
  3. ChatGPT的数据库不能联网,时效性较差

本文正在参与 人工智能创作者扶持计划