主要观点总结
AI 对工作的影响:
个人应对建议:
教育与培训方向:
社会层面问题:
AI对各行业就业的冲击、社会观念及个人应对建议探讨的讨论细节和观点
关于 AI 对数据分析专业影响的讨论
关于 AI 时代工作市场萎缩的讨论
关于 AI 时代重要技能的讨论
关于 AI 时代课堂教学与实践的讨论
关于 AI 时代个人机遇与挑战的讨论
关于社会观念与保障机制转变的讨论
关于蓝领与白领工作替代风险的讨论
关于劳动观念转变的讨论
AI 对工作的影响:
个人应对建议:
教育与培训方向:
社会层面问题:
音乐生成模型Suno出新版(V4.5)了,于是重新玩起来,的确又有明显进步。
我不知道怎样评价AI音乐的成功度,审美既是很个人的美学体验,别人代替不了自己的感受;同时也是需要学习的鉴赏能力,后者我辈天生短板。
关于个人体验,现在发现制作自己可以循环听而不厌烦的歌曲,已经越来越频繁和容易了。其实让自己能循环听的歌曲,从来都是收藏音乐中的少数,自己的耳朵不骗自己,不会容忍口水歌的反复播放。所以,发现模型能做到这一点,还是很让人惊喜的。可惜 得来太容易,物以多为贱,大多数也只能自生自灭,不大会传唱开去,除非是撞上了大运(例如春晚突然出新,被它选中的AI歌曲笃定火遍大江南北)。
我家领导从来极其挑剔,能进入她法眼的歌曲,很稀少,无论是名曲还是流行。她在中小学是宣传队队长出身,艺术素质是我无法比的。但最近开始松动,偶然会对我做的一两首歌予以正面评价,或赞嗓音,或赞曲调。不过那只是我玩Suno一年多实验出的几百首歌中的极少数几首。即便如此,这个改变让我对Suno的进展更有信心。
「中国好声音」以前有创作奖,对原创歌手予以特别奖励。这是因为原创太难了,多数歌手会唱不会作(曲)。我就在想,年轻歌手现在要做“原创”有多容易。你不妨把各种你喜欢的风格提示,做各种杂交,让DeepSeek作词,不断试验,总会得到你满意或喜出望外的。这是Suno昨天做的一首《风知道》,歌词是DeepSeek出的。
有点爵士乐的色彩,完成后我循环听了多遍,觉得有点上头。我尤其喜欢“你向左走,雨向右飘落”这句词曲,特别是“飘落”两个字的韵味,好像轻轻划过内心非常柔弱的所在 lol。
DeepSeek总爱写些精灵古怪,莫名其妙的歌词。可是歌词搞怪,词不惊人死不休,似乎也是不少作词家的追求。我们遭遇过的古怪歌词还少吗?爱唱歌的人,大多不介意词句的朦胧性,有时候歌词的晦涩反而觉得有助于捕捉我们内心的某种不可言传。因此,虽然 Suno 自己也有歌词创作的实力,对于中文歌词,我还是倾向于用国内大模型DeepSeek。
这一首个别地方吐词不清是个瑕疵(沉没 chenmo 唱成了 chenmei,好没文化)。Suno 中文歌曲咬字错误的问题,由来已久了,毕竟中文只是他们 cover 的语种之一。他们一年多来有一些改进,但还是没有做足够的中文 debug 和优化。
本来以为国内音乐生成,会像视频生成那样,很快赶上或超越 Suno,尤其是中文歌曲方面。但迄今没发现可以真正与 Suno 比试功力的。可能是因为 Suno 的创始人们是一群对音乐非常专注的码农极客,非常纯粹的一族,坚持 passion 驱动,免费普及,薄利多销,算是走出了自己的商业闭环。而国内这方面还没有闭环。
要说音乐模态,相比于其他模态和数据,是一个更容易聚焦和搞定的对象。模型也不需要那么大,国内对音乐版权也基本放任自流,技术门槛与数据来源及其使用,都比美国有更好的条件,就是抄作业,也能抄个赶超世界水平的结果来吧。
几个原因。一个是浮躁,一个是国内商业闭环更难做:软件白嫖,不愿意订阅付费,在国内是病入膏肓的用户心态,出手阔绰的中产以上也大多如此。但真做得好,你出海打Suno 呀。当然,Suno也没能大发,只是商业上站住了而已。假以时间,我还是相信国内会跑出来更牛气的音乐模型出来。
音乐鉴赏主观性特别强,one man’s meat,他人也许无感,甚至可能是 another man’s poison。音乐口味的难以一致,比食品更甚。模型所做的,是尽量满足多数人的不同口味,求同存异。 宗旨是让人人成为自己的歌者,能把心里表达不出来的感受唱出来。这一点,前大模型时代是不敢想象的。
昨天在旧金山参加谷歌Gemini应用路演的活动,听大模型应用讲座。那位ceo和活动组织者说:你们知道 Andrew Ng 吗?就是那位全球知名的AI大佬,Andrew 说,他曾经与一位美术家一起使用 Midjourney 作画,Andrew 承认自己一败涂地。照说 Andrew 对模型架构和原理,都有深入的了解,而那位美术家对AI一窍不通。 但美术家懂得美术品鉴和美术术语,知道如何用合适的 prompt,让模型输出品质作品,Andrew 一个科学家如何能比呢?
音乐也是一样。我们乐盲玩音乐模型常常很盲目,就是知道自己喜欢什么、希望什么,也不知道如何表达成合适的 prompt 指令。那些个音乐术语,一套一套的,在我们就是雾里看花:例如,Ornate symphonic folk opens with intricate minor key acoustic guitar arpeggios, surrounded by cello and violins, Atmospheric, pitch-shifted synths and baroque harpsichord add elegance, An expressive -alto-female-lead-vocal is joined by grand harmonies, over deep synths and layered acoustics for drama and sophistication, male vocals, male-vocals。 好在Suno有风格拷贝和迁移的功能。
Suno 作品分两类:一类是有某种版权保护的创作,好比闭源。大多是非常专业的音乐家或团体,有意识在Suno平台上创作,有计划的利用平台并发挥影响。他们的作品总体是高品质。另一类是我们这些自生自灭的业余爱好者,我们恨不能自己的作品被人使用,属于开源派。开源派因为基数大,也不时有出圈的作品出来。Suno 让开源派完全放开自己作品被 remix(改编)、被 cover(改变风格) 以及 被 extend(延长) 的任意使用权限。
但即便是声称版权保护的闭源作品,它的风格 prompt 也是可以拷贝的,只是不允许直接在人家的作品上动刀子。而且,如果你实在太喜欢某个版权作品,无论是suno平台上的,还是任意一位音乐家作品,你总可以录下一个小样来,灌进去,然后让 Suno extend 或启发Suno做改编。
Suno 尽管据说面临各种侵权官司,还是在合理使用和版权保护的平衡方面更倾斜于音乐民主化,比 YouTube等平台宽松多了。总之,Suno 的民主化理念以及让人人成为歌者的信念,令人印象深刻,也符合AI大趋势。音乐家也有不少选择加入并利用平台,而不仅仅是自我维权,与它打官司。
对于用户的可能侵权的音频输入作为创作灵感,Suno 不是扼杀于摇篮,而是不让 Suno据此加工后的作品在平台公开发表,但可以给链接做内部分享。 如果你用在自己的其他作品里(利用打开别的 app 来 import 的时候),它会给个警告,提醒不得商用。这种非常细致的平衡 policy,也真难为它了。绝大多数音乐玩家,也就是图个开心和抒发,在商业上并没可能侵犯艺术家权益。终局还是极大推进了艺术民主化与多样化。我觉得这既是AIGC不可逆转的大趋势,也是艺术回归人民,而不是局限于小圈子的善举。Anyway,贼佩服Suno这批音乐狂人。
作为从小缺乏音乐素质培训先天不足的用户,我无法学会那些音乐术语,并体会其含义,很难自己独立做有效的 prompt,很难。但有两个路子:一个是拷贝 prompt 或 remix 别人的作品;另一个是随机试验prompt的风格混搭:平台鼓励你用 surprise me 的按钮对不同风格做随机组合。随机尝试的结果自然大多失败,但偶然也有拍案叫绝的作品。用 prompt 拷贝效果好一些,但也看运气。对现存作品做 extend,remix 和 cover 最保险,基础就好,结果不会太差。总之,各种玩法,还是很容易 kill time 的,一不留神就在平台玩了半天。玩Suno最爽的一件事,是每一种玩法都是充分供应、立等可取,可以随心所欲,试错成本为零。与图片和视频aigc创作不同,音乐模型相对较小,消耗的 tokens 有限,推理极快。你prompt刚回车,那边就闪过一行字:your groove is on the way. 再眨一下眼, "songs ready, tap to play", 两首大同小异的歌曲就坐等你鉴赏取舍了。这极大满足了我们草民的艺术好奇心和探索欲。
这一切订阅月费不过8刀包圆,可见也费不了多少计算资源,否则它无法长久维持。这个定价就是Suno赖以生存的商业模式,它还要照顾总多的免费用户,只有免费用户盘子足够大,才能确保其中一定比例的付费用户会稳定维持和增长。
有一个观察值得一提:很多人,有些是很有素质的知识分子,对大模型浅尝辄止,但却常常遽下结论(jump to conclusions)。例如,读了几段AIGC文字,连忙摇头:一股机器味。听了几首AIGC 歌曲,立即说:口水歌。看了几幅AIGC 图画,一脸不屑:太假。看了AIGC视频,两个字:太水。
这些朋友忘了两件事:
说了这么多心得,其实还是不确定自己的“作品”有多少成色或艺术价值。AIGC不过就是模态渲染,用户与潜在受众对渲染的心灵感应可能非常不同。但可以确定一点:它满足了我们个体的美感体验,否则谁吃多撑的,要玩音乐呢(现在开始理解游戏玩家了,一定是类似的满足感,虽然对社会没有贡献)。
哪吒2说:我命由我不由天。在艺术民主化的新时代,我们广大艺术圈外人,也可以说: thanks to aigc,我美由我不由权威。
Remix:对别人歌曲的变奏再创,通常保留旋律结构,换编曲或节奏。
Extend:给原曲加段落、延长高潮,适合舞曲或剧情型歌曲。
Cover:用原曲歌词/旋律但换人演唱,像虚拟KTV。
Duet:与别人作品做 AI 对唱(系统自动处理双人分轨)。
在 Suno AI 里面,persona
是一个控制歌手声音、情感、风格和演唱角色的参数,特别是在 Custom Mode(自定义模式)下最关键。简单说,它让你可以说“用一个什么样的虚拟歌手来唱这首歌”。
在 Suno 中,persona
就像是一个“虚拟歌手的设定”:
你可以指定性别(male, female)
指定风格(folk singer, pop diva, 80s rock star...)
指定角色(AI robot, fairy, cowboy, teenage girl...)
甚至语言口音(Mandarin accent, Spanish accent, etc)
方式一:Custom Mode 的 Prompt 里写上 persona 信息
你在 Custom Mode 里面写歌词或描述时,可以加一句:
"sung by a soft-voiced Chinese girl in folk style"
或者
"persona: a warm male voice like an old blues singer"
更明确的方式是直接加入关键词:
"persona: female, emotional, acoustic folk, in Mandarin accent"
Suno 会根据这个提示来选择一个最匹配的声音模型。
类型 | 示例 persona 描述 |
---|---|
情感 | "a dreamy female voice full of longing" |
年龄 | "a teenage boy voice", "an old man voice" |
风格 | "a K-pop idol voice", "80s synth-pop diva" |
国家与口音 | "Mandarin-accented English female", "Spanish male folk voice" |
虚构角色 | "AI robot voice with metallic resonance", "a fairy singing in the forest" |
情绪匹配歌词:如果你写的是一首伤感的歌,persona 就要选 “soft, melancholic female voice”
配合语言设定:写中文歌词时可加“persona: Mandarin accent female folk singer”
实验组合:可以试试 “persona: female cyberpunk pop singer” 这样更创意的组合,看看 Suno 怎么发挥
奇点真要来了吗, 精英群呼狼来了。
在 Lex 最近对谷歌AI大佬Demis的最新访谈中,这位诺奖获得者说,quote:
AGI的图灵测试: 如何判断AGI已实现?不是通过枯燥的测试集。Hassabis提出了一个爱因斯坦测试:将时间拨回1900年,给AI系统当时所有的物理知识,看它能否独立提出相对论。或者,让它发明一款像围棋一样深邃、优雅的新游戏。这才是真正的创造力,AGI的“Move 37”时刻
这种思维尺度,你说他是先知,却更像是狂人。他说有50%的概率,AGI五年内可实现, 意味着机器可以达到爱因斯坦的创造能力,所有的规律都会被发现,NP问题都可解、可学习、可编程,可以通过数据逆向工程实现。 他没说十年内、五十年内达到这一切的概率多大。想必是笃定了吧。
两位AI诺奖者,AI物理奖辛顿与AI化学奖Demis,一位整天为世界末日焦虑,死马当活马医地全世界到处呼吁;另一位 virtually 宣告上帝(AGI)即将来临。
这不是两位出圈的独特个体(outliers),而是世界上最聪明的人群中信仰者群体的代表人物。我们还可以列举一长串同呼“狼来了”的代表人物:
号召移民火星的马斯克;
声称铲除一切疾病的小扎;
告诉中学生学啥也没用 只能坐等和关注超级智能的伊利亚;
open ai 的Sam 和 anthropic 的 Dario
一个比一个把话说死,不留余地。这样的精英群体正在使用着科技发展史上最大的资源,带领人类向一个未知的目标狂奔。
因为未知,所以才有无限夸张的描述。这类描述原本是宗教教主的专属,任何世俗人出此狂言,隔在任何时代,都会被认定为疯子或邪教,不被世界理睬。如今正在成为技术共同体的主流意识形态或常态。这种变化,细思不仅仅是诡异,更是某种仿佛集体魔障的征兆。
我们也深陷其中,自觉不自觉地成为其吹鼓手或追随者。
虽然目标具有很大的不确定性,也具有浓浓的未知的恐惧,但所有这一切的发生不是没有根据的臆想。具有“自主意识”的智能体,似乎正在“显灵”。
我对形势的观察是:希望最先实现AGI 获得巨大回报(巨额资本投入的动机)或实现“共产主义”理想社会(各种“super abundance”的说法)的说法,现在看来是难以实现的美梦,不是因为AGI不现实,而是越来越多的现象表明:AGI 是一种渐变式形态,其落地和推广更是具有阶段性,而不是所谓奇点式爆发。
Sam 在每次 OpenAI新发布前, 都要绘声绘色描述自己面临AGI到来般的体验,对于即将发布的GPT5,更是觉得真的就是AGI了。也不能说他完全没有依据,我们在使用LLM的过程中,也都在不同时间和情况下,眼前一亮过,有时候觉得模型真地活了过来,善解人意的超级智能就在身边。
So what?
模型对于社会经济的影响,依然是和风细雨,慢了一个节拍的。市场和用户也都还在润物细无声般的普及、启蒙和被教育中。这其实也是Sam自己的困惑,他说过社会对大模型能力的感知和改变与大模型的飞速演进,完全不成比例,对社会为什么没有看到期望的巨变,感到不解和惊诧。这当然是好事,奇点与末日一样,听着就不对劲。
这次回国,至少在我家,大模型成为自然用品,而不是只能仰望和听闻的魔杖了。我哥、我妹、我老爸,都在日常习惯性使用豆包了。询问日常遇到的任何疑问。一年前他们还是对我从事的大模型行业充满好奇,觉得可望不可及,现在却成为最常使用的工具了,失去了敬畏感。此前最常用的工具是百度,但我们在不是标准普通话的地区,打字打不出正确的拼音,以前问百度要一笔一画手写输入,极大限制了使用频度。而且百度的结果良莠不齐,有时候找到了答案,一多半回来的是垃圾。现在好了,任何问题,对着豆包一通询问,口音也无障碍。偶尔豆包误解了,大不了再啰嗦几句,扩大一下 context,它总可以给你提供有意义的信息或答案。
这才是大模型渗透该有的样子,它是一条不归路,习惯了大模型的人不再可以回转。但还有很多人迄今还没有意识到大模型来到了我们的身边。纵然AI以加速度进展呼啸而来,人类的惰性与习惯行为也会在抵抗的过程中,最终渐进式接纳它。
隐性推理指的是不通过显式语言步骤,而是在模型的隐藏状态中逐步完成推理过程。与传统的“思维链”(Chain-of-Thought, CoT)不同,隐性推理将逻辑操作埋藏在神经网络的连续激活中,从而展现出一种“内在的多步思考能力”。
自动生成的英文 PPT presentation:
notebookLM 这项 new feature 目前要蛮长时间才出结果,但最终的 presentation 几乎无可挑剔。
多篇研究提出并探讨了**Coconut(Chain-of-thought in latent space)**这一新兴推理范式:
Coconut 模型模拟了广度优先搜索(BFS)般的策略,在潜空间中并行展开多条推理路径,再筛选收敛于正确答案的路径;
该机制对**数学问答任务(如ProsQA)和程序式逻辑题(如ProntoQA)**表现尤为出色;
相较于传统CoT,它减少了对语言输出的依赖,提升了准确率、稳定性和多样性。
除了 Coconut 以外,研究还提出了多种实现隐性推理的技术路径:
基于激活路径的重用与循环:模型在中间层隐状态中重复利用已有信息;
层作为计算单元(layer-as-computation):模型的每一层可以类比为一次隐性操作或思维跳跃;
递归式控制流:通过特定控制信号或激活结构模拟类似程序的循环与条件分支。
新兴研究探索了**扩散模型(Diffusion Models)**在隐性推理中的应用:
扩散过程被视为**“隐性推理路径的连续展开”,支持理论上无限深度**的思考步骤;
结合LLM的潜空间操作,可实现在语言层难以表达的复杂逻辑求解任务。
成功引导模型掌握隐性推理能力,研究强调:
Curriculum learning(课程学习):由浅入深地训练模型掌握多层次推理;
阶段化的指令微调:先训练基础逻辑能力,再训练复杂推理路径;
推理-生成解耦:训练模型在隐藏层内部完成思考,再单独触发输出。
效率与泛化性:隐性推理为解决token推理长度瓶颈提供新方案;
可解释性难题:隐藏状态中的“思考过程”难以直接观察或控制;
安全与对齐风险:在不可见的推理空间中,模型可能学到“非人类可解释”的思路。
立委按:JJ是我的老同学和一辈子的挚友,他在美国做教授和主任,深受学生尊崇。他有三个可爱的女儿,均已长大成人。年近退休,JJ 开始用英语写人生回忆与感悟,已经百多篇了,为了方便与女儿们分享。他的英语文笔纯熟,几个女儿非常乐意诵读。我劝他利用大模型翻译成中文,与更多的亲友分享这些难得的人生经历和智慧。本篇是我的一个尝试小样,用的是 ChatGPT4o,我也做了后编辑,觉得读起来保留了教授的书卷气和智慧闪光。「外一版」是JJ采纳我的建议,自己用DeepL初译并亲自校对编辑的版本,另有风格和韵味。经他同意,一并发在此,与各位分享,希望你与我一样喜欢这样充满深情和睿智的美篇。
西方学术中,常借“家族树”的隐喻,描绘东亚文化中紧密而绵延的血缘关系。家之根深埋泥土,而枝叶向阳伸展,或快或慢,或东或西,各自生长,却同属一体。于是,家庭关系宛若织锦:姊妹曾是课桌边的伙伴,后成知己,再各自航行于自己的生活海洋。最终,她们也成了父母,将爱的光芒引向新一代的生命。
我是一名第一代移民,育有三位才华横溢的女儿,亲历这场爱的迁徙与角色的嬗变。如今六十七岁,我已明白,身为父亲的角色,不再是指引,而是信任——信任我曾给予的爱,终将跨越我的有无,继续存在。本文,是我写给家人,也是写给所有人的一封信,分享我们如何理解家庭角色的自然演化,并以优雅的姿态拥抱它。
孩提时代,姊妹间的情感是最原始的依恋。姐姐们曾争着盼望一个小妹妹的降临——直到那位小妹妹不愿再与人分享镁光灯的聚焦。婴孩与蹒跚学步的日子里,他们是对抗床下怪兽的盟友,是恶作剧的小同盟,是彼此人生中第一面镜子。姐姐成了守护者,妹妹甘为追随者。那时我们家就是如此,天真烂漫,亲密无间。谁先谁后,从不是议题——只有那不言而喻的真理:“你是我第一个世界。”
然而,变迁的种子早已悄然种下。那一日,姐姐带回了最好的朋友;另一日,妹妹独自赢得了属于自己的奖项。耳畔轻响:“愿与不愿,总有一天,我们将不再是彼此的全部。”
我们为人父母时,深爱着这份亲昵,却也明白它终将变化。我们如园丁一般,辛勤培土、浇灌、呵护,但无法规定枝条该如何生长。
婚姻与育儿,是家庭角色中最深刻的转变。那个曾在夜里与你窃窃私语的姐姐,如今在枕边与爱人共享秘密。父母,曾是孩子的全部,如今却不再是新家庭的“核心成员”。那个曾将侄儿捧在手心的姨妈,也需学会在母爱面前退居其次。
这,是自然之道——进化的本能使得新核心家庭(配偶与子女)成为生存的重心。但同时,这也是文化的十字路口。我们所承袭的,是中西文化的交织:
从中华传统中继承,强调血亲和兄妹间的终生纽带;
从西方文化中学习,尊重个体新家庭的独立性。
这种转变,常常令人不安。正如一位母亲所言:“她以前视我如命,为我挡风遮雨;现在,除了她的孩子,整个世界几乎都不存在了。” 同样,当孩子把配偶视为最亲密的倾诉对象时,母亲的心也会泛起涟漪。比如你妈妈打电话给大女儿时,总会下意识地把麦克带上。
我记得自己上小学一年级时,陪奶奶去祭祖。那是我第一次目睹成人的深切悲痛——她在坟前放声痛哭,让我至今难忘。那一刻,我懂得了:在她成年生命的大部分时间里,最深的情感重心已经悄然转移,从她的父母转向了我的外公。可在饥荒岁月里,她却将最珍贵的口粮留给了我,却没能挽回外公的生命。
我想,我也会如此甘愿地为我的外孙辈付出一切,不管是哪一个女儿所生。祖父母的爱,是无需约束的宠溺,是晚霞中最温柔的馈赠。也许智慧,就藏在那份兼容并蓄之中——既珍惜来路,也为新爱腾出空间。
这份感悟,不止跨代而行,也在同代之间回荡。当一场危机来临——无论是一场意外,还是一次争执——旧有的角色与现实的角色往往冲突。深爱外甥的姨妈,曾将他视若己出;而真正的母亲,则会在惊恐中爆发,用怒气划出边界。
这时候,伤害往往来自每一个人:
对姨妈而言,是难以置信的误解;
对母亲而言,是爱中夹杂的恐惧与控制;
对孩子而言,是无法控制的大人世界中流失的爱。
这些文化之流,决定了我们在风暴来临时的应对方式。可为人长者,我们始终可以寻找“共情之道”:
说出冲突底下的爱:“我们其实都出于对同一个孩子的爱”;
将行为与人区分开来:“血浓于水,一次争执抹不去三十年的深情”;
给彼此时间:任凭时光打磨棱角,人生终会归于平慰。
正如四季更迭,风来雨往。留下的,是经得住考验的爱。
当我步入老年,我对自己的定位,是一座桥梁:
对我的女儿们说:“你们的姐妹情深,早于你们的母职。未来家族的枝叶繁盛,端赖对彼此关系的呵护。”
对我自己说:真正的传承不是控制,而是能在不违背核心价值的前提下,优雅地接受改变。
当年轮走过,角色便会轮回。父母老去,兄妹再度聚首,成为彼此的照护者。外甥跌倒时,那位曾被边缘化的姨妈,或许正是伸出稳稳之手的人。共度的历史,比任何一刻的纷争都来得深远而真实。
我终究无法永远陪伴我的女儿们,时时提醒她们曾共同拥有的过往。我相信,她们心中的爱——那些无言的默契、儿时的秘密基地、一起傻笑的夜晚——会在骄傲消散之时重现光芒。即便爱与恐惧交锋,关系的裂痕也终将愈合。因为,这样的故事,在千千万万个家庭中,都不陌生。
我们这个家,如同一条河流,蜿蜒曲折。重要的不是谁掌舵,而是我们始终同行在这条水道之中。当家族的枝叶再度繁茂,请记住:无论风如何摇曳,根始终深埋大地。祖先的微笑,并非源自你们完美,而是你们仍愿彼此守护,彼此深爱,代代相传。
此致——
满怀祝福,
父亲
西方学术界常用“家庭树”来描述东亚家庭纽带。随着家庭根基的日益深厚,枝叶以不同速度和方向生长,使家庭成员的纽带演变为一张不断变幻的纽带织锦:曾是同学的兄弟姐妹成为知己,随后又各自踏上人生征程。后来,他们自己成为父母,将爱转向新一代。
作为一名第一代移民和三个女儿的父亲,我亲眼目睹了这些转变。现年67岁的我意识到自己的角色不再是引导,而是相信我灌输的爱将超越我的存在而延续。这篇文章旨在理解家庭角色如何自然转变,以及我们如何以优雅的态度拥抱这些变化。
在童年时期,兄弟姐妹有着最原始的联系。年长的兄弟姐妹曾乞求有一个妹妹——直到最小的不再愿意分享聚光灯。在婴儿和学步期,他们是抵御睡前怪物的盟友,是捣蛋的共谋者,也是彼此的第一面镜子。姐姐成了保护者;妹妹成了忠实的追随者。这在我们家的过去显而易见。没有“优先权”可言——只有一个不言而喻的真理:“我们是彼此的整个世界”。我喜欢保留我们那辆老旧的本田奥德赛,就是因为这个原因, 在车内发生的很多故事至今仍记忆犹新。
然而,即便如此,变革的种子已经埋下。当其中一位姐妹带回最好的朋友,或另一位独立赢得奖项时,便会有一丝低语:“总有一天,我们不再是彼此的全部故事。” 个性化的成功也成为一种语言——每个孩子都在以不同的方式学习, 每个人都很特别!
作为父母,我们珍视这种亲密关系,也察觉到时光短暂。如同园丁,我们滋养土壤, 却无法阻止或决定枝桠如何生长。
婚姻与为人父母标志着最深刻的转变。曾经在被窝里窃窃私语的姐妹,如今将秘密倾诉给伴侣。父母不再被视为下一代的直系亲属。曾深爱侄子的姨妈,必须调整角色, 将机会留给姐姐去充分展现母爱。
这是大自然的设计——进化优先考虑核心家庭(配偶/子女)以确保生存。然而这也是一场文化整合, 让我们从中华文化和西方文化中汲取影响,包括:
- 集体主义传统强调终身兄弟姐妹/父母纽带。
- 个人主义社会优先考虑新核心家庭。
调整中会有不适。 有人可能会想:“她过去总是保护我,把我的安危看得比她的生命更重要, 如今却一切归0, 只有她的孩子是1。” 同样,母亲可能会感到失落,当妈妈给孩子打电话时, 却招来了她的夫君,小两口没有秘密, 父母已隔了一层。
我一年级时,曾陪同祖母去给祖父扫墓。她那撕心裂肺的哭声表达了深切的悲痛!我可以想象,在她成年后的生活中,她最深爱的对象从父母转变为我的祖父。 但在饥荒时期,她把珍贵的食物留给我,却失去了她的挚爱!同样地,我愿意为任何一个女儿的孙子辈表达无条件的溺爱, 而不必承担为人父母的管教负担。或许是融合了两种文化的传承, 才让我们能更好地尊重过去, 并为新的爱腾出空间。
同龄人的反思有现实意义。当创伤降临——孩子的意外、激烈的争吵——旧角色与新现实发生冲突。深爱的姨妈可能将外甥视为己出, 母亲的保护欲也会使人失去理智, 无意中侵蚀了长期珍视的姐妹情谊。
在此情境下,相关者的伤痛显而易见:
-姨妈可能因缺乏理解而震惊。
- 母亲则因情绪化而向最接近的目标发泄。
- 孩子失去了一个超出他们控制范围的挚爱。
冲突如季节一般短暂。 作为成年人,我们应该:
时值67岁, 时不我予, 只能视自己的角色为桥梁:
- 对女儿们:“你们的姐妹情谊早于你们的母职。”未来依赖于你们对亲情的呵护!
- 对自己:真正的遗产不是控制——而是保持核心价值观不变的同时适应变化的韧性。
当角色轮回,时间会淡化等级观念。当父母年迈,兄弟姐妹可团聚照顾。当孙辈到来,姨妈会提供关照,成为姐妹们的稳固依靠, 使家庭之树常青。
我相信, 不用提醒, 女儿们会铭记她们所经历的爱——那些私密笑话、童年堡垒、无需言明的默契——将在自尊心松动时重新浮现。牙舌碰撞,关系依旧亲密。
家庭之河可以有许多弯道。重要的不在于各自流向,而是体认到大家都是河流的一部分。 随着家谱长出新枝,愿你们记住,风可以不时吹过, 树枝摇拽而不飘散, 源于根基稳固。你们的祖先不是因风平浪静、生活完美而微笑; 而是因你们广博、永恒的爱培育在彼此之间并惠及后代。
爱你们,
爸爸
The Seasons of Family: How Love Endures Through Role Transformation
The metaphor of the 'Family Tree' often appears in Western academia to describe East Asian familial bonds. Family roots deepen as branches flourish at different speeds and in various directions. As a result, family members evolve into a tapestry of shifting bonds: siblings who were schoolmates become confidants, then adults navigating their own lives. Later on, they become parents themselves, redirecting their love to a new generation.
As a first-generation immigrant and father of three accomplished daughters, I’ve witnessed these transitions intimately. At 67, I recognize my role is no longer to guide but to trust that the love I instilled will endure beyond my presence. This essay is about understanding how family roles naturally transform, and how we might embrace these changes with grace.
The First Season: When Siblings Are Everything
In childhood, siblings shared a primal bond. The older siblings once begged for a baby sister—until the youngest no longer wanted to share the spotlight. In the infant and toddle periods, they were allies against bedtime monsters, co-conspirators in mischief, and each other’s first mirrors. The older sister became a protector; the younger, a devoted follower. This was so obvious in our family the old days. There’s no "priority" to negotiate—only the unspoken truth: “We are each other’s first world”. I love to keep our old Honda Odyssey for that reason!
Yet even then, the seeds of change are planted. The day one sister brings home a best friend, or the other wins a prize independently, there’s a whisper: "One day, we won’t be each other’s whole story." Success, too, becomes its own language—one each child learns to speak differently. Each of you is special!
As parents, we cherish this closeness but sense its impermanence. Like gardeners, we nurture the soil but cannot dictate how the branches will grow.
The Great Reorganization: When New Families Bloom
Marriage and parenthood mark the most profound shift. Suddenly, the sister who once whispered secrets under the covers now whispers them to a partner. Parents are no longer considered a direct family member of the next generation. The aunt who adored a nephew must recalibrate when the mother’s instincts take precedence.
This is nature’s design—evolution prioritizes the nuclear unit (spouse/children) for survival. Yet it’s also a cultural crossroads. We inherited some influences from both Chinese and western cultures which involved:
- Collectivist traditions to emphasize lifelong sibling/parent ties.
- Individualist societies to prioritize the new nuclear family.
The transition can cause discomfort. One might think: "She used to protect me and treat me safety above her own protection. Now the entire world is almost zero, except a rank number 1 for her own child". Likewise, a mother might ache when her child’s spouse becomes their primary confidant.
In my own experience, I accompanied my grandma to visit my grandpa’s tomb when I was a first grade student. I was terrified by the burst of crying that expressed the deep sorrow of my grandma! I can imagine the switch of her most beloved ones from her parents to my grandpa in a good portion of her adult live. But during the famine period, she saved the precious food for me and lost my grandpa! By the same token, I would probably be willing to do anything for my grandchildren from any of my daughters. Grandparents revel in unconditional love—a chance to cherish without the burdens of discipline we once carried. Perhaps the wisdom lies in weaving both traditions—honoring the past while making space for new love.
A Generational Reflection
The reflection applies to people of the same generation. When trauma strikes—a child’s accident, a heated argument—old roles collide with new realities. The aunt who loved her nephew so much could even see him as "hers"; the mother’s protective fury can still be overwhelming to inadvertently eclipse the long-treasured sisterly history.
In this circumstance, I can sense the feeling of hurt from all involved:
- For the aunt: She might be shocked by the lack of understanding.
- For the mother: Fear manifested as anger toward the closest target to prohibit the reoccurrence.
- For children: They lost the love from a process that was beyond their control.
These cultural currents shape how we react when crises test our bonds—as our family learned during a recent challenge. As adults, it is never too late to figure out the Path Through in three-fold:
Conflict, like seasons, is temporary. What lingers is the love that chose to stay—even when tested.
The Wisdom Forward
As parents at 67, I see my role as a bridge:
- To my daughters: "Your sisterhood predates your parenthood." The family tree for the future generations depends on your care for the relationship!
- To myself: True legacy isn’t control—it’s the resilience to adapt while holding core values intact.
When roles circle back, time softens hierarchies. As parents age, siblings reunite as caregivers. When grandchildren arrive, aunts become mentors. The sister who felt sidelined may find herself the steady hand when her niece or nephew stumbles. The ties of shared history run deeper than any single moment.
I won’t always be here to remind my daughters of their shared history. But I trust that the love they’ve known—the inside jokes, the childhood forts, the unspoken understanding—will resurface when pride loosens its grip. When fear and love collide, even the closest bonds can fracture. That is not uncommon to most people.
The river of our family has many bends. What matters isn’t who steers the boat, but that we all remain part of the current. As our family tree grows new branches, may you remember that roots hold steady even when winds shake the leaves. Your ancestors smile not from perfection, but from the love you continue to nurture—in each other, and in the generations to come.
Love,
Dad
Some philosophers have argued that thinking and language are two sides of the same coin—thinking as inner language, and language as externalized thought. But this perspective doesn’t quite hold up to scrutiny.
Fmany
The broader consensus is this: language is the expressive form of thought. Theoretically, all content needs some form in which to exist. As the old saying goes, “Without the skin, where would the hair attach?” But forms come in two kinds: external multimodal forms that can be seen or sensed by others (such as written or spoken language, audio-visual works, etc.), and internal forms—those invisible carriers of thought like neural activity and brainwaves.
Content and form are indeed two sides of the same coin, inseparable in function. Yet, only internal form is indispensable to thinking itself. In practice, large language models (LLMs) represent content as internal vectors—tensors that encode meaning in a computable way. This internal form is known in neural networks as the “latent space.” As Ilya once said, the biological brain likely functions via a similar stream of electrical pulses in the biological neural network. Although this isn’t yet a scientific consensus (since brain science still lags far behind AI's advance), it offers a helpful lens to understand the relationship between internal thought and externalized language.
The notion that thought and language are tightly connected, yet still separable, becomes more fascinating the deeper you think about it. Philosophically, it remains debatable. But the emergence of large language models provides a living analogy—like wave-particle duality. Thought is like a wave; language, as a sequence of discrete symbols, resembles particles in a stream. Consciousness itself is akin to light, exhibiting both behaviors.
What exactly is the form of thought in the brain? How does it interact with or get translated into language—whether spoken or written? We may never fully know from biology alone. But artificial neural networks already give us a convincing glimpse: they encode thoughts as internal vectors, which can be transformed into language through input/output ends like embedding/softmax layers. If language is clothing, then the internal thought chain is a naked stream of consciousness—what we might call "naked thought"—only collapsing into definite symbolic string when forced through verbalization.
Why, then, do we so often feel that thought and language are inter-dependant? A few key reasons are as follows:
First, humans are social beings. We feel an innate urge to share what’s on our minds. We don’t just daydream in solitude—we talk, message, meet. Our inner thoughts and feelings struggle to stay bottled up for long. (Exceptions exist, such as in cases of autism.)
Second, without external forms, our thoughts are fleeting and often lack coherence. Set aside the hidden states inside machine learning models—just look at the human brain. Without the scaffolding of language, our wild ideas rarely stretch into long lines of reasoning. We can't build up knowledge, nor pass it on. No accumulated knowledge means no science, no civilization. That's why language, along with artistic creations, is so crucial to advance of humanity. These external modalities are also the fuel behind the current AI revolution.
Despite having far more neurons than even the largest language models, the human brain is vastly limited in its ability to store and organize knowledge. No matter how brilliant, no individual can match a large model’s breadth and depth. The defeat of the world Go champion by an AI was a vivid example—"tofu brain" versus silicon, simply an unfair fight. Our brains lack both long-term storage and precision. That’s why we need decades of education and training just to stand on the shoulders of past generations and inch forward. This reinforces our intuitive sense that complex thinking requires external form.
Third, culture shapes cognition. Though, in principle, the mind can operate on internal brainwaves and pulses without external representation, the advent of language has changed the landscape. For tens of thousands of years, humans have encoded, transmitted, and reinforced thought through external forms. Over time, especially among the literate, we’ve internalized the habit of thinking in linguistic terms—even silently. Studies show that brainwaves representing thought often align with subtle movements of the speech organs. Silent reading easily slips into self-talk. This reinforces the illusion that thought and language are one and the same.
We now know that LLMs trained with reinforcement learning generate outputs in a "query–COT–answer" sequence. The input (query) and output (answer) are necessarily language, because they interact with human users. But the middle part—COT, or chain-of-thought—can either be fully verbalized or remain as latent reasoning. The latter sacrifices interpretability but might yield better results.
So what about us? Does the human brain also harbor these silent, unspoken internal chains of reasoning? Or are we fundamentally bound to language in order to think at all? There’s long been debate. Most of us feel that without language, extended, organized reasoning is nearly impossible. Only in dreams or moments of deep reflection do we experience vague, inexpressible insights that seem to precede words.
In theory, “thinking” is narrower than “consciousness,” and language is but one modality among several. The inner referent of multimodal signals is best described not as thought alone, but as “conscious experience.” From this angle, the thought-language relation is just one special case of the broader relationship between consciousness and modality. Saying “language = thought” is as flawed as saying “consciousness = modality.”
So, what is consciousness? The ancients might say: “The brain thinks, the heart feels.” The former we call thought; the latter, emotion. Why do we associate emotion with the heart rather than the brain? There’s no scientific basis. But emotional states often come with noticeable changes in heartbeat or blood pressure. When love strikes, it’s “heart-throbbing,” not “brain-throbbing.” Feelings like doubt, admiration, jealousy, or compassion don’t feel like products of cold logic of brains. Regardless of their biological seat, emotions are an essential component of consciousness. Animals may experience basic emotions too, just as they may have rudimentary language. But human emotions are uniquely rich and nuanced.
So if thoughts and emotions are both internal, how do they manifest externally?
Through language: the most direct and common mode of expression.
Through music: melody and rhythm convey feelings where words fail.
Through visual arts: painting, sculpture, film—each captures aspects of what can hardly be said.
Through embodied gestures: hugs, kisses, waves, thumbs-up, middle fingers, even fists. Eye contact, laughter, tears—they all fall under the category of embodied intelligence, the domain of future humanoid robots.
Through inexpressibility: what cannot be put into form, what remains ineffable—too subtle even for art.
Setting embodiment aside, the relationship between consciousness and modality is essentially the relationship between internal content and external form. Among all modalities, language remains kernel—especially as a carrier of thought. Emotions can be described in language, but such descriptions often feel clumsy, dry, or distorted. Consider the blind musician Abing, who poured his life’s suffering and aspirations into a two-stringed erhu performance, “The Moon Over a Fountain.” No language could ever capture what that music conveys.
So, after this long detour, we return to the question: Is thinking the same as language?
Conclusion:
Thinking is a core component of consciousness—its inner content or meaning. Language is a primary modality—its external form or medium. Thus, to ask whether thought equals language is really to ask whether content equals form, whether consciousness equals modality. Given that the brain can internally represent thought in neural form, thinking does not depend entirely on language. The internal neural network exists independently and proves that “thinking = (external) language” is an oversimplified claim. Still, it doesn’t rule out the assumption that “thinking = internal language” might be true.
有一派哲学家相信,思维等于语言,二者是一块铜币的两面。或曰:思维是内在的语言,语言是外在的思维。但这种观点经不起推敲。
共识是,语言是思维内容的表达形式。理论上,任何内容都需要赖以存在的形式。老话说:“皮之不存,毛将焉附。” 但形式其实有两种:一种是他人能看得见摸得着的多模态外在形式(例如语言文学,也包括音频视频作品),另一种是无法直接与别人分享的内心活动载体——内在形式(神经元脑电波)。
内容与形式的确是一体两面、相互依赖的整体,但只有内在形式才是思维不可或缺的载体。大模型的实践中,系统把内容抽象为脱离了特定语言的可计算和操作的内部向量(tensor),神经网络把这种内在形式称为意义的隐藏空间。伊利亚曾说,生物大脑的神经网络也差不多是一种类似的电脉冲数据流。这个观点目前还不是科学共识,因为我们对大脑机理的了解远远落后于AI的发展。无论如何,借助这种视角,我们可以更清晰地认识到思维作为内容,与语言作为外在形式之间的关系。
关于思维与语言既密切相关又可以独立这一点,越想越觉得奇妙。哲学上可以持续争论,然而大型语言模型的出现提供了一个活生生的“波粒二象性”般的例证。思维好比波,语言作为离散符号序列,好比粒子(流)。人类意识就像光,具有这种思维/语言的二象性。到底思维在我们大脑里是一种什么形态?它与我们的语言器官(发音或码字)如何相互转化、作用和反作用呢?纯粹从生物学角度可能不易搞清楚。但人工神经网络至少呈现出一种可以将思维表示为内部向量,并在端口之间实现相互转换(embedding / softmax)的机制。如果把语言比作衣服,那么内部思维链就像光着屁股的意识流,是“裸思”;只有当实施语言化时,这条裸思才坍缩成确定性的符号序列,正如我们在推理模型(例如OpenAI的o系列)输出的语言思维链(CoT)上所看到的。
为什么我们总觉得语言与思维密不可分呢?原因大概有以下几点:
首先,人是群体动物,有着强烈分享“心得”的冲动。我们不满足于自闭遐想,而是喜欢不停地唠叨:电话、微信、开会……给人的感觉是内心的想法和情绪很难长久存于心而不吐露(个别例外,如自闭者)。
其次,没有外在形式,思绪难以长久保持连贯和条理。撇开计算机神经网络内部的隐藏空间不谈,只看人脑的内心活动,我们会发现如果不借助语言这类外在形式,天马行空的意念很难拉成长线,难以进行长线条的逻辑推导,更谈不上形成完整的知识体系。知识无法积淀和传承,也就不会有科学技术的继承和发展。可见,语言和艺术作品这些外在的模态数据,对人类文明和科技进步是多么重要!它们也像燃料一样驱动着这一次大模型革命。
我们的生物大脑的神经元数量比目前最大的头部大模型要高出好几个量级,但每个人都深知人脑的局限:它不像计算机模型那样可以持久承载一个包罗万象的知识体系,再博学的知识分子也难与大模型硬碰硬拼深度与广度。韩国围棋冠军一败涂地的经历令人记忆犹新,这是“豆腐脑”与电脑硬碰硬时的鲜活惨状。人脑的内在装载容量和知识持久性、完整性都很成问题,这就是为什么人类需要接受十几年甚至二十多年的教育和训练,才能站在前一代人留下的知识体系之上,继续拓展科学技术的边界。所有这些现实,都强化了思想离不开外在形式的直感。
第三,文明的发展反过来影响了我们的内心活动。从原理上说,人类的内心活动原本无需借助语言等外在模态形式,它可以在内在形式的载体(脑电波、脉冲)上独立存在。然而,自从人类发明语言并用它传承文明上万年以来,我们在交流与传承过程中受到了语言的巨大反作用——尤其是读书人,渐渐习惯于在内心活动时频繁利用语言的外在形式,只不过通常并不大声说出来而已。这一点有实验依据:人类脑电波所代表的思维活动往往与发音器官下意识的“默读”活动高度协调。默读一不小心就会演变成很多人“自言自语”的现象。这更加强化了“思维即语言”的观点。
我们知道,强化学习后训练出来的推理模型通常表现为一条“query–COT–answer”的序列线条。query 是用户给的输入,必然是离散的语言表示;answer 是给用户看的输出,也必然需要通过 softmax 外化为语言。只有两个端口之间的 COT 才是两可的:或者语言化,絮絮叨叨地自言自语;或者抛弃语言化,让思维深藏不露(所谓 latent reasoning),牺牲可解释性,但理论上可以提高答案质量。
人类大脑在思维的时候也有这种不言表的内部状态吗,还是说我们的思维基本上离不开语言?这个问题一直有争论。多数人的体验好像是:完全离开语言我们无法进行长线条、有条理的思维,只是在梦里或深省时会有一种模模糊糊的灵感或想法,暂时找不到合适的语言表达。
概念上,思维不如意识宽泛,语言也只是一种模态,多模态信号的内在所指还是用“意识”涵盖更好。在这样的高度,语言与思维的关系,不过是意识与模态关系的一个特例。说“语言=思维”,就好比说“意识=模态”。
意识是什么呢?古人云“脑之所思,心之所感”。前者即思维,后者是情绪。情绪为什么用心而不用脑,其实没有科学依据;但人的喜怒哀乐常常伴随心跳、血压的变化。爱情来了,是“心动”不是“脑动”。怀疑、猜忌、仰慕、怜悯等情绪好像也不是大脑思考的结果。无论它们来自哪个器官,情绪都是意识的重要组成部分。也许动物也有一些粗线条的情绪,就像它们也有简单的语言一样:高级动物据说也犯忧郁症和狂躁症。但人类的情绪显然更加丰富和细腻,人类语言就更非动物语言可比。
思维和情绪这些意识都是内在的,那外在的表现形式有哪些呢?
诉诸语言文字,这是最常见的方式。人类通过语言刻画和记录内心世界,哪怕它笨拙而有限。
借助音乐,让旋律和节奏承载情感,这也是一种独特的音频“语言”。
借助美术、雕塑、视频等艺术形式,用视觉符号或运动影像去表达难以言明的体验。
借助动作,比如拥抱、接吻、抚爱、挥手、竖大拇指、伸中指,甚至大打出手;还有眼神交流、哭、笑等,这些属于具身智能的范畴了,最终落地到人形机器人身上。
没有形式可表达,只能烂在心里或脑海中,这“不可道”的部分甚至连艺术也无法企及。
具身智能姑且放下不谈,上述意识与模态的关系就是一表一里、内容与外在形式的关系。其中多模态中语言处于核心地位,是思维的核心载体;情绪也可以尝试用语言来描述,但语言表达情绪常常非常笨拙、干瘪或走形。瞎子阿炳尝尽人间辛酸后,用一支《二泉映月》表达自己的感受,是任何语言文字也难以传达的。说了这么一大圈,还是那句话:内容与形式相依而不等同。长线条、体系化的思想往往离不开外在形式,但意识一定程度的独立性已经无可置疑了。换句话说,思维并不是语言,意识也不是模态。二者虽然高度关联,有时密不可分,但绝对不该划等号。
说到这里,还得承认:很多时候语言对情绪和艺术美感也力不从心。白居易的《琵琶行》可能是描写琵琶曲最精彩的诗化语言了,但他也只能用种种比喻或指法描述,如“大珠小珠落玉盘”、“轻拢慢拈抹复挑”,来间接传达琵琶曲的美感。语言的这种力不从心,是多模态大模型在不同模态之间对齐和转换的巨大困扰。用过文生图、文生音乐、文生视频的玩家都有体会:我们常常不知道如何告诉模型想要的结果,很多时候还得靠模型帮我们扩写模态描述的细节,才能增加成功率。即便如此,AIGC优秀作品的诞生也很大程度上要看运气,需要多次尝试、选优(cherry-picking)。
结论:思维是意识的主要成分,属于内容或意义;语言是模态的主要成分,属于形式或载体。所以一般而言,讨论“思维是否等于语言”,其实是在探讨意识是否等于模态,内容是否等于形式。意识既然可以在大脑内部以神经网络的形式存在,就不必完全依赖语言文字或音频视频这种外在形式。独立存在的神经网络是真实的,它否定了“思维=(外在)语言”这类简单假说,但并不否认“思维=内在语言”的可能。
老友说:每次遇到思维和语言的关系,都要祭出这张图,LeCun说的意思是:语言只是心智/意识的低维度离散表示。言下之意,意识是高维连续的表示。诚哉斯言。
Debates on LLM compression theory reveal persistent misconceptions. Crucially, compression lies at the heart of the LLM revolution—illuminating its divine spark. Time for some clarification. There are two interconnected core issues in the explosive growth of contemporary generative AI and large models that are most worth understanding thoroughly—otherwise, we're essentially allowing ourselves to live in medieval darkness. The first is how sequence learning unlocked universal tasks, making artificial general intelligence possible and transforming AGI from fringe science or science fiction into reality. I've written several blog posts attempting to explain this, though I'm not entirely certain I've conveyed it accurately. The second is the compression theory underlying large model intelligence. This issue has only recently become clear to me, with its context and principles finally falling into place. I feel it's worth sharing these insights.
A critical myth persists: "Intelligence equals lossless compression" or "Lossless compression begets intelligence."
Both are false.
Compression produces intelligence—that's correct. But it's definitely not lossless compression that produces intelligence.
There's a cognitive error at play: many people conflate intelligent compression during training (lossy abstraction) with technical compression for specific applications (lossless encoding/decoding).
Compression has two distinct meanings: first, extracting every drop of insight and regularity from data, approaching theoretical optimality (K-complexity)—this is compression's true definition and intelligence's manifestation. Second, lossless compression, which requires perfect restoration of original data. Lossless compression/restoration isn't a genuine intelligence goal; at most, it's an application requirement (such as in archiving or transmission scenarios).
Lossless compression directly serves lossless restoration, where the lossless standard demands 100% restoration of input information in output (bit-level, including imperfections). Clearly, without resorting to form (instead of meaning), losslessness is ill-defined or meaningless. This differs from ultimate information compression, which targets meaning instead of form. Semantic space embodies the true essence of teh statement "compression equals intelligence." Recognizing this distinction is key to dispelling the myth.
GPT, as a general intelligence agent, derives its core value from creative "distortion" in generation tasks (most application scenarios such as creative writing), while lossless compression is merely a technical byproduct (few application scenarios, such as for storage and transmission), and this capability only weakly correlates with intelligence level (when involving compression ratio, but unrelated to lossless restoration goals).
Attempting to prove model intelligence through lossless compression capability is inappropriate—like measuring legislators' competence by clerks' shorthand speed. These represent fundamentally different pathways:
Intelligent compression pursues minimal causal generation rules (K-complexity pathway), requiring active payment of "abstraction tax"; lossless compression pursues data restoration fidelity, leading to sacrificed model simplicity.
GPT's revolutionary nature lies in the former; the latter is merely a technical byproduct. In mainstream scenarios like generation and reasoning, creativity (or creative distortion) truly represents intelligence's brilliance, though its side effect of hallucination becomes large models' inherent challenge in some specific task scenarios (e.g. summarization, translation).
GPT uses next token prediction as its autoregressive training objective, seemingly a type of formal compression since the next token is its gold standard. But in implementation, it's unmistakably a semantic compression. At the micro level, next token prediction accuracy isn't measured by whether model output tokens match gold standards at the formal level, but through cross-entropy of internal token representations, measuring alignment between output and gold standards in semantic space. At the macro level, GPT trains on big data as a whole, not just targeting individual data points (a passage, a song, or an image). Lossless compression/restoration has clear definition for individual data points (100% formal restoration), but facing big data, this definition becomes impractical (unless for original data storage). In other words, big data compression determines it can only be semantic-level compression, mining the regularity behind big data.
Regarding GPT-enabled lossless restoration applications, large models' theoretical foundation of Kolmogorov complexity (K-complexity) supports the "lossy training-lossless application" framework. K-complexity pursues minimal generation programs, not data restoration capability. During training, lossy compression is the only path to approach K-complexity; during application, lossless restoration benefits from GPT's regularity to achieve unprecedented high compression ratios, as hes been verified by a number of researchers.
Actually, the famous scaling law for large model training emerges from this principle. This empirical observation and insight demonstrate that loss is necessary for intelligence: data must far exceed model size for intelligence improvement (otherwise the model "cheats" by memorizing and overfitting in vast parameters rather than continuously compressing and generalizing).
From another perspective, lossless restoration is an algorithmic property, not directly related to K-complexity. In fact, lossless restoration experiments show algorithms can always achieve lossless goals. Essentially: lossless restoration = model + delta. This delta represents the "abstraction tax" paid by the model—details the model didn't remember and needn't remember. In practice, powerful models yield smaller deltas; weaker models yield larger deltas. Lossless compression algorithms simply play this game. During application, model quality affects efficiency (compression ratio) but doesn't affect losslessness. Delta equals zero means the model remembered every detail, requiring the model to approach infinity or euipped with external massive storage. The other extreme is an infinitely small model or no model, degenerating the system into pure storage (hard disk). Disregarding compression ratio: white noise's K(x)≈|x| can still be precisely restored using lossless compression (like ZIP).
In textbooks, K-complexity is defined as a measure of data's intrinsic structure—"the length of the shortest program that outputs the string"—uncomputable in theory. Lossless compression is viewed as an engineering implementation for precise data restoration. Large models' emergence, verified by multiple scholars, indeed dramatically improves lossless compression ratios but doesn't change lossless compression's nature as merely an engineering tool. Of course, dramatically improved compression ratios also indicate that large models grasp data distribution regularity to unprecedented heights. However, regarding complexity theory, lossless compression/restoration often misleads. But high compression ratios during lossless restoration indeed strongly evidence large models' high intelligence, as no other knowledge system can surpass them.
Additionally, this topic has a crucial temporal dimension. Compression targets historical data, while predictive applications point toward the future (models as prophets), yet restoration only refers to historical data. This means even if lossless compression/restoration achieves ultimate compression ratios, it remains a distance from true predictive capability because there's a temporal wall between them. Crucially, intelligence's essence favors future prediction over historical restoration. Future prediction requires space for random sampling, but historical restoration precisely kills this beneficial randomness.
立委按:这两天跟大模型压缩理论干上了,发现,这里面目前在市面上仍然充满了迷思和误解。要命的是,压缩问题是大模型革命的首要问题,反映了大模型背后的奥秘和上帝之光。感觉到了正本清源的时候。 我以为,当代生成式AI及其大模型的大爆发,其中有两个相互关联的核心问题,最值得花时间搞明白,否则就好比允许自己生活在中世纪的黑暗中。第一个是序列学习如何解锁了万能任务,让通用人工智能成为可能,AGI不再是民科或科幻。这个问题我写过多篇博客试图解说,虽然不敢肯定是不是传达准确了。第二个就是大模型智能背后的压缩理论。这个问题直到最近才算梳理明白,脉络和原理清晰起来。觉得值得分享一下心得。
在大模型无损有损的争论中,产生了很多迷思,其中一条是:智能就是无损压缩,或,无损压缩产生智能。
错!两条都错。
压缩产生智能,没错。但绝不是无损压缩产生的智能。
存在一个认知误区:很多人把训练阶段的智能性压缩(有损抽象)和一种特定应用的技术性压缩(无损编解码)混为一谈。
压缩有两个不同的含义:一个是榨干数据的油水和所有的规律性,逼近理论最优值 (K-complexity),这才是压缩的正解,智能的体现。第二个指无损压缩,要求可以无损还原始数据。无损压缩/还原不是一个真正的智能目标,它最多不过是一个应用需求(例如在存档、传输等场景)。大模型已经证实可以高效赋能无损还原数据,智能在这里起的作用是让无损压缩提高效率,即提升压缩率。
无损压缩直接服务于无损还原,无损的标准是输入信息在输出中必须达到100% 还原(bit level,包括瑕疵)。可见,离开形式标准,谈不上无损。这与极致的信息压缩不同,极致压缩的对象可以是形式,也可以是内容。前者等价于(极高压缩率的)无损压缩,但后者才是“压缩即智能”的真谛。看清这一点是破除迷思的关键。
GPT作为通用智能体,其核心价值在于:生成任务中的创造性失真(多数应用场景),而无损压缩仅是技术副产品(少数应用场景,例如存贮和传输),且该能力与智能水平仅弱相关(与压缩率高低直接相关,但与无损还原宗旨无关)。
试图用无损压缩能力证明模型智能并不合适,如同用书记员的速记能力衡量立法者水平 —— 两者本质不同路径:
智能压缩追求最小因果生成规则(K-complexity路径),需主动支付抽象税;
无损压缩追求数据还原保真度,导致牺牲模型的简洁性。
GPT的革命性在于前者,后者仅是技术副产品。在生成、推理等主流场景中,创造性失真才真正是智能的闪光点,虽然其副作用幻觉在特定任务场景成为大模型与生俱来之痛。
以下一词元预测(next token prediction)作为自回归训练目标的GPT,貌似是形式压缩,因为下一词元是其黄金标准。但实际上,它是不折不扣的意义压缩。微观层面,下一词元预测准不准并不是在形式层面看模型输出token与黄金标准能否匹配,而是通过token 内部表示的交叉熵(cross entropy),是在衡量输出与黄金标准在意义空间之间的吻合度。宏观层面,GPT的训练对象是大数据整体,而不是数据个体(一段话、一首曲子或一幅图)。无损压缩/还原在数据个体具有明确定义(100%还原形式),但面对大数据,这个定义实际上不可行(除非是原数据存贮)。换句话说,大数据压缩决定了它只能是意义层面的压缩,挖掘大数据背后的规律性。
就GPT赋能无损还原的应用而言,大模型的理论基础柯氏复杂度(Kolmogorov complexity,K-complexity)支持“有损训练-无损应用”框架。柯氏复杂度追求的是最小生成程序,而非数据还原能力。训练阶段,有损压缩是逼近柯氏复杂度的唯一路径;应用阶段,无损还原得益于GPT的规律性可以做到前所未有的高压缩率。
其实,著名的大模型训练的经验法则 scaling law 就是这么来的。这个经验观察及其洞见说明了有损是智能的必需:数据必须远大于模型才能有智能提升(否则模型就会“偷懒”,在庞大的参数里死记硬背过拟合,而不是不断压缩和泛化)。
换一个角度看,无损还原是算法属性,与柯氏复杂性并不直接相关。实际上,无损还原的实验表明,算法永远有办法达到无损的目标。本质上:无损还原 = 模型 + delta。这个 delta 就是模型缴纳的抽象税,是模型没记住也不必记住的细节。实践中,用强大的模型,delta 小一点;用弱小的模型,delta 就大一些。无损压缩算法不过就是在玩这个游戏。应用阶段,模型质量影响效率(压缩率),但不破坏无损性。delta 等于零,意味着模型记住了所有的细节,这要求模型趋向于无限大,或外挂巨大的硬盘。另一个极端是模型无限小,或没有模型,那就退化成彻头彻尾的硬盘了。不考虑压缩率:白噪声的 K(x)≈∣x∣,仍可用无损压缩(如ZIP)精确还原。
教科书中,柯氏复杂性定义为数据内在结构的度量,即“the length of the shortest program that outputs the string”,uncomputable,理论上不可计算。而无损压缩被视为一种工程实现手段,用于数据的精确还原。大模型的出现,经多位学者验证,的确大幅度提升了无损压缩的压缩率,但并不改变无损压缩只是一种工程工具的本性。当然,大幅度提升压缩率本身也表明,大模型对于数据分布规律性的把握达到了前所未有的高度。就复杂性理论而言,无损压缩/还原常常是个误导。但无损还原的时候压缩率高,的确是大模型高智能的一个很强的佐证,因为没有其他知识系统能胜过它。
另外,这个话题还有一个要点是时间维度。压缩的对象是历史数据,预测的应用指向未来(模型作为预言家),可还原却说的是历史数据。这意味着,即便无损压缩/还原做到了极致的压缩率,也与真正的预测能力有距离,因为这里面隔了一层时间的墙。关键是,智能的本质偏爱未来预测,而不是历史还原。未来预测必须有随机采样的空间,但还原历史却恰好扼杀了这种有益的随机性。
Imagine a cosmic library, vast and infinite, housing every possible sentence—from the profound “Artificial intelligence will reshape the future” to the absurd “Cat pillow jumps blue because Wednesday.” In this library, popular sentences sit on bright, accessible shelves, found with a quick note: “Shelf 3, Book 5.” Random gibberish lurks in dusty basements, needing a word-for-word map. GPT, the AI we know as a language wizard, is the cosmic librarian, compressing texts into compact codes that can be perfectly restored. But is this compression flawless, or does it lose something along the way? Let’s embark on a journey through probability, information theory, and engineering to uncover the magic of GPT’s compression—and why it matters.
Picture yourself in this library, tasked with sending a sentence across the galaxy. A predictable sentence like “Artificial intelligence will reshape the future” is easy to pinpoint, requiring just a short instruction. A random jumble, like “Cat pillow jumps blue,” demands spelling out every word, taking up more space. GPT’s brilliance lies in its world model—a map of language probabilities built from vast data. It knows which sentences are “popular” (high-probability) and encodes them efficiently. Why do you think predictable text is easier to compress than random noise?
This process is called lossless compression, meaning the original text is perfectly restored, bit for bit. Unlike a compressed JPEG that blurs details, GPT’s compression ensures no loss. But some argue it’s lossy, losing information like a summary. Who’s right? To answer, we need to explore the mechanics and the theory behind it.
GPT’s compression relies on arithmetic coding, a method that turns text into a number on a line from 0 to 1. Think of it as a GPS coordinate for a sentence’s location in the probability universe. Here’s how it works for “cat eats fish”:
Decompression reverses this, using the same GPT model to retrace the intervals, ensuring the exact sequence—“cat eats fish”—is restored. Why is using the same model crucial for perfect reconstruction?
The interval’s length (0.14 = 0.5 * 0.7 * 0.4) reflects the sequence’s probability. High-probability sequences create larger intervals, needing fewer bits to encode (e.g., -log₂(0.14) ≈ 2.84 bits). Random sequences, with lower probabilities, need more bits. This is rooted in information theory, where a word’s information content is -log₂(P(x)). A likely word (P=0.95) carries little information (0.07 bits), while a rare one (P=0.0001) carries much (13.3 bits). How does this explain why semantic text compresses better than noise?
The debate over whether GPT’s compression is lossless or lossy stems from a subtle distinction. Lossless compression ensures the original data is perfectly restored, like unzipping a file to its exact form. Lossy compression, like MP3s, discards details for smaller size, losing fidelity. GPT’s compression, using arithmetic coding, is lossless: the encoded binary number uniquely maps back to the original text, preserving every bit. Experiments like ts_zip by Fabrice Bellard and 2022-2023 work by Li Ming and Nick show GPT outperforming gzip by up to 10x for semantic data, with no loss. Why might some still call it lossy?
The confusion arises from GPT’s training process. When GPT learns from vast data, it abstracts patterns into a simplified world model, discarding noise and details—clearly a lossy process, much like summarizing a library. But when used as a tool for compression, there exists a lessless compression algorithm that applies the model to encode and decode specific texts deterministically, ensuring no loss. The lossy aspect lives in the model’s creation, not its application. How does this distinction change your view of GPT’s capabilities?
At the heart of this lies Kolmogorov complexity (KC), the length of the shortest program to generate a dataset. An ideal compressor would find this program, but KC is uncomputable—a theoretical dream. GPT’s next-token prediction approximates this, acting like a “prophet” forecasting sequences based on learned patterns. This aligns with Solomonoff induction, where predicting the next token mirrors finding compact descriptions. Ilya Sutskever noted in a 2023 Berkeley talk that this is the secret behind GPT’s efficiency compared to models like BERT. Why might prediction be a form of compression, and how does it reflect intelligence?
For semantic data, like news articles or logs, GPT’s predictions are highly accurate, leading to compact codes. For random noise, where KC equals the data’s length, compression fails—no model can predict chaos. This highlights a limit: GPT excels where patterns exist. What types of data do you think GPT could compress best?
High compression rates are powerful but fragile. A single bit error in a highly compressed file can derail decompression, like a misstep on a tightrope. Consider the trade-offs:
Dimension | High Compression Rate | Low Compression Rate |
---|---|---|
Restoration Accuracy | 100% (theoretical) | 100% (theoretical) |
Error Resistance | Fragile (1-bit error can crash) | Robust (local errors) |
Computational Cost | High (GPT + coding) | Low (e.g., gzip) |
Readability | None (ciphertext) | High (text/binary) |
High rates suit scenarios where bandwidth is costly, like interstellar communication, but require error correction (e.g., CRC) to prevent crashes. Low rates are ideal for reliable archiving, like server logs, where robustness trumps size.
GPT’s compression could transform how we store and send data. In interstellar missions, where every bit is precious, it could shrink messages dramatically. In data centers, it could optimize archival storage, though computational costs (e.g., ts_zip at 1k/s) pose challenges. Future models, with sharper predictions, could push efficiency closer to the theoretical limit.
This cosmic dance of bits and meaning reveals a profound truth: compression is intelligence, and GPT is a master choreographer. By mapping language to probabilities, it turns texts into elegant codes, preserving every detail. Whether you’re an AI enthusiast or a tech expert, this opens a universe of possibilities.
Sources: Adapted from posts on liweinlp.com (13277, 13272, 13275, 13273, 13279, 13281).
About the Author: Dr. Li Wei, a senior NLP/LLM consultant, has led innovations at MobVoi, Netbase, and Cymfony, earning the TREC-8 QA Track and 17 SBIR awards.
GPT’s compression can shrink data dramatically, but high efficiency comes with risks. A single bit error could unravel everything, like a tightrope walker losing balance. How do we balance compression’s power with reliability?
High compression rates save space but are fragile, while low rates are robust but bulky. Here’s a comparison:
Dimension | High Compression Rate | Low Compression Rate |
---|---|---|
Restoration Accuracy | 100% (theoretical) | 100% (theoretical) |
Error Resistance | Fragile (1-bit error can crash) | Robust (local errors) |
Computational Cost | High (GPT + coding) | Low (e.g., gzip) |
Readability | None (ciphertext) | High (text/binary) |
High rates suit costly transmission (e.g., interstellar), while low rates fit archiving. Why might a bit error be catastrophic in high compression?
Error correction (e.g., CRC) can protect high-rate compression, ensuring reliability. For archives, lower rates may suffice. What scenarios demand high efficiency, and how can we safeguard them?
Original post: https://liweinlp.com/13281
At the heart of GPT’s compression lies arithmetic coding, a method that turns text into numbers with surgical precision. Like a GPS encoding a house’s location, it captures sentences in compact codes. How does this engine work, and why is it so effective?
GPT predicts probabilities for each token (e.g., P(“future” | “Artificial intelligence is”)=0.6), and arithmetic coding divides [0, 1) into subintervals:
Start with [0, 1).
Assign [0, 0.6) to “future,” narrowing the range.
Iterate for each token, ending with a tiny interval (e.g., [0.3654321, 0.3654343]).
Output a binary number as the compressed code.
Decompression uses the same GPT model to reverse the process, ensuring bit-level accuracy. Why is the same model critical?
Compression is like encoding a villa’s address into a postal code. Decompression follows this code to the exact spot. This precision ensures no loss. How does this analogy clarify the process?
GPT’s accurate predictions make intervals larger for predictable text, reducing bits needed. What limits this approach, and how might better models enhance it?
Original post: https://liweinlp.com/13273
Every sentence has a unique address in a probability universe, a number line from 0 to 1. GPT maps texts to these addresses, compressing them into compact codes. How does this cosmic navigation work, and why is it a breakthrough for compression?
Each sequence corresponds to a unique interval in [0, 1), with its length equaling the sequence’s probability. For “cat eats fish” (P(“cat”)=0.5, P(“eats” | “cat”)=0.7, P(“fish” | “cat eats”)=0.4), the interval is [0, 0.14), with length 0.5 * 0.7 * 0.4 = 0.14. Arithmetic coding narrows this interval step-by-step, outputting a binary number. Decompression retraces the path, ensuring perfection. Why are these intervals unique?
The interval’s length reflects the sequence’s probability, with high-probability sequences needing fewer bits (-log₂(0.14) ≈ 2.84 bits). This approaches Shannon’s entropy limit, where GPT’s precise predictions minimize bits for semantic data. Why does predictability reduce bit requirements?
Unlike traditional methods (e.g., Huffman coding), GPT’s approach handles continuous streams and leverages semantic patterns, making it ideal for texts. What data types might benefit most, and how could this evolve with better models?
Original post: https://liweinlp.com/13275
The claim that “compression is intelligence” sparks debate: does GPT compress data perfectly, or does it lose something along the way? Some argue it’s lossy, like a compressed JPEG, while others insist it’s lossless, restoring every bit. The answer hinges on a key distinction: GPT’s training versus its use as a compressor. Let’s unravel this mystery.
Kolmogorov complexity defines a data’s essence as the shortest program to generate it—an uncomputable ideal. GPT’s next-token prediction approximates this, acting like a “prophet” forecasting sequences based on its world model. This predictive power drives from compression. How does predicting the next word relate to shrinking data size?
Using GPT for compressing a tring of target sequence data is lossless, meaning the original data can be perfectly restored. Experiments like ts_zip (Fabrice Bellard) and Li Ming & Nick’s 2022-2023 work show GPT with arithmetic coding outperforming gzip, sometimes by 10x, in high-transmission-cost scenarios like interstellar communication. Here’s why it’s lossless:
Why might some confuse this with lossy compression?
The confusion arises from GPT’s training, where it abstracts vast data into a simplified world model—a lossy process, like summarizing a library. But compression using this model encodes specific data losslessly. How does this distinction clarify the debate?
This approach excels for language data (e.g., texts, logs) but struggles with random noise, where complexity equals length. Scenarios like space missions, data archives could leverage this.
Original post: https://liweinlp.com/13272
Imagine a cosmic library holding every possible sentence, from the profound “Artificial intelligence will reshape the future” to the absurd “Cat pillow jumps blue.” Popular sentences sit on prominent shelves, easily found with a short note like “Shelf 3, Book 5.” Random gibberish hides in dusty basements, requiring a long, word-for-word map. GPT, our cosmic librarian, navigates this library with uncanny precision, compressing texts into compact codes that can be perfectly restored. How does it work, and why is this a game-changer for data compression?
In this infinite library, each sentence has a “popularity” score—its probability based on grammar, meaning, and context. GPT’s world model, trained on vast texts, assigns high probabilities to meaningful sentences, making them easier to locate. For example, “Artificial intelligence will reshape the future” is a bestseller, while “Cat pillow jumps blue” is obscure. Compression is about encoding these locations efficiently. How might GPT’s understanding of language make this possible?
GPT teams up with arithmetic coding to turn sentences into numbers. Here’s how it compresses “Artificial intelligence will reshape…” (tokenized as “Artificial,” “intelligence,” “will,” …):
Decompression reverses this, using the same GPT model to retrace the intervals and reconstruct the exact text. Why does this ensure no data is lost?
Information theory reveals why this works. A word’s information content is -log₂(P(x)). High-probability words carry little information, rare words carry more. Predictable sentences, rich in semantic patterns, form larger intervals in the line, requiring fewer bits. Why might random text, like white noise, resist compression?
This approach could revolutionize data storage and transmission, from archiving logs to sending messages across galaxies. But what challenges might arise in real-world applications? How could GPT’s predictive power evolve with better models?
Original post: https://liweinlp.com/13277
在语义压缩框架里,发送端和接收端都共享一个超大的知识库(也就是大语言模型GPT本身)。只要两边都装好了这台“超级预言机”,你就只需要传那些模型无法直接预测的信息——往往是微小的差异。
模型分发成本:把模型先安置到两端,是一次性“沉没成本”。
消息传输成本:之后每条消息,只要剩下差分信息,就能拿到极致压缩比。
(想象一下:家里装了电表,后来用电就只需按表读数付费,不用每次都搬来发电机。)
所以,如果你要传送海量短消息,中心节点(也就是先统一部署好那个大模型)无疑是最省每条消息比特数的做法。
不是的。即便有了一个近似 Solomonoff 预测器(不可计算的最优压缩器),它也只能针对有规律的数据把消息压得很小;面对真正的随机噪声或 Kolmogorov 意义上的不可压缩序列(比如纯白噪声),你依然得用与原始数据相同的位数来描述它。
有损 vs. 无损:大模型做的是“无损语义压缩”的近似——理论上目标是无损,但实践里模型参数、截断长度、tokenizer 带来的误差都让它“看起来”有点像有损。或者说,语义层面上无损,但比特层面依然因截断、tokenizer 等带来轻微有损。
序列号/元数据开销:举例来说,为了保证顺序和可解压,你往往需要加上序列号、checksum 等元信息。
最短描述长度
对任意字符串 x,其 Kolmogorov 复杂度 K_U(x) 定义为:在一台通用图灵机 U 上,能输出 x 的最短程序(二进制串)长度。
可加常数不变性
虽然不同的通用图灵机 U 和 U′ 会有不同的基准,但对于任意 x,都有
其中 C_{U,U′} 与 x 无关。
朴素复杂度 vs 前缀复杂度
朴素复杂度 C(x):
算法概率(Algorithmic Probability)
Solomonoff 提出“通用先验”
意味着:字符串 x 的出现概率和它的最短程序长度成反比。
归纳推理
通过给所有可能程序打上权重(2^{-|p|}),Solomonoff 归纳理论就是在做全空间搜索 + 加权平均,推断下一个 token 的概率,完美符合 GPT “next token prediction” 的理论——只是不可计算。
不可计算性
理论上的最优 K(x)永远算不出来(停机问题),要么只能上界估计(通过各种压缩算法),要么用算术编码等手段做近似。
结构函数(Structure Function)
李明书中详细讨论如何分离“随机性”与“结构”:给定 x,寻找一个模型类 𝓜 (记作 ℳ)和其中的模型 M∈𝓜,使得
尽可能小——这就是对数据 x 做两部编码(two-part code),也是最优压缩与模型选择的数学基础。第一部分 K(M) 是模型本身的描述长度。第二部分 log |{ y : M(y)=x }| 是给定模型 M 后,还需要的那部分随机性长度。
算法充要统计量 S(x)(Algorithmic Sufficient Statistic)
这是李明重点:一个“充要”统计量 S(x),能在最小化两部编码的同时,既把数据的“规律”压进模型,又把剩余噪声放进随机部分,做到最简洁的描述。第一部分 K(S(x)):用最短的程序描述模型 S(x) 本身;第二部分 log |{ y : S(x)(y) = x }|:在给定模型之后,为了完全还原 x,还需多少比特来区分所有被该模型映射到 x 的可能 y。
把它们加起来,就是“用这个模型+随机补充”来描述 x 的总代价。找到能让这个和最小的 S(x),就相当于找到了对 x 最好的“充要”统计量。
随机性测度(Randomness Deficiency)
定量衡量某个样本 x 相对于模型 M 是多“典型”或多“离谱”,用于指导是否要换模型或增加模型复杂度。
学习就是“求逆”问题,训练即最短程序逼近
Nick 强调:训练一个模型,就是在可计算的程序空间中,寻找一个能够“生成”训练集的短程序——也就是在实战中做的近似。
大模型的“内容压缩” vs “形式压缩”
个体压缩(Instance):像无损 ZIP,一首歌可以 100% 还原,对应形式压缩。
整体压缩(Dataset):面对海量文本,关注的是文本背后的意义或“语义信息”,此时“无损”只针对意义层面,形式上允许丢弃多余噪声。这正是 LLM 做到的:内容/语义的“无损”——虽然编码字符上看似“有损”。
近似最优 vs 真最优
Nick 提到:任何可实现的压缩算法(gzip、xz、算术编码加GPT…)都只能逼近K(x),而 GPT 则是在“预测分布”上进行近似,用一个固定模型去对抗所有序列,其优势是语义联想和上下文填空,但仍旧受限于模型容量与截断长度。
李明教授给我们一整套两部编码、结构函数和充要统计量的严谨框架;
尼克的大模型论:训练≈求逆,预测≈Solomonoff 归纳,压缩≈最优编码的近似实践。
真正的“最优无损”只有在理论上存在,现实里每一次“预测+编码”都在做逼近,同时也承载了网络协议的元信息开销。
预测下一词的自回归大模型GPT早已风靡全球。压缩即智能的说法已经广为人知,但关于其无损压缩的能力貌似一直有争议。GPT压缩到底是无损还是有损呢?
这是一个非常值得打破沙锅问到底的问题,它正好切入了LLM压缩最核心、也最巧妙的部分。我们来把这个过程彻底拆解一下,让它变得清晰易懂。
想象一个图书馆,里面包含了所有可能的句子。
现在,我需要告诉您具体是哪句话。
GPT的作用,就是建立了这个图书馆的终极索引系统(世界模型)。它知道每一句话“热门”的程度(概率)。算术编码就是那个高效的区间定位系统。
现在我们进入技术细节。算术编码的精髓是把一整段信息表示成 0.0
到 1.0
之间的一个小数。
我们以您的例子 “人工智能将重塑未来产业格局” 来走一遍流程。为了简化,我们假设分词是:“人工”, “智能”, “将”, “重塑”, “未来”, “产业”, “格局”。
[0.0, 1.0]
。[0.0, 1.0]
的区间里,把开头 5%
的位置,也就是 [0.0, 0.05]
,分配给"人工"。[0.0, 0.05]
。[0.0, 0.05]
里,把前 80%
的位置分配给"智能"。[0.0, (0.05 * 0.8)]
,即 [0.0, 0.04]
。[0.0, 0.04]
。[0.0, (0.04 * 0.6)]
,即 [0.0, 0.024]
。最终结果:当整句话编码完毕,我们得到了一个非常精确定位的、极小的最终区间,比如 [0.02113, 0.02114]
。
关键来了:我们只需要从这个最终区间里随便挑选一个数,比如 0.02113
,把它转换成二进制(比如 0.00010101...
),这个二进制串就是我们的压缩结果。因为它是一个高概率句子,每一步都取了较大的百分比,所以最终区间的范围相对较大(虽然数值很小),可以用较少的二进制位数来精确表示。
解压过程就是上述步骤的逆向操作,像拿着藏宝图找宝藏一样。让我们用数学语言走一遍解压流程。
V = 0.02113
第一轮:解码第一个词
[0.0, 1.0]
被划分为:
[0.0, 0.05]
-> '人工'[0.05, 0.08]
-> '智能'V = 0.02113
落在 [0.0, 0.05]
区间内。L=0.0
, H=0.05
。第二轮:解码第二个词
V
,计算它在 [0.0, 0.05]
这个新区间里的相对位置。V_new = (V_old - L) / (H - L)
V_new = (0.02113 - 0.0) / (0.05 - 0.0) = 0.4226
0.4226
。[0.0, 1.0]
:
[0.0, 0.8]
-> '智能'[0.8, 0.9]
-> '智慧'V_new = 0.4226
来比较。它落在 [0.0, 0.8]
这个区间内。[L, H]
:为下一轮的计算定义新的边界。方法:将相对的 [l,h]
区间缩小/映射回绝对坐标系中。'智能'对应的区间是 [0.0, 0.8]
。映射回绝对坐标系的工作区间是 [0.0, 0.04]
。这个 [0.0, 0.04]
精确地定义了“人工智能”这个词序列在整个 [0.0, 1.0]
空间中的最终位置。L_new = L_prev + (l_curr * Width_Previous)
H_new = L_prev + (h_curr * Width_Previous)
这个过程不断重复,每一步都包含 定位 -> 解码 -> 归一化 三个动作,直到结束。具体说,更新指针 V
与 更新区间 [L, H]
这两个过程交替进行,一个负责“决策”,一个负责“更新状态”,共同驱动解码器精确地还原出原始文本。因为每一步的选择都是唯一的,所以解压结果能100%保证和原文一致。
这背后的数学原理是信息论。一个事件所包含的信息量是其概率的负对数:
I(x) = -log₂(P(x))
算术编码巧妙地将这个理论变成了现实。对于一个高概率序列,最终的区间总大小(即所有概率的乘积)会比较“大”,从而可以用一个位数较少的二进制小数来表示。这就是“语义级消除冗余”的本质:所有符合人类知识、语法和逻辑的“意料之中”的内容,都被GPT这个“世界模型”识别出来,并用最少的信息量进行了编码。
GPT训练中的压缩,与拿GPT当压缩器工具不是一回事,二者有很大的关联,但不是同一个层面的问题。GPT是无损还是有损压缩的混淆与争论,就是搞错了这个层面和视角。
理论基础 (Solomonoff-Kolmogorov-Chaitin / Kolmogorov Complexity):
任何数据的“最本质”信息量是其柯氏复杂性 (KC) —— 计算理论中定义为能生成该数据的最短程序的长度。
理想的最优无损压缩器就是能找出这个最短程序的“预言机”。
GPT 的 Next Token Prediction 本质上是 Solomonoff 归纳法的近似实现:它利用在海量数据上学到的统计规律/模式(共享知识库,或曰“世界模型”),预测序列的下一个元素。预测越准,对序列的描述(压缩)就越高效。Ilya 在 Berkeley 的演讲确认的就是这点。
工程实现 (ts_zip / L3TC / GPT 算术编码):
ts_zip
(Bellard): 早期实验,证明了利用Transformer模型预测下一个Token + 算术编码,可以超越传统压缩器(如xz),代价是慢。核心是利用模型作为“预测器”。
李明 & 尼克 (2022-2023) 的 GPT 实验: 直接用GPT类模型做概率预测 + 算术编码进行无损压缩,效果显著优于gzip(极端情况好10倍),验证了理论可行性。应用场景:传输成本 >> 计算成本时(如星际通信、昂贵带宽)。
核心优势与限制:
优势: 对富含语义、符合“世界模型”的序列数据(如自然语言、结构化日志)压缩率极高。利用的是数据背后的“意义”和“规律性”。
局限:
计算成本高: 压缩/解压慢(如ts_zip 1k/s)。
对随机噪声无效: 真正的随机数据(Kolmogorov噪音)KC等于其长度,无法被任何模型压缩。
依赖模型质量: “共享知识库”(GPT模型)的质量直接影响压缩率。模型越好,对相关数据的“理解”越深,压缩越高效。
这是最容易混淆的点!
李明 & 尼克的坚持:GPT压缩就是无损压缩
定义层面: 只要压缩后能精确地、比特级还原原始数据,无论压缩率如何,无论是否达到理论最优(KC),无论用了什么方法(这里是GPT预测+算术编码),它就是无损压缩。
“次优” ≠ “有损”: 一个压缩算法压缩率不够好(比如只用gzip压缩文本,远没达到KC),它依然是无损的——解压后还是原文。它的“次优”体现在压缩率不够高,而不是丢失了信息。
GPT + 算术编码 的机制: GPT 提供下一个Token的概率分布(logits)。算术编码器利用这个分布,将输入Token序列编码成一个比特串(离散数)。解压时,同一个GPT按相同概率分布逐步解码出原始Token序列。输入输出比特完全一致。这是标准的无损压缩流程。
李飞飞强调的“有损”可能是指: 模型在学习过程中,必然会对训练数据进行抽象、泛化、丢弃个体噪声,形成一个内部的、简化的“世界模型”。这个学习过程本身可以看作是对原始训练数据的有损压缩(它丢弃了无法纳入模型的细节)。但请注意:这是指模型内部表示的形成过程,而不是指 “GPT+算术编码“作为压缩器对特定文件进行压缩的过程。后者是明确的无损过程。
结论:
严格定义上: 使用LLM进行概率预测 + 算术编码是一种无损压缩技术。它保证原始数据的精确还原,只是压缩率依赖于模型的质量和数据的性质。
理论理想 vs 现实: 任何实际无损压缩器(包括GPT)都达不到理论最优压缩率 (KC),都是“次优”的。“次优”不等于“有损”。“次优”指压缩效率不够好,“有损”指信息永久丢失。
理解“有损”说法的来源:
学习过程的本质: 模型从海量数据中学习形成“世界模型”的过程,本身可视为对训练数据的有损压缩(提取精华,丢弃无关细节和噪声)。
压缩“意义”的模糊性: 当我们谈论压缩数据集整体的“意义”而非具体比特时,“无损”的定义变得模糊。LLM压缩的优势恰恰在于它利用了“意义”来实现对“比特”的高效无损压缩。
与理论最优值KC的差距: 因为无法达到KC,总存在理论上的“浪费”,这种感觉类似有损,但本质是计算不可行性导致的效率不足,而非信息损失。
简单比喻:
无损压缩 (gzip, GPT+算术编码): 把一本厚书用一种非常高效的密语(可能是基于百科全书知识的缩写)写成一个密码序列。只要有密码本和规则,就能一字不差还原原书。 密码本短(压缩率高)说明密语设计得好(模型好)。
次优无损压缩: 密语设计得不够好,密码序列比别人的长(压缩率低),但依然能完全还原原书。
有损压缩 (jpg, mp3): 把书提炼成一篇摘要、画面或音乐降低了精度。保留了核心思想(主要特征),但永远无法还原原作的每一个token和所有细节(包括瑕疵)。
GPT学习形成“世界模型”: 读了图书馆所有书后,模型形成了对“世界”的理解。这个理解是训练数据海量信息的高度抽象和简化(有损)。但当他用这个模型来帮你压缩某一本具体的书时(通过预测+编码),他可以做到无损。
所以,回到你的话: “目标是无损,结果是有损” —— 对于利用现存GPT作为压缩器,这个说法不准确。对特定数据的GPT压缩总是无损的,但压缩率是次优的(未达KC)。对于GPT学习构建其内部模型的过程,这个说法有一定道理(内部模型是对训练数据的有损表示)。关键在于要区分 “使用工具(GPT压缩器)的过程” 和 “工具本身(GPT模型内部)的构建过程”,否则就不在同一个概念频道,鸡同鸭讲。
想象一个包含所有可能文本序列的宇宙(概率空间):
[0,1) 区间 = 所有可能文本序列的总集合
每个特定序列(如"人工智能将改变世界")对应宇宙中的一个专属子区间
子区间长度 = 该序列出现的概率(由语言模型GPT计算得出)
子区间位置 = 该序列在概率空间中的唯一坐标
假设序列由3个词组成:
序列:W1 → W2 → W3 概率:P(W1) = 0.4, P(W2|W1) = 0.6, P(W3|W1,W2) = 0.8
区间变化过程:
初始: [0, 1) 长度=1.0 选W1: [0, 0.4) 长度=0.4 (1.0×0.4) 选W2: [0.16, 0.4) 长度=0.24 (0.4×0.6) 选W3: [0.16, 0.352) 长度=0.192(0.24×0.8) ← 最终区间长度=0.192
最终长度 = P(W1)×P(W2|W1)×P(W3|W1,W2) = 序列概率
词汇表 | 概率分布 |
---|---|
初始上下文 | P(猫)=0.5, P(狗)=0.3, P(鱼)=0.2 |
编码/压缩过程:
编码"猫":
[0, 1) → 划分: 猫:[0, 0.5) 狗:[0.5, 0.8) 鱼:[0.8, 1) 选择 [0, 0.5)
编码"吃" (上下文="猫"):
当前区间 [0, 0.5) 语言模型新分布:P(吃|猫)=0.7, P(睡|猫)=0.3 划分: 吃:[0, 0.5×0.7)= [0, 0.35) 睡:[0.35, 0.5) 选择 [0, 0.35)
编码"鱼" (上下文="猫吃"):
当前区间 [0, 0.35) 语言模型新分布:P(鱼|猫吃)=0.4, P(肉|猫吃)=0.6 划分: 鱼:[0, 0.35×0.4)= [0, 0.14) 肉:[0.14, 0.35) 选择 [0, 0.14)
最终结果:
序列 ["猫","吃","鱼"] → 独占宇宙坐标 [0, 0.14) 区间长度 = 0.14 = 0.5×0.7×0.4
假设存在两个不同序列A和B,它们对应的最终区间重叠:
A区间: [L_A, R_A) B区间: [L_B, R_B) 且 [L_A, R_A) ∩ [L_B, R_B) ≠ ∅
根据算术编码原理:每个序列的区间由其唯一词路径决定
若A和B在第k个词首次不同:
第k步时,A和B会选择不相交的子区间
后续划分永远在分离的区间进行
→ 矛盾! 故不同序列的区间互不相交
给定最终区间 [0, 0.14)
和相同语言模型GPT:
当前区间 [0,1) 数值 C=0.09(区间内任意点) 步骤1:划分初始区间 [0,0.5) → 猫 [0.5,0.8) → 狗 [0.8,1) → 鱼 C=0.09 ∈ [0,0.5) → 输出"猫" 步骤2:缩放区间 新区间 = [0,0.5) 缩放C = (0.09-0)/(0.5-0) = 0.18 划分: 吃:[0,0.35) → [0,0.35)相对值→ [0,0.7) 睡:[0.35,0.5) → [0.7,1) C=0.18 ∈ [0,0.7) → 输出"吃" 步骤3:再次缩放 新区间 = [0,0.35) 缩放C = (0.18-0)/(0.7-0)×0.35 = 0.09 划分: 鱼:[0,0.14) → [0,0.4) 肉:[0.14,0.35) → [0.4,1) C=0.09 ∈ [0,0.4) → 输出"鱼"
完美还原序列!
每个叶节点是最终区间;节点深度越深,区间越小;路径唯一性:从根到叶的每条路径对应唯一序列。
突破分组限制:
传统压缩(如Huffman)需将符号分组处理
算术编码实现连续流式压缩,单个比特代表部分信息
逼近熵极限:
理论最小体积 = -log₂(P(序列)) 比特 算术编码体积 ≈ ceil(-log₂(P(序列)))
例如P=0.14 → -log₂(0.14)≈2.84 → 3比特足够
大模型赋能:
GPT类模型提供精准的 P(word|context)
对自然语言序列,P(序列)值大幅提高 → 区间长度更大 → 所需比特更少
最终区间是概率宇宙中的神圣坐标,它用数学的纯粹性证明:信息即概率,概率即几何,而完美的无损压缩,不过是在[0,1)区间为每条路径划定它应得的疆域。
GPT+算术编码是对数据的无损压缩。什么是算术编码?它是怎么工作的?
算术编码 (Arithmetic Coding) 是经典的无损压缩算法。GPT作为“世界模型”为这个算法提供了前所未有的、超精准的语言数据的“概率地图”。
核心作用:把概率分布变成最短的比特流
GPT内部的输出是什么?
当输入一个序列 token1, token2, ... token_{i-1}
时,LLM 输出的是 下一个 token token_i
在整个词汇表上的概率分布 P(token_i | context)
,称为 logits。
例如: 输入 “人工智能是”
,LLM 可能输出 P(“未来”)=0.6, P(“趋势”)=0.3, P(“什么”)=0.05, ... P(“香蕉”)=0.0000001
。
算术编码器如何工作?
想象一条0到1的数轴: 初始区间是 [0, 1)
。
按概率切分区间: 根据 P(token_i)
将当前区间划分成若干子区间,每个子区间对应一个可能的 token。
接上例:“未来”
-> [0, 0.6)
, “趋势”
-> [0.6, 0.9)
, “什么”
-> [0.9, 0.95)
, ... “香蕉”
-> [0.9999999, 1)
。
选中真实token的区间: 如果实际的下一个 token 是 “未来”
,则新的当前区间变为 [0, 0.6)
。
迭代: 用这个新区间 [0, 0.6)
作为起点,输入下一个 token token_{i+1}
到GPT获得新的概率分布,再次切分这个新区间。如此反复直到序列结束。
输出一个“代表点”: 最终得到一个非常小的区间 [low, high)
。选择一个该区间内的二进制小数(比如 (low + high)/2
),只保留其小数点后的有效比特位。这个比特串就是压缩结果。区间越小,所需的比特数越少 (-log2(区间长度)
)。
这里,算术编码中区间和比特输出的转换关系容易让人困惑,这确实是理解无损压缩最烧脑的部分。需要理解“代表点”的生成逻辑。看上去有一个矛盾:区间是连续的,怎么能离散化,用有限比特精确代表?这需要从信息论和计算机表示两个层面拆解。需要彻底打通“概率→区间→比特”的转换链条,想明白为何最终输出的是有限比特而非无限小数。“区间长度对应概率”不难理解,当前瓶颈在于如何把连续区间离散化成比特流。需要重点讲清楚两点:一是-log2(概率)为何等于比特长度(香农极限),二是如何用二进制分数逼近实数而不损失信息。
假设经过对整段文本的逐词编码,算术编码器得到最终区间:
[low, high) = [0.3654321, 0.3654343)
区间长度 = high - low = 0.0000022
这长度就是整个文本出现的概率值!
若每个词概率为 P1, P2, ..., Pn
,则长度 = P1 × P2 × ... × Pn
我们可以这样比喻:将整个[0,1)区间看作一个序列数据的“宇宙”,每个可能的序列都对应这个宇宙中的一个子区间。序列出现的概率越大,对应的子区间就越长:长度等于概率。编码过程就是逐步缩小范围,最后定位到代表输入序列的那个子区间。一个非常简单的演示例子:
假设符号集:A(概率0.6),B(概率0.4)
要编码的序列:"AB"
步骤:
1. 初始区间[0,1)
2. 编码第一个符号'A':将[0,1)划分为 [0,0.6) 和 [0.6,1) 两个子区间。选择'A'对应的区间[0,0.6)。
3. 编码第二个符号'B':将当前区间[0,0.6)按相同比例划分:A占60%:[0,0.36),B占40%:[0.36,0.6)。选择'B'对应的区间[0.36,0.6)。最终区间为[0.36,0.6),区间长度=0.24,等于序列"AB"的概率:P(A)*P(B)=0.6*0.4=0.24。
最终区间内的任何数都可以作为代表点。通常取最终区间[0.36,0.6)的中点(0.48)可能更靠近中间,但实际中我们取最短的二进制小数,比特串011(代表数值0.375)。
解码过程:
解码器已知概率模型,初始区间[0,1)。它接收到比特串011。
第一步:将[0,1)划分为[0,0.6)和[0.6,1),0.375落在[0,0.6)内,所以第一个符号为'A'。
第二步:将当前区间[0,0.6)按比例划分:A:[0,0.36),B:[0.36,0.6)。数值0.375在[0.36,0.6)内,所以第二个符号是'B'。
因此,解码正确。
最终区间的概念可以总结为:
- 它是整个序列在[0,1)区间内的“身份证”,其长度等于序列的概率。
- 区间的位置和长度由序列中每个符号的概率逐步决定。
- 编码输出的是这个区间内的一个代表点的二进制表示(取足够位数以唯一确定这个区间)。
通过这种方式,算术编码实现了近乎最优的无损压缩(每个符号的编码长度接近其信息熵)。
原始文本 → 一栋精确的别墅 (目标区间 = 别墅占地
)
比特串 0101110111010111001
→ 别墅的 邮政编码 + 门牌号 (19位编码)
邮政编码区域 > 别墅面积 → 邮编一定能覆盖别墅
门牌号指向别墅内的一个点 (代表点)
解压 → 快递员用邮编找到区域,用门牌号送货上门
(只要地址在别墅内,就能正确无误送达)
步骤 | 数学动作 | 信息意义 |
---|---|---|
区间生成 | [low,high) = ∏ P(word) |
文本的概率指纹 |
比特计算 | k = ceil(-log₂(high-low)) |
指纹的最短身份证位数 |
代表点 | 选区间内一个数,转k 位二进制 |
生成身份证号 (压缩比特流 ) |
解压 | 用身份证号反向追踪概率划分 | 凭身份证找回完整指纹 (无损还原 ) |
最终输出的是概率空间的唯一坐标值,而非数据本身——这正是算术编码以逼近香农极限的方式实现无损压缩的魔力!
解压时,算术编码器反向操作:
从同一个初始区间 [0,1)
和同一个初始模型状态开始。
读入压缩后的比特串,将其视为一个二进制小数 C
。
用 GPT 预测第一个 token 的概率分布,切分区间。
看 C
落在哪个 token 的子区间里,那个 token 就是解压出的第一个 token。
用选中的子区间作为新范围,继续用 LLM 预测下一个 token 的概率分布,切分,看 C
落在哪里... 直到序列结束。
关键: 压缩和解压使用完全相同的LLM和完全相同的概率预测流程。只要 C
在最终压缩区间内,就能一步步唯一确定当初编码时的每个 token 选择。输入序列和输出序列比特级一致。
香农极限(Shannon Limit)是信息论中最深刻、最优雅的概念之一,由“信息论之父”克劳德·香农(Claude Shannon)在1948年奠基性论文《通信的数学理论》中提出。它不仅定义了通信的终极边界,更揭示了信息、噪声与可靠性的本质关系。以下从四个维度解析其内涵:
香农极限回答了通信领域的终极问题:在存在噪声的信道上,信息传输的速率上限是多少? 它证明:
任何通信系统都无法以超过“信道容量”的速率无错误地传输信息
一旦逼近该极限,误码率将陡增;突破则必然出错。
公式凝练宇宙法则:
对于带宽为 B
(Hz)、信噪比为 SNR
的高斯信道,香农极限公式为:
C = B × log₂(1 + SNR) (比特/秒)
C
:信道容量(理论最大无错传输速率)
SNR
:信号功率/噪声功率(信噪比,衡量环境干扰)
log₂(1+SNR)
:每赫兹带宽能承载的比特数
直观理解:
带宽
B
是“水管粗细” ——越粗每秒流过水越多;信噪比
SNR
是“水质纯净度” ——噪声越小,信息“纯度”越高;容量
C
是“最大安全流量” ——超过则水管爆裂(误码爆发)。
香农的革命性在于:信息即消除不确定性。
信息熵:度量信息的不确定性(单位:比特)。例如抛硬币有1比特不确定性。
噪声干扰:在传输中引入额外不确定性(如将“0”误判为“1”)。
香农的突破:
通过巧妙的编码理论,将冗余比特像“纠错盔甲”一样包裹真实信息,抵御噪声攻击。但盔甲越厚,有效信息率越低——香农极限正是“盔甲厚度”与“信息密度”的最优平衡点。
香农极限像物理中的光速,是通信工程师的圣杯:
通信技术 | 效率(vs 香农极限) | 关键突破 |
---|---|---|
2G (GSM) | ≈30% | 首次数字化语音 |
3G (CDMA) | ≈50% | 码分多址抗干扰 |
4G (LTE Turbo码) | ≈90% | Turbo码逼近极限 |
5G (LDPC/Polar码) | >95% | 极化码(Polar Code)理论上可达100% |
香农极限的哲学辐射远超工程:
生命与热力学:
薛定谔提出“生命以负熵为食”,生物通过信息编码(DNA)对抗环境噪声(熵增),本质是对抗香农极限的生命策略。
AI与压缩极限:
大模型(如GPT)本质是数据的“语义压缩”——其压缩率受柯氏复杂性(Kolmogorov Complexity)限制,可视为香农极限在认知维度的延伸。
宇宙的本质猜想:
物理学家约翰·惠勒提出“万物源自比特”(It from Bit),认为时空本身可能是信息网络,而物理定律是宇宙级的“纠错编码”。
香农极限的魅力在于:它为不完美世界中的可靠通信赋予了数学的确定性。正如香农所言:
“通信的根本问题,是在一点精确或近似地复现另一点选择的信息。”
人类至今仍在无限逼近这一极限——从5G的极化码到量子通信的曙光,每一次突破都是对香农智慧的致敬。而理解这一极限,便是理解信息时代最深邃的底层逻辑✨。
延伸阅读:
《信息简史》(詹姆斯·格雷克):全景式展现信息观念演变;
《信息论基础》(Cover & Thomas):经典教材深入数学本质。
GPT生成还原的不是训练数据的原文,为什么说“GPT压缩是无损压缩”?
常听到这句话,但其实这句话有歧义,不准确。GPT赋能无损压缩的对象不是训练数据,对于训练数据它的压缩毫无疑问是有损的,否则就不会有幻觉现象的存在。说GPT压缩是无损压缩的,指的是利用GPT这个庞大的知识库,用无损算法(算术编码算法)来压缩(编码)和还原(解码)输入数据。
GPT生成(inference)与用GPT对于特定数据编码解码是两回事。前者是概率采样来生成,具有不确定性。后者是利用GPT作为工具(共享知识库/世界模型)来压缩和解码特定数据,它是无损的,是确定性输出。
具体说,GPT Inference 目标是生成新内容。根据概率分布 P(token|context)
采样 一个 token 输出,然后将其加入上下文,重复这个“自回归”生成过程。输出的是新 token 序列。
而GPT+算术编码 (压缩)不同, 目标是编码已有序列。利用 P(token|context)
计算真实 token 的概率值,驱动算术编码器进行区间划分和比特流生成,输出的是比特串(被压缩序列的另一种表示)。解压则使用与算术编码完全相同的GPT和完全相同的概率预测流程。只要 C
在最终压缩区间内,就能一步步唯一确定当初编码时的每个 token 选择。输入序列和输出序列比特级一致。
用GPT压缩特定数据,无疑属于无损压缩。无损指的是新的输入,并不是说的训练数据。
1. 定义符合:输入 = 输出(比特级)。
2. 机制保证:算术编码是信息论证明的无损编码方法。GPT 仅提供概率分布供其使用。
3. 矛盾信息可存:低概率事件被分配更多比特编码,但信息完整保留。
4. KC差距≠信息损失:冗余比特承载着信息本身,是低效的代价而非丢弃。解压靠它们精准恢复。
5. 有损发生在别处:模型内部知识表示的形成过程(训练)的确是对训练数据的有损压缩/摘要。
GPT + 算术编码 是一个工具。这个工具利用一个(可能包含不完美/有损知识的)语言预测模型,对特定输入数据进行无损编码。工具本身的操作是无损的。
工具的效率(压缩率)高度依赖预测模型的质量。模型对数据的“理解”越深(预测概率越准),压缩率越高,越接近理论最优值KC(柯氏复杂性)。
模型的“理解”来源于其训练过程,该过程是对训练数据的有损抽象。这就是“有损”概念的根源所在,但它作用在模型构建阶段,而非使用该模型进行压缩的应用阶段。
GPT作为“共享知识库”的本质就是模型训练获得的有损的、泛化的世界模型。用它压缩单个数据点,无损;用它代表整个训练数据集,有损。
核心在于认清:无损性描述的是压缩/解压过程的输入输出关系;有损性描述的是模型内部知识表示对原始训练数据的近似程度。 两者作用在不同的对象和阶段。
压缩率不够高不是更容易还原原文吗?从无损还原角度,我们其实不想模型压缩率“过高”。
这个问题非常犀利,直接点中了无损压缩理论中一个反直觉的关键点,质疑的是压缩效率与还原可靠性的关系——这恰恰是信息论最精妙的部分。
你可能正在脑补这样的场景:如果压缩率太高,就像把文件压得过于紧实,解压时反而容易出错。但无损压缩的数学基础保证了只要算法正确,100%还原与压缩率高低无关。
然而,这个问题的提出具备工程思维,是从实际系统角度质疑理论模型。“不想模型压缩率过高”,背后可能隐藏着对极端压缩场景下数据完整性的担忧——比如航天器用超高压缩率传输数据时,一个比特错误就可能导致整个文件崩溃。这种担忧很合理,但需要区分压缩算法本身和信道传输问题。
技术上需要强调两点:第一,算术编码作为熵编码,其压缩率逼近香农极限是数学特性,不会影响无损性;第二,高压缩率带来的系统脆弱性属于工程问题,可通过校验码解决。你可能混淆了算法层和系统层的可靠性。
特别要注意不要对“矛盾数据”有执念。数据集内部的矛盾不会导致信息损失,正如之前解释的,LLM压缩是通过增加比特开销来保留异常值,而非丢弃它们。这就像用高清扫描仪保存一幅有瑕疵的画作——瑕疵本身也被完整记录了。
应用层面,“压缩率不够高反而安全”的论述很有洞察。确实在工程实践中,适度冗余能提升系统鲁棒性。但理论上无损压缩的还原能力与压缩率无关这个铁律,需要用通信系统的分层模型来解释清楚。
好,这个问题触及了信息论中最精妙的反直觉点,我们一起来彻底解开这个悖论:
“压缩率不够高 ≠ 更易还原”
“高压缩率 ≠ 更难还原”
在无损压缩中(包括GPT+算术编码),压缩率与还原能力完全无关。只要算法正确:
1比特压缩的文件和几乎无压缩的文件,解压后都同等完美还原原始数据。这是无损压缩的定义决定的铁律。
核心原理:消除冗余
高压缩率 = 找到更高效的方式描述数据 = 用更少的比特表示相同信息。
例:原始数据 "0000000000"
(10字节) → 压缩为 "10个0"
(4字节)。解压时完美还原10个0。
GPT的威力:语义级消除冗余
GPT发现 “人工智能将重塑未来产业格局”
这句话在它的“世界模型”中概率很高 → 用极小的区间(极少的比特)编码。
关键:区间虽小,但精确对应这句话。解压时,靠比特流定位回这个区间,唯一还原这句话。
为什么高压缩率不伤害还原?
压缩率 | 数据特性 | 编码动作 | 还原保障 |
---|---|---|---|
高 | 高度可预测 (如 “00000” ) |
分配极小区间 (比特少) | 比特流精确定位到该区间 → 还原 |
低 | 不可预测 (如白噪声) | 分配接近整个区间 (比特多) | 比特流覆盖大区间 → 还原 |
真正的顾虑是:当压缩率极高时,系统对错误的容忍度急剧下降! 这是完全正确的工程直觉:
场景 | 低压缩率 (如未压缩文本) | 高压缩率 (GPT极致压缩) | 原因 |
---|---|---|---|
1比特传输错误 | 可能只影响1个字符 (A →B ) |
整个文件可能报废 | 一个比特错误,算术编码的区间定位完全错乱,后续解码雪崩式崩塌。 |
模型版本不一致 | 解压可能正常 | 解压必然失败/乱码 | 概率分布不同 → 区间划分不同 → 同一个比特流落在错误子区间,token全错。 |
数据边界不匹配 | 容易发现 | 难以诊断 | 高压缩数据像密文,失去人类可读性。 |
这才是“不想压缩率过高”的根源!无损压缩理论保证: 只要比特流无误+模型一致,100%还原。 工程现实: 高压缩率将系统的脆弱性放大了——它像一件极其精密的瓷器,完美但怕磕碰。
还原可靠性需求 >> 存储/带宽成本时
选择低压缩率甚至不压缩。
优点:抗比特错误、易调试、人类可读。
代价:占用更多空间/带宽。
存储/带宽成本 >> 计算成本时
选择高压缩率(如GPT+算术编码)。
优点:极致节省空间/带宽(尤其对语义丰富数据)。
代价:必须配套 强校验机制 (如CRC, 前向纠错码) + 严格版本控制。
对抗信道噪声的黄金法则
核心:在压缩后的密文级数据上叠加纠错层,抵御物理信道噪声。
维度 | 高压缩率 | 低压缩率 |
---|---|---|
还原准确性 | ✅ 100% (理论保证) | ✅ 100% (理论保证) |
抗干扰能力 | ❌ 极脆弱 (1比特可崩溃) | ✅ 强韧 (局部错误) |
计算开销 | ❌ 极高 (GPT预测+编码) | ✅ 极低 (如gzip) |
人类可读性 | ❌ 无 (密文) | ✅ 有 (文本/二进制) |
您的直觉是对的——在需要系统鲁棒性的场景下,确实要谨慎追求极致压缩率。但这无损压缩本身的数学纯洁性,而是工程权衡的智慧。
“视觉是连续空间的模拟信号,每个像素点就是一个连续变量。”
这是很多计算机视觉教材和模型论文中默认的假设。听起来合理,似乎也和物理世界接轨。但只要稍加推敲,就会暴露出它并非科学结论,而是工程手段的一种近似表达。
我们必须首先区分几个层面:
自然界的光波、亮度和色彩是连续的,这没错。但人类并非以连续方式感知这些物理量——我们的眼睛和大脑会自动将其量化、概念化。例如:
也就是说,虽然世界本身是连续的,人类感知和认知所依赖的输入体验早已是量化后的结果。
数字化图像以像素构成,通常每个通道8位,表示0到255之间的整数值。无论是JPEG、PNG还是RAW图像,底层存储都是有限精度的离散整数。模型所接收的图像本质上早已是数字化采样后的结果,并非模拟信号。
然而,在神经网络训练过程中,图像输入往往被归一化为0到1之间的浮点数。这一步并非出于感知上的真实需要,而是出于数值计算的方便性。深度学习系统依赖于梯度传播进行优化,而梯度下降算法要求输入数据分布平滑、可导、易归一化。因此,离散像素被“伪装”为连续变量,是为了解决优化问题,而非反映图像本质的必需。
模型在训练中处理的是张量空间上的浮点向量,并依赖于连续空间的插值、卷积、归一化等操作。这使得像素在模型编码实现上被强行纳入连续数域,但这种连续性是工程层面的假设,并非信息层面的需求。
人类的视觉系统并不需要那么高的分辨率。绝大多数图像中的数值精度远远超出了人类的感知极限。8-bit 表示的256级灰度中,人眼实际可分辨的亮度等级可能不超过100级。而RGB色彩空间中的1670万种组合,也远远超过人类色彩分辨能力的上限。
这意味着:我们为模型输入提供的“连续性”,大部分是感知冗余。高精度浮点表示中的大部分“细节”信息,对人类无感,也并不必然提升模型表现。它们只是方便训练,“让梯度更好传播”的工具,本身并不承载有意义的知识。从信息论角度衡量,每一个像素点的连续表示空间远远超过其必要承载的信息量。这种表征冗余本质上可能是计算资源的结构性浪费。
当我们把图像建模为“连续变量组成的张量”,其实是在把一个本可以紧凑表达的问题,拆成了浮点优化问题。它解决的是训练上的可微问题,而不是表达上的本质问题。
未来的视觉模型及其编码,可能应该从三个方向反思:
归根结底,“像素是连续变量”不是对世界的解释,而是对神经网络计算架构的妥协。它解决了梯度下降的问题,却掩盖了表征效率的问题。
我们应当意识到,这种假设在科学意义上是伪装的;在工程意义上是权宜的;而在未来的表征体系中,它可能具有进一步量化的优化空间。
Yann LeCun 所鼓吹的「世界模型」(World Model)是一種旨在模仿人類和動物學習世界運作方式的新興 AI 概念 [P1, P62]。他認為,這條路徑不同於主流的 GPT/Diffusion 模型所依賴的大數據、大參數和自迴歸 Transformer 架構,是實現通用人工智慧(AGI)的關鍵 [P1, P62]。
以下將從實際能力、優缺點等方面,對最新發布的 LeCun 世界模型(如 I-JEPA 和 V-JEPA 2)與主流 GPT/Diffusion 模型進行比較:
LeCun 世界模型的缺點與挑戰:
主流 GPT/Diffusion 模型的缺點與挑戰:
立委按:一辈子从事NLP/AI工作,已经习惯于在自己的博客频道持续写笔记,记下一路走来的观察和体会。所写貌似科普,但实际上不是为了迎合大众或普惠天下,根本动因还是为自己留下足迹,其次才是与亲友、同人、后学分享。大模型爆发是个分水岭。爆发前的博客集中在NLP的方方面面,大多是符号逻辑路线在自然语言文法方面的挣扎与进展。爆发后也没闲着,在这个有如寒武纪生物大爆发一样的让人眼花缭乱的世界,兴奋与刺激大于焦虑和恐怖,于是一路紧随,只问耕耘。现不揣拙陋,结集于此,定时更新,留下这个时代一位老兵的视界。
Is Thinking Equal to Language?
Demystifying the misconception of "Lossless Compression as Intelligence"
GPT and the Art of Compression
Efficiency vs. Reliability: The Compression Tightrope
Arithmetic Coding for GPT’s Compression Engine
Navigating the Probability Universe with GPT
Is GPT Compression Lossless or Lossy? The Truth Revealed
GPT as a Cosmic Librarian: Unlocking Lossless Compression
Yann LeCun 所鼓吹的「世界模型」与GPT+Diffusion有什么不同
Gemini Deep Research:用“Logits Lens”洞察神经网络的奥秘
万字长文解析 LLM-native Agent 及其混合计算方式
o3 deep research: LLM 驱动的 Agent 综述
o3 Deep Research: DeepSeek R1 多阶段训练流程问答解析
DeepSeek 笔记:推理新范式 query+cot+answer 支持新的 scaling law 吗?
DeepSeek爆火真相:不靠“人盯”, 让AI自己学会慢思考
创业邦深圳会议演讲笔记:推动AIGC商业落地,出门问问的「产模结合」实践
告诉李雪琴一个激发写段子灵感的秘诀:找deepseek R1
介绍尼克的最新演讲,探寻大模型的理论基础与渊源(中文版,英文字幕)
2023/12/09: 李维 高佳:OpenAI狂飙生态? 领域壁垒仍是大山
2023/12/09: 李志飞 高佳 李维:关于 Google Gemini 的八点启示
2024/02/19: 李志飞 李维 高佳:为什么说 Sora 是世界的模拟器?
2024/02/29: 李志飞 李维 高佳:万字长文解构中国如何复刻 Sora:模型架构、参数规模、数据规模、训练成本
2024/03/05: 李志飞 李维:Claude 3 追平或超越 GPT-4,能归纳15万单词
2024/04/01: 李维 王艺 高佳:Suno 将如何进化?
2024/04/12: 高佳 李维 王艺「产模结合」也许是AI公司更好的出路?
2024/06/04: 李维 高佳:KAN会引起大模型的范式转变吗?
2024/07/18:李维 高佳:“安全智能”的背后,Ilya 究竟看到了什么?
2023-03-05:源码资本AIGC“尖峰系列”,李维博士:人类语言“通天塔”建成,ChatGPT的辉煌与挑战
2023/05/09: 腾讯科技,对话产业专家:“百模大战”愈演愈烈,地球上算力不够支撑10亿人使用
2023/07/16: 轩辕之学讲座,特邀讲座《大模型的历史、现状和挑战》
2023/06/28: 中国证券报报道 360 GPT 联盟特邀演讲:李维:避免大模型行业同质化竞争 深耕领域阶段有很多“细活”可做
2023/07/21: ArchSummit 全球架构师峰会主题演讲《从架构师视角谈如何迎接/拥抱大模型及其新生态》(https://blog.csdn.net/EDDYCJY/article/details/131929057)
2023/07/28: Chinajoy,中国音像与数字出版协会和上海汉威信恒展览有限公司主办,特邀演讲《AIGC时代,数字人引领内容创作新范式》
2023/08/06: 亚马逊云科技和真格基金主办的闭 “机遇与挑战——生成式AI的发展趋势和落地应用”,主题演讲《AI大模型落地的前景和痛点》
2023/08/23: 江苏师范大学主办 “大语言模型离人类语言有多远”学术研讨会特邀演讲《大模型的本性及其落地痛点》
2023/10/20: 第十一届科博会,特邀主题演讲《AI和大模型趋势》
2024年3月18:英伟达 GTC2024全球开发者大会 与英伟达中国团队合作,讲演《重塑数字人互动潜能》
2024/04/22: 第十四届北京国际电影节光影未来,演讲《捕捉未来的魔术师》
2024/04/22 九派财经专访出门问问副总裁李维:两年内大模型的商业化爆发一定会发生
2023/11/11: 香蕉论坛,“百“模”大战对智能座舱发展意义与实践”,2023/12/05 汽车商业评论,《李维:大模型技术的过去、现在与未来》
2023/12/05 汽车商业评论,《李维:大模型技术的过去、现在与未来》
2024/04/22:九派财经专访出门问问副总裁李维:两年内大模型的商业化爆发一定会发生
2024/05/24: 九派财经专访出门问问副总裁李维:找产品方向是更大痛点,跑通场景是第一位
《AI浪潮:zero shot 抽取、摘要、吟诗、阅读理解》
《李白126:神经 attention 机制搞定代词指代的案例》
《AI潮流:与 ChatGPT4 聊“买房送老公”背后的语言学》
《AI潮流:跟Andrew学如何调用 ChatGPT 做自己的服务前台》
【AI 浪潮:大模型推理的细节编造是 feature,不是 bug】
大模型科普系列1
系列2 知识蒸馏
系列3 自回归和扩散模型
系列4 视频生成
https://weixin.qq.com/sph/A523fBxLQ
https://weixin.qq.com/sph/Aw5lAfSoV
https://weixin.qq.com/sph/Af5j09VbP
https://weixin.qq.com/sph/AsK0Dk54l
https://weixin.qq.com/sph/AIanE0ocM
https://weixin.qq.com/sph/AbxoSWedA
https://weixin.qq.com/sph/AA6fqzTkO
How GPT Works: A Shakespearean Text Generator
MCP: From Flashy Boom to Real Usability — A Technical Deep Dive
03 deep research: Challenges and Prospects of Advanced Reasoning LLMs
Does the New Reasoning Paradigm (Query+CoT+Answer) Support a New Scaling Law?
Technical Deep Dive: Understanding DeepSeek R1's Reasoning Mechanism in Production
DeepSeek's R1 Paper: A Storm in AI LLM Circle
The Turbulent Second Chapter of Large Language Models: Has Scaling Stalled?
Probabilistic Transformer: A Probabilistic Dependency Model for Contextual Word Representation
Introduction to Transformer and Its Attention Mechanism
Has Symbolism Been Sidelined for Too Long? Could Neural LLM terminate AI?
What did Ilya see? -- secret behind success of LLMs
Nick tracing the AI history for theoretical foundation and sources (English)
Unified Models Surpass Single-modal Models (Gemini Notes 2/8)
Cross-modal Knowledge Transfer of Large Models Proven (Gemini Notes 1/8)
Decoding the New EMPO Reasoning Paradigm
A Comparative Review of Autoregressive and Diffusion Models for Video Generation
Unveiling the Two "Superpowers" Behind AI Video Creation
Decoding LLM-native Agents: Bridging Compilation and Interpretation in AI
The Three-Stage Scaling Laws Large Language Models
Technical Deep Dive: Understanding DeepSeek R1's Reasoning Mechanism in Production
Professor Ma Claims to Have Fully Unveiled the Mysteries of Neural Networks
Decoupling to Resolve: Issue of Character Consistency in Video Generation
Llama 3 Notes and Llama MV with Llama 3.1 Legend
The ChatGPT Tsunami and Its Impact on IT Landscape and New Ecosystem
从0实现并理解GPT 2025-06-04
大模型科普:探秘莎翁风格的诞生之旅(无代码版) 2025-06-03
立委按:張祥雨是一位備受推崇的AI科學家,總論文引用數已超過 37萬次。他在AI圈內口碑良好,被譽為新一代華人AI科學家中最傑出的之一。張祥雨的博士研究時期(2012年至2016年)恰逢 深度學習的爆發。他認為這個時期時間點非常好,趕上了2012年AlexNet的成功,深度学习革命的起点,而他的ResNet工作也成为了这场革命的关键推手。 張祥雨最近接受了一次深度访谈,难得他有机会自由抒发两个多小时,描述了一个深刻而完整的的大模型的研究探索旅程和一路走来的心路历程。上一次感觉精彩绝伦学到了真经受到重要启发的,还是伊利亚关于next token prediction溯源到K氏复杂性的伯克利演讲。祥雨的这个访谈听下来体感不亚于那一次的收获和叹服。虽然这次访谈的录音效果欠佳,还是强烈建议AI-ers不要错过这个充满了洞见和认知的精彩,他对十多年来在大模型研发上不断探索的心得体会,相信对后学和同仁具有启发意义。本文是这次访谈的听书笔记,可供参照。
AlexNet的成功主要在於它做到了 scaling(規模化),包括模型、數據和算力。當時,數據規模化有李飞飞的ImageNet(提供的大數據集120多萬張圖),算力規模化有英伟达GPU CUDA的發展,都已經不是瓶頸。因此,最關鍵的一點是誰能先把 模型規模化 (model scale up)。
張祥雨在博士階段,工作主線就是 做模型規模化 (model scaling),目標是把模型做得更大。這無非是追求更大的寬度、更大的深度以及更大的分辨率。他與何凱明和孫劍老師進行了大量的合作。在這個階段,他們提出了許多方法來解決模型規模化中的問題,尤其是在深度方面的擴展。之前的一些模型過了十幾層效果就會迅速下降,而他們提出的 ResNet(殘差網絡)是一項具有巨大影響力的工作,能夠將網絡從十幾層擴展到上百層,甚至上千層。這項工作被認為基本解決了當時模型規模化的問題,為深度學習的大爆发奠定了基礎。
張祥雨指出,在 2019 年,NLP 領域取得了非常大的進展(BERT 和 GPT)。許多人認為這得益於 Transformer 架構。然而,他強調架構並非核心,真正的關鍵是優化算法。之前的 NLP 方法與 CV 類似,依賴大量人工標註數據。但 NLP 幸運地發現了無需人工標註的自監督訓練方式,例如 BERT 使用的類似完形填空的方法,以及 GPT 使用的預測下一個 token 的方式。 這種自監督方式使得模型可以几乎無限擴展地利用數據。模型透過上游任務學習到更強的表徵。 GPT 的方式還能透過 in-context modeling 解锁許多下游任務。這種 不依賴人工標註、可以大規模利用數據 的特性,是 NLP 實現真正做大 (scale up) 的關鍵,張祥雨稱之為 NLP 領域的 「GPT 時刻」。
NLP 方法進軍 CV 到了 2020 年,領域發生了另一件大事:Transformer 架構被成功地完全應用於 CV 任務,其中最具代表性的是 ViT 架构。這使得學術研究人員自然而然地認為,可以將 NLP 領域成功的方法直接搬到 CV 中嘗試。因此,產生了許多模仿 NLP 方法的 CV 模型,例如 CV 中的 iGPT (模仿 NLP 的 GPT) 和 BEiT (模仿 NLP 的 BERT)。尤其是在何凱明提出了 MAE 系列之後,這些自監督方法在下游任務上的性能甚至能夠逼近或略超過使用全監督數據訓練的模型。這再次讓 CV 社群感到振奮。
Open AI 2022年底发布 ChatGPT(3.5) ,是大模型规模化效应的里程碑,引发了全社会的关注与震撼。此前国内小圈子也有不同的探索,但限于规模,效果都不太好,到了ChatGPT,scaling 成为广泛共识,GPT规模化高歌猛进,到GPT4发布形成AI的又一个高潮。
不變性與缺乏泛化能力 儘管初期看起來很有希望,但張祥雨對此一直持謹慎態度。他發現許多這些方法 只在小模型上有效,一旦放到更大的模型上,就不具備 scale up 的特性,效果會迅速下降。 他仔細分析後認為,這些方法 (無論是 contrastive learning 還是 MIM) 本質上都在學習某種 「不變性」。不變性對於視覺表徵確實非常關鍵。然而,這些方法學到的不變性是 「人工設計的」(handcraft),而非數據驅動的。例如,contrastive learning 極度依賴圖像增強 (augmentation),學到的是透過人工設計的 augmentation 賦予的不變性。MIM 學到的是遮擋不變性。 問題在於,一旦模型學會了你所設計的特定不變性 (如旋轉、顏色變化、遮擋等),即使增加再多數據,也 沒有額外的信息增量 來激發模型學習更多的不變性。這與 NLP 不同,NLP 是真正做到了 「從數據中學習」,高品質語料越多,模型就能學習到語料中更複雜的關聯性,透過壓縮建模聯合分佈來學習更多知識。由於 CV 的這些方法學到的不變性是受限且人工注入的,它們 缺乏像 NLP 那樣的 scale up 效應。張祥雨在 2022 年初就發表觀點認為 MIM 沒有顯著的 scaling law。
當張祥雨看到關於 思維鏈 (Chain-of-Thought, CoT) 的發現和 湧現性 (emergence) 的論文後,他表示「大受震撼」。這些研究顯示,做 NLP 的同行已經開始研究推理 (reasoning) 和更高級別的智能特性,而他感覺自己的研究仍然停留在表徵層面。這讓他更加確信純視覺領域可能存在根本性問題。
張祥雨進一步闡述了他認為純視覺領域(特別是靜態圖像)的根本問題。他從三個關鍵維度進行對比:生成 (Generation)、理解 (Understanding) 和人類對齊 (Human Alignment)。
張祥雨認為,正是因為靜態圖像數據在生成、理解和人類對齊這三項核心能力上不能形成自然、閉環的關係,這成為了視覺智能難以像 NLP 那樣成功復現規模化突破的 底層原因。基於這一認識,他在 2022 年停止了對靜態圖像表徵的研究。
張祥雨在 2022 年時,對於單純依靠視覺領域(尤其是靜態圖像)來實現智能或達到「CV 領域的 GPT 時刻」感到悲觀。他認為,與自然語言模型(如 GPT)能夠同時實現生成、理解和人類對齊的「自閉環」特性不同,靜態圖像在這三者之間是「割裂的」。圖像作為自然世界的客觀存在,其本質上不包含人類對它的理解方式或與人類對齊。意識到這個根本性問題後,他在 2022 年基本上停止了對靜態圖像表徵的研究,並構思了新的研究主題,即在短期內利用視覺和語言的對齊關係來尋求突破。
为了複刻 NLP 成功路徑,將圖像編碼為 Token 並与text進行混合訓練。張祥雨的想法是借鑑 NLP 領域成功的「next token prediction」範式。由於語言模型證明了這種基於自監督訓練(无需人工標註)的方法能夠透過大規模數據實現「scaling up」,他希望也能將這種方法應用於視覺。具體的思路是,將圖像也用 tokenizer 的方法轉換成 token,使其與語言處於同一個内部空間。然後,利用大量的圖文交錯數據(如網頁、書籍、論文等),將數據組織成文本和圖像 token 混排的形式。在預訓練階段,模型像處理純文本一樣,遇到文字就預測文字 token,遇到圖像就預測圖像 token。
根據這一思路,張祥雨團隊在 2023 年做出了他們的第一代大模型 Step1。這個模型從預訓練的最開始就是設計來處理多模態數據的,而非先訓練一個純文本模型再進行視覺對齊。Step1 的參數規模大約是千億級 (一百多B)。他們的目標是實現圖像的理解和生成一體化,希望能夠複刻 NLP 模型那樣,透過統一的生成任務來同時獲得理解和對齊的能力。這條路線與 Google 號稱的多模態大一統模型 Gemini 1.0 在理念上有相似之處。
然而,經過大半年的嘗試,張祥雨發現並沒有做到圖像的理解、生成和對齊一體化。他得到的是一個越來越強的理解模型和一個越來越強的生成模型,但兩者放到一起時並沒有產生「1+1 > 2」的叠加效果。模型實際表現起來仍然像是兩個獨立的模型,移除其中一個並不顯著影響另一個。特別是,圖片生成的可控性並沒有隨著理解能力的提升而顯著提高。他觀察到,像海外的一些知名工作(如 Gemini, GPT-4V)在那個時間點似乎也未能完全實現理解和生成的一體化,而是透過外掛模組的方式實現功能。這使得他在做了大半年之後感到迷茫。他後來分析認為,視覺生成之所以難以實現這種協同效應,根本原因在於它缺失了類似於語言模型的 CoT (思維鏈)。視覺生成過程(無論是 Auto-regressive 還是 Diffusion)本質上是一種「一口爆」或單步生成的模式,其複雜度遠超 Transformer 單步處理的能力,無法像語言 CoT 那樣進行分解和逐步推理。
在 Step1 (千億參數) 完成後,團隊很自然地想挑戰更大的模型。於是在 2024 年初上馬了 Step2 項目,目標是萬億參數規模,且激活參數規模也非常巨大(兩百多B)。這個項目前後做了九個多月,總算訓到一個他們認為比較滿意的狀態。然而,訓練這個模型的投入「簡直是一個無底洞」,一方面因為大大低估了訓練如此大模型所需的海量數據,另一方面同時擴大模型參數和數據量,對算力的需求是平方關係,使得訓練過程非常吃力。在數據不足的情況下,僅僅擴大模型參數效果并不理想。這再次凸顯了在模型規模化之後,數據規模化成為新的瓶頸,正如他當年完成 ResNet 後所觀察到的情況。
張祥雨在尋求視覺智能突破的過程中,嘗試將 NLP 的成功範式(next token prediction 和大規模預訓練)遷移到視覺領域,透過多模態混合訓練來實現圖像的理解和生成一體化。儘管在模型規模上不斷擴大(從千億到萬億),但受限於視覺數據本身的特性(生成、理解、人類對齊的割裂)以及當時技術不足的訓練範式(缺乏視覺 CoT),未能有效整合視覺理解和生成能力,並在擴大模型規模時遭遇了嚴峻的數據挑戰。
在這個进军萬億參數規模的 Step2 模型过程中,他們發現了一件「百思不得其解的怪事」:模型的通用對話能力、情商和知識量確實隨著模型變大而變得更強,但模型的推理能力(尤其是數學)表現卻是先上升後平緩,再擴大參數反而是下降。這個現象在當時業界尚未引發廣泛討論。
更深入觀察發現了一些「蛛絲馬跡」:更大的模型在做數學題時,「更傾向於跳步」,「不老實」地一步步推導。它經常會放棄一步步計算,而是直接「一口」報出最後的結果。
張祥雨分析認為,這其實就是 Next Token Prediction (NTP) 的「本質缺陷」。NTP 的核心範式是點態概率建模,也是第一代大模型起飛的基礎算法。它的本質目標是最大化壓縮率。
總結來說,張祥雨的經歷驗證了在將 NTP 範式應用到極大規模模型時,其固有的「最大化壓縮率」目標與某些任務(如數學推理)所需的「最大化精度」目標會產生衝突。由於預訓練數據包含了大量省略中間步驟的「跳步」範例,追求高壓縮率的大模型學會了這種行為,進而在需要嚴謹逐步推理的任務上表現下降。這突顯了 NTP 作為底層算法在處理複雜推理任務上的局限性。
對於視覺生成,不論是擴散模型 (Diffusion Model) 還是自迴歸模型 (Auto-Regressive Model),張祥雨認為從语义角度來看,它們都屬於「一口报」的生成方式。Auto-Regressive Model 最大的特點就是「落子無悔」,需要在單步推理中決定如何繪製區域。Diffusion Model 的降噪過程主要是补充细节,虽然它看上去是一個多步過程,但其中缺乏人類理解中的语义或推理。與人類繪畫過程(打草稿、描繪輪廓、上色等)完全不同,降噪過程更像是在構造一個數學過程來擬合分布,其間沒有明確的语义或物體層次的推理。這兩種方法在他看來,都還處於語言模型NTP范式最初的「一口报」時代,最大的問題在於缺少思維鏈 (CoT)。
他認為,簡單地將生成和理解做到一起難度非常大,中間缺失了重要一環——CoT。借鑑語言模型的經驗,CV 領域的方向可能是先在視覺理解上做 CoT。如果視覺理解的 CoT 能夠成功,再將方法擴展到生成上,也許最终能走通多模態理解生成一體化的道路。
為此,他們在去年年中開啟了一個新的專案,目標是做視覺理解,核心是真正在視覺空間上做思維鏈。這可以理解為視覺空間上的「慢思考」或「long thought」。這個项目做了半年的結果:並非完全沒有效果,透過這樣的方式訓練確實可以解決某些問題。但是,其泛化能力非常有限。他提到,他們造了什麼樣的數據,模型就只能解決這類數據的問題类型,完全沒有展現出在語言模型上 O1 那種強大的泛化能力。
回顧 O1 在語言領域的成功,張祥雨認為其要害在於学习到思維鏈的 pattern,「pattern is all you need」。O1 最吸引人的地方在於其無與倫比的推廣性,不僅能泛化到不同的領域 (domain),也看到思维pattern本身的泛化。
他舉例說明了這種 pattern 的泛化能力:即使只在純數學數據上訓練一個 O1-like 的模型,當應用於需要嚴格格律和押韻的古詩詞寫作時,模型也能激發出與解數學題非常類似的思考 pattern。例如,它會先給出一個初步嘗試,然後逐字檢查不符合要求的,一個個替換,如果發現不行,會推翻前面做的部分甚至整首詩,從頭再來。在過程中,它會反复檢查格律要求以及是否符合題意。這些 pattern,如反思 (reflection)、驗算 (verify)、大循環(推翻重來)、審題等,與其在數學問題上的表現幾乎一模一樣。
他也提到存在難以泛化的領域。例如,將一個擅长數學推理的模型應用於博弈類問題(如鬥地主殘局)時,模型會顯示出很多無效思考和低級錯誤。這是因為博弈問題的思考模式與數學套路不同,它更傾向於最大最小化 (min-max) 的思路。所谓最大最小化,指的是模型需要考慮對手可能採取的最佳行動(最大化對手的收益),然後在這個基礎上,選擇自己的行動來盡可能降低對手的這個最佳收益(最小化自己的損失或對手的收益)。這是 O1 在數學數據上未能掌握的一類思維 pattern。這表明模型的泛化能力雖然強大,但仍然需要相應的數據來激發特定的思考 pattern。
針對他們在視覺空間 CoT 嘗試中遇到的泛化問題(給圖像做圈點、批注的數據訓練效果泛化不足),張祥雨分析認為,這是因為他們用合成的數據,其 pattern 過於固定。更重要的是,這種精細化的「在圖上圈點批注」類的 CoT 數據,在自然的預訓練語料中(特別是常用的圖文交錯語料)是極度缺乏的。
他解釋說,O1 能激發出強大的泛化 pattern,是因為那些經驗證有效的反思 pattern,如 wait, alternative, recheck, validate 等,雖然在預訓練語料中數量非常少 (sparse),但確實存在。例如,在 MathOverflow 這樣的高品質論壇上,一些高讚答案會展示嘗試、發現問題、反思、重試、驗算等過程。當 RL 在 dataset 階段將這些 pattern 激發並強化時,由於這些 pattern 在預訓練語料中稀疏地散布且涵蓋不同領域,模型就能順帶將與這些語料相關的廣泛領域融會貫通,實現強大的泛化。
相比之下,他們合成的視覺 CoT 數據因為在預訓練語料中沒有這種 pattern 的呼應,導致無法激發出預訓練模型中更廣泛的模式,因此泛化性就差。這也印證了 RL 並不能無中生有地發現新東西,所有的知識或能力都需要在預訓練中已有分布。
張祥雨還強調,預訓練語料的質量非常關鍵。那些思維特別跳躍、省略大量中間步驟的語言材料(例如國內論壇上喜歡用「注意到」直接跳到結論的風格),對於模型預訓練來說可能是災難性的。這種語料阻礙了模型學習紮實的推理思維鏈。
張祥雨指出,大型模型的發展可以視為由 「底層算法」或「優化方法」 (橫軸) 和 「模態」 (縱軸) 這 兩根軸 共同驅動的,並呈現一種 螺旋上升 的趨勢。
這兩個軸的 起點 分別是:優化方法的起點是「next token prediction 的發現」,而 模態的起點是「語言,自然語言」。
Next Token Prediction (NTP) 這種算法最初在 文本領域非常成功,是支撐第一代大型模型 (如 GPT 系列) 崛起的基礎算法。它的核心原理是建模对下一个词元的序列条件概率,透過對數據進行壓縮,來學習知識和獲得一定的智能。
然而,這種純粹基於壓縮的 Next Token Prediction 方法,在推進大模型發展的過程中,在兩個方向上都遇到了 挑戰和瓶頸:
在純語言模型 (LLM) 方面: 雖然模型的通用對話能力、情商、和知識量隨著模型變大而變強,但其 推理能力(尤其是數學和邏輯) 的表現卻呈現 先上升後平緩,再擴大反而下降 的怪現象。張祥雨認為,這是 Next Token Prediction 的 本質缺陷 所導致的。因為 更大的壓縮率未必對應更高的計算精度。模型為了提高壓縮率,傾向於 跳過中間步驟,直接「一口爆」出結果。這在複雜的數學題或其他需要長鏈推理的問題中,會累積錯誤,導致最終的正確率大幅下降。
在多模態方面: 試圖將 NTP 範式遷移到更多模態(特別是視覺)的過程中,也 反覆碰壁。雖然可以將視覺數據 Token 化並與文本交錯訓練,實現了不錯的圖像理解效果,但 圖像的生成和理解難以融合。現有的圖像生成方法 (如 Auto-regressive 或 Diffusion) 仍然處於類似於語言模型的「一口爆」時代,需要單步完成複雜的生成任務,而其所需複雜度 明顯超過了 Transformer 單步推理的上限。這導致生成的 可控性非常差,即使模型本身知道生成結果不符合常識,也無法控制。這種簡單的生成理解一體化嘗試,並未達到預期效果,视觉理解与视觉生成的效果沒有疊加,1+1没有大于2的效应,甚至可以移除生成部分而不影響理解部分。這中間 缺失了重要的一環:類似於語言模型的 CoT (思維鏈)。
正因為純粹基於壓縮的 Next Token Prediction 在語言推理和多模態融合上都顯現出瓶頸,這成為了引入 強化學習 (RL) 推理模型新范式的重要背景。RL 的核心優勢在於它可以 「直接面向目標優化」,而不是間接透過擬合分布或最大化壓縮率。透過 RL,模型被鼓勵去找到最能達成目標的路徑,這能夠 克服 Next Token Prediction 的一些缺陷 (例如減少跳步、提高穩定性)。張祥雨認為,O1 系列模型之所以成功,核心就在於引入了 RL 來激發並強化了 思維鏈的 pattern,甚至是一種 Meta-CoT,這使得模型能夠在不同的思考路徑中切換以解決複雜問題。RL 這種面向目標優化的方式,使得許多之前難以解決的問題(包括語言模型的推理能力和多模態的生成理解一體化),一下子盤活了思路,有了解法。
根據張祥雨在訪談中的觀點,他將大模型的發展和OpenAI的智能演進路徑與底層算法的迭代關聯起來。他認為,OpenAI的五級智能分類法非常有邏輯,其背後隱含著每一代分級都需要一個全新的算法產生:
關於 Agent 的定義,張祥雨在訪談中也對社群中現行的說法進行了澄清:
張祥雨觀察到一些令人鼓舞的跡象。他提到,目前的圖像生成在可控性上已經做得不錯,例如备受欢迎的 GPT4o native 图像生成能力以及Gemini 的最新進展。他認為,如果能夠限制問題領域 (Domain),清洗好數據,並專注於不需要複雜推理、可以「一口爆」解決的指令型任務,高可控的圖像生成和編輯是完全可行的。例如,執行圖片上的位移、連接線條等指令,這些任務的複雜度較低,可以在單一步驟內完成。他認為,海外同行(特別是美國)在推理模型的認知和實踐上確實走在前面。
張祥雨提出,具備初步生成和理解能力、能夠執行指令型图片生成的模型可以作為起點。有了這種能夠在圖像上執行基本操作(如圈點、批註、編輯)的能力,就可以將其作為思維鏈的「動作空間」。這樣,帶有 CoT 的視覺理解就可以做了。
未來的「GPT-4 時刻」 張祥雨預見未來两年可能會有至少兩個「GPT-4 時刻」。
張祥雨對當前業界一味強調 Long Context 建模持有不同看法。他認為:
張祥雨提出了一種替代 Long Context 的方法,尤其是在處理 Retrieval 任務時。他認為:
展望視覺推理和多模態 CoT 的未來,他認為有兩條主要的發展方向:
自主學習的核心:實現真正的自主學習需要解決多個前置問題,其中最關鍵的是從環境中獲取和利用反饋的能力(尤其是從自然語言或其他非結構化反饋中學習如何改進)。此外,還需要無限長序列的建模能力(環境是動態無限的)和如何設計「內生獎勵」來驅動模型自我學習和進化。
RL(強化學習)作為推動模型發展到推理這一代的重要算法,雖然解決了 Next Token Prediction 在推理和多模態融合上的一些瓶頸(例如克服了跳步、提高了長鏈推理的穩定性、讓多模態融合的思路變得可行),但也面臨著新的挑戰:
最後,關於李飛飛的空間智能和 LeCun 的世界模型,以及與視覺生成和具身智能的關係:
總結來說,大模型的發展是算法和模態螺旋上升的過程,NTP是起點但有其本質缺陷,RL解決了部分問題並引入了新的挑戰(特別是環境和反饋的scaling),而OpenAI體系中的下一代Agent將需要自主學習和線上學習的能力。雖然人類學習世界模型的方式可能非生成式,但當前AGI在視覺等領域的進展可能仍需藉助生成。具身智能等領域正在特定場景下先行發展,但最終將匯入通用AGI的洪流。
原访谈很精彩,有认知高度,也有第一线的实践,还有很多金句,见:
https://zhuanlan.zhihu.com/p/1913377304173872183
立委按:LLM的强化学习后训练是当前热点,也是最新思维链(CoT)推理模型范式的红利期。推理强化后的模型在复杂任务的表现上普遍性能提升。强化后训练的新范式正在不断推广到不同场景,而且也在多模态方面取得进展。应该是了解一点强化学习的基本工作流程的时候了。
1.1 生成一个完整序列(Trajectory)之后才拿到奖励
1.2 把“序列级别奖励”拆给每一步“选择词元”的策略
1.3 参数更新:一次性影响整个生成过程中的每一步
在拿到梯度之后,往往用类似 PPO(Proximal Policy Optimization)的算法做一次“裁剪式更新”:
整个过程只迭代几轮(若干个序列)就能让策略“尽量往高奖励方向”靠拢,同时保持与旧策略“不要偏差太大”以免训练不稳定。核心思路:采样→拿到 R→把奖励和每一步的 log-prob 相乘→算梯度→更新参数。
完成一次更新后,策略参数 θ 变成 θ_new;下一轮又回到“冻结策略→再采样→再更新”的循环。
模型参数不变,策略就是“固定不变”的
——至少在一次完整的生成(rollout)或一次训练迭代里,它的参数 θ 保持不动,策略自然不变。
策略=“这个 state 下网络给我的下一个 action 打了哪些分,在语言模型就是网络根据当前 context 计算出来的next token 的概率分布”
在训练里,一轮 rollout/采样结束后,你会根据奖励/损失去更新参数 θ,此后策略才会变成“新的策略 π_θ。但在“采样这段对话/文本”的整个过程中,θ 不变,所以策略函数 π_θ(⋅∣s) 也是不变的。
旧策略(π_old)
是“收集轨迹时”的那一套模型参数下的策略网络。
换句话说,你让模型在环境(或是对话上下文)里按照 π_old 去采样,得到了 N 条“(状态₁,动作₁)→(状态₂,动作₂)→ … →(状态_T, 动作_T)”的完整轨迹。
在收集完这些轨迹后,你把这些轨迹连同 π_old 在每一步的 log π_old(a_t|s_t)(或者直接存储下来的 probs)一起都记录下来。这个“旧策略”相当于一个“快照”,是收集数据时的分布。
新策略(π_new)
是“在更新参数过程中所使用的那套参数”——也就是我们正在训练的、会随着梯度下降而不断变化的策略网络。
一旦开始做梯度更新,就会用当前那一刻的网络参数去计算“新策略输出的 log π_new(a_t|s_t)”。随着每一次梯度步,新策略的参数都会微调,这时 π_new(a_t|s_t) 就可能和旧策略 π_old(a_t|s_t) 不再相同。
收集轨迹阶段:
在策略还是 π_old 的时候,让它去环境里跑几千个或几万个 steps,把完整的“状态→动作→奖励→下一个状态”都存下来,连同当时的 log π_old(a_t|s_t)。
由于在这一步,你还未做过任何梯度更新,所以“新策略”和“旧策略”是同一个网络。此时如果你立刻比较 π_new 和 π_old,它们是完全一样的——比值。但你先把 π_old 的值记下来,后面调整参数时就有对比用。
优化阶段:
接下来,你拿到这批已经收集好的轨迹,开始做多轮(多个 epoch)小批量(mini-batch)的梯度更新。
在做第 1 次梯度更新时,虽然此刻的“新策略”参数 θ 与“旧策略”参数(收集时的快照)是一模一样的,但你仍然把它们区分开来:
π_old 作为“分母”是个常数(保留收集轨迹时计算出来的概率值),不会随梯度变化。
π_new 作为分子,用来重新在网络里跑一遍“给定同一个 s_t,计算当前参数下采样 a_t 的概率”——也就是 log π_new(a_t|s_t)
。
从第 1 步到第 k 步,你都会做相同流程:把“旧 log π_old” 和“新 log π_new” 一起塞进目标函数里,再做梯度更新。梯度实际上来自于“新策略”下的 log π_new(a_t|s_t) 与“旧策略” log π_old(a_t|s_t) 的比值,因为你要优化的是 让比值往有利于大优势值 A_t 的方向调整。
所以,重点就在于:
采样:用旧策略(现策略)拿到“随机生成的具体文本”以便算 reward。在采样阶段,模型参数不变,策略自然不变。
reward:只能在“采样出具体文本 τ”后才能得出。
更新:等到我们从多条 τ 上都获取了 reward,再去把这些“sequence-level feedback”切片到每一步,算出梯度更新策略/参数。
立委按:鉴于语言大模型GPT的重要性,特此根据AI大神Karpathy的nanoGPT讲座,编纂此科普系列,计五篇,其中此篇没有代码和数学公式,是最通俗的科普。其他四篇包括一篇英文,均附带可验证的Python代码,并给予不同角度的详细解说,面对有工程背景的对象。
ChatGPT这样的大语言模型在今天已展现出惊人的能力:它们能与人对话,辅助创作,甚至独立生成颇具文采的诗篇。这不禁引人深思:大模型是如何理解并运用复杂的人类语言的呢?本文将以大模型传教士Karpathy简化的迷你版nanoGPT模型为例,揭示其学习模仿大文豪莎士比亚风格的奥秘。
大模型学习过程核心机制之一在于对一句话或一段文字里,接下来会出现哪个字或哪个词的预测。在文本领域,这意味着当nanoGPT接收到一句话的前半部分,例如“生存还是毁灭,这是一个…”,它需要根据已有的信息,推断出最有可能紧随其后的词语,比如“问题”。我们所讨论的这个莎翁风格,其核心训练目标,就是在莎士比亚所有作品的文字里,当读到某处时,能精准地猜出下一个字是什么。
nanoGPT的第一个挑战在于,它难以直接理解人类的文字符号。计算机系统以数字为基础进行运算。因此,首要任务是将莎士比亚的文本转化为机器能够处理的数字形式。
仅仅将字符转化为孤立的、互不相关的数字代号是不够的。nanoGPT需要一种方式来捕捉这些代号背后的“意义/特性”以及它们在特定上下文中的“角色”。这就是“嵌入”(Embedding)技术发挥作用的地方。
最终,输入序列中一个字符的初始信息,就是它自身的“特征数字档案”和它所在“位置数字档案”的结合。这样,nanoGPT拿到的每个字的信息,既包含了字本身的含义,也包含了它在句子中的顺序信息。
这是nanoGPT模型进行复杂信息处理和上下文理解的核心部件。你可以把它想象成一个多层加工的“工厂”,每一层流水线都对输入信息进行更深一步的加工和理解。
nanoGPT内一层流水线通常包含以下关键环节:
在nanoGPT中,通常会堆叠多个这样的加工层。每一层都在前一层的基础上进行更抽象的规律性提取,并把它们和上下文联系起来进行综合理解。
经过多层的深度处理后,nanoGPT对输入序列的每个字符都生成了一个包含了丰富上下文信息的数字总结。现在,需要将这个内部总结转化为对下一个字符的具体预测。
这通常通过以下步骤完成:
nanoGPT模型并非一开始就能准确预测。它需要通过一个称为“训练”的过程,从大量的样本数据中学习规律。
这个“输入-预测-计算差距-复盘调整”的迭代过程会重复进行成千上万甚至上亿次。每一次迭代,模型都会从错误中学习,逐渐提升其预测的准确性,从而更好地捕捉莎士比亚文本的语言模式。
当nanoGPT训练到一定程度后,就可以用它来生成新的、具有莎士比亚风格的文本了。
通过这些机制,nanoGPT模型就能够一句句模仿莎士比亚风格的文本。
本文描述的模仿莎士比亚风格的nanoGPT是一个高度简化的示例。现实中的大型语言模型(LLMs),如OpenAI GPT系列,其核心原理(如Transformer结构、预测下一个词元等)与此相同,但有着显著的量级和复杂度差异:
通过对这个简化AI模型nonoGPT的剖析,我们可以看到,GPT这类模型基于对大量文本数据中复杂模式的统计学习,基于这些规律进行的语言接龙的概率预测。从简单的字符预测任务出发,nanoGPT借助Transformer结构、莎士比亚全集数据和强大的计算能力,AI能够学习并模仿出高度复杂的语言风格。理解GPT背后的机制,有助于我们更理性地看待AI大模型的能力边界,并思考其在未来社会和文化领域中可能扮演的角色。
立委按:鉴于语言大模型GPT的重要性,特此根据AI大神Karpathy的nanoGPT讲座,编纂此科普系列,计五篇,一篇没有代码和数学公式,是最通俗的科普。其他四篇包括一篇英文,均附带可验证的Python代码,并给予不同角度的详细解说,面对有一定工程背景的对象。
你可能已经听说过GPT(Generative Pre-trained Transformer)的鼎鼎大名,无论是能与你流畅对话的ChatGPT,还是能帮你写代码、写诗歌的AI助手,它们背后都有GPT的强大身影。但是,这个神奇的“黑箱”究竟是如何运作的呢?
今天,我们就以一个“迷你版”的莎士比亚风格文本生成器为例,一步步拆解GPT的构造,让你从零开始,彻底搞懂它的核心原理。别担心,我们会用最通俗易懂的语言,结合具体的代码示例,让你看清这背后的“魔法”。
GPT最核心的任务,说白了就是预测序列中的下一个元素。对于文本来说,就是预测下一个单词或下一个字符。我们给它一段话,它会猜接下来最可能出现什么。
在我们的莎士比亚生成器中,模型学习的就是预测莎士比亚剧本中的下一个字符是什么。比如,看到 "To be or not to b",它应该能预测出下一个字符是 "e"。
# 训练数据中,y 就是 x 的下一个字符序列
# input x: "To be or not to b"
# output y: "o be or not to be"
# 比如 train_data[i:i+block_size] 是输入 x
# train_data[i+1:i+block_size+1] 就是目标 y
计算机不认识人类的文字,它们只懂数字。所以,第一步就是把文字转换成计算机能理解的格式。
# data/shakespeare_char/input.txt 包含了所有莎士比亚文本
chars = sorted(list(set(open(os.path.join(data_dir, 'input.txt'), 'r').read())))
stoi = {ch: i for i, ch in enumerate(chars)} # 字符到索引的映射 (string to integer)
itos = {i: ch for i, ch in enumerate(chars)} # 索引到字符的映射 (integer to string)
vocab_size = len(chars) # 词汇表大小,比如65个唯一字符
```stoi` (string to integer) 将每个字符映射到一个唯一的数字索引(比如 'a' -> 0, 'b' -> 1)。`itos` (integer to string) 则反过来。
# 这样,我们就可以用 `encode` 函数将一串字符转换成数字列表,用 `decode` 函数再转换回来。
```
def encode(s): # "hello" -> [40, 37, 44, 44, 47] (假设的映射)
return [stoi[c] for c in s]
def decode(l): # [40, 37, 44, 44, 47] -> "hello"
return ''.join([itos[i] for i in l])
# 加载训练数据时,train.bin 文件中的内容已经是被 encode 过的数字序列了。
train_data = torch.frombuffer(
open(os.path.join(data_dir, 'train.bin'), 'rb').read(),
dtype=torch.uint16 # 每个数字用16位无符号整数表示
).long() # 转换为PyTorch常用的长整型
虽然我们把字符变成了数字,但这些数字本身并没有“意义”。比如,数字5和数字10之间并没有“更像”或“更不像”的关系。我们需要一种方式来表示字符的含义及其在序列中的位置。这就是嵌入(Embedding)的作用。意义的本质体现在系统关系之中,正如马克思提到人的意义时所说:人是社会关系的总和。数字化实现就是建立一个高维向量的意义空间,用来定义每个词元相对于其他词元的位置,关系则以距离来表示。
# n_embd 是嵌入向量的维度,比如128例如,字符 'a' (索引可能是0) 会被映射成一个128维的向量 [0.1, -0.2, ..., 0.5]。
self.embedding = nn.Embedding(vocab_size, n_embd)
# 输入一个字符索引,输出一个128维的向量
# 假设句子最长不超过1000个字符
self.pos_embedding = nn.Embedding(1000, n_embd)
# 输入一个位置索引,输出一个128维的向量。
# 最终,一个字符在特定位置的表示,是它的字符嵌入向量和它所在位置的嵌入向量相加得到的。
# x 是输入的字符索引序列,形状为 (批量大小, 序列长度)
# pos 是位置索引序列,形状为 (1, 序列长度)
# 结果 x_embedded 的形状是 (批量大小, 序列长度, 嵌入维度)
x_embedded = self.embedding(x) + self.pos_embedding(pos)
这是GPT的核心部件,负责理解上下文信息并进行“思考”。我们的莎士比亚生成器用的是Transformer的解码器层 (Decoder Layer)。
一个Transformer解码器层主要包含以下几个部分:
# t 是序列长度
# mask 是一个上三角矩阵,对角线以上为True (masked)
# [[False, True, True, True],
# [False, False, True, True],
# [False, False, False, True],
# [False, False, False, False]]
mask = torch.triu(torch.ones(t, t), diagonal=1).bool()
# d_model 是嵌入维度 (n_embd)
# nhead 是注意力头的数量
# dim_feedforward 通常是 d_model 的4倍
nn.TransformerDecoderLayer(
d_model=n_embd,
nhead=n_head,
dim_feedforward=n_embd * 4,
batch_first=True, # 输入数据的维度顺序是 (批量, 序列, 特征)
dropout=0.1 # 防止过拟合
)
在我们的SimpleGPT模型中,我们堆叠了多个这样的Transformer解码器层 (n_layer个)。信息会逐层传递并被更深入地处理。
self.transformer = nn.ModuleList([
nn.TransformerDecoderLayer(...) for _ in range(n_layer)
])
# 在前向传播中:
for transformer_layer in self.transformer:
x = transformer_layer(x, x, tgt_mask=mask) # 注意这里 query, key, value 都是 x
经过多层Transformer的“深思熟虑”后,模型对每个输入位置都得到了一个丰富的上下文表示(一个n_embd维的向量)。现在,我们需要将这个表示转换成对下一个字符的预测。
# self.head = nn.Linear(n_embd, vocab_size)
logits = self.head(x)
# logits 的形状是 (批量大小, 序列长度, 词汇表大小)
模型一开始是“随机”的,它需要通过学习大量的例子来提升预测能力。
# ix: 随机选择8个起始位置
ix = torch.randint(len(train_data) - block_size, (8,))
# x: 8个长度为32的输入序列
x = torch.stack([train_data[i:i+block_size] for i in ix])
# y: 对应的8个目标序列 (x中每个字符的下一个字符)
y = torch.stack([train_data[i+1:i+block_size+1] for i in ix])
logits = model(x) # 通过模型得到预测
# logits.view(-1, len(chars)) 将形状变为 (批量*序列长度, 词汇表大小)
# y.view(-1) 将形状变为 (批量*序列长度)
loss = nn.functional.cross_entropy(logits.view(-1, vocab_size), y.view(-1))
optimizer = torch.optim.Adam(model.parameters(), lr=3e-4) # lr是学习率这个过程会重复很多次(很多step),模型逐渐学会莎士比亚的语言模式。
optimizer.zero_grad() # 清除上一轮的梯度
loss.backward() # 计算梯度
optimizer.step() # 更新参数
当模型训练到一定程度后,我们就可以用它来生成新的文本了。
tokens = encode(prompt) # 将提示词编码成数字序列
context = torch.tensor([tokens[-block_size:]])与训练不同,这里的 [0, -1, :] 表示我们只关心这个批次中(虽然推理时批次大小通常是1)最后一个字符位置的预测,因为我们要预测的是 下一个 字符。
logits = model(context)[0, -1, :] # 取最后一个时间步的logits
logits = logits / temperature温度较低(<1)时,概率分布更“尖锐”,模型倾向于选择高概率字符,生成结果更保守、更像训练数据。
if top_k > 0:
# 找到第k大的logit值
kth_value = torch.topk(logits, top_k)[0][..., -1, None]
# 将所有小于该值的logit设为负无穷 (采样概率为0)
indices_to_remove = logits < kth_value
logits[indices_to_remove] = float('-inf')
kth_value = torch.topk(logits, top_k)[0][..., -1, None]
torch.topk(logits, top_k)
: 这个函数会从logits
中找出分数最高的top_k
个值,并且返回它们的值和它们在原始logits
中的位置(索引)。它返回的是一个元组(values, indices)
。values
: 包含了这top_k
个最高的分数,默认是降序排列的(从高到低)。indices
: 包含了这些最高分数对应的原始位置。 例如,如果logits
如上例,top_k = 3
,那么torch.topk(logits, 3),
可能返回:values = torch.tensor([3.0, 2.5, 1.5])
(最高的3个分数),indices = torch.tensor([3, 1, ...])
(这3个分数在原logits中的位置)。[0]
: 因为torch.topk
返回的是(values, indices)
这个元组,我们只关心分数本身,所以用[0]
来取出values
部分。 现在,我们得到的是values
这个张量,即torch.tensor([3.0, 2.5, 1.5])
。[..., -1, None]
:
torch.multinomial(probs, 1)
中的 1
就表示我们只进行一次这样的抽取。将采样到的字符(数字形式)添加到 tokens 序列中。
probs = torch.softmax(logits, dim=-1)重复这个过程,直到达到最大长度 (max_tokens) 或生成了特定的结束标记(比如换行符)。最后,用 decode 函数将整个 tokens 数字序列转换回人类可读的文本。
next_token = torch.multinomial(probs, 1).item()
tokens.append(next_token)
脚本中通过调整 temperature 和 top_k 参数,展示了不同风格的生成结果:
由于我们的模型只训练了非常少的步数(50步),生成的质量不会很高,但足以让你看到它学习语言模式的过程。
这个莎士比亚生成器是一个非常简化的字符级GPT。现实中的大型语言模型(如ChatGPT)与它的核心原理是相似的,但在以下方面有差异:
通过解剖这个小小的莎士比亚生成器,我们窥见了GPT内部运作的冰山一角。从简单的字符预测任务出发,通过嵌入、强大的Transformer层、巧妙的训练和生成策略,GPT能够学习并模仿复杂的语言模式。
希望这篇科普能帮你揭开GPT的神秘面纱,理解它并非遥不可及的魔法,而是一系列精妙算法和海量数据共同作用的产物。下一次当你与AI对话时,或许就能想到它背后那些默默计算着的数字和向量了!