一个训练完成的大模型离线使用,且没有加入任何反馈或自修正功能,同一个问题,无论问多少次,LLM 都应该给出一模一样的答案吗?
我找了几个在线模型测试,同一个问题,一分钟内全部问 10 次,前面三五次大同小异,五次之后,很多几千字的答案几乎都是一样的。有没有大佬了解输出答案背后的“微扰”因素是什么?
1
fatigue 2 天前
很多原因啊,比如一个对话中,每次提问有没有把之前的提问加到 context 中。你可以简单的考虑成一个概率问题,token 和 token 之前的组合起来是答案的概率可能比较高,而这样的类似概率组合又不是唯一的,可能有很多选项,那就随机选一个,所以会看到可能每次回答不一样,但可能意思都差不多。
|
2
icyalala 2 天前
|
3
2473 2 天前 via iPhone 1
llm 输出会有一个词表,比如 3000 个词。输出过程是一个词一个词吐出来的。每次吐出一个词,是一个 3000 维度的概率,由推理框架及参数根据概率选择具体应该是哪个词。最简单的 greedy 方法就是选概率最大的,那不会有随机,每次都一样。常用的一些,比如 topk 里,或者所有概率值大于 p 的拿出来,再按概率分布随机选。
|
4
Donaldo 2 天前
有 kv cache 这种东西
|
5
GuuJiang 1 天前 via iPhone 1
如果你使用其 API ,就会发现有个 temperature 的参数,temperature 越低,答案就越稳定,temperature 越高,答案就越多样化
|
6
conn4575 1 天前 via Android
调用 api 就会发现,传参不变时,输出是恒定的
|
7
zachariahss 1 天前
推理框架类似 tgi 或者 vllm 本身内部自带了 kv cache 引擎,也不好关闭,这东西会根据每次的向量计算一些缓存,逐步累计,累积到一定程度就会发生大量重复了.但是这个 cache 本身和 hyper parameters 有关,貌似很复杂的逻辑,但是缓存一般会约定时间,默认多少小时,具体可以找推理框架的文档.
举例就是 deepseek 的官网就有命中缓存和不命中的价格差异 google 的 geminiaip 我也遇到过,明明按照官网计费标准要几百美金,但是最后只入账了 100 左右,问了客服说是和缓存命中有关 |
8
iX8NEGGn 1 天前 via iPhone
看 API 文档就懂了,有参数可调输出的随机性,比如 k 、temperature 之类的
|
9
chitanda 1 天前
模型里面,任何字或者说 token ,都被表示成一个数组,数组的值是 linguistic feature space (语义特征空间)的坐标,AI 输出文字,其实是在这个特征空间里面划一个轨迹,这个划出来的轨迹代表的文字为啥人看的懂(也就是有意义),是因为训练的时候学习了海量的文本,它隐式的“知道”下一个字的概率,这个概率的选择又有很多因素,可能你选的参数,上下文,现在的思维链可能又分为多次概率去选择然后影响
|
10
chinni 1 天前
从程序来说 相同输入一定相同输出
AI 也是程序 所以一定是一样的。 |