V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tomss
V2EX  ›  问与答

为什么所有 AI 生成的对话都是逐字(句)式输出的?

  •  
  •   Tomss · 39 天前 · 4672 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。
    非程序员小白提问,即使所有的 AI 底层逻辑都是边计算边输出,那也可以选择在前端缓存几秒后再输出完整结果,但为什么都选择了逐字逐句输出呢? 个人认为非常影响阅读体验,一是输出速度赶不上我阅读速度,二是边看变输出很影响体验,就像不断在刷新屏幕一样,如果等全部输出完再阅读,那为什么客户端不加个选项,选择一次性输出完整内容呢? 我宁愿多等几秒再看结果也不喜欢这种逐字逐句模式。
    47 条回复    2025-02-10 01:26:53 +08:00
    xfn
        1
    xfn  
       39 天前
    这个问题完全可以问 AI
    yaron1123
        2
    yaron1123  
       39 天前   ❤️ 1
    是可以做到的,只不过 chatgpt 先做了流式输出,首帧先出来给人的感觉响应会快一点,如果要等全部生成完再一下子出时间不可控。其他产品都无脑抄了而已。
    Configuration
        3
    Configuration  
       39 天前
    仪式感
    zhangshine
        4
    zhangshine  
       39 天前
    可能大多数人喜欢。最近的 deepseek 没有隐藏 cot ,用户就很喜欢,CloseAI 隐藏了用户反响没有那么大,也开始学 deepseek 显示 cot 过程了
    retrocode
        5
    retrocode  
       39 天前   ❤️ 5
    多等几秒?ai 回复长一些是按分钟输出的, 你什么都不显示让用户干等, 这帮货就开始喷人了
    Tomss
        6
    Tomss  
    OP
       39 天前
    @xfn AI 回答的都技术话术了,太死板,还是没有用人话回答为什么不可以多个选择
    520discuz
        7
    520discuz  
       39 天前   ❤️ 1
    逐步输出才更像 AI ,如果是一下输出全部显示结果,和普通的搜索引擎有什么区别?
    Tomss
        8
    Tomss  
    OP
       39 天前   ❤️ 1
    @retrocode 现实中大部份是简短的问答,还是在几秒内可以输出的,如果是长篇的可以分段输出,再让用户点是否继续回答
    codehz
        9
    codehz  
       39 天前 via Android
    有没有一种可能个性化是要有成本的,现在这套模式差不多是多数人能接受的妥协
    简短的回答搜索引擎也有做,没法和 llm 应用拉出差距
    然后输出中断继续这个会增加计算成本,因为需要一直保存之前的状态
    JamesR
        10
    JamesR  
       39 天前
    为了好看做的动画效果,后台数据是秒出的。
    cheng6563
        11
    cheng6563  
       39 天前   ❤️ 1
    LLM 的基本就是你输入一段聊天记录,模型生成下一个字。
    你以为是故意搞的特效么。
    Rickkkkkkk
        12
    Rickkkkkkk  
       39 天前
    简单理解成,现在诸如 chatgpt 的原理是

    拿到一段文本,预测下一个字符是什么,所以是一个字一个字说的
    tool2dx
        13
    tool2dx  
       39 天前
    @JamesR 自己本地跑模型,都是一个个字蹦出来的。我还没遇到过秒出的模型。
    andyC
        14
    andyC  
       39 天前
    因为 load 时间过长, 应用层通过这样的方式优化客户体验
    root71370
        15
    root71370  
       39 天前 via Android   ❤️ 9
    @JamesR 你真的思考过吗
    javalaw2010
        16
    javalaw2010  
       39 天前
    大部分用户都不愿意多等几秒的,可能你问的问题很简单,几十个字就完成了,但是一些很复杂的问题,输出可能得几百字上千字,全部等待输出完可能得几分钟了,这谁等的了啊。

    另外大模型推理也是有成本的,在输出一定篇幅之后用户对回答可能不满意,可以选择中断推理,从而节省成本。
    clementewy
        17
    clementewy  
       39 天前
    流式输出
    mumbler
        18
    mumbler  
       39 天前   ❤️ 2
    你先回答我一个问题: 你下面即将说的第 10 个字的什么字?

    是不是要先说前 9 个字才知道,人脑推理就是一个字一个字的,大模型作为模仿人类语言的系统也是这样的

    大模型推理效率逐渐提高,groq 可以做到 2000t/s 了,打字机效果反而是负优化,可以一次出结果,但无论多块,推理得一个 token 一个 token 的推
    zhuangqhc
        19
    zhuangqhc  
       39 天前 via Android
    流式输出,减少第一个 token 的等待时间
    hanqian
        20
    hanqian  
       39 天前
    前端的流式输出是可以关的,而且这可以规避某些外部审查(比如 gemini 的)

    而且这种输出效果本来就是大多数用户的选择。我记得很清楚 chatgpt3.5 刚出来那会并没有流式输出
    huoshanhui
        21
    huoshanhui  
       39 天前
    你想想人类打字说话,为什么也是一字一词的输出。(最小有意义的单位)
    z1829909
        22
    z1829909  
       39 天前 via Android
    可能是个人习惯,你喜欢等待完整一起输出。
    但是现在大模型 toc 的产品都在优化首字出现的延迟,这对用户的留存比较重要。
    如果是不熟悉的产品,等了几秒还不出结果,大部分人就开始关闭页面了。
    catazshadow
        23
    catazshadow  
       39 天前
    @mumbler 现在人类并不知道人脑是怎么推理的,这些 AI 只是对观察到的“人说话是一个字一个的说的”这个现象的模仿
    dapang1221
        24
    dapang1221  
       39 天前
    因为本质就是通过一堆输入进去的字,来预测下一个字是什__
    paopjian
        25
    paopjian  
       39 天前
    因为 chatgpt 创造了这种一字一字蹦的方式, 先驱者是模仿对象
    LevineChen
        26
    LevineChen  
       39 天前   ❤️ 1
    你可以等几秒再看, 就和早期互联网看视频一样, 觉得卡就等一下缓冲, 现在的生成速度是受限于算力和推理技术, 不是故意让你难受的
    shintendo
        27
    shintendo  
       39 天前
    你可以选择问完问题就切出去看别的,过一会再回来看结果
    cmdOptionKana
        28
    cmdOptionKana  
       39 天前
    @catazshadow

    > 这些 AI 只是对观察到的“人说话是一个字一个的说的”这个现象的模仿

    人与 AI 交流时,AI 看不见打字过程,对于 AI 来说,是一整段话发送给它的。
    rcchen123
        29
    rcchen123  
       39 天前
    可以使用 api 调接口,选择非流式输出。
    这样就会在获得全部结果后,一下子发出来。
    moooooooo
        30
    moooooooo  
       39 天前
    因为生成式 AI 本质是预测一个字的下一个字应该是什么,所以思考什么的并不存在,这也是「 ai 存在幻觉」的原因
    h272377502
        31
    h272377502  
       39 天前   ❤️ 1
    @JamesR 不懂其实可以不评论的
    godspeedyou
        32
    godspeedyou  
       39 天前
    LLM 区别之前的传统模型,主要是具有通用的任务解答能力,而这个能力主要通过预测下一个词元的预训练任务进行学习。
    jadehare
        33
    jadehare  
       39 天前
    @JamesR 哥们你去了解一下吧,生成逻辑都是结合上下文的,第二个字生成的概率会受第一个字影响,依此类推。大段文字生成能秒出要么模型太小,要么怕不是用的量子计算机呦。
    PainAndLove
        34
    PainAndLove  
       39 天前
    你和别人对话,你希望对方是一个字一个字的讲,还是一段话一段话的讲?
    183387594
        35
    183387594  
       39 天前
    https://chat.mistral.ai/chat?q=
    试试这个 够快 就不用 流式输出
    hmxxmh
        36
    hmxxmh  
       39 天前
    把 stearm 设置成 false 就是一次性输出了,因为回答比较耗时,一次性输出会给人一种卡顿的感觉,而流式输出给人的感官是友好的,像人一样一个字一个字说
    oldlamp
        37
    oldlamp  
       39 天前 via Android
    不懂不可怕,不懂还强行输出,好可怕。
    我说我自己。
    daimiaopeng
        38
    daimiaopeng  
       39 天前
    逐字生成生成的速度受限于性能可能不同,即便是相同的长度生成时间不一样,从产品逻辑上来看,一个一个字的看明显好于等待几秒看一段话再
    mbooyn
        39
    mbooyn  
       39 天前
    人类都有对方正在输入…
    ZennoZ
        40
    ZennoZ  
       39 天前
    可以自己写一个交互界面,把 stream=false ,也就是把流式输出关掉。现在的 AI 可以干这种程度的编程工作。当然了如果想让界面好看,你可以拆解一个开源的大模型聊天软件,自己改。然后出什么 bug 继续找 AIdebug
    yufeng0681
        41
    yufeng0681  
       39 天前
    @retrocode #5 超过 3 秒,用户就等不下去了,流式输出能降低用户等待的焦虑感。 大部分人都能一边阅读,一边等后面的内容输出(也就是自己先等 3 秒,然后阅读,能不受后续流式输出的影响)。 至于像题主这种少数人,目前没有更好的交互体验(无法预测这次回答总共需要多少秒,每 N 秒输出一大段内容,你也会提前看完,又处于 wait 状态,体验还是得不到提升,而且中断的 N 秒,假设内容还是断的,你又会说这个是太监段落)。
    lianyue
        42
    lianyue  
       39 天前
    你没问过复杂的问题吧 复杂的问题 输出时间 10 分钟都有
    katos
        43
    katos  
       39 天前
    请看这个视频学习。 关于 AI 的深度研究:ChatGPT 正在产生心智吗?
    https://www.bilibili.com/video/BV1uu4y1m7ak
    chengxixi
        44
    chengxixi  
       39 天前
    Transformer 模型(如 GPT )本质上是 自回归模型,必须按顺序逐个生成 token (字 / 词)。每个新 token 的生成都严格依赖前文,无法跳跃或并行生成后续内容
    nash
        45
    nash  
       38 天前
    让你觉得它在很卖力的输出
    moefishtang
        46
    moefishtang  
       38 天前
    可以选择流式输出和非流式输出的
    一个立等可取,一个得等全部输出完才有结果
    非流式输出一个常见的应用场景是沉浸式翻译这类,翻译结果都是一行一行整个输出的
    secondwtq
        47
    secondwtq  
       37 天前
    路径依赖,一开始 ChatGPT 就是这样的,后人做的时候肯定要“对标”ChatGPT ,“超越”ChatGPT ,“弯道超车”ChatGPT 。ChatGPT 一开始就有的特技你没有,岂不是面子很挂不住?没看现在连 API 都是统一的 OpenAI 格式。
    你自己去写客户端的话就会发现还是直接输出简单,流式输出反而有额外的成本(我的做法是加了个转圈动画,因为这玩意甚至没法做进度条 ...)。

    至于好不好看你怎么理解,现在的 chatbot ,比如我常用的 ChatGPT 和 DeepSeek ,是把用户的消息用气泡显示,LLM 的消息用无装饰的文本框显示。显然气泡是 IM 里面抄过来的,但是 LLM 消息没有用气泡说明这个 chat 的逻辑和一般 IM 的 chat 不一样,这个设计其实就隐含了用户的消息一般比较简短随意,LLM 的消息比较啰嗦全面的一个条件(有时候很麻烦,因为长 prompt 就很难处理,手机上连换行都打不了)。现实 IM 里面是不会给你随时显示对方打的字的,因为对方有可能会改,有可能有没来得及删的敏感信息,甚至有可能根本没在打字,所以你跟人网上聊天就不会想能不能像 LLM 一样流式输出,IM 中确实有“流式”,不过一般体现为连续发送多个简短消息,但是 LLM 现在不会这么干,至少直接推理做不到。让用户等的话就会出现 IM 经典场景:“?”——并不是,因为用户在此期间甚至不能发新消息 ...

    反正现在这个状态是不符合 IM 图灵测试的标准的,当搜索引擎用吧 ...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1814 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:21 · PVG 00:21 · LAX 09:21 · JFK 12:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.