共计 1004 个字符,预计需要花费 3 分钟才能阅读完成。
随着 ChatGPT 的火爆,Prompts 概念开始被大家所熟知。早期类似如 BERT 模型的微调都是通过有监督学习的方式进行。但是随着模型越来越大,冻结大部分参数,根据下游任务做微调对模型的影响越来越小。大家开始发现,让下游任务适应预训练模型的训练结果有更好的性能。而 ChatGPT 的火爆让大家知道,虽然 ChatGPT 的能力很强,但是需要很好的提问方式才能让它为你所服务。
例如,当我们问 ChatGPT 如何用 Python 读取 http.Request 的 body 的时候,默认情况它给的内容如下:
但是实际上,我们写代码的时候只是忘了写法,并不是让它解释,或者增加注释。这也会影响效率。那么,上述问题可以在提问之前给 ChatGPT 做一个设定:
I want you to act as a stack-overflow post. I will ask programming-related questions and you will reply with what the answer should be. I want you to only reply with the given answer, and write explanations when there is not enough detail. do not write explanations. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}.
这个是告诉 ChatGPT 不要写注释,也不要过多解释,并且只需要给出一个答案即可。然后提问上述问题,我们可以得到如下结果:
可以看到,ChatGPT 返回的结果与刚才相比,最大的区别是代码没有注释,且解释也很简洁。这样做有 2 个好处:
会提问在基于 Prompts 调教的预训练大模型中十分重要,合适的提问会让你得到更好的结果。很多时候,NLP 的预训练模型比我们想象得能力更强,但前提是你可以将问题转换成适合预训练模型处理的那种方式;
节省成本,包括时间成本和金钱。因为 ChatGPT 这种接口都是根据 tokens 收费的,合适的提问设定可以让 ChatGPT 更加精准的答案,且更少的内容。
推友 AiHandbook 收集了 1000 多个提问 ChatGPT 的模板,免费开放了 500 多个优质的结果,其内容包括如下:
可以看到,这些模板十分丰富,包含了:
编程
内容创作
博客写作
健康
私信助手
教育
音乐
……