# 科技爱好者周刊（第 348 期）：李飞飞，从移民到 AI 明星

这里记录每周值得分享的科技内容，周五发布。

本杂志[开源](https://github.com/ruanyf/weekly)，欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6771)服务，发布程序员招聘信息。合作请[邮件联系](mailto:yifeng.ruan@gmail.com)（yifeng.ruan@gmail.com）。

## 封面图

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051203.webp)

5月1日，宇宙飞船造型的深圳科技馆新馆开馆，上图是设计团队在新馆前合影。（[via](https://www.szstm.org.cn/)）

## 李飞飞，从移民到 AI 明星

大家知道[李飞飞](https://baike.baidu.com/item/%E6%9D%8E%E9%A3%9E%E9%A3%9E/7448630)吧，AI 的明星教授。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051013.webp)

她在斯坦福大学任教，是美国国家工程院等三院院士，担任过斯坦福 AI 实验室主任，以及谷歌云 AI 首席科学家。

她1976年出生于北京，在成都长大，16岁全家移民美国。

我一直好奇，她怎么走上 AI 这条路，从移民变成学术明星？

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051014.webp)

这几天，我读完她的自传[《我看见的世界》](https://book.douban.com/subject/36672955/)（中信出版集团，2024），才发现**她的人生很有戏剧性，每当重要关头，都有幸运的事情发生**。

### （1）高中阶段

她出生于一个普通家庭，中学阶段并无过人之处。

> 我们家位于成都当时的外环路旁边，小区由三栋一模一样的塔楼组成，我家住在四楼。这个环路是不断扩张的城市边缘，一侧是工厂，另一侧是农田。
>
> 我进入了一所吸引全市优秀学生的中学。在那几年里，对女孩的预设和偏见让我越来越不耐烦，这种情绪已经超出了课业的范围。在同龄人中，我已经有“假小子”的称号。

1992年，移民美国后，她家的生活顿时变得困难。一家三口挤在新泽西乡下一间一居室公寓，她睡客厅，床就放在餐桌旁边。

父亲在一家华人商店修理旧相机，后来被辞退，从此失业。母亲做杂货店营业员，后因风湿性心脏病，回家休养。李飞飞下课后，就要去打工，有时在中餐馆端盘子12个小时，每小时2美元。

最后，实在走投无路，她们家决定买下社区的一家干洗店，靠洗衣为生。买下干洗店需要10万美元，全家仅有2万美元储蓄，其余8万美元都是借的。

### （2）大学阶段

1997年，李飞飞中学毕业，要申请大学了。

> 一开始，我的目标大学主要是州立大学和社区大学，而不是常春藤学校。但我一直对一所顶级高校念念不忘，那就是普林斯顿大学。
>
> 我们是一个靠从车库市场淘来的旧货才能勉强度日的家庭，连我用的计算器都是坏的，我们怎么可能负担得起常春藤学校的学费呢？
>
> 尽管如此，我还是无法抑制内心的冲动，提交了申请。就算只是象征性地申请一下，我也感觉具有特殊意义。

她申请了普林斯顿大学，结果好梦成真，普林斯顿给了全额奖学金。

如果没有全奖，以她家的经济状况，负担不了学费。如果不去普林斯顿大学，她就不太可能走上学术道路了，更不要说后面的成就了。

### （3）博士阶段

大学毕业后，李飞飞原想去华尔街工作，解决家庭的经济问题。

母亲鼓励她，继续追求自己的梦想。于是，她选择去加州理工学院读研究生，方向是视觉识别机制。

2004年，李飞飞为了写博士论文，需要图片材料，来训练算法。她找了9000张图片，组成了一个图片集，手工对每张图片进行分类标注，一共分成101类。

这个图片集叫做 Caltech 101，算法经过训练，就能从新图片识别出这101类物品。她因此顺利拿到了博士学位。

### （4）助教阶段

博士毕业后，李飞飞先去伊利诺伊大学，后去普林斯顿大学，都是担任计算机科学的助教。

她继续探索视觉识别，想找到一种通用算法，能够识别所有种类的物品，而不是 Caltech 101 那样，只能识别出101类物品。

这意味着她需要一个超大的图片训练集，能够包含了世界上所有物品。这可太难了，所有人都反对这件事。

> 我们都是年轻的助理教授，所处的院系竞争激烈，在事业起步的那几年里，我们都面临着“要么发表论文，要么完蛋走人”的局面。压力之下，我们必须马不停蹄、保质保量地完成工作，因为我们知道，稍有懈怠就可能与终身教授的职位说再见，一同失去的还有获得稳定生计的最佳机会。
> 
> 我听到的劝阻之声已经多得够我用一辈子了（可能下辈子也够了）.
>
> 有上万个类别的数据集有什么用？大部分模型连一两个类别都识别不准！
>
> 你知道用这么多图像训练一个模型要花多长时间吗？这个时间可是用“年”来计算的。
>
> 别人要怎么下载呢？你这个图像总量比大多数硬盘的存储量还要大。
>
> 具体怎么做，你有计划了吗？几百万张图谁来做标注？要花多长时间？怎么验证所有内容的准确性呢？

### （5）ImageNet

李飞飞坚持要做，这个通用图片集起名为 ImageNet。那时是2006年。

她想到一个思路，英语词典有一些基本名词，用来解释其他所有物品。只要统计一下，基本名词有多少个，每一个又有多少变体，那就得到了所有物品的基本类别。

统计结果是3万类。因此，李飞飞估计，ImageNet 将有3万个类别，总共包含2000万张图片，每张图片都要有分类和标注，需要从几亿张图片里面筛选出来。

> 我们发出了邮件，招募愿意帮忙从网上下载和标注图片的本科生，工作时间灵活，每小时10美元。我们招募到一些学生，但是按照这样的进度，完成整个项目需要19年。

这太慢了，项目方法做了改进，用脚本自动去谷歌搜索图片，然后抓取。但是这样也需要人工核对和筛选，只把19年的时间缩短到18年。

幸运的是，亚马逊刚刚发布了众包平台“土耳其机器人”（Amazon Mechanical Turk，AMT）。在这个平台上，你可以出钱，通过互联网，把任务分包给世界各地接活的人。

他们通过这个平台，将 ImageNet 分包出去，投入的人数一下子扩展到几千人，而人均费用只是原来的几十分之一。

> 2009年6月，ImageNet 的初始版本终于完成了。我们成功达成了目标：收集了1500万张图片，涵盖了2.2万个不同类别。这些图片筛选自近10亿张候选图片，并由来自167个国家的4.8万多名全球贡献者进行了标注。

### （6）ILSVRC 算法竞赛

ImageNet 虽然完成了，但在学术界毫无反响，没有太多人关注。

> 我们遇到了第一个也是最严重的挫折：在当年的“计算机视觉与模式识别大会”上，ImageNet 被降级为“海报展示”。
>
> 所谓的“海报展示”是一个学术术语，意味着我们将不能在演讲厅内向听众展示我们的工作，只能在会场的指定区域里摆放一幅印有项目摘要的大幅海报，希望能引起路人的兴趣。
> 
> 我想过 ImageNet 可能被证明是对的，也可能被证明是错的，对于这两种可能性，我都做好了准备。无论是哪种结果，都会是一个学习的机会。然而，我万万没想到，它被忽视了。

由于 ImageNet 得不到承认，李飞飞想到一个办法，她要每年举行一次算法比赛，看看哪种算法识别 ImageNet 图片集的正确率最高。

这样一来，在计算机视觉领域，ImageNet 就会成为一个比较基准，各种算法都需要用它表示自己的识别能力，大家就不会忽视它了。这个比赛叫做 ILSVRC（ImageNet 大型视觉识别挑战赛，ImageNet Large Scale Visual Recognition Challenge）。

2010年，第一届比赛令人失望，11个团队提交了35个参赛算法。冠军算法是传统的图片向量比较，并无创新之处，正确率也不高。

2011年，第二届比赛更惨，获胜算法还是图片向量比较，正确率只提高了2个百分点。这意味着，没有任何创新和进展。

> 最糟糕的是，参赛人数也出现急剧下降，参赛算法从35个减少到15个，愿意为此付出努力的人似乎越来越少。
>
> 说这种经历“让人羞愧”已经远远不足以描述我们的心情了。为了推动 ImageNet 的发展，我们倾注了多年的心血，搜集的图片数量远远超过以往的任何数据集，还精心策划了一场国际竞赛来探索它的能力，但结果却只是简单地重复了现状。如果说ImageNet 是一场赌注，是时候开始思考我们是不是已经输了。

眼看这个项目就要失败了，几年的心血付之东流。就在这个时候，李飞飞人生最大的惊喜和反转来临了。

2012年，第三届比赛，一个加拿大团队使用被学术界遗忘已久的卷积神经网络，一举将图片识别正确率提高了10%。

接下来的事情，就是被写进教科书的历史了。全世界被神经网络的效果轰动了，AI 研究出现突破，人类进入 AI 时代。

李飞飞彻底翻身，一举成名，从助教变成世界知名的 AI 研究领头人物，人生从此海阔天空。

她的故事令人感叹，如果神经网络算法没有在2012年出现，而是再晚几年，或者更早一点，亚马逊的土耳其机器人众包平台没有在2005年诞生，一切会怎样？

这就是时运吧。科学家的人生和科学发现一样，都是由一些偶然事件推动的。个人奋斗固然重要，但是关键时刻还是离不开幸运。

## 科技动态

（1）传统的脑电图，需要在头上布满电极（下图），有很多限制，也不舒适。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050802.webp)

美国宾州大学的科学家，发明了一种[头发电极](https://newatlas.com/medical-devices/3d-printed-hairlike-eeg-electrode/)，细得像头发一样，可以直接粘在皮肤上，淋浴和运动也不会掉下。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050803.webp)

这种电极目前还是有线的，但是有计划开发无线版本。

（2）[百度地图](https://finance.sina.cn/7x24/2025-05-09/detail-inevxzxx9213651.d.html)在导航路面植入广告。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050904.webp)

（3）谷歌的 AI 笔记应用 NotebookLM，可能很快就会添加“[视频概览](https://www.xda-developers.com/notebooklm-video-overviews/)”功能。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051007.webp)

它已经支持生成音频和 AI 问答，如果再支持生成视频，简直难以想象，是否还需要真人老师。

直接上传课本，它就生成讲课视频了。

（4）安卓官方的[桌面模式](https://www.androidauthority.com/android-desktop-mode-leak-3550321/)，泄露了运行照片。下图是它的多窗口模式。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051401.webp)

但是 Android 16 可能来不及，发布要等到 Android 17。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051402.webp)

手机当作桌面电脑，已经不远了。

（5）百度公布“[动物语言转换方法、装置、电子设备及存储介质](https://www.sohu.com/a/892944913_120347736)”专利，使用 AI 识别动物的情感状态，转换为人类能够理解的语言，从而实现动物与人类之间的情感交流和理解。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050806.webp)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050807.webp)

## 文章

1、[一段让 Chromium 机器人崩溃的代码](https://blog.castle.io/detect-and-crash-chromium-bots-with-one-weird-trick-bots-hate-it/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051012.webp)

作者介绍了一段 JS 代码，让Chromium 无头浏览器（Puppeteer 和 Playwright）崩溃。它可以用来识别，访问者是不是机器人。

2、[Git worktree 简介](https://opensource.com/article/21/4/git-worktree)（英文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051405.webp)

Git 仓库同时只能有一个工作区，如果想同时建立多个工作区，可以使用 git worktree 命令。

3、[用 Go 移植 TypeScript 的重要影响](https://imbant.github.io/blog/2025/05/07/ts-go/)（中文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051003.webp)

微软官方要用 Go 语言重写 TypeScript 项目，本文分析这样做的目的和影响。（[@imbant](https://github.com/ruanyf/weekly/issues/6817) 投稿）

4、[为什么大模型可以控制手机](http://hanzilu.com/wordpress/?p=376)（中文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051002.webp)

开源项目 [droidrun](https://github.com/droidrun/droidrun) 可以通过大模型，以自然语言操作安卓手机的 APP。本文分析它是如何做到的。（[@lezhi12](https://github.com/ruanyf/weekly/issues/6822) 投稿）

5、[创业公司可能无法承受微服务](https://nexo.sh/posts/microservices-for-startups/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050903.webp)

本文提出，微服务需要很强的运维能力，并会增加代码复杂性，创业公司不要盲目采用，单体应用更简单。

6、[从 Prettier 和 ESLint 迁移到 BiomeJS](https://blog.appsignal.com/2025/05/07/migrating-a-javascript-project-from-prettier-and-eslint-to-biomejs.html)（英文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050808.webp)

BiomeJS 是用 Rust 语言写的工具，对 JS 代码进行格式化和语法检查，速度极快，可以取代 Prettier 和 ESLint。

7、[如何自己托管 Obsidian](https://www.xda-developers.com/i-self-hosted-obsidian-so-i-can-access-it-in-web-browser-anywhere/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051301.webp)

Obsidian 是一个优秀的笔记软件，作者给出详细步骤，自己托管 Obsidian 服务器，从而在任何地方都可以通过浏览器使用。

## 工具

1、[Void](https://github.com/voideditor/void)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050902.webp)

开源的 AI 代码编辑器，Cursor 的替代品，基于 VS Code。

2、[Hyvector](https://www.hyvector.com/)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051001.webp)

在线的矢量图（SVG 文件）编辑工具。

3、[Karakeep](https://github.com/karakeep-app/karakeep)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051005.webp)

一个自搭建的书签 App，提供全文搜索和 AI 自动分类标签，参见[介绍文章](https://www.xda-developers.com/this-self-hosted-app-showed-me-been-using-bookmarks-wrong-all-life/)。

4、[PairDrop](https://pairdrop.net/)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051006.webp)

局域网传输文件的 Web 应用，[代码开源](https://github.com/schlagmichdoch/PairDrop)，类似于 [ShareDrop](https://github.com/szimek/sharedrop) 和 [LocalSend](https://localsend.org/zh-CN)。

5、[zVault](https://www.zvault.io/)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051505.webp)

NAS 操作系统 TrueNAS 原本基于 FreeBSD，正在转向 Linux。zVault 是一个社区的分支，由社区推动继续在 FreeBSD 开发。

6、[YAMLResume](https://github.com/yamlresume/yamlresume)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051205.webp)

使用 YAML 格式创建简历，并通过 LaTeX 输出 PDF，方便进行版本管理。（[@xiaohanyu](https://github.com/ruanyf/weekly/issues/6837) 投稿）

7、[AllinSSL](https://github.com/allinssl/allinssl)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051302.webp)

开源的 SSL 证书自动化管理平台，集证书申请、管理、部署和监控于一体。（[@KincaidYang](https://github.com/ruanyf/weekly/issues/6842) 投稿） 

8、[Basecoat](https://basecoatui.com/)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051404.webp)

一套基于 Shadcn UI 的组件库，但是不使用 React。

9、[Scraperr](https://github.com/jaypyles/Scraperr)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051503.webp)

网络爬虫的 Web 控制台。

## AI 相关

1、[MathModelAgent](https://github.com/jihe520/MathModelAgent)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051204.webp)

开源的 AI 应用，自动完成数学建模，生成一份完整的论文。（[@jihe520](https://github.com/ruanyf/weekly/issues/6825) 投稿）

2、[BiliFilter](https://github.com/ddddng/BiliFilter/)

基于本地大模型的 Bilibili 弹幕过滤器，对弹幕分类过滤。（[@ddddng](https://github.com/ruanyf/weekly/issues/6833) 投稿）

3、[AI 语音克隆](https://aivoicecloning.io)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051501.webp)

免费的语音克隆工具，3 秒录音克隆人声。（[@xiaodaidai0701](https://github.com/ruanyf/weekly/issues/6850) 投稿）

## 资源

1、[I Don't Have Spotify](https://idonthavespotify.donado.co/)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051004.webp)

一个音乐搜索引擎，输入 Spotify、YouTube、Apple、SoundCloud 的音乐链接，它会提供该音乐在其他网站的链接。

2、[IPinfo Lite](https://ipinfo.io/lite)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025050901.webp)

地理位置数据库 IPinfo 推出的免费服务，IP 查询地理位置，无需信用卡，API 请求次数不受限制。

1、[Web Component 教程](https://plainvanillaweb.com/index.html)

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051504.webp)

英文的 Web Component 入门教程。

## 图片

1、[数字键盘的样式](https://www.doc.cc/articles/a-brief-history-of-the-numeric-keypad)

数字键盘来源于电话。

早期的电话都采用旋转的拨号盘。20世纪50年代，电话可以长途直拨了，拨打长途电话需要输入11个号码，拨号盘就太麻烦了，导致了数字键盘的诞生。

1955年，AT&T 公司的研究人员，做过一个研究，10个数字的小键盘应该怎样排列，效率最高？

他们一共列出了15种排列。

![](https://cdn.beekka.com/blogimg/asset/202505/bg2025051202.webp)

经过研究和比较，用户更喜欢从左到右、从上到下的布局。

具体来说，两排五列水平布局与现在普遍使用的 3x3+1 布局速度相当，差异很小。

AT&T 公司最终为电话选择了 3x3+1 布局，主要原因大概是它比较紧凑。

## 文摘

1、[我第一次加入创业公司的教训](https://blog.jacobstechtavern.com/p/the-side-hustle-from-hell)

一位开发者大学毕业后，加入了一家创业公司。

他逐渐发现，公司内部有很多矛盾，产品决策也有失误。

最终，公司开始走下坡路，他就提交了辞呈，放弃了自己的期权。

离职后，他写了[一篇文章](https://blog.jacobstechtavern.com/p/the-side-hustle-from-hell)，总结了自己得到的教训。

![](https://cdn.beekka.com/blogimg/asset/202504/bg2025042817.webp)

（1）即使创业公司的每个员工都很有动力，但如果创始人并非顶尖人才，那么取得巨大成功的机会很低（但你仍然可以从中学到很多东西）。

（2）创业公司只有两种工作：开发和销售。如果创始人既不做开发，也不做销售，不知道他在做什么，那就相信你的直觉吧。

（3）创业公司的产品还未得到市场验证的情况下，为多个平台构建原生应用，是一种极其低效的行为。如果同时为两个产品在每个平台开发两个原生应用，简直是疯了。

（4）创业公司的路演，大多是浪费时间。产品的验证来自于与用户交流和迭代，而不是打动评委。

（5）没有什么比并肩作战、共同实现梦想更神奇的了。如果你经常见不到创始人，所有的沟通都只能通过远程进行，那可不是好兆头。

（6）如果创业公司没有经过严格的面试，就录用了你，这是一个危险信号。他们到底是基于能力来录用你，还是因为你是第一个同意只收很少的报酬，就为他们工作的工程师？

## 言论

1、

科学项目日益大型化和制度化，使得个人的好奇心和创新，对于科学的推动正在减弱。科学的进步越来越依靠有效的组织和大量的投入。

-- [《思想家和实干家》](https://www.strangeloopcanon.com/p/on-thinkers-and-doers)

2、

除非你参与过历史遗留项目，否则你不能自称高级工程师。

-- [infobip.com](https://www.infobip.com/developers/blog/seniors-working-on-a-legacy-project)

3、

是什么让硅谷的公司如此强大？

不仅仅是它们数十亿美元的资金或数十亿用户，也不仅仅是因为它们拥有惊人计算能力和数据储备，让学术实验室的资源相形见绌。它们之所以强大，是因为成千上万个才华横溢的人在同一个屋檐下共同努力。

-- 《李飞飞自传》

4、

以前的小团队是1名高级开发人员 + 5名初级开发人员，以后是1名高级开发人员 + AI 大模型。

-- [Hacker News 读者](https://news.ycombinator.com/item?id=43955519)

5、

我打赌，以后的工程师必须深入底层，更接近硅片的层面。开发应用程序将不再需要精通技术的人，AI 让每个人都可以开发自己的应用程序。

-- [Hacker News 读者](https://news.ycombinator.com/item?id=43965599)

## 往年回顾

[OpenAI 的图书馆工位](https://www.ruanyifeng.com/blog/2024/05/weekly-issue-301.html)（#301）

[国产单板机值得推荐](https://www.ruanyifeng.com/blog/2023/04/weekly-issue-251.html)（#251）

[中国需要成立半导体部](https://www.ruanyifeng.com/blog/2022/04/weekly-issue-201.html)（#201）

[NFT 是什么，听说能赚钱](https://www.ruanyifeng.com/blog/2021/03/weekly-issue-151.html)（#151）

（完）

