Replit 开源代码 LLM:小、快、可本地用
Replit 发布开源代码 LLM,相比 Codex 小 77%,一周完成训练。程序员可直接本地部署或二次开发。
Replit 发布开源代码 LLM,相比 Codex 小 77%,一周完成训练。程序员可直接本地部署或二次开发。
一周训练出 SOTA 代码大模型,并量化“感觉”——对话 Replit 的 Reza Shabani
Latent Space 正在迅速壮大!欢迎超过 8,500 名 Latent Space 探索者加入我们。本月可以来旧金山和纽约参加我们的各类活动,也可以发起你自己的活动!
这篇文章在 Hacker News 榜首停留了 22 个小时。
在庆祝完成 1 亿美元融资的 Developer Day 上——此次融资紧随 Replit 与 Google 达成合作之后——Replit 宣布开源自己的先进代码大模型:replit-code-v1-3b(模型卡、HF Space)。在使用 Replit 数据进行微调后,它在业界标准 HumanEval 基准测试中的表现超越了 OpenAI 的 Codex 模型(尽管体积小了 77%¹);更重要的是,它还通过了 AmjadEval(后面我们会解释!)。
我们独家采访了 Replit AI 负责人 Reza Shabani,请他讲述 Replit 如何一步步构建数据平台、打造 GhostWriter,并最终为 2,200 万开发者训练自己的大模型!
这场讨论中有 8 分钟是在现场演示和讲解生成的代码示例——纯音频听起来总会有些尴尬。因此,我们再次采用了多模态形式,并在这里提供了一段屏幕录像,方便你跟着代码示例一起观看!
本期节目在旧金山环境优美的 StudioPod 演播室现场录制。
完整文字稿见下文。如果你愿意在 Twitter、LinkedIn、Mastodon、Bluesky,或者你偏爱的任何社交媒体上把我们的播客分享给朋友,我们将不胜感激!
[00:00:21] Reza 简介
[00:00:21] Reza 简介
[00:01:49] 量化金融与数据工程
[00:01:49] 量化金融与数据工程
[00:11:23] Replit:从数据走向 AI
[00:11:23] Replit:从数据走向 AI
[00:17:26] Replit GhostWriter
[00:17:26] Replit GhostWriter
[00:20:31] 代码大模型基准测试
[00:20:31] 代码大模型基准测试
[00:23:06] AmjadEval 现场演示
[00:23:06] AmjadEval 现场演示
[00:31:21] 根据“感觉”对齐模型
[00:31:21] 根据“感觉”对齐模型
[00:33:04] 超越聊天与代码补全
[00:33:04] 超越聊天与代码补全
[00:35:50] Ghostwriter 自主智能体
[00:35:50] Ghostwriter 自主智能体
[00:38:47] 发布 Replit-code-v1-3b
[00:38:47] 发布 Replit-code-v1-3b
[00:43:38] YOLO 训练运行
[00:43:38] YOLO 训练运行
[00:49:49] 缩放定律:从 Kaplan 到 Chinchilla,再到 LLaMA
[00:49:49] 缩放定律:从 Kaplan 到 Chinchilla,再到 LLaMA
[00:55:36] Replit 的未来计划(以及招聘信息!)
[00:55:36] Replit 的未来计划(以及招聘信息!)
[00:59:05] 快问快答
[00:59:05] 快问快答
Reza Shabani 的 Twitter 和 LinkedIn,以及 Michele Catasta 和 Madhav Singhal、Michele Catasta 关于 replit-code-v1-3b 发布的帖子串
Reza Shabani 的 Twitter 和 LinkedIn
以及 Michele Catasta 和 Madhav Singhal
以及 Michele Catasta 和 Madhav Singhal
Michele Catasta 关于 replit-code-v1-3b 发布的帖子串
Michele Catasta 关于 replit-code-v1-3b 发布的帖子串
Replit Ghostwriter 简介
Replit Ghostwriter 简介
Replit Ghostwriter Chat,以及 Ghostwriter Chat 的构建过程
Replit Ghostwriter Chat,以及 Ghostwriter Chat 的构建过程
Reza 讲解如何训练自己的大模型(他们有史以来最受欢迎的博客文章)
Reza 讲解如何训练自己的大模型(他们有史以来最受欢迎的博客文章)
我们的《基准测试 101》节目,其中讨论了 HumanEval
我们的《基准测试 101》节目,其中讨论了 HumanEval
MosaicML CEO Naveen Rao 谈 Replit 的大模型;MosaicML Composer + FSDP 代码
MosaicML CEO Naveen Rao 谈 Replit 的大模型
MosaicML Composer + FSDP 代码
MosaicML Composer + FSDP 代码
Replit 的 AI 团队正在北美时区招聘——职位包括全栈工程师、应用 AI/ML 等!
Replit 的 AI 团队正在北美时区招聘——职位包括全栈工程师、应用 AI/ML 等!
[00:00:00] Alessio Fanelli:大家好,欢迎收听 Latent Space 播客。我是 Alessio,Decibel Partners 的合伙人兼驻场 CTO。和我一起主持的是 swyx,Latent Space 的作者兼编辑。
[00:00:21] Reza 简介
[00:00:21] swyx:大家好,今天我们请到了 Replit 的 AI 负责人 Reza Shabani。欢迎来到演播室。
谢谢,谢谢你们邀请我。
我们通常会先介绍嘉宾的履历,这样你就不用重复讲一遍了,不过我们也希望了解你个人的一面。
[00:00:34] 你在 Berkeley 获得了经济学博士学位,之后做过一段时间的创业公司创始人,后来又去了 BlackRock 和 Wellington 从事系统化股票交易。然后发生了一些事情,现在你成了 Replit 的 AI 负责人。关于你,有哪些是在 LinkedIn 上看不出来,但大家应该知道的?
[00:00:51] Reza Shabani:一个经常被问到的问题是:我到底会不会写代码。是的,你会感到意外。很多人会问:“你会写代码吗?”当时我和 Amjad 聊这个职位时,我最初找他谈的好像是一个产品岗位,但没有拿到。后来他说:“好吧,我知道你做过很多数据和分析方面的工作。”
[00:01:07] “我们需要有人负责这方面。”我说:“可以,我来做。”然后他说:“好,不过你可能得会写代码。”我说:“会,会,我会写代码。”所以我想,大家看到我是经济学背景,确实会有些意外。即使有人加入 Replit 后,也总会疑惑:“等等,这家伙真的会写代码吗?”
[00:01:28] “他真的是技术人员吗?”是的。
[00:01:30] swyx:你曾在顶尖金融公司处理过大量数字和数据,但这一点居然还是不够明显。
[00:01:34] Reza Shabani:是啊,是啊。我觉得,软件工程背景的人可能会认为,金融就是打电话联系各方、推动交易落地之类的事情。
[00:01:43] 但不是这样。正如你所知,金融非常、非常量化。尤其是我在金融行业做的工作,量化程度非常高。
[00:01:49] 量化金融与数据工程
[00:01:49] swyx:是的,所以我们可以先稍微聊聊这部分,然后再进入 Replit 的历程。你也知道,我以前也做过量化交易,卖方和买方都待过。没错,我其实就是在那里学会 Python 的。
[00:02:01] 当时 Airflow 还不存在,我就在那里编写自己的数据管道。那时候只是自己写 Notebook、自己运行,也完全没有做版本控制。整个系统一团糟,但我们就是靠我那些糟糕的代码管理着 10 亿美元。是啊,是啊。你的经历又是怎样的?
[00:02:17] Reza Shabani:我想,多少有些相似。
[00:02:18] 我的这段经历始于研究生时期,也就是攻读博士学位期间。我的博士专业是经济学,一直偏向数据密集型的应用经济学方向,更具体地说,是金融经济学。我的博士论文研究是这样的:我每天录制 10 个小时的 CNBC 财经新闻节目,而且一天不落。
[00:02:39] 我从视频文件中提取隐藏式字幕,用它生成 CNBC 精确到秒的文字稿,再将其与高频交易报价数据合并。接下来,我做了一些 NLP 处理,标注其中的公司名称,然后观察某家公司被提及之后几秒内,股价的响应或变化,以及交易量的变化。
[00:03:01] 我是在 2009 年做这项研究的。那时还没有云计算,甚至 Python 的普及程度也远不如现在,更不用说那些能让这类工作变得简单的软件包了。正是在那时,我不得不真正学会编程,而不只是使用某种数据编程语言。
[00:03:21] 那时我必须学习 Python,也必须掌握所有这些其他技能,才能处理如此规模的数据。后来,我以为自己想走学术道路,但我在学术就业市场上的表现很糟糕,因为所有人看完我的博士论文后都会说:“这很酷,但这不是经济学。”
[00:03:37] 反而是计算机科学系的所有人对它更感兴趣。比如说,相比经济系,我更多时候都待在计算机系。结果,我连一个学术职位的 offer 都没拿到。而业界职位方面,我拿到了两个 offer。我想我当时大概也只申请了两个业界岗位,结果两个都给了我 offer。
[00:03:53] 他们看到了这项工作的价值。其中一个 offer 来自 BlackRock,但我拒绝了,选择创办自己的创业公司。两年半后,创业失败,我又灰溜溜地回去找他们了。
[00:04:02] swyx:你的 LinkedIn 上好像提到过,你当时在做和中国新闻行情代码之类的东西有关的交易。哦,对。我记不清了——
[00:04:07] Reza Shabani:我也忘了那是什么。
[00:04:08] 是的,我是说,哦,当时有太多东西了。说实话,BlackRock 的系统化主动权益投资团队是一个非常出色的团队。你最终会学到很多东西,也会看到其中蕴藏的各种可能性。比如,当你加入后,了解到他们多年来一直依据哪些信息进行交易时,你会发现,可能学术界刚发表一篇论文,说:“你知道可以利用搜索数据预测汽车价格吗?”
[00:04:33] 而你进去后才发现,他们早就利用这种方法交易了八年。所以,他们在所有这些事情上确实非常超前。我加入后发现,真正有意思的内容大多与 NLP 和机器学习有关:大量的文字记录数据,以及对公司所讨论内容的深入解析,无论是分析师报告、电话会议还是财报。关键往往藏在细节里:你要如何理解这些信息,从中洞察公司正在做什么,以及市场将走向何方。
[00:05:08] 我不知道我们能不能深入聊聊具体的策略。
可以,来吧,来吧。
我最喜欢的策略之一——因为我觉得我们最后并没有真的用它来交易,所以我大概可以讲——很能体现你会如何围绕这些数据展开工作。
[00:05:23] 这个策略叫作“新兴技术”。它的核心思路是,市场上总会不断出现一批新的新兴技术,而那些走在趋势前沿、持续跟进最新动向的公司,将会跑赢竞争对手。
[00:05:38] 这最终会反映在股价上。那么,当你有了这样一个理论后,该如何真正把它转化为交易策略?我们最后采取的做法是:首先,你必须确定哪些是新兴技术,也就是哪些技术正在崭露头角。
[00:05:56] 所以,我们实际收集了创业公司的数据。硅谷有许多创业公司,也有大量关于它们业务的描述;你可以得到一个语料库,其中包含创业公司在何时获得融资等信息。然后,你可以对这些数据运行非负矩阵分解,创建不同新兴技术的聚类。数据可以一直追溯到很早以前,比如 2008 年 Facebook 爆发式增长时的社交媒体。
[00:06:21] 还有移动技术、数字广告,以及许多实际上来自硅谷之外的东西,例如页岩油和石油裂解技术。也就是说,各行各业都有新技术。然后,你再去研究哪些上市公司真正在讨论这些技术,并且实际参与其中。
[00:06:42] 最终,正是这些公司能够持续领先于竞争对手。这个策略得出的许多案例都非常合理。比如移动技术兴起时,Walmart Labs 就已经存在了。Walmart 在思考移动技术及其影响方面远远领先。
[00:06:59] 而它的竞争对手 Sears 没有这么做。结果 Walmart 表现良好,Sears 却没有。类似的例子还有很多:一家企业开始讨论某个新兴趋势。我可以想象,现在围绕 AI,一定有大量公司在讨论它会如何影响自己的——
[00:07:17] swyx:业务?
[00:07:18] 到了某个阶段,你确实会失去这个信号,因为所有人都开始给一切贴上 AI 标签,噪声会淹没你,对吧?这就像 Long Island Iced Tea Company 把“区块链”加进公司名称,然后股价就翻了一倍之类的。
[00:07:32] Reza Shabani:是的,完全正确。
[00:07:35] 而且现在,这类策略肯定表现不好,因为所有人都会谈论 AI。正如你所知道的,量化研究中的大量工作,就是努力排除其他可能的解释,以确定为什么会出现这种趋势。
[00:07:52] 在那个具体案例中,我认为我们发现,并不是 Sears 和 Walmart 都在谈论移动技术,而是 Walmart 会主动把移动技术作为一种未来趋势来讨论,嗯哼,而 Sears 根本不会提起它。等到投资者开始向你询问这件事时,你可能已经入场太晚了。
[00:08:12] 所以,真正要做的是找出那些处于新技术最前沿、并持续保持领先的公司。我记得 Domino's 也是一个很典型的例子。我不知道你是否——
[00:08:21] swyx:还记得这件事?给不了解的人解释一下:Domino's Pizza 的股票在 2010 年代的大部分时间里,我记得表现甚至好于 Amazon。
[00:08:31] Reza Shabani:太疯狂了。
[00:08:32] swyx:是的,因为他们对移动技术进行了投资。嗯哼,还有电子商务之类的各种东西。能够捕捉到这个信号一定很有意思。
[00:08:40] Reza Shabani:是的,这很有意思。我记得他们还有一个 Pizza Tracker,不知道你是否记得,它可以在移动端使用。
[00:08:46] swyx:我自己就用过。那是个很棒的应用,非常棒。不过我觉得它大部分是假的。
[00:08:50] Reza Shabani:我也听说过。我觉得这可能会成为一个巨大的……我也不知道。我正等着《纽约时报》发篇文章,揭露整件事都是假的。我们都以为自己的披萨真的处在界面显示的那些阶段,但事实并非如此。
[00:09:01] swyx:对我来说,挑战在于……Eric Falkenstein 写过一篇很棒的文章,叫作《Batesian Mimicry》。其中提到,每个信号最终都会被噪声淹没,因为制造噪声的人会模仿信号制造者。这其实就是我离开量化交易的原因:市场机制变化得太频繁,那些样本内回测表现非常好的东西,到了样本外往往表现很差。
[00:09:25] 我相信你多少也遇到过这种情况。然后还有一种根本性的不确定性:好,我发现了一个表现非常好的因子,但它只是可能同时发挥作用的 500 个因子之一。你根本无从判断。总之,这就是我在职业上的存在主义式不确定性,再加上那份工作的压力确实非常大。
[00:09:43] Reza Shabani:是的。这有点跑题,但我一直在思考这个问题。在 ChatGPT 出现之前,我曾经有一个很好的答案:你认为 AI 有朝一日能在量化领域胜出吗?
[00:09:54] swyx:我是说,Rentech 在做什么?不管他们在做什么,显然都很奏效。但对大多数普通人来说,只是挥挥魔杖说一句“AI”,并没有什么意义,因为你的样本量其实相当小。
[00:10:08] 比如,如果运气好的话,我们可能拥有 40 年的金融历史数据,嗯哼,再乘以多少,4,000 家上市公司?其实并不多。
[00:10:17] Reza Shabani:是的,完全不多。而且市场状况还在不断变化,还有各种潜在变量,以及所有这些问题。
[00:10:24] swyx:是的。然后你回过头来看,会说:“哦,好吧。”
[00:10:26] 有人会发现一个巨大的因子,回过头来解释你一直在做的所有事情。你原以为那些都是 alpha,结果发现:“不,实际上你只是暴露在另一个自己从未考虑过的因子之下。”到头来,一切都是动量。
[00:10:37] 是的。我非常喜欢的一篇论文来自 MIT 的 Andrew Lo。我记得他写过一篇关于买卖价差的论文。我认为,只要把市场流动性考虑进去,就足以解释大量主动交易策略的 alpha。而且,随着利率下降,这些 alpha 也在系统性地衰减。
[00:10:56] 我是说,看完之后,我就想:“好吧,我永远不可能把这件事完全搞对。”
[00:11:01] Reza Shabani:是的,这是一个疯狂的领域。我一直认为,它的对抗性正是 AI 始终很难应对的部分。
[00:11:13] 因为另一端总有人试图在博弈中胜过你,而 AI 在许多这类情况下都可能失败。
[00:11:23] swyx:是的,很好。
[00:11:23] 从数据到 Replit 的 AI
[00:11:23] Alessio Fanelli:很棒。现在你已经在 Replit 工作快两年了。你在那里做什么?你的团队负责什么?自从你加入以来,这些工作发生了怎样的变化?
[00:11:32] 尤其是现在,大语言模型已经成为大家关注的焦点,但两年前它还没有这么主流。那么,这一切是如何演变的?
[00:11:40] Reza Shabani:是的,我加入 Replit 是一年半以前。实际上,我们当时必须搭建大量的数据流水线。
[00:11:45] 所以我一开始做了很多数据相关的工作。我们确实有一些用于生产系统之类场景的数据库,但没有能够大规模查询和处理数据的基础设施。Replit 拥有海量用户、海量数据,以及数量庞大的 Repl。
[00:12:04] 我可以具体谈谈其中的一些数字。举例来说,如果你想知道 Replit 上被 Fork 次数最多的 Repl 是哪个,当时根本无法回答,因为查询会直接超时。因此,早期的大量工作都投入到了数据基础设施建设上,也就是以一种能够回答此类问题的方式,对数据基础设施进行现代化改造;让你可以从任意特定的 Repl 中提取数据,进行处理并支持搜索。
[00:12:34] 我们还把所有这些数据转换成一种格式,使整个过程能在几分钟内完成,而不是耗费数天、数周甚至数月。这为构建各种 AI 功能奠定了大量基础,至少在训练我们自己的模型,以及使用 Replit 数据对它们进行微调方面是如此。
[00:12:50] 随后,我们在去年开始组建团队并招募人才,从最初零个人或一个人的团队,发展成了今天的 AI 和数据团队。我们负责构建与 Ghostwriter 有关的一切,包括解释代码、生成代码、转换代码等各种功能,以及 Ghostwriter Chat——它类似于一种具备 IDE 上下文的聊天功能,或者说是 IDE 内部的聊天产品。
[00:13:18] 此外还有代码补全模型,也就是 Ghostwriter Code Complete,它是 Ghostwriter 最早的版本。是的。我们还负责支持搜索等功能,以及网站上任何需要大规模数据或大规模数据处理的工作。
[00:13:38] 我们也为网站构建各种类型的 ML 算法,供内部使用,例如检测和阻止滥用行为。嗯。
[00:13:47] Alessio Fanelli:是的。听起来你早期从事的工作更偏分析,比如分析数据并从中找到问题的答案。显然,现在这些工作已经演变成了一些……
[00:13:57] 用于生产环境的代码语言模型。团队发生了怎样的变化?或者说,所需的技能发生了怎样的变化?我知道很多人都在想:“我以前是现代数据栈专家”之类的,或者“我以前做的是功能开发,我的工作会发生怎样的变化?”比如……
[00:14:12] Reza Shabani:是的,这是个好问题。我认为,随着语言模型的发展,相比传统 ML,重心在很大程度上已经转向了更多由 NLP 支撑的 ML。
[00:14:26] 因此,至少对于这个职位来说,有一整类申请者具备的技能,现在我已经很少见到了:他们懂得如何处理时间序列,以及如何跨时间维度进行 ML。对吧?而且,是的,你很清楚那到底有多困难。比如你有一些文本或某个变量,然后突然想要持续追踪它随时间的变化。
[00:14:50] 这会引入多得惊人的维度,与我们在语言模型等领域所做的工作相比,完全是另一套技能。至少在 Replit,这项技能的使用并不多。我相信其他地方仍然会大量使用它,但人们对语言模型的热情,在很大程度上转移了对其他 ML 领域的关注,而那些领域其实极其重要,我认为未来也仍然很有价值。
[00:15:21] 因此,我想建议所有数据栈专家:使用 NLP、文本数据之类的技术当然很酷,但我确实认为,在未来某个时候,拥有这一领域之外的技能,以及更传统的 ML 技能,也一定会很有价值。
[00:15:39] swyx:是的,我想花一点时间谈谈数据栈这个概念。实际上,你是 Replit 招聘的第一位数据岗位员工。我自己过去一年也一直在深入研究数据生态系统。我认为,很多软件工程师其实完全没有意识到,现在基本上每家公司最终都会逐渐发展出一支数据团队。
[00:15:57] 数据团队负责的正是你刚才提到的所有工作。是的,我们所有人做的事情几乎一模一样:搭建相同的流水线,本质上也会选择相同的数据仓库。对,对,对。这样一来,其他所有人都可以查询自己想要的任何内容,并从中发现能够推动业务发展的洞见。
[00:16:15] 因为每个人都希望由数据驱动,但他们不想做随之而来的那些繁杂清理工作。是的,就是把所有东西连接起来。Replit 现在大约有 90 人,对吧?你是两年前加入的,当时大约有 30 人?
[00:16:30] Reza Shabani:对,完全正确。我加入时我们有 30 人。
swyx:我只是想为各位创始人明确这一点。Vilify 也是在公司发展到这个阶段时招聘了第一位数据岗位员工。我认为这是一种非常常见的模式,大多数创始人都应该意识到:公司发展到这个阶段,就需要开始建立数据方面的专业体系。顺便说一句,很多金融行业出身的人非常擅长做这件事,因为这正是我们在金融工作中一直在做的事情。
[00:16:48] Reza Shabani:是的。是的,我其实正想说这一点:从某些方面来看,你几乎是最理想的首位数据岗位员工。因为你知道如何以可靠而又快速的方式构建系统,也知道如何让系统能够随时间扩展和演进。金融市场变化得如此迅速,如果你把全部时间都花在构建这些庞大的系统上,交易机会早就消失了。
[00:17:14] 所以,是的,他们非常擅长这件事。很好。那么……
[00:17:18] swyx:我想先单独谈谈 Ghostwriter,然后再聊代码模型,你们称它为 V1 之类的,对吧?
Reza Shabani:好的。是的。
swyx:好的,好的。