ChatGPT的几点思考
ChatGPT和GPT4无疑是近期最热的科技话题,我感觉到出现在科幻电影中的场景变得那么近。OpenAI为未来的机器人设计出了大脑,波士顿动力则设计出了身体。也许再过五年,一个让我们都感到震撼的、划时代的机器人就能出现在我们眼前!
不过,现在我们对ChatGPT的使用还局限于聊天框和API调用;在使用过程中我也有一些思考和感想。
像人一样聪明,也像人一样慢
一般来说,我们认为机器比人快、但不如人聪明。ChatGPT让我们感到震撼的是它和人一样聪明:这种聪明不是指记忆很多东西,而是它让人感觉到了推理与分析的能力。聪明的代价是,它也变得慢了(虽然还是比人快),这种慢速在与ChatGPT的交互中很容易感觉出来。再加上token数量的限制,ChatGPT的使用场景可能不再像之前的机器一样处理大量重复的劳动密集型工作,而是需要一定推理与分析的脑力密集型工作。我们对机器的任务分配从“如何如何做某事”变成了“帮我做某事”。
形式化地指定任务
两个人在交流时,有时会出现各说各话的现象。这是因为语言只是我们表达思想的媒介之一,从对方的语言领略对方的思想需要语言理解的过程。对语言的理解的偏差会导致对思想的误解。这种现象在易于理解的日常琐事中不明显,而在数学、物理等领域更易出现。因此,专业的科学讨论需要准确地定义概念、用形式化的方式对问题和分析进行表示。当我们通过编程向机器指定任务时,我们的语言是形式化的、严格定义的,不必担心机器对我们的任务产生误解。但是,ChatGPT允许我们使用自然语言这一模糊的媒介进行任务分配,有可能导致机器误解、错误地执行我们的想法。这种误解在你发出“帮我润色这段文字”类似的指令时不明显;但是,如果你说“帮我优化这段代码,不要改变程序的结构和语义”时,ChatGPT就难以做出正确的回答了。什么是程序的结构?什么是程序的语义?把多个if改成一个switch语句算是结构的改变吗?其实这种指令即使是人也难以很好地处理。因此,为了让ChatGPT更好地理解任务,我们可以仿照研究数学与物理的方法,先告诉ChatGPT具体的定义,甚至于教给它一些形式化表示的约定。这种方式我还没有实验过,但是以后社区里一定会有相关的实践。比如可能有人提供一个已经通过很多个prompt“指导”好的MathGPT,它已经通过prompt知道了数学中的形式化表示方法,能够理解各种数学表达式。这样,我们就能够通过写数学式子的方式来清晰、严格地向ChatGPT分配任务。(MathGPT仅作为举例,目前未经prompt指导的ChatGPT本身已经理解并计算一些数学题的能力了。)
“胡说”与“少说”
“胡说”是指ChatGPT可能会给出明显错误的答案。例如,如果让它推荐几本特定领域的书籍,那么它的书名和作者极有可能是瞎编的。ChatGPT的本质是一个生成式模型,因此无法保证所生成信息的准确性。“少说”是指也许ChatGPT有能力处理用户指定的任务,但是当用户提供的上下文信息不够多时、或者prompt不合适时,ChatGPT并不能给出足够的信息。不过,现在已经出现了一些能够对prompt进行优化的网站。