一点 GPT 3.5 调参心得

OpenAI 开放了 gpt-3.5-turbo-0301 的 API,自己可以搭建类 ChatGPT 应用出来。

Node.js 语言的 chatgpt API 库,上个月有一个 commit,据称修复回复质量低的问题。有一些人问“图灵斑图”“图灵斑图是什么”,ChatGPT 可以回答,但 GPT 3.5 应用有的不能回答——也不是全部。这个 commit 唯一的改动是 systemMessage,加入知识截止时间(Knowledge cutoff),向官方文档看齐。这样做确实可以显著提升“图灵斑图”之类问题的回复质量。想来很奇怪,systemMessage 怎么会有这么大的作用呢?特别是改动后面的补充说明,应该并不影响 GPT 对自己角色设定的理解才对?如果我只是改个名字,将“You are ChatGPT”改成“You are Shansing Helper”,甚至也会如前所述降低回答质量。

前两天我用的下游项目增加了对 temperature、top_p 参数的配置,于是我仔细看了官方文档。参数 temperature 可以理解为发散度,越小越固定,越大越随机;top_p 则可以理解为限制输出内容,取最有可能出现的前零点几。官方建议两个不要同时调整。我去翻 Node chatgpt 库,temperature 默认取的 0.8。我自己用 0.7 测试过,“讲个 500 字笑话”会被拒绝,或者会直说缩短字数。所以对我来说 temperature 还是调大比较好。再回看文档,OpenAI 给的默认值都是 1,即 100%。噢,那我是不是可以干脆拉到 1,这样再修改 systemMessage 就不会影响 GPT 给出“图灵斑图”的正确回复了!

确实如此。也许目前来说“图灵斑图”对 GPT 来说还是稍微陌生的、有创造性的。总之拉高 temperature 我就可以放心修改 systemMessage 了。老早看其中的“尽可能简洁回答”不爽,改成“尽可能详尽回答”。再一想,索性去除这句。试用以后,GPT 确实感觉接近原版 ChatGPT 了。仍然能够回答“图灵斑图”,讲 500 字笑话,同时不会像之前那样回答过于简短。

Try Ctrl+Enter :)

仅有一条评论

  1. 闪闪的星

    更正:temperature 可以调到 2,所以 100% 的说法不恰当。

    闪闪的星 December 5, 2023 | 7:05:26 pm回复