-
日期: 2025-07-16 | 来源: 华尔街见闻 | 有0人参与评论 | 字体: 小 中 大
所有事情与 GPU 成本相比都太小。举例:Codex 中一个细小功能的 GPU 资源消耗,就相当于我们整个 Segment 基础设施的费用(虽然 ChatGPT 规模更大,但平台体量也大)。
OpenAI 是我见过的最雄心勃勃的组织。你大概会以为拥有一个全球头部 App 就够了,但他们志在多场战役:API 产品、深度研究、硬件、编程代理、图像生成等等(还有很多未公开项目)。这里是个让点子落地弹射的平台。
公司非常关注 Twitter上的氛围。如果你发的一条与 OpenAI 相关的 tweet 爆火,很可能有人会看到并重视。一位朋友曾说:“这家公司靠 Twitter情绪运行。”对于一个消费级公司来说,这点也没毛病。当然他们也有用户增长、留存等分析,但情绪倒也很重要。
OpenAI 里的团队比很多地方更 fluid、更灵活。在 Codex 发布时,我们需要几个 ChatGPT 的工程师来赶进度。于是我们找 ChatGPT 的 产品经理提需求,第二天就来了两位牛人,不需要等季度计划或重新分配资源。动作快得惊人。
高层领导很活跃,好像没一位是“挂名”——gdb(Greg Brockman)、sama(Sam Altman)、kw(Wojciech Zaremba)、Mark、Dane 等经常在 Slack 上互动。
代码与基础设施
OpenAI 使用巨大的 monorepo(单一代码仓库:一种将多个项目或代码库存储在同一个版本控制系统中的策略,以便于跨项目协作和代码共享),以 Python 为主(但也有 Rust 服务,和少量 Golang 用于网络代理等)。这导致代码风格多样:既有来自 Google 资深工程师设计的大型库,也有博士刚毕业写的 Jupyter notebook。所有后端基本都是 FastAPI + Pydantic 构建 API,而且没有统一强制的风格指南。
OpenAI 完全在 Azure 上运行。好玩的是,能真正信任的只有三项服务:Azure Kubernetes Service、CosmosDB、BlobStore。没有 Dynamo、Spanner、BigQuery、Kinesis 等 AWS 工具,也少有自动扩展设计。IAM 机制也较弱,于是很多机制选择自研。
从工程人才看,有大量来自 Meta → OpenAI 的背景。在很多方面,OpenAI 早期就像 Meta:一款轰动一时的消费者应用软件、新兴的基础设施、行动快。大多基础设施人才来自 Meta+Instagram,水准很强。
把这些东西放在一起,你会看到很多基础设施的核心部分让人想起Meta,你会看到很多 Meta 风格的设计:内部重写的 TAO、边缘统一身份认证等等。我相信还有很多我不知道的。
聊天功能深入系统。从 ChatGPT 起,许多代码库都是围绕聊天消息和对话的思想构建的。这些源语内嵌得很深,不注意就会踩坑。Codex 虽有些变体(基于响应式 API),但仍复用很多原先框架。
OpenAI 强调实干:没有架构委员会决策,通常谁做谁决定。这带来行动快的优势,但也常导致代码库里存在多个类似功能库。我见过很多库,比如队列管理或代理循环。
在缺乏工具支持的快速扩张团队里,问题也会产生:比如Sa-server(后端整体)有点像垃圾场。在master上,CI崩溃的频率比您想象的要高得多。即使是并行运行的测试用例,考虑依赖关系的子集,在gpu上运行也需要大约30分钟的时间。这些并不是无法解决的问题,但它提醒我们,这类问题无处不在,而且当你快速扩展时,它们可能会变得更糟。好在内部已有大量精力投入改进。
其他经验
了解什么叫“大消费者品牌”。Codex 推出时我才意识到这一点。这里的 KPI 是“专业用户”;即便是 Codex,会侧重用户个人使用情况上指标,而非团队协作。对于我这种 B2B 背景的人来说,这种风格很不一样:你转动个开关,流量就来了。
大型模型训练机制(高层次)。这种流程从“实验小型原型”到“扩容实跑”再到“疑难调试”一直延续。实验时不仅调模型结构,也会调训练数据混合;训练变大后更像分布式系统工程,需要调边缘案例(仅在极端(最大或最小)操作参数或其他异常操作条件下发生的问题或情况)。
GPU 数学基础。作为Codex发布的一部分,我们必须预测负载能力需求,这是我第一次真正对gpu进行基准测试。要从延迟、token 数、time-to-first-token着手往下推硬件能力,而不是简单问 GPU能跑多少 FLOPS 。每个模型版本的性能负载差异很大,需要重测。
在大型 Python 代码库中协作。Segment是两个微服务的组合,主要是Golang和Typescript,我们没有OpenAI那样的代码广度。而在 OpenAI,我学到了很多关于如何根据贡献代码的开发人员的数量来扩展代码库的知识。你必须设置更多的护栏,比如“默认工作”、“保持主界面清洁”和“难以误用”。- 新闻来源于其它媒体,内容不代表本站立场!
-
原文链接
原文链接:
目前还没有人发表评论, 大家都在期待您的高见