深度学习 · 现代 AI— 神经网络 / Transformer / 大模型 / 对齐
Paper 1Attention Is All You Need — 用纯注意力取代 RNN,一个架构成了当代所有大模型的地基Vaswani 等 · 2017
Paper 2Deep Residual Learning (ResNet) — 一条「跳跃连接」让网络堆到上百层,几乎所有深网络的地基He 等 · 2015
Paper 3AlexNet — 让深网络自己从百万张图里学特征,2012 断崖式夺冠、点燃深度学习革命Krizhevsky 等 · 2012
Paper 4Word2Vec — 让机器读海量文本自学词向量,「国王−男人+女人≈王后」,embedding 时代的起点Mikolov 等 · 2013
Paper 5ViT (An Image is Worth 16×16 Words) — 把图切成小块当「词」喂给标准 Transformer,视觉与语言从此共用一种架构Dosovitskiy 等 · 2020
Paper 6CLIP — 4 亿对图文玩「连线配对」,把图像和语言放进同一个意思空间,多模态 AI 的地基Radford 等 · 2021
Paper 7LSTM (Long Short-Term Memory) — 一条「记忆传送带」加两扇会学的门,治好梯度消失,统治序列建模二十年Hochreiter & Schmidhuber · 1997
Paper 8Seq2Seq (Sequence to Sequence Learning) — 两个 LSTM 接力「先读懂、再重说」,encoder-decoder 范式由此确立Sutskever, Vinyals & Le · 2014
Paper 9Bahdanau Attention (Jointly Learning to Align and Translate) — 让模型每写一个词都回头按相关度看原文,注意力机制的出生证明Bahdanau, Cho & Bengio · 2014
Paper 10BERT — 把「接龙」换成「完形填空」,双向自学语言,奠定「预训练 + 微调」范式Devlin 等 · 2018
Paper 11GPT-3 — 「猜下一个词」练到 1750 亿参数,看几个例子就当场上手新任务,提示词时代的起点Brown 等 · 2020
Paper 12Scaling Laws — 模型水平随「模型 + 数据 + 算力」沿一条平滑幂律稳降,把大模型从炼丹变工程Kaplan 等 · 2020
Paper 13Emergent Abilities(涌现能力)— 有些本事大到某个门槛才「突然」冒出、事先无法预测,也招来「是否海市蜃楼」的著名反驳Wei 等 · 2022
Paper 14InstructGPT / RLHF — 用人类偏好把 GPT-3 调教成「体贴地答你」,重心从「做更大」挪到「对齐」,ChatGPT 的同款配方Ouyang 等 · 2022
Paper 15Constitutional AI(宪法 AI)— 把价值观写成一份「宪法」,让 AI 照着自我批评、自我改写(RLAIF),几乎不用人工有害标注,Claude 的训练基石之一Bai 等 · 2022
Paper 16GAN(生成对抗网络)— 「造假者」造图、「验钞员」辨真假,两个网络互为对手越练越强,点燃生成式建模一整波浪潮Goodfellow 等 · 2014
Paper 17DDPM(扩散模型)— 先用千步把照片撒成噪点,再训练网络只认「每步多出来的噪声」倒着擦回去,生成从此超过 GANHo 等 · 2020
Batch Normalization(批归一化)— 用当前这批数据的均值方差把每层输入拉回标准刻度,深网络训练从走钢丝变成常规操作Ioffe & Szegedy · 2015
Dropout(随机失活)— 训练时随机让一半神经元「请假」,逼它们各自学会站得住的本事,一套权重白得一个集成Srivastava 等 · 2014
Adam(自适应矩估计)— 给每个参数各记「平均往哪走」和「坡多大多抖」两本账,自动配步长,成了深度学习十年里的默认优化器Kingma & Ba · 2014
DQN(深度 Q 网络)— 只喂屏幕像素和分数,用一个卷积网络给每个动作估「未来总分」,再靠「经验回放」稳住训练,同一套程序学会 7 款雅达利游戏、开创深度强化学习Mnih 等 · 2013
AlphaGo — 用「直觉网络」砍掉大部分坏棋、「大局观网络」免去算到终局,引导树搜索,第一次在全盘对弈中击败职业围棋棋手Silver 等 · 2016
Google 分布式系统— 老三件套 · 新三驾马车 · 演进
Paper 1The Google File System (GFS) — 单 master 记账、数据切成大块存三份,用会坏的廉价机器拼出 PB 级存储,大数据基础设施第一块地基Ghemawat 等 · 2003
Paper 2MapReduce — 只写 map+reduce 两个函数,框架自动把计算并行摊到上千台机器并全程容错,开启大数据时代Dean & Ghemawat · 2004
Paper 3Bigtable — 用 (行键,列,时间戳) 定位的稀疏有序大表,横跨上千台机器长到 PB 级,宽列 NoSQL 与 LSM 引擎的祖师爷Chang 等 · 2006
Paper 4The Chubby Lock Service — 把难写易错的 Paxos 封装成「文件 + 粗粒度锁」服务,谁抢到锁谁当主,成了 GFS / Bigtable 选主与 ZooKeeper / etcd 的共同祖师爷Burrows · 2006
Paper 5Percolator (Caffeine) — 给 Bigtable 加跨行事务与「主锁」两阶段提交、再配观察者通知,让谷歌搜索索引从整批重算变成增量更新、新鲜度翻倍Peng & Dabek · 2010
Paper 6Pregel — 「像顶点一样思考」的顶点为中心 + BSP 图计算模型:只写「一个顶点一轮该干嘛」,系统包办分区、同步与容错,撑起十亿顶点级图算法Malewicz 等 · 2010
Paper 7Dremel — 嵌套数据列式存储(重复/定义层级无损打散又拼回)+ 借搜索引擎的多级执行树摊到几千台机器,对万亿行做秒级交互式聚合,BigQuery 的底子Melnik 等 · 2010
Paper 8Spanner — 让每台机器的钟诚实报出「时间在这一小段区间里」(TrueTime),提交时多等一拍把误差等过去,一个铺满全球的数据库便有了人人认同的事务全序(外部一致性)Corbett 等 · 2012
Paper 9F1 — 建在 Spanner 之上的分布式 SQL 层:把「可扩展 + 强一致」的存储底座重新配上完整 SQL、事务与一致索引,用层级聚簇+乐观事务摊平跨机房延迟,撑起了 AdWordsShute 等 · 2013
Paper 10Dapper — 给每次请求发一个全程带着走的 trace id,把每段工作记成 span 拼成调用树;靠公共库埋点透明、抽样带外几乎零开销,看清一次请求在上千台机器间走了哪条路,分布式追踪与可观测性的蓝本Sigelman 等 · 2010
Paper 11The Tail at Scale — 你等的是最慢那一台,于是偶发的慢被规模放大成常态;像做容错那样给延迟长尾兜底Dean & Barroso · 2013
分布式共识 · 一致性 · 存储— 时钟 / 共识 / NoSQL / P2P
Paper 1Time, Clocks, and the Ordering of Events — 没有大家都信的表,就用「消息一定先发后收」定义先后,再给每台机器一个只增的号码牌,天各一方的机器便能排出人人认同的同一份顺序Lamport · 1978
Paper 2The Byzantine Generals Problem(拜占庭将军问题)— 有节点会撒谎、发矛盾消息时如何达成一致:叛徒少于三分之一才有解,靠转述加多数表决;有了不可伪造签名则任意多叛徒都能容忍,一切「防作恶」共识的起点Lamport, Shostak & Pease · 1982
Paxos Made Simple — 让会崩溃、只靠不可靠网络通信的机器就一件事达成唯一且不反悔的一致:领只增的号码牌、先问过半数一圈、认大号、推值前先沿用别人已接受的值;靠「任意两个过半数必重叠」,定过的值再也翻不了案Lamport · 2001
In Search of an Understandable Consensus Algorithm (Raft) — 把三十年没人读懂的共识算法,重写成一套能读懂、能照着写对的规则:单领导者 + 随机化选举 + 过半即提交,成了 etcd、CockroachDB 等无数系统的一致性内核Ongaro & Ousterhout · 2014
Dynamo: Amazon's Highly Available Key-value Store — 为「购物车永不拒绝写入」而生:用即时一致换永远可用,一致性哈希决定数据落点、R+W 法定人数可调、向量时钟记录版本冲突交应用合并,点燃了 Cassandra 等一整代最终一致 NoSQLDeCandia 等 · 2007
Harvest, Yield, and Scalable Tolerant Systems — 把「可用」拆成产出率与收获度两把旋钮做优雅降级,故障时选择怎么坏、而非整个倒下,CAP 定理的思想前身Fox & Brewer · 1999
Chord: A Scalable Peer-to-peer Lookup Service — 把「几百万台随时进出的机器里,谁负责这个 key」做成一个可证明的最小原语:机器与 key 摆上一致性哈希环、key 归顺时针最近的节点,靠「翻倍距离」的指针表 O(log N) 跳定位、stabilization 协议自愈,一代 NoSQL 与 P2P 系统的地基Stoica 等 · 2001
Kafka — 把消息队列重做成「只追加的分区日志」:broker 不记谁读到哪、消息不因被读而删,读者自持 offset,于是多方共读、可倒带重放Kreps 等 · 2011
数据库 · 数据模型
Paper 1A Relational Model of Data(关系模型)— 把数据摊成规整的表,表间不靠物理指针、只靠共享的值关联,查询从「教它怎么走」变成「说清要什么」,几乎所有现代数据库与 SQL 的理论根E. F. Codd · 1970
操作系统 · 网络架构
Paper 1The UNIX Time-Sharing System(UNIX)— 用「一切皆文件 + 小工具用管道自由拼接 + 树状文件夹」几个极简点子,做出一个又小又通用的操作系统,Linux、macOS、安卓、iOS 都是它的思想后代Ritchie & Thompson · 1974
Paper 2End-to-End Arguments in System Design(端到端论证)— 有些功能只有收发两头自己才能做对(如确认文件一字不差),网络在中间也做不全、还连累所有人,所以把聪明活留给两头、让网络保持简单——TCP/IP「笨管道 + 聪明终端」的思想地基Saltzer, Reed & Clark · 1984
Paper 3Congestion Avoidance and Control(TCP 拥塞控制)— 没有中央调度,就让每个发送方按「对方的回音(ACK)」打拍子发包、顺利时慢慢加速、一丢包就把速度砍半,用这套人人自律的「慢加猛减」让互联网不再在流量下一起崩溃Van Jacobson · 1988
密码学 · 安全 · 去中心化
New Directions in Cryptography — 把钥匙拆成「公开一把 + 私藏一把」,两个陌生人当众也能约出暗号,现代加密的地基Diffie & Hellman · 1976
RSA — 第一个能真正落地的公钥体制,把加密与数字签名押在「大数分解极难」上Rivest, Shamir & Adleman · 1978
Bitcoin(比特币白皮书)— 用「解难题才能记账 + 最长链才算数 + 记账有币赏」,让匿名陌生人不靠银行也能防住「同一笔钱花两次」,区块链的起点Satoshi Nakamoto · 2008
Reflections on Trusting Trust(信任的信任)— 把后门藏进「编译器编译自己」的环节,让它自我繁殖、在任何源码里都查无一字,证明「你无法信任任何不是你亲手从头造出来的代码」,供应链攻击的思想原点Ken Thompson · 1984
万维网 · 搜索 · 信息
As We May Think(诚如所思)— 1945 年就设想用一台叫 Memex 的桌子把知识按「联想」两两拴成可命名可分享的「小径」,超链接与万维网的思想源头Vannevar Bush · 1945
The Anatomy of a Search Engine(谷歌雏形)— 把每条链接当成一票带权重的推荐(PageRank),再用「别人怎么称呼你」(锚文本)描述一个页,在爆炸增长的网页里把最该看的排最前,谷歌的起点Brin & Page · 1998
计算与信息理论基石
A Mathematical Theory of Communication — 用「比特」给信息称重,并证明两条铁律:任何信源有压缩极限(熵),任何信道有速度上限(容量),不超速就能把噪声纠正到近乎零错Claude Shannon · 1948
On Computable Numbers(图灵机)— 把「计算」定义成一台纸带机器,再造出「读说明书就能变成任何机器」的通用机,最后证明有些问题机器永远判定不了Alan Turing · 1936
Computing Machinery and Intelligence(图灵测试)— 把没法答的「机器能思考吗」换成一场模仿游戏:裁判隔屏打字分不出机器就算它会思考,AI 的哲学起点与第一块试金石Alan Turing · 1950
The Complexity of Theorem-Proving Procedures(NP 完全性)— 把「难解」精确定义出来:证明 SAT 是「最难代表」,攻破它就攻破一整类「验证易、求解难」的问题,P vs NP 由此成为一道精确的百万美元悬案Stephen Cook · 1971
软件工程 · 编程思想
Go To Statement Considered Harmful — 一封两页短信论证 goto 让代码「读到哪」对不上「跑到哪」,只留顺序/分支/循环,点燃结构化编程Edsger Dijkstra · 1968
On the Criteria To Be Used in Decomposing Systems into Modules — 别按处理步骤、按「最可能变的设计决定」拆模块,每块藏一个秘密只露接口,封装与面向对象的思想源David Parnas · 1972
No Silver Bullet: Essence and Accident in Software Engineering — 软件之难分「本质」与「偶然」,过去的进步只削偶然、而偶然已所剩无几,故没有一颗能提速十倍的银弹Fred Brooks · 1986