1
tamakiui 2 天前 via Android
语言的泛化能力被错误用到了 api ?
|
2
yukino 2 天前
让大模型写宏就容易错了
|
3
codehz 2 天前 via Android 语法错误有明确且可量化的评价标准,非常适合用于强化学习
|
4
sillydaddy 1 天前 via Android
谜底就在迷面上。它的自然语言,你也肯定找不到一丁点的语法错误。
|
5
suni 1 天前 有语法错误的,cursor 每次会自己 lint 一遍
|
6
liyafe1997 1 天前 你不能用 AST 这些传统的算法/逻辑来理解 AI ,AI 是没有逻辑的。
各种 LLM 最基本的原理说白了就是「吐出下一个概率最高的 token 」,大量的各种语言的代码的训练数据基本就保证了,不会吐出导致语法错误的 token ,换句话说,导致语法错误的 token 不会得到高分(因为在训练数据中没有这种 case ),所以不会吐出来。 就跟我们学习人类语言一样,你可能不了解一种语言的语法,但是从小到大有大量的 input (比如你的母语,中文,我想没多少人真的懂其中的门道),所以你也不太容易说出写出语法错误的句子,因为跟你以前看到的听到的别人说的不一样,会感觉很别扭(虽然你也说不出其中的规则),除非训练数据被污染了(比如你整天看很多中二的东西,那你说话可能也会变得很中二)。 「逻辑错误/凭空编出来的 API 」,这就是所谓的幻觉,因为相关训练数据缺失,在这种情况下,一个概率最大的 token 可能就会是不正确的信息(编出来的 API ),因为实在没有其它更好的选择了,(即,尽管概率得分不大,但是依然是最大的那个,或者说,没有比它更正确的信息了)。 比如 AI 不知道到底有哪些 API ,你的 prompt 提到一个「读用户年龄信息」,根据你的仓库里的代码,它可能会脑补出一个 GetUserAgeFromDB(),但是怎么样也不会吐一个 GetYourMoneyFromDB(),因为这时 token 一路吐下去,最正确的回答就是「 GetUserAgeFromDB()」。 还是拿人类思维和语言来举例子,比如你从小在城市长大,你没见过西瓜是怎么长的,也没阅读过有相关内容的资料(训练数据缺失)。然后呢老师让你写作文,写篇「去乡下摘西瓜的故事」( prompt ),然后呢根据你从小到大的 input ,你知道西瓜是水果,然后呢水果一般都是长在树上的(「果」这个 token 后面经常跟着「树」)苹果也是水果,苹果树也经常出现,所以当你写下「西瓜」的时候,「树」这个 token 在你脑海里得分是很高的,于是你写下了「西瓜树」,幻觉就这么来了。尽管「西瓜树」是错的,但是你也不会写下「西瓜人」,「树」比「人」概率更大。 但是从语法层面,你不大可能犯错误,尽管你可能并不懂什么主谓宾定状补这些语法知识和规则,但你会写出「我->去->爬->西瓜->树」,因为在你以前阅读过的材料(训练数据)中见过很多类似的组合(你见过很多句子第一个字是「我」,因此「我」在这里概率是最高的,然后「我」后面经常跟着「去」,于是你写了「去」......),你不大可能会写出「爬去我」,因为训练数据里你没见过「爬」放句首的,所以这个得分不会高,你就不会吐「爬」出来,「爬」后面也不会跟着「去」......因此你不会写出语法错误的句子,尽管你并不懂具体的语法规则。 |
7
liyafe1997 1 天前 via Android
写上面这个的时候突然想到以前看到过的一个很好玩的视频:
https://www.bilibili.com/video/BV1Pt421a7rw/ 这人估计因为什么原因,脑子里的 LLM 丢失了大量参数,像极了 LLM 规模过小过拟合在胡言乱语,但是无论是上面这人还是 LLM 胡言乱语,你会发现把每一句话单独挑出来都没毛病,至少语法是正确的。编程语言也是,你用一个再垃圾的模型让它写主流编程语言的复杂需求的代码,代码逻辑可能乱写一通,但语法基本上是对的。说明语法这个层面的信息(无论是编程语言还是人类语言)是非常基本的,小模型都不容易犯错,别说大模型了。 |
8
litchinn 1 天前
因为 LLM 仍然是基于概率的,它的训练数据中几乎不会有语法错误的代码,它出现语法错误自然也是小概率
|
9
zololiu 1 天前
@liyafe1997 #6 比喻写得太好了大佬!
|
10
maolon 20 小时 53 分钟前
准确的说是后训练这步操作里,在 RL 过程中错误的语法会被惩罚,而正确的语法会被奖励。
语法这种东西一般是可以定性的(而且也相对比较稳定,一般新版本也只是在老语法上加东西,很少会去改已有语法),错就是错,对就是对,只要有大量的正确的训练例子做基础,哪怕不是那么大的模型也不会犯语法错误。 而 api 这种东西 1. 没有一个很明显的对错标准,有可能上个版本这个 api 还存在,下个版本就 deprecated 了,模型可能训练了老版本的 api 2. 这么多的库,有些常用的被训练进去了,还有很多不常用的没有训练(以及模型参数量本身太小做出的取舍) 3. 库和库之间很可能 api 的名称相差很小,导致训练后模型很难做出区分 TLDR:语法容易训练,api 难,且要经常保持更新,所以语法基本不会错,api 经常错 |
11
defaw 14 小时 16 分钟前
ai 不管 ast 的,语法和 api 的关系你可以参考 ai 和你对话和知识问答的关系。ai 可以和你流畅对话,这是语法对了,但是知识问答说的不对,这是就是 api 不对。
|