智谱

限制大模型的,是输出长度

Key Takeaway

  • 大模型厂商普遍关注上下文长度,但忽略了输出长度的限制。
  • 目前大模型的输出长度普遍在2-3千字,主要原因是缺乏长文本训练素材。
  • 智谱通过增加长输出数据训练,显著提升了模型的输出长度。
  • 文章呼吁厂商应关注并提升模型的输出长度,以满足日常需求。

Full Content

我一直很不理解,怎么所有大模型厂商都在卷上下文长度,但就是没人关注输出长度。

现在要是发个新版本的模型,没个128K的上下文窗口,你都不好意思跟人打招呼。但是,模型的输出长度,也就是一次最多能回复多少字,好像有点停滞不前——两三千字就顶天了。

我拿ChatGPT和Claude做了个测试。我的需求是:

请帮我撰写一个主题为「黑神话·悟空」玄幻小说。小说以孙悟空为核心,讲述一个天庭腐败不堪、祸害三界,孙悟空与妖怪兄弟对抗天庭、拯救苍生的玄幻故事,不少于10000字。

ChatGPT的表现让我非常不满。

丫一上来就摆烂,说什么写10000字太费劲,只能帮我写一部分内容,以及给个大框架,剩下的还是得我自己来。

现在的AI都这么像打工人了吗?

当我要求它继续往下写的时候,ChatGPT就开始敷衍了。它象征性地写了几章,然后就马上宣布整个故事完结了。

真的,我都想骂人了…

相比之下,Claude就好太多了,大家还是订阅Claude吧。

虽然没法一次性输出10000字,但Claude好歹给出了解决办法:分章节输出,一个章节两三千字;用户可以随时给反馈意见。

这个才是AI该有的态度!

我让Claude写了几章。不得不说,它文笔还是不错的,写得有模有样。如果给它具体指导的话,写点小说发表肯定没问题。

这两个例子很有代表性。今天的模型产品,输出长度大概就是2千字。

为什么会这样?

智谱在论文里解释了。核心原因就是,缺少长文本的训练素材。我们给大模型训练用的数据集,很少有超过2千字的材料。所以,它都没见过、没被训练过,那自然写不出来。

为了解决这个问题,智谱的人特意准备了一份长输出的数据,里边的数据长度从2K到32K都有。把它跟通用数据结合,形成完整的数据集,给到两款支持128K上下文窗口的模型做微调,一个是GLM-4-9B,一个是Llama-3.1-8B。效果立竿见影。

我在Google Colab上做了测试,用A100 GPU分别跑两个模型。还是刚才那个写玄幻小说的任务。

GLM-4-9B完成得比较好。我把它写贴到Ulysses里给大家看看。一共1.1万字,分成13章,从世界背景介绍开始,一直到最终大决战、打败天帝。

Llama-3.1-8B的字数没有达标,只有8千多字。不过即使这样,也大大超出平均水平的两三千字。

说实话,当AI把小说写出来的时候,我还是挺震惊、挺兴奋的——毕竟第一次看到输出这么长的内容。之前的典型情况是,我让AI帮我翻译一个论文,或者修改一篇稿子,结果返回了半截就停下来了,这个就非常不爽、不方便了。

如果说,32K的上下文长度算是够用级别的话,那么至少5千字的输出长度才能满足日常需求。

接下来,我会试着用智谱的训练集去多微调几个模型。我也真心希望,国内的厂商别都在那边无脑地追逐超长上下文窗口,把这个当成一个营销噱头,搞得跟手机厂商跑分一样。是时候把输出长度提上来了。

OK,以上就是本期内容。想找我的话,来newtype社群。咱们下期见!