Bojie Li (李博杰)
2023-09-24
“国家领导人要来访问,咱们的婚礼场地被征用了,得临时换地方了!”
婚礼前一天早上 9:00 ,佳颖还在洗漱,我还没有起床。我听到外面的吵闹声,我爸我妈和前一天抵达的好友李朝辉,正在客厅里面焦急地讨论。平时我遇到急事容易发脾气,但这次却很平静。
我们一年前就预订的婚礼场地,翠屏山迎宾馆,是石家庄最好的花园式草坪婚礼场地。它唯一的问题就是属于政府接待场地,像钓鱼台一样,虽然平时也对外开放,但如果遇到政务活动需要无条件让出。当时我们觉得,五一放假,应该不会有什么领导来吧。翠屏山的人也说,五一这种时间几乎没有遇上跟政务活动冲突的情况。
我把这个消息告诉佳颖的时候,她也很平静。她说每次遇到大事,经常是在临门一脚的时候差了一点点没搞成。
五一这么好的日子,不要说草坪,就连酒店婚礼都要提前很久预订。虽然我们的婚礼已经推迟了两次,但这次改时间已经来不及了。已经是婚礼前一天,佳颖家的人已经纷纷从太原出发,我们也有多位好友已经不远万里出发了。
好在翠屏山迎宾馆帮我们联系了两个同处鹿泉区的草坪场地,让我们试试看。其中一个场地我们去过,已经被订出去了。另外一个场地我们没听说过,打电话一问还没被订出去,我们就赶紧驱车过去看。
这时候,佳颖的发小任晓和她老公梁精睿也不远万里开车到了我家。我爸我妈和总管一辆车,梁精睿就带着任晓、我、佳颖和李朝辉赶紧出发了。因为路上堵,梁精睿按照导航抄了小道,竟然比我爸我妈早到了 20 分钟。这个场地是个度假酒店,地处鹿泉区比较偏僻的位置,里面有一块今年新建的草坪,草还没有完全长好。还有一个吃饭的大厅。
虽然这个草坪的环境肯定跟翠屏山没法比,也不如我们之前看过的其他一些草坪场地,但终究是个能办草坪婚礼的地方,环境也不算差。这里的菜品也还可以,只是不像翠屏山那样是预制菜,突然要做这么多桌菜,还不知道能不能做得出来。我们就赶紧跟经理说,把这个地方预订下来。等到我爸我妈到达,就剩跟他们谈价格和菜品了。
后来我才知道,五一当天在翠屏山有 6 场婚礼,除了我们的,都推迟了。我们能赶紧抢到一个场地还是很不容易的。当然,其他那 5 家新郎新娘大多都是本地人,本来从外地来的宾客就少,可能也是他们选择推迟的一个原因。
2023-09-21
达坦科技 DatenLord 前沿技术分享 NO.34
时间:2023 年 9 月 17 日上午 10:30
随着数据中心网络性能的提高,把网络相关任务卸载到智能网卡和智能交换机成为趋势。与此同时,GPU、NPU、存储设备之间的高速直连网络也成为趋势,这里似乎又没有智能网卡的位置了。网络的智能到底该放在哪里呢?
- Slides PPTX (32 MB)
- Slides PDF (15 MB)
以下是演讲内容的图文实录,主要由 AI 整理,我做了一些人工修正。
2023-09-14
既然把博客内容翻译成了英文,那么自动翻译博士论文有没有可能呢?我的博士论文有 200 多页,而且里面有很多图,AI 能自动把这么多 LaTeX 代码翻译得一字不差吗?论文里面的图怎么翻译?
首先,把原来翻译 Markdown 的 prompt 改成翻译 LaTeX 的。原来翻译 Markdown 的时候,我是把内容按行分隔,连续的几行凑够 2048 个字符,就请求一次 GPT-4。在翻译 LaTeX 的时候仍然这样做。
就像 Markdown 一样,GPT-4 输出的内容经常有前缀和后缀,好在设置为 temperature = 0.1 之后前缀和后缀都比较固定,可以写个后处理脚本直接给去掉。此外,GPT-4 对 LaTeX 中的转义字符不够了解,例如典型的下划线 _、美元符号 $ 和制表符 &,经常没有转义导致语法错误。这也是可以通过后处理脚本,用一些规则识别到底需不需要转义,如果需要转义就自动加上。
总的来说,GPT-4 的 LaTeX 能力是不错的,除了把一些 reference 给搞乱了导致引用变成问号了,其他的地方都没什么问题。经过后处理脚本后直接就可以编译了。
其次,为了翻译论文里面的图,我首先尝试了一些 PDF 翻译工具,发现没有一家能用,这些工具都只能翻译 PDF 中的大块文字,对于架构图,只会把整张图都搞得乱七八糟。因此,我用了图片翻译的方法。首先把 PDF 转成图片,然后调用有道图片翻译 API,如果识别出了中文字符,就把用翻译出的图片替换原来的 PDF;如果没有识别出任何中文字符(例如一些实验结果图),就保留原样。
其实有道图片翻译的原理也是先对图片做 OCR,把识别出的每个文字块逐个翻译,再用翻译后的文字块替换掉图片原来位置上的文字。我感觉对于 PDF,这也是可以做的,而且可以保持 PDF 仍然是矢量图。希望做 PDF 翻译工具的改进一下。
整个翻译花了半天时间,一些小问题也懒得修了。虽然翻译质量肯定不如手写的,尤其是图片翻译质量一般,但是基本上能看了。除了对 ustcthesis.cls 做了一些微调(例如把英文封面放在中文封面前面)以外,没有对翻译后的内容做任何人工修改。
AI 自动翻译的版本: High Performance Data Center Systems with Programmable Network Interface Cards (PDF, 8 MB)
中文原版: 基于可编程网卡的高性能数据中心系统 (PDF, 8 MB)
现在 arxiv 上面的 paper 都是有 LaTeX 源码的,按照这个方法,都可以直接翻译成中文论文了。希望哪天多模态模型能强到只需要 PDF,不要 LaTeX 源码,就能做翻译,这就厉害了。
2023-09-12
Jie Zhao, Bojie Li, Wang Nie, Zhen Geng, Renwei Zhang, Xiong Gao, Bin Cheng, Chen Wu, Yun Cheng, Zheng Li, Peng Di, Kun Zhang, Xuefeng Jin. AKG: Automatic Kernel Generation for Neural Processing Units using Polyhedral Transformations. 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI’21). Virtual, Canada, June 20-25, 2021. pp.1233-1248. [Paper PDF] [Slides by Jie Zhao]
2023-09-12
大模型真的很厉害,这个 SIGCOMM 2019 的演讲完全是脱稿讲的,从视频中可以看出我是站在舞台中间,没有看 speaker notes。我当时的英语也不怎样,经常打磕巴,而且音频录制还有回声,自己听着都有点费劲。没想到大模型能把这么差的语音都识别的差不多全对,太牛了。
识别的方法在这里。这个视频由于录制的屏幕不够清晰,我是用原始 PPT 导出的图片替换了视频中提取的图片。大家可以看看用这个视频中的音频,市面上的语音识别软件能达到多高的识别率。我试过的,包括 Google Speech-to-Text 和 Whisper,基本上都不能用。
SocksDirect: Datacenter Sockets can be Fast and Compatible. [PDF] [Slides] [Video]
Bojie Li, Tianyi Cui, Zibo Wang, Wei Bai, Lintao Zhang.
Proceedings of the 2019 SIGCOMM Conference (SIGCOMM’19).
2023-09-12
Bojie Li, Gefei Zuo, Wei Bai, and Lintao Zhang. 1Pipe: Scalable Total Order Communication in Data Center Networks. SIGCOMM ‘21. [Paper PDF] [Slides with audio (25 min)] [Slides with audio (12 min)]
2023-09-12
2023-09-10
(长文预警:本文约 16000 字)
这是一个好问题。先说结论,大模型的训练用 4090 是不行的,但推理(inference/serving)用 4090 不仅可行,在性价比上还能比 H100 稍高。4090 如果极致优化,性价比甚至可以达到 H100 的 2 倍。
事实上,H100/A100 和 4090 最大的区别就在通信和内存上,算力差距不大。
H100 | A100 | 4090 | |
---|---|---|---|
Tensor FP16 算力 | 989 Tflops | 312 Tflops | 330 Tflops |
Tensor FP32 算力 | 495 Tflops | 156 Tflops | 83 Tflops |
内存容量 | 80 GB | 80 GB | 24 GB |
内存带宽 | 3.35 TB/s | 2 TB/s | 1 TB/s |
通信带宽 | 900 GB/s | 900 GB/s | 64 GB/s |
通信时延 | ~1 us | ~1 us | ~10 us |
售价 | $30000~$40000 | $15000 | $1600 |
NVIDIA 的算力表里面油水很多,比如 H100 TF16 算力写的是 1979 Tflops,但那是加了 sparsity(稀疏)的,稠密的算力只有一半;4090 官方宣传 Tensor Core 算力高达 1321 Tflops,但那是 int8 的,FP16 直只有 330 Tflops。这篇文章的第一版就是用了错的数据,H100 和 4090 的数据都用错了,得到的结论非常离谱。
H100 这个售价其实是有 10 倍以上油水的。2016 年我在 MSRA 的时候,见证了微软给每块服务器部署了 FPGA,把 FPGA 打到了沙子的价格,甚至成为了供应商 Altera 被 Intel 收购的重要推手。2017 年我还自己挖过矿,知道什么显卡最划算。后来在华为,我也是鲲鹏、昇腾生态软件研发的核心参与者。因此,一个芯片成本多少,我心里大概是有数的。
鲲鹏的首席架构师夏 Core 有一篇知名文章《谈一下英伟达帝国的破腚》,很好的分析了 H100 的成本:
把他的成本打开,SXM 的成本不会高于 300$,封装的 Substrate 及 CoWoS 大约也需要 $300,中间的 Logic Die 最大颗,看上去最高贵 :) 那是 4nm 的一颗 814mm2 的 Die,TSMC 一张 12 英寸 Wafer 大致上可以制造大约 60 颗这个尺寸的 Die,Nvidia 在 Partial Good 上一向做得很好(他几乎不卖 Full Good),所以这 60 颗大致能有 50 颗可用,Nvidia 是大客户,从 TSMC 手上拿到的价格大约是 $15000,所以这个高贵的 Die 大约只需要 $300。哦,只剩下 HBM 了,当前 DRAM 市场疲软得都快要死掉一家的鬼样了,即使是 HBM3 大抵都是亏本在卖,差不多只需要 $15/GB,嗯,80GB 的容量成本是 $1200。
TSMC 曾经讲过一个故事。台湾同胞辛辛苦苦攒钱建厂,一张 4nm 那么先进的工艺哦,才能卖到 $15000,但是那某个客户拿去噢,能卖出 $1500000($30000*50)的货啦,机车,那样很讨厌耶。你懂我意思吗?
就如最开始说的,在这个世界的商业规则下,$2000 成本的东西卖 $30000,只有一家,销售量还很大,这是不符合逻辑的,这种金母鸡得有航母才守得住。
据说微软和 OpenAI 包下了 H100 2024 年产能的一半,猜猜他们会不会发挥当年跟 Altera 砍价的传统艺能?会真的花 $40,000 * 500,000 = 200 亿美金去买卡?
咱们再分析下 4090 的成本,5nm 的 609mm2 Die,大约成本是 $250。GDDR6X,24 GB,按照 1 GB $10 算,$240。PCIe Gen4 这种便宜东西就算 $100 吧。封装和风扇这些东西,算它 $300。总成本最多 $900,这样的东西卖 $1600,算是良心价了,因为研发成本也是钱啊,更何况 NVIDIA 的大部分研发人员可是在世界上程序员平均薪酬最高的硅谷。
可以说,H100 就像是中国一线城市的房子,本身钢筋水泥不值多少钱,房价完全是被供求关系吹起来的。我在 LA 已经住了两周,公司租的房子使用面积是我北京房子的 4 倍,但售价只贵了 30%,还带个小院,相当于单位面积的房价是北京的 1/3。我跟本地的老外聊天,他们都很吃惊,你们的平均收入水平比 LA 低这么多,怎么买得起北京的房子的?
问题来了,如果 4090 这么香的话,为啥大家还要争着买 H100,搞得 H100 都断货了?甚至 H100 都要对华禁售,搞出个 H800 的阉割版?
2023-09-08
虽然大多数人比较喜欢看视频,但是我更喜欢看文字,因为文字便于非线性查找,可以快速跳读,也便于随时回顾前面的内容。
最近,我把我在学术会议上的一些演讲视频转成了文字,例如 ClickNP、KV-Direct 和 计算机网络的新黄金时代系列,今天发布的是 APNet 2023 上的 FastWake。在 ClickNP 和 KV-Direct 演讲前,我都是先在 PPT 的备注里写好稿子,到场上直接对着备注念。今年连 PPT 都是会议前一天才赶完的,更没有时间写备注了,甚至都没有完整的练习一遍,我就直接上台去讲了。
现在有了大模型,把演讲视频转成 PPT + 文字稿一点都不难。其实我一直想做个这样的在线会议插件。
- 把视频中的关键帧提取出来组成 PPT 图片列表。每帧和前一帧的差异如果超过一定阈值,就认为是切换了一页 PPT。有一个开源软件 video2pdf 就能做到。
- 把每张图片 OCR 成文字,都是打印字符,识别准确率很高,Tesseract 就可以。
- 把停留在每页 PPT 上的视频音轨提取出来,交给 Speech-to-Text 模型识别,例如我用的是 OpenAI 开源的 Whisper。
- (最后一步很重要)让大语言模型(例如 GPT-4)以 OCR 出来的当前页 PPT 和首页 PPT 内容为参考,修正 Speech-to-Text 模型识别出的 transcription。
Speech-to-Text 模型目前对于专有名词和人名的识别准确率并不高,但是这些专有名词很多是在这一页 PPT 中出现过的,PPT 首页也框定了演讲的标题和领域。因此以 PPT 内容为参考,大语言模型可以修正大部分的专有名词识别错误。如果没有 PPT 内容作为参考,需要 GPT-4 才能修正大部分的专有名词,但有了 PPT 内容,LLaMA-2-70b-chat 就足够了。此外,大语言模型可以修正演讲中口语化的表达,让文字稿更严谨、易读。
以下文字稿完全为自动生成,除了几个人名,一字未改。当然,一些小错误也就保留了,但是都无伤大雅。整个过程中用到的 Video2PDF、Tesseract、Whisper 和 LLaMA-2-70b-chat 模型都跑在我自己的 Mac 笔记本上,全程无需联网。
2023-09-06
从 7 月开始,我一个人用了一个月时间,采集了超过 200 TB 大模型训练语料,花了 20 万人民币的流量费和云存储费用。就像最近发布的 Mate60 Pro 一样,真可谓是两岸猿声啼不住,轻舟已过万重山。
200 TB 语料里都有什么
- Z-library 图书馆电子书 2243 万册,共计 31 TB
- Libgen 图书馆电子书 378 万册,共计 33 TB
- Scimag 学术论文和期刊 8760 万册,共计 77 TB
- 各类中文语料,共 4 TB,包括:
- 小学、初中、高中全套课本,35 GB
- 大学教材和专业书 1 万余册,142 GB
- 《人民日报》《参考消息》《三联生活周刊》《环球科学》《读者》《中国国家地理》等数十种经典报刊杂志历年合集,共 1 TB
- 百度百科 1200 万词条,20 GB
- 古籍、各地县志 1.6 TB
- 各类推荐书单、英汉双语世界名著、中国历代名著译本等图书 2 万余册,约 300 GB
- 各类词典 100 GB
- 各类中文小说约 100 GB
- 各类数据集:
- RedPajama 数据集,是 LLaMA 数据集的开源复刻版,2.8 TB
- MNBVC 数据集,1 TB
- CommonCrawl 2023 5-6 月版本的 WET 纯文字版数据,压缩后 8.6 TB
- 全世界几乎所有域名的 Whois 数据历史(30 亿条),2.5 TB
- TheStack 数据集,GitHub 知名开源项目的源代码,3 TB
- The-Eye 数据集,是很多 AI 训练数据集的合集,15 TB
- AmazonReviews 数据集,55 GB
为什么我收集了这么多书?这些书中很多还是图片组成的 PDF,需要 OCR 才能当文本模型的训练语料使用。我有两点考虑:
- 语料的质量比数量重要,百度贴吧上的贴子数量可能比书的数量多,但是贴吧贴子只能把大模型训练成一个段子手,没法让它干正事;要掌握知识,还是得从书籍和文献中系统地学习。
- 未来多模态大模型会成为主流,视觉中包含了人类世界的很多重要信息,现在的文本大模型只用文本做训练其实是丢失了很多信息,未来的多模态大模型可以从 PDF 书籍中直接学习包含图片和文本的多模态知识。
Whois 域名注册历史数据集
今天我用其中一个比较有意思的数据集,利用 GPT-4 帮我写代码,花了 3 个小时做了一个查询网站:全世界域名 30 亿条 Whois 历史查询:whois.os.ai。
比如搜索 microsoft,可以看到 microsoft.* 的域名其实有非常多,需要加载一会儿才能全部加载完。也可以搜索你自己的域名,历史上大部分存在过的域名这个数据库里都有,而且大部分新注册的域名第二天就能在这个系统里查询到。
这个数据集起源于 2013~2014 年我在 MSRA 高级软件工程课程的课程作业。当时我做了一个网站 soip.net(在 whois.os.ai 上还可以查到当年域名注册的历史遗迹),从 Verisign 拿到了 .com 和 .net 的 DNS Zone File(目前这些 gTLD 的 Zone File 可以通过 ICANN 拿到),然后就慢慢把这几千万个域名(目前 .com 域名数量已经过亿)的 Whois 数据都爬下来,然后把每个域名解析出的 IP 地址也爬下来。
这样就形成了域名、IP、Whois 域名注册信息的关联数据,可以根据 IP 反查某个主机上挂了哪些域名,也可以根据注册信息反查某个人注册了哪些域名。当时域名注册信息保护还不流行,域名注册者的实名地址、邮箱和电话号码都可以通过 Whois 公开查到。其实当时已经有公司在提供此类服务了,因此我做这个网站也只是为了课程作业,并没有持续运营下去。
但是我觉得 Whois 域名注册信息的历史应该有很高价值,它就像 Internet Archive WayBackMachine 一样记录了互联网历史的一个侧面。因此就一直维护了下去,后来还添加了更多 gTLD 和 ccTLD 的数据源。当然我凭兴趣搞的项目做不到 100% 覆盖,不像 WhoisXMLAPI 这样专业提供 Whois 数据历史的公司那么厉害。
10 年过去,Whois 数据集中已经有超过 7 亿个域名,接近 30 亿条 Whois 历史记录,其中目前活跃的只有 2 亿多个域名,4 亿多个域名已经消失在历史的尘埃中。其中大多数域名都是 “米农” 买来投资或者收藏的,并没有真正用来建站。有些不太懂技术的认为,注册了域名只要不告诉别人,就没有人知道,其实不是这样的。对于大多数顶级域,域名注册信息和 DNS 信息每天的增量都是公开的,只要有合作关系都能拿到。有了域名数据集,就可以爬到很多搜索引擎没有收录的网站。
要是自己从头写这个查询网站,起码要花 2 天时间。用 GPT-4,只花了 3 个小时,而且前端比我做得还更漂亮。整个网站的源代码 基本都是 GPT-4 写的,包括前端、Flask 后端和 CSV 数据导入 MongoDB 的脚本(当然,导入数据花了一两天)。整个前端只有一个文件,整个后端也只有一个文件,一共 500 多行代码。写出来发现什么问题,再让 GPT-4 去修改,我就是个提需求的产品经理,一行代码都没有手写。
采数据与买数据
我也接触过一些卖数据的公司,清洗过的数据其实是挺贵的,远高于自己采集数据的成本。但是有些数据自己爬又很难爬到,比如天涯论坛今天已经不存在了,微信公众号也难以遍历所有文章,还有一些非公开的行业数据。
但是像知乎这种网站,就没有必要买数据了,知乎现在有上亿个问题、上十亿个回答,如果按照数据公司的定价去买数据,这不知道要多少钱。因此,自己爬取数据的能力是非常重要的。
数据清洗也非常关键,我曾经见过有的大语言模型,回答里面还有 “展开全部” “上一页” “下一页” 这些东西,这说明数据一定没有好好清洗过。
我只是利用业余时间做了一些初步的数据采集和清洗,以后有新的进展会跟大家分享。