关于公私钥技术在 AI 降智中的取证作用

69 天前
 sillydaddy
AI 降智让人深恶痛绝!它违反商业合同的精神!让人不齿!先是高帅智勾引,然后降智杀猪!太可耻!

从技术上考虑,有没有办法防止?密码学总是能带来惊喜,而且不需要多么高深。

为了保证模型不变,只要让它满足一点:同样的输入 input ,应该总是返回相同的输出 output !

我们仅需要检验这一点就可以,而且每个人都可以检验!!

方法如下:
1.每人一个私钥,对发给大模型的消息签名!
2.让大模型的供应商,对每个回复的消息签名!要求包括消费者的消息签名,以及回复内容的哈希签名!
3.每个消费者都可以记录下自己发送的消息签名、回复消息的签名。
4.上述的 1 对签名,就是铁板证据!!因为相同的消息必须有相同的回复,违反了这点就意味着模型有所变化。

论证如下:
1.数字签名,代表了信息是本人发出。无法抵赖!
2.每条消息都带有签名,意味着每个消费者可以使用任何一条过往消息,随时验证模型是否有变更。且只需随机选取极少数的消息即可。
3.而供应商想要偷换模型而不被发现,就要缓存所有的已知消息。代价巨大。
3227 次点击
所在节点    奇思妙想
12 条回复
villivateur
69 天前
你的前提就错了,大模型会用到很多随机种子,不保证同样的 input 总是相同的 output
sillydaddy
69 天前
@villivateur 这个我知道,但是伪随机总是可以确定的,只需要把种子作为消息的一部分即可。 /t/1137758
jybox
69 天前
不用那么麻烦,模型参数里有一个 seed ,同样的 seed 理论上会产生相同的输出。
https://cookbook.openai.com/examples/reproducible_outputs_with_the_seed_parameter
neteroster
69 天前
> 相同的消息必须有相同的回复,违反了这点就意味着模型有所变化。

错误的。LLM 生成最后有采样步骤会引入随机性。即使贪婪采样,现代 LLM 推理框架在性能上的一些优化措施也会导致几乎丧失稳定的 reproducibility 。

OpenAI 是这么说的:... If specified, our system will make a *best effort* to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is *not guaranteed*

Anthroic 是这么说的:...Note that even with temperature of 0.0, the results will not be fully deterministic.
neteroster
69 天前
@neteroster #4 开源推理框架的一些信息:

> vLLM does not guarantee the reproducibility of the results by default, for the sake of performance. You need to do the following to achieve reproducible results:

> For V1: Turn off multiprocessing to make the scheduling deterministic by setting VLLM_ENABLE_V1_MULTIPROCESSING=0.
kapr1k0rn
69 天前
不如搞个 benchmark 定期测试
greygoo
69 天前
AI 降智主要是什么地方的问题呢?如果是前端 chat 方面的问题或者是 Cursor 这类 agent 问题,我觉得是正常操作。如果 api 上面降智,就不用它们家的 API 直接平替其他供应商。可能比较关键的是,我们需要有一些第三方专门随机检测以及评测大模型。
sillydaddy
69 天前
@neteroster 说实话,我不知道它的 "for the sake of performance" 是怎样影响到 "determinism"。从理论上说,随机性的来源似乎只有随机数这一个,还有其他步骤会引入吗? 至于 Anthroic 说的 temperature ,它本来就不是影响确定性的啊,temperature 影响的是采样概率,伪随机数才会影响确定性的。
neteroster
69 天前
@sillydaddy

1. 当然有... 底层来说,硬件方面就引入的很多不确定性,CUDA 也有一些原语不是确定性的( https://news.ycombinator.com/item?id=37009167 有一些讨论,像是 pytorch 这些依赖 cuda 的也会因此受影响: https://github.com/pytorch/pytorch/issues/75240 ),这些不确定性在大规模推理(多 GPU 、多节点)的情况下会愈加明显。推理框架本身也会因为调度,batch inference 下的 padding 加入很多不确定性,这里也有很多讨论: https://news.ycombinator.com/item?id=44527256

2. 模型到 lm_head 这里还是纯函数,而 temp=0 等价贪婪采样,按你的说法,对相同的信息给出的 logits 不会变,最后贪婪采样也是完全确定的,整个过程没有任何随机性参与。但是实际上实践上就是因为上面各种原因做不到
Pteromyini
69 天前
@sillydaddy #8 即使抛开算法本身,工程部署时产生随机的情况太多了,最常见的比如 cuda 引起的,跨 gpu 引起的等等都有可能
SilencerL
69 天前
@jybox #3
jy 你 blog 一年多没更新了
7a98kZ6v0WQs5ZO1
66 天前
@sillydaddy 你有 adsense 号出售吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1145882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX