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

GPT4 API 好像无法保证每次输出都一样?

  •  
  •   kerb15 · 254 天前 · 1369 次点击
    这是一个创建于 254 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这些参数都设为 0 了,但是同样的请求依旧可能得到不同的输出,不知道大家有没有遇到这种 case

    temperature = 0d
    topP = 0
    frequencyPenalty = 0
    presencePenalty = 0

    这个是正常情况还是有什么方式可以限制同样的输入同样的输出

    如果是正常情况,我想了一下好像也合理,就像让他讲个笑话,他不一定讲的都是同一个笑话一样。
    8 条回复    2024-03-21 10:09:41 +08:00
    kerb15
        1
    kerb15  
    OP
       254 天前
    尽管将温度参数设置为 0 、top_p 参数设置为 0 ,也不能完全保证在相同的输入提示下生成的文本完全一致,主要原因是因为在 GPU 计算过程中存在固有的非确定性。

    这是因为浮点数计算中的微小差异可能会导致最终选择的 token 有微小变化,特别是当前两个最有可能的 token 之间的差异很小时,会偶尔选择不同的 token ,从而产生不同的结果。

    同时,为了提高模型端点的速度,通常使用 GPU 进行计算,而 GPU 计算是并行的(非确定性的)。

    在现代的 GPU 神经网络计算中,这种非确定性是无法避免的。

    而且,如果模型被部署在不同的区域以实现负载均衡,不同区域的硬件和环境也可能会对模型的计算产生微小的影响,进一步增加了非确定性。

    作者:月明
    链接: https://www.zhihu.com/question/595912240/answer/3160446512
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    dbg
        2
    dbg  
       254 天前 via Android
    亲,你应该了解下大语言模型的原理,它们的输从原理上就是随机的。
    dbg
        3
    dbg  
       254 天前 via Android
    输出
    imes
        4
    imes  
       254 天前 via Android
    LLM 本质上是预测下一个 token 是什么,也就是“全靠猜”(只不过猜对的概率很大),更不存在“逻辑”这个概念。每次输出都是一场新的“猜测”,要保持前后,只能人为缓存。
    oliwans
        5
    oliwans  
       254 天前 via iPhone
    聊聊你对这个社会的看法,滔滔不绝说完了,我在问你同样的问题,你完整能给我背一遍刚刚的回答吗?你想要的是大模型还是固定模型?
    kaidong21
        7
    kaidong21  
       254 天前
    设置种子 seed
    kerb15
        8
    kerb15  
    OP
       254 天前
    @xmumiffy
    @kaidong21
    我试着给 Seed 传了一下 0 和 1 ,发现都没用,看参数注解也是说尽可能保障,实际上我测试的结果是变化的概率挺高的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:19 · PVG 11:19 · LAX 19:19 · JFK 22:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.