Telegram Channel
记录和分享有趣的信息。

Record and share interesting information.

contact: [email protected]
话说前阵子每晚和家人吃晚饭时重看了火影忍者《Naruto》的主线剧情(700 集为止),也算是了却一个童年(青年?)时代的情怀。

实际上岸本齐史的剧本还是很有功底的,我觉得有一些值得称赞的地方:

1. 全剧没有精神失常的反派,甚至于没有严格意义上的反派。所有人都是出于自己的境遇,做出了自以为最好的选择。
2. 战力基本没有通货膨胀,至少 700 集以前基本维持了战力的平衡。
3. 这是一部基片,所有的 CP 都被拆了(甚至包括路人配角的夫妇),没有建立任何男女角色的感情线。(所有的感情线都是 700 集以后硬加的)。而且很容易看出来,作者不知道除了跪舔以外的男女关系…
4. 作者是个弟/兄控,每个人都有个深爱的兄弟。鼬对佐助的爱情表白在最后几十集里重放了大概有十次。
5. 鸣人感觉是个双相情感障碍

Ps. 哥哥早已洞察了一切,伊莲老师看完后去买了件鼬的体恤…
如果各位假日期间剧荒,又想看点有深度的东西,推荐一下《The Problem With Jon Stewart》,有两季,一共 14 集。

在美剧《The Newsroom》第一季的第一集里有一个经典片段,主角 Will McAvoy 抛出了一大段“惊世骇俗”的关于舆论误人和教化世人的理想。

我个人觉得,在美国的大牌主持人中,形象最接近 Will 这个理想的就当属囧司徒(Jon Stewart)了。尤其是他前些年在 Apple Tv 上主持的《The Problem With Jon Stewart》,非常深刻尖锐地揭露和讽刺美国当下的社会问题,每集挑选一个矛盾点,广泛采访各方的实权人士,然后用幽默辛辣的嘉宾对谈将这些问题揭露得淋漓尽致。

尤其是因为 Jon Stewart 的地位和影响力,他真的能直接访谈到那些手握大权的重要人物。这和 Youtube 上那些小成本纪录片经常被实权人物吃闭门羹完全不同,你能直接听到这些事情在最初的计划者眼中是如何被诠释的。
看完《Return To Space》,讲述 Elon Musk 关于让人类成为多星球文明(multi-planetary societies)的远景,以及 SpaceX 早期的挫折。

尤其重点讲述了 2020 年 5 月 30 日年龙飞船首次载人飞行的背后故事。这是自 2011 年 7 月 20 日 Atlantis 号航天飞机执行完 STS-135 号任务后,美国终于再次具备载人航天能力。(龙飞船的乘员中就有 STS-135 的成员)

希望能早日看到人类重归月球,甚至登陆火星。就算 Musk 有一万个缺点,但是空间探索的这个人类的边境上,这世上多如牛毛的富豪,确实只有他在拓展人类的疆域。
Laisky's Notes
实际上特德姜的《你一生的故事》讲述的就是这个观点。(特德姜的特色就是运用数学原理写科幻小说)。 当主角学会了七肢桶的语言后,就觉醒了时空意识。这也是为什么她会对女儿的死无动于衷,因为所有的事情都会发生,你只是观察到了时空的一个切面。 但这并不是说平行时空或世界线,因为不同事件的发生概率是不一样的。这个概率不是用来区分必然性和偶然性(所有事情都是必然),而是用来计算和结局的相似度,最相似的概率会作为过程显现出来。光会遍历所有的路径,但是你只能观测到最短路径。然而它确实遍历了所有的路径,因为你能观测到干涉现象。…
反正快放假了,且容许我继续就这个话题聊一聊。

《Stories of Your Life and Others》(你一生的故事)是一本非常好的书,然而改编的电影《Arrival》(降临)完全背离了原著的精神。但是这并不能说电影不好,实际上这电影在豆瓣上还有 7.8 分,并不低。

同样类似的不得不提菲利普·迪克(Philip K. Dick,简称 PKD)的《Do Androids Dream of Electric Sheep?》(仿生人会梦到电子羊吗?)所改编的《Blade Runner》(银翼杀手)。《Blade Runner》在近代取得了非常高的口碑,但是它的整个故事其实也完全背离了原著的精神内核。

《Blade Runner》以赛博朋克而闻名,但是 PKD 的一系列科幻小说的核心内核,我认为和《Stories of Your Life and Others》有着异曲同工之妙。都是在探讨世界的多面性,世界上各种各样的可能性都在同步发生,而我们只看到了其中的一小部分。

特德姜笔下的主角升华了,可以从超脱的角度看待这一切。而 PKD 的主角深陷其中,甚至于它自身的存在都在世界的多面性中变得模糊不清,世界似乎变成了一团浓雾,不同的可能性在其中交织,这座大楼上一会儿挂着纳粹的旗帜,一会儿又是美利坚的旗帜(《The Man in the High Castle》(高堡奇人))。

实话说,PKD 是唯一一个经常能把我惊吓到夜不能寐的作者,虽然他的故事并不恐怖,只是描述他所看见的世界破裂的缝隙。
Laisky's Notes
记录一下我最近对世界的一些新理解和 #脑洞 有兴趣的话可以评论区讨论。 这不是民科,而是基于所有已知科学理论和事实,对未知进行的合理推测。 实际上我认为这是除了照顾好自己外最重要的事情,寻求对宇宙的理解。 --- 无论是量子世界的叠加态,还是费曼的路径积分,似乎都预示了这么一个世界: 一切可能发生的事情都会发生,结果赋予过程以意义,事件概率不是发生的概率,而是其显现的概率。 所以观察者对于世界是无关紧要的,观察者只是让世界以观察者的方式现形。 --- 所以你犹豫或者焦虑一件事要不要发生是没任何意义的,所有的事情都会发生。…
实际上特德姜的《你一生的故事》讲述的就是这个观点。(特德姜的特色就是运用数学原理写科幻小说)。

当主角学会了七肢桶的语言后,就觉醒了时空意识。这也是为什么她会对女儿的死无动于衷,因为所有的事情都会发生,你只是观察到了时空的一个切面。

但这并不是说平行时空或世界线,因为不同事件的发生概率是不一样的。这个概率不是用来区分必然性和偶然性(所有事情都是必然),而是用来计算和结局的相似度,最相似的概率会作为过程显现出来。光会遍历所有的路径,但是你只能观测到最短路径。然而它确实遍历了所有的路径,因为你能观测到干涉现象。

电影《降临 Arrival》是完全背离了原著的内涵的,如果你要理会我在这里探讨的事情,需要阅读一下原著,而不是电影。我曾经对电影写过一篇恶评: https://movie.douban.com/subject/21324900/

next: https://t.me/laiskynotes/149
https://laisky.notion.site/Aligning-language-models-to-follow-instructions-0a1a1aca07174ad09b1cee55d4856b4f?pvs=4

经常在大模型领域听到 aligning(拉通对齐)这个词,此文就介绍了究竟是什么意思。

这个对齐指的是让 LLM 的输出,和用户的期望对齐。这是个很宽泛的描述,包括:

1. 遵循用户的指令
2. 遵循事实
3. 不要包含恶意信息

而实现对齐的方法为:

1. 找一群活人充当 labelers,编写参考回答,同时也为模型输出评分
2. 用 labelers 编写的回答来 fine-tuning 模型
3. 用 labelers 的打分数据,去训练一个 Reward Model
4. 用 Reward Model 对 LLM 进行强化学习

这套流程称为真人反馈强化学习(reinforcement learning from human feedback, RLHF)

最终得到的新模型,称为 InstructGPT,这个模型可以用缩小 100 倍的参数量,实现更好的输出。

GPT-3 本来有 175B 个参数,而 InstructGPT 只有 1.3B。这就是为什么 GPT 可以实现性能飞跃和大幅降价的原因,也就是后续的 turbo 模型。

Ps. 奇了怪了,我记得去年 Azure 透露 GPT 只有 2B 参数时还有一大群人震惊,其实 OpenAI 在这篇 2022 年 1 月的文章里就说了只有 1.3B 参数。
记录一下我最近对世界的一些新理解和 #脑洞
有兴趣的话可以评论区讨论。

这不是民科,而是基于所有已知科学理论和事实,对未知进行的合理推测。
实际上我认为这是除了照顾好自己外最重要的事情,寻求对宇宙的理解。

---

无论是量子世界的叠加态,还是费曼的路径积分,似乎都预示了这么一个世界:

一切可能发生的事情都会发生,结果赋予过程以意义,事件概率不是发生的概率,而是其显现的概率。
所以观察者对于世界是无关紧要的,观察者只是让世界以观察者的方式现形。

---

所以你犹豫或者焦虑一件事要不要发生是没任何意义的,所有的事情都会发生。
光永远走最短路径,不是长的路径它不走,其实光遍历了所有的路径,不然双缝干涉就不会存在。
所有的事件都会发生,但是在某一时刻只有一个事件会显形,这是由观察者的结局反推回去的所有的概率重合事件。

---

人们喜欢说“经历比结果重要”。
但是这个世界的物理基础不是这样的,经历是最不重要的,你其实经历了一切。结果是唯一重要的,一切的经历都是从结果反推而呈现的。
宇宙的观察者毫无意义,哪怕不同的观察者看到了完全不同的宇宙,宇宙也还是那个宇宙。

---

能量在空间上展开时会出现对称性破损,构成基本力和物质。
物质在时间上展开时也会出现对称性破损,成为热力学第二定律。
意识的存在意义是在无所不包的时空混沌中勾勒出一条轨迹。意识的某个必然结局可以反推出一整个发展轨迹。
一个水分子在海洋中的路径,这就是你我全部的人生。

---

产生了一个奇思妙想:

给一个物体施加加速度,可以阻碍它在时间上的展开程度,因为它在一段连续的时间内都持续获得能量。
这在宏观上就表现为时间压缩,持续获得加速度的物体的时间流逝会比其他物体更慢一些。
毕竟时间根本就不存在,只是意识的存在性幻觉。意识就是时间的方向性的表现形式。

next: https://t.me/laiskynotes/147
最近几天都在读这篇文章,作者是大名鼎鼎的 Stephen Wolfram,就是创建数学软件 Wolfram 的那位。

此文从 GPT 开始谈起,实际上回溯了神经网络的主线发展历程,从最基础的权重计算,讲到 n-grams 最终到 transformer 的 attention 机制。
虽然我多年前就学习过神经网络,但是有很多细节更多的是知其然不知其所以然,这篇文章读来让我有醍醐灌顶的感觉,把关键的部分的意义都讲清楚了。

作者还很清晰地阐述了神经网络的几个天然局限,这是人脑能轻松做到而神经网络只能望洋兴叹的:

1. 神经网络不是图灵机,没有计算能力,无法准确地完成任何计算步骤
2. 世界是无穷复杂的(irreducible computation、NP 复杂度),而人类的理论都是简化的近似。AI 只能通过人类的简化理论来学习。

但是这些局限并不是不可逾越的,比如 function calling 就赋予了 AI 图灵机的能力。

关于第二点,涉及到 Polany's Paradox,人类无法描述世界的复杂性。这至少有两个理解方式:

1. 人类的语言没有客观标准,其意义由社会共识所决定
2. 世界的复杂性无法被理论描述

所以,GPT 的成功,实际上并不预示着计算能力的重大进步,而是人类能力的“巨大退步”。GPT 用事实证明了人类的语言能力并不是 irreducible computation,而是背后存在一些简单的规则,而且这个规则被 GPT 学会了。

然而作者也提到,GPT 的技术进步某种程度上只是无数人不断尝试的结果,人们发现通过一些设计能得到更好的结果。但是为什么要这么设计,GPT 是如何理解的?人们仍然一无所知。与其说人们发明了 GPT,也许说人类发现了 GPT 更为合适。

作者还试图构建一个大一统的计算语言,来抽象一切的事物,同时赋予 GPT 可解释性。我直观上觉得,这是否就是当年罗素的分析逻辑?

整理了一篇博客文章: https://blog.laisky.com/p/what-is-gpt/
原文笔记: https://laisky.notion.site/What-Is-ChatGPT-Doing-and-Why-Does-It-Work-6d390e2e44eb40498bd8b7add36bcc94?pvs=4 What is GPT and Why Does It Work?
https://laisky.notion.site/Garbage-Collection-In-Go-Part-I-Semantics-500f4cd6c5a54eae9f455002d8c08d98?pvs=4

看到别人推荐的关于 Golang GC 的文,第一篇很有意思,后两篇有点水。

Golang 的 GC 使用三色标记法(tri-color),将所有的对方区分为 WHITE、GREY 和 BLACK 三色。BLACK 是需要保留的,GREY 是有待分拣,WHITE 就是可以清除的。

1. GC 启动后,将栈内所有的 root objects 都放进 GREY
2. 激活 write barrier,监听 GC 运行期间所有的写操作,将新的被引用对象放进 GREY
3. 遍历 GREY 中的对象,将其放入 BLACK。同时递归遍历这些对象所引用的子对象,也放进 BLACK。
4. 待 GREY 清空后,将 WHITE 中的对象清除。
https://pusher.github.io/tricolor-gc-visualization/

从 GC 的角度,可以分为三个步骤:

1. Mark Setup: 初始阶段,需要 STW,扫描所有的 root objects。
2. Marking: 遍历 GREY 的阶段,可以和用户程序并行执行。
3. Mark Termination: 最后阶段,需要 STW,清除 WHITE。

上面提到的 STW 就是 Stop The World,即暂停所有的用户程序,只执行 GC 相关的代码。这样虽然会导致用户程序的执行延迟,但是可以防止数据冲突。可以简单将其理解为全局锁。

Golang 给用户提供了两种微调 GC 的方式:

1. GOGC: 设置百分比,默认为 100,当内存翻倍时,触发下一次 GC。
2. GOMEMLIMIT: 设置堆内存峰值,当堆内存达到这个值时,触发下一次 GC。

通过微调这两个值,可以控制 GC 的频率。但是需要记住,微调 GC 的本质是在内存和 CPU 间进行 tradeoff。GC 对程序的延迟有两个部分:STW 的中断延迟、并行 SWEEP 期间占用 CPU 导致的性能下降。天下没有免费的午餐,增大 GC 的间隔并不会减少总延迟,非必要不用去调节这两个值。
狗屁通套皮站支持 gpt-4-0125-preview 了。顺带提醒一下使用 one-api 套皮的人,升级最新的 one-api 后,在 设置->运营设置 里手动检查一下倍率设置,gpt-4-0125-preview 的价格应该和 gpt-4-1106-preview 一样设置为 5。升级后很可能遇到未设置 gpt-4-0125-preview 倍率的情况,此时倍率会按照默认 50 计费,导致计费错误。
https://stackoverflow.com/a/72245072/2368737

学会一个前端的坑。如果你把高度设置为 100vh 试图占满浏览器的高度,这在桌面上没问题。

但是在手机浏览器上,浏览器的 navigator(地址栏)会占掉一点高度,而这个高度不会计算在 vh 里,结果就是你的 document 的实际高度会超出浏览器里的可视高度,然后你的页面就会在垂直方向上变成滚动(或者被截断,如果你将 overflow 设置为 hidden)。

这个恶心的现象在桌面版的 Chrome DevTools 里也无法调试,因为 Toggle Device Toolbar 模拟的 mobile 页面并不会包含 navigator。

在现代浏览器上,应该使用 svh 来获取 navigator 下方的,真实的页面可视高度。实测在最新版的 ios safari 和 chrome 上都可使用。
https://caniuse.com/?search=dvh
#FE
https://youtu.be/eUdIz21P7zE?si=blnO07kmDngoBBC1

走访了几家 all-american chain 的公司,介绍美国制造业复兴的愿景。

几个有趣的观点:
1. free trade 是个骗局:美国人获得了更便宜的商品,但是输掉了未来。中国的工人生活也并没有变好。
2. decoupling from China 政策不是美国的单方面施暴,而只是对等措施。中国才是那个多年以来一直以脱钩为核心国策的国家。
3. 振兴制造业成为了两党共识,两党的争议在于谁做的更好
4. 美国对制造业危机的觉醒来自于疫情,连口罩都需要依赖中国进口。
5. 制造业的最后一人不会是赢家,而是最后的输家。我理解这句话是说制造业会不执迷于给人类手工保留职位,同时要考量自动化的进步。

片尾结语,不是所有人都想成为金融家或程序员,人们需要一个多样性的就业环境,创造价值。
https://youtu.be/RFjAqth-EQk?si=2t6n0ybkfgkNrh6s

看了部关于 Nord Stream pipelines 爆炸案的纪录片,制作方是德国的 DW。

可以很明显地感受到,制片人基本上已经主观认定是乌克兰所为了。一个贴有乌克兰军人照片的护照持有者,租了一辆小游艇两个星期,这艘游艇足以实施这次袭击。而且,租借游艇的机构和金钱都来自于乌克兰。

但是,也有安全专家提示,你们这么轻易地调查就得出了这些线索,很可能是对方设下的圈套。比如故意留下乌克兰的蛛丝马迹,让你以为这是乌克兰所为。

而德国政府对北溪案件持严格保密态度,更让人怀疑是在故意隐瞒一些信息。

不过这案子难查的一个主要因素是,北溪管道实在太容易破坏了,甚至可以说任何一个有意向的组织,投入很少的资金,就可以完成。家庭作坊制造炸弹,能搞定 70 米海水的潜水员,租借一艘小游艇,足矣。
https://laisky.notion.site/What-We-Got-Right-What-We-Got-Wrong-4a44534fca40489eb2302161512e662b?pvs=4

Rob Pike 在 2023 年 11 月的一次内部演讲稿,回顾 Golang 14 年的历程,没什么技术内容,热爱 Golang 的人可以读一读。

Pike 强调发明 Go 是为了解决 Google 所面临的超大规模团队的工程问题。而在今天看来,有很多人批评 Go 的语法,却几乎没人批评 Go 的工程化能力,这可以看作初创者们的初衷已经圆满实现了。

因为 Google 内部使用 monorepo,导致初创团队对于依赖管理经验不足,也严重低估了其复杂性,所以早期 Go 是没有多版本依赖管理的,直到后来实现了 gomodule。

在并发问题上,Pike 再次推荐了经典论文 CSP,并且认为 async/await 的写法实际上是把复杂性交给了程序员。(我倒是觉得 async/await 在手写调度时实际上比 CSP 简单)

还有就是作者认为 interface 已经足够了,但是迫于社区压力引入了范型,范型和 interface 的兼容很成问题,为此付出了大量的努力。

关于 Golang 和 Google 的关系,Pike 总结为:the core Go team is paid by Google but they are independent。Google 付钱,但并不干涉,Golang 是完全由社区主导的。

BTW,Rob Pike 已经 68 岁了,据说已经退休,近年来已经很少露面。 What We Got Right, What We Got Wrong | Notion
Laisky's Notes
https://chat.laisky.com/# 套皮站支持自定义 session 名了,而且在左侧会显示快速切换按钮。每个 session 都可以有独立的模型选择和配置(比如 system prompt),你可以给不同的会话设置不同的角色,这样在不同的任务间切换会更方便。 这站现在成我的日常娱乐了,有空就写几行垃圾代码,我自己用着舒服就行,缺啥加啥,哈哈哈哈。 next: https://t.me/laiskynotes/135
https://chat.laisky.com/ 狗屁通套皮站可以跨设备同步所有的配置和对话记录了。

之前支持了各个会话保存独立的设置,这样就可以开一堆会话,然后通过 system prompt 给每个会话定义不同的角色。用起来虽然很爽,但是每个设备都得这么设置一次很烦,所以同步设置成了必要的。

现在可以通过 sync key 同步记录和设置,使用相同的 sync key 就可以拉取相同的记录,所有的记录在云上都使用 AES-256 加密,密钥就是 sync key,无需担心隐私。

Ps. 视频里出现的 sync key 我已经销毁了,不用费劲黑我了。
读了一本信息满满的书《The Econology Trap》(技术陷阱)。此书通过经济数据来分析人类历史上的技术进步和社会变革,得出了很多有趣的观点。

比如,技术进步最大的阻碍从来不是技术本身。社会的本质是利益的创造和分配,技术的进步往往会立刻对利益的分配带来冲击,而带来广泛的利益创造则往往会滞后数十年(50 年左右)。所以历史上制约技术进步最大的障碍就是人们的抵制。

在古代,对技术进步的抵制主要来自上层统治阶级,因为这会动摇他们依赖利益分配所维持的统治地位。进入近代商业时代后,统治阶级转而鼓励技术进步以获取国际竞争优势,底层劳动者成为主要的抵制力量。某种意义上,工业革命之所以发源于欧洲,一大原因就是欧洲的国家间竞争实在太过于激烈,某国成功的抵制进步后很快就会被另一个国家超越。这些抵制技术进步的大众还被诬称为“卢德主义者(Luddite Movement)”。

在商业社会,技术进步让人们的劳动力价值逐步降低,而资本在收益分配中的比重日益上升。这也被称为“恩格斯停顿(Engels' Pause)”,即社会生长率上升,但劳动工资却停滞不前。

书中还提到了最近很火的一个观念“全民基本收入(Unconditional Basic Income, UBI)”,但这其实并不是一个新观点,本质上就是由 Milton Friedman 曾提出的“负所得税(negative income tax)”,即给未达到起征点的人发放福利。但是 UBI 的一个致命缺点是,他逆转了人们对于福利系统“帮助需要帮助的人”这一观念,转而无差别的将利益分配给所有人,这可能会反而增大差异,引发矛盾。

摘抄: https://blog.laisky.com/p/the-technology-trap/
Telegram Channel