拥抱琐碎 • Jacob Kaplan-Moss

本文是 Django 的共同创建者,同时担任工程主管的 Jacob Kaplan-Moss 所写。作者通过一个魔术表演的例子,强调了成功的秘诀往往在于愿意投入大量时间和精力去完成那些看似枯燥、乏味的任务。这种“磨砺”的精神不仅适用于魔术,也适用于技术行业,甚至可以帮助解决复杂的问题。尽管自动化和效率是现代技术行业的重要追求,但有时解决问题的关键在于亲力亲为,愿意承担那些别人不愿意做的繁琐工作。 魔术的例子: 作者描述了一个魔术表演,观众选择的卡片最终出现在一个密封的茶包里。这个魔术的秘密不在于复杂的手法,而在于表演者在幕后进行了大量准备工作:打开数百个茶包,将卡片放入其中,然后重新封装。这种耗时的准备工作让观众无法想象背后的努力,从而感到惊奇。 魔术师的投入: 引用魔术师 Teller 的话,强调魔术的一个核心原则:观众会被那些需要比他们想象中更多时间、金钱和练习的表演所迷惑。比如,Teller 和 Penn 为一个节目准备了 500 只特制的蟑螂,花费了数周时间,只为完成一个看似简单的表演。 技术行业的应用: 作者将这种“磨砺”的精神引入技术行业,指出虽然自动化和效率是技术人员追求的目标,但有些问题无法通过自动化解决。例如,作者曾加入一个充满问题的团队,面对数千个未解决的错误报告。通过亲自阅读、分类和整理所有报告,作者成功扭转了局面,帮助团队恢复了效率。这一过程虽然耗时且单调,但最终的效果却如同魔术一般。 核心教训: 作者总结道,有时成功的秘诀不在于寻找捷径或依赖自动化,而在于愿意投入时间和精力去完成那些看似枯燥的任务。如果能“拥抱磨砺”,就能在看似不可能的情况下取得成功。 拥抱琐碎 我曾见过一个魔术表演,至今仍让我印象深刻。它的表演方式非常简单(为了清晰起见,我在此进行了简化):一位志愿者选了一张卡片,并将其密封在信封中。然后,魔术师请志愿者选择一种茶。桌上有几十盒茶,所有的茶都用塑料包装封好。志愿者选择一盒,撕开塑料包装,从里面挑选出一个密封的小袋。当志愿者撕开小袋时……里面竟然是他们之前选的那张卡片。 ⚠️ 如果你不想知道这个魔术的原理,请立即停止阅读。 这个魔术的秘密其实很平常,但对我来说却充满了神奇感。选卡片的过程其实是“强迫选择 (force)”。不过,志愿者从几十盒茶中选择的过程确实是自由选择,从茶盒中挑选茶包也是自由选择。没有任何手法或欺骗:魔术师根本没有接触到志愿者选择的茶盒或茶包。那张卡片真的就在密封的茶包里。 这个魔术的精髓在于背后的准备工作。表演前,魔术师会买来几十盒茶,将每盒茶都拆开,取出每个茶包,再将一张梅花三的卡片放入每个茶包里,然后重新密封这些茶包。接着,再把茶包放回茶盒中,并重新封好每个茶盒。这个过程重复几百次。可能需要几个小时,甚至几天的时间。 唯一的“魔术”在于,这样的准备工作看上去既枯燥又耗时,当我们看到最终的效果时,很难想象有人会为了这个看似简单的表演而做如此繁琐的准备。 Teller 在一篇关于“魔术七大秘密”的文章中提到了这个现象: 如果一个魔术比你(或其他任何理智的旁观者)愿意付出的时间、金钱和精力更多,你就会被它愚弄。我的搭档 Penn 和我曾在 David Letterman 的脱口秀节目上,从桌子上的礼帽里变出 500 只活蟑螂。为此我们准备了数周时间。我们雇了一位昆虫学家,他为我们提供了适合镜头展示的慢速蟑螂(厨房下水道里的蟑螂可不适合拍特写),并教我们如何在不尖叫的情况下抓住这些虫子。然后我们用泡沫板(蟑螂无法附着的少数材料之一)制作了一个秘密隔层,并精心设计了将这个隔层悄悄放入礼帽的方案。这个过程比表演本身要麻烦得多?对你来说可能是的。但对魔术师来说并不是。 很多刚入行的科技新人会问我成功的秘诀。其实并没有什么特别的秘诀,但有一个道理:愿意做那些看上去极其琐碎乏味的工作,就能产生像魔术般神奇的效果——这在科技领域同样适用。 我们是一个痴迷于自动化、精简和效率的行业。我们的工程文化奠基文本之一,Larry Wall 的《程序员的美德》中提到过“懒惰”: 懒惰:这种品质让你愿意付出巨大的努力来减少整体的工作量。它促使你编写省力的程序,这些程序能帮助其他人,并且记录你写的内容,这样你就不用重复回答同样的问题。 我并不反对这一点:将重复性工作交给程序处理是编程最好的地方之一。但有些问题是无法通过自动化解决的。如果你愿意去面对那些琐碎繁重的任务,你就能展现出如魔术般的能力。 例如,我曾经加入一个维护系统的团队,这个系统因为错误太多而陷入困境。大概有两千个未解决的错误报告。所有问题都没有被标记、分类或优先排序。团队无法就哪些问题需要优先处理达成一致。结果就是不断随机地处理错误,但这常常让人不清楚某个问题是否真的重要。新问题无法被有效处理,因为找到重复问题几乎是不可能的。未解决的问题数量继续攀升,团队已经停滞了数月。我被分配的任务是:让团队重新运转起来,扭转未解决问题数量的上升趋势,并最终将其降到零。 于是我采用了和魔术师一样的方法——其实根本没有什么技巧:我做了那些枯燥的工作。我把所有的问题都打印出来——每个问题一页纸。我读了每一页。我占用了一个大房间,把纸张堆放在地板上。我在便签上写上标签,然后贴在不同的堆上。我在各个堆之间移动纸张。我在白板上画了长长的列,写上问题编号,幻想自己像 Ben Affleck 在电影《会计刺客》中那样。我在那个房间里呆了将近三周,最后所有的错误报告都被审阅、标记、分类和优先排序。 趋势立即发生了逆转:我们立刻关闭了几百个重复的错误报告,而现在新问题的分类只需要几分钟,而不是一天。我们用了大概一年多的时间,将未解决的问题数量降到零,整个过程非常顺利。人们说我完成了不可能的任务,但其实不是:我只是做了那些琐碎乏味的工作,而没人愿意去做罢了。 有时候,编程像是魔术:你念一些晦涩的咒语,然后一群机器人就会按你的指令行事。但有时候,魔法其实很平凡。如果你愿意面对那些枯燥繁重的任务,你也能实现看似不可能的效果。

September 27, 2024 · 1 min · fisherdaddy

为什么我们坚持使用 Ruby on Rails • Sid Sijbrandij

这篇文章 由 GitLab Inc. 的联合创始人、首席执行官和董事会主席 Sid Sijbrandij 撰写,本文主要探讨了 Ruby on Rails 作为开发框架的优势,尤其是在 GitLab 项目中的成功应用。作者强调,Ruby on Rails 通过结合良好的架构和易用性,解决了传统开发框架在“可用性”和“结构性”之间的权衡问题。此外,文章讨论了 模块化 的重要性以及为什么 微服务 并不是实现模块化的唯一或最佳方式。最后,文章介绍了 GitLab 如何通过 模块化单体架构 实现了开源与商业模式的结合,促进了创新和扩展。 Ruby on Rails 的优势 Ruby on Rails 结合了 PHP 的易用性和 Java 的架构完整性,创建了一个既易于上手又结构良好的 Web 框架。 GitLab 选择 Ruby on Rails 作为其开发框架,得益于其易用性和良好的架构,这一选择极大地推动了 GitLab 的成功。 模块化的必要性 模块化可以缩短开发时间,减少沟通需求,并允许对单个模块进行独立的更改和研究。 作者引用了 David L. Parnas 和 Fred Brooks 的理论,强调模块化有助于减少复杂性和沟通成本。 微服务的局限性 虽然微服务可以通过操作系统强制模块边界,但这种方法带来了显著的性能和可靠性问题。 微服务架构增加了不必要的复杂性,并且没有保证能够真正实现模块化,反而可能导致“分布式混乱”。 模块化单体架构的优势 GitLab 采用了 模块化单体架构,即一个结构良好、模块化的单一进程程序。这种架构减少了复杂性,并提升了开发效率。 虽然 Rails 有一些性能问题,但 GitLab 通过结合其他技术(如用 Go 编写的 gitaly 守护进程和 PostgreSQL)解决了这些问题。 开源与商业模式的结合...

September 27, 2024 · 1 min · fisherdaddy

作为独立开发者,如何管理我的动力 • Marcus Buffett

本文作者 Marcus Buffett 作为一名独立开发者,分享了自己在保持工作动力方面的经验与心得。作者强调,作为独立开发者,如何有效地激发和维持动力是一个关键问题,并介绍了多种策略来帮助自己保持高效工作。这些策略包括从外部获取动力、留下一些未完成的任务、亲自使用自己的产品、解决痛点、避免“零日”、以及与合作伙伴保持互动等。文章的基调轻松,更多像是一篇个人日记而非正式的建议。 外部动机的利用: 作者自知自己更依赖外部动机,因此通过系统化的方式来获取动力。例如,订阅通知和社交媒体提及提醒等外部反馈能给他带来动力,尽管随着时间推移,这种动力的强度会有所减弱。 留下一些未完成的任务: 每次工作结束时,作者会刻意留下一些未完成的任务,这样第二天开始工作时能迅速进入状态。这种“快速胜利”的策略帮助他更快进入工作流。 亲自使用产品: 通过亲自使用自己开发的产品,作者能够更直观地感受到产品中的问题和不足,从而激发改进的动力。同时,这也带来了更好的产品创意。 解决痛点: 作者强调,与其强行忍受工作中的痛点,不如寻找解决方案。例如,使用自动生成类型的库来减少重复性工作,不仅消除了痛苦,还增加了工作的兴奋感。 避免“零日”: 作者尽量避免“零生产力日”,即完全没有任何工作成果的日子。即使是完成一点小任务,也能让他在休息时没有负罪感,从而真正放松。 合作伙伴的作用: 尽管是独立开发者,作者也提到拥有一个合作伙伴的重要性。合作伙伴不仅能在技能上互补,还能通过定期的沟通和反馈保持双方的工作动力。 灵活利用突发的动力: 当灵感和动力突然涌现时,作者会立即行动,即使是在深夜。这种灵活性是独立开发者的一大优势。 做“无事”以重新聚焦: 当陷入社交媒体等干扰时,作者发现最有效的策略是先什么都不做,让大脑冷静下来,再重新进入工作状态。 通过这些策略,作者能够更好地管理自己的动力,保持工作效率,同时也享受独立开发的自由和灵活性。 作为独立开发者,如何管理我的动力 对于独立开发者来说,保持动力是最大的挑战之一。我一直在记录如何“破解”我的动力,哪些方法有效,哪些方法无效。以下是一些对我而言行之有效的策略。 将外部刺激转化为动力 我一直知道自己比起内在动机(intrinsically motivated)更受外部动机(extrinsically motivated)驱动。因此,我建立了一些系统来获取短暂的外部动力,例如当有人订阅时,我的 Money Bots 会立即弹出通知。 虽然我平时会关闭大多数推送通知,但这些订阅通知会直接出现在我的主屏幕上。每次收到通知时,我都会感到一阵小小的动力提升。尽管一开始每新增一个订阅者都会带来强烈的多巴胺刺激和能量提升,但随着时间推移,这种刺激会逐渐减弱。然而,这些通知依然能为我提供动力。 类似地,我还订阅了一个服务,当有人在网络上提到我的项目 Chessbook 时,它会立即通知我。这不仅有助于市场推广,因为在社交媒体上与用户互动很重要,同时,每当看到有人(希望是正面的)讨论我开发的项目时,也会激励我继续前进。 此外,我还创建了一个名为 #pump-up 的频道,用来记录我们达到的一些里程碑,比如月经常性收入(MRR)达到 $X 美元,Discord 用户达到 2000 人,流失率低于 6% 等等,这些成就都令人振奋。 任务留一点没做完 这一点对我的帮助非常大。我尽量在结束一天的工作时,将任务留到 90% 完成。这种状态比完全完成任务稍显不爽,但第二天开始工作时,会轻松 10 倍。开始一天的工作时,能迅速完成一个小任务,会让我立刻进入“心流状态”(flow state)。但任务也不能过于简单,如果只是运行 git commit 就能完成,那就没有挑战了。理想情况下,剩余的任务应该是我知道怎么做,但需要花 5-10 分钟才能搞定的。 尽可能多地使用自己的产品 我尽量多使用自己开发的产品。有人报告某个小 bug 时,我可能觉得无关紧要。但当我自己遇到同样的问题时,才意识到它对用户体验的负面影响有多大,这时我就会立刻修复它。亲身体验的痛点远比别人告知的更直观。 顺便一提,这也帮助我想出更好的产品创意。最好的创意往往不是坐下来冥思苦想用户可能想要什么,而是来自我自己在使用过程中发现了需求。 消除痛点,而不是硬着头皮坚持 开发过程中,总会有一些令人头疼的任务,比如维护被忽视的代码库、处理第三方服务,或者发布新版本的原生应用等。如果我知道某个任务中包含这些内容,就会更难鼓起勇气去开始。 诀窍是,你几乎总能找到方法来减轻这些过程中的痛苦。 比如,最近我开始一个新任务时感到很大的阻力,因为它需要创建 4 个以上的新接口,而这通常涉及很多重复代码。我需要在后端定义数据类型,然后在前端再次定义,确保传递的数据和路径都正确,而且由于没有类型检查,这通常第一次总是出错的。所以我在开始前,找到了一个名为 RSPC 的 RPC 库,它可以自动为我生成类型定义,使得在前端调用后端函数变得和调用另一个异步函数一样简单和安全。...

September 27, 2024 · 1 min · fisherdaddy

Canva 的 SEO 策略:程序化内容聚合与反向链接

偶然看到的一篇介绍Canva SEO的推文,我整理了一下并翻译成了中文。 Canva 是 SEO 领域的典范。 每月流量达 2.42 亿 拥有 2900 万个反向链接 (Backlinks) 覆盖 190 个目标国家 每月用户达 1.8 亿 公司估值 260 亿美元 我花了 20 多个小时逆向分析了他们的成功策略。 总结出 7 大核心 SEO 策略: 策略 1:程序化 SEO Canva 非常擅长程序化 SEO,这种策略通过自动化方式创建成千上万个针对 SEO 的网页。 这些页面专门针对与设计需求相关的搜索,如: 标志设计 简历制作 图表、统计图等… 这些页面通常瞄准高搜索量的关键词,为 Canva 带来了超过 1 亿的每月 SEO 流量。 Canva 的程序化策略分为两个主要类别: 1. 制作器/生成器页面 公式:[主题] [生成器/制作器] 例如:简历生成器 或 标志制作器 Canva 的制作器/生成器页面是其 SEO 策略的核心,它们的目标用户是那些想要创建设计的客户。 这些页面有两个主要作用: 信息中心 功能型着陆页 这些页面为用户提供了在 Canva 平台上直接创建所需设计的工具。 2. 模板 公式:[创意] 模板...

September 26, 2024 · 1 min · fisherdaddy

智能时代 • Sam Altman

本文探讨了人类即将进入“智能时代”的前景。通过人工智能( AI )的持续发展,尤其是深度学习技术的进步,人类将能够解决许多当前难以想象的问题,并实现前所未有的繁荣。尽管 AI 的发展可能带来挑战和风险,但其潜力巨大,将极大地提升全球生活质量。未来的 AI 将不仅仅是工具,而是能够协助人类完成复杂任务的虚拟助手,推动科学、教育、医疗等领域的全面进步。 历史进程与 AI 的加速作用: 人类历史上通过科学发现和技术进步不断提高能力, AI 将加速这一进程。我们的祖先为现代社会奠定了基础,而 AI 将帮助我们在这一基础上继续构建,解决难题并实现新的突破。 深度学习的成功: 深度学习技术的突破是推动 AI 进步的核心原因。随着计算资源和数据的增加, AI 在解决问题上的表现越来越好。深度学习能够学习任何数据分布的底层规律,这种能力使其成为解决复杂问题的有力工具。 AI 的未来潜力: 未来, AI 将成为个人助手,帮助协调医疗、教育等各个领域的任务。 AI 还将推动下一代系统的开发,促进科学的全面进步。人类将拥有虚拟专家团队,能够实现几乎任何想象中的目标。 智能时代的繁荣与挑战: AI 的广泛应用将带来巨大的繁荣,未来每个人的生活质量都可能超过当今最富有的人。然而,繁荣并不一定直接带来幸福,社会需要谨慎应对 AI 带来的挑战,特别是劳动力市场的变化。尽管工作形式会发生变化,但人类的创造力和互助精神将继续推动社会进步。 技术与能源的基础设施需求: 为了使 AI 普及并惠及更多人,必须降低计算成本并确保能源和芯片的充足供应。如果基础设施建设不足, AI 可能成为一种稀缺资源,甚至引发冲突。 风险与应对: 尽管 AI 可能带来一些负面影响,如就业市场的变化,但这些变化将比预期更为缓慢。社会应尽早采取措施,最大化 AI 的好处,同时尽量减少其潜在的危害。 未来的展望: 智能时代将带来前所未有的繁荣和技术突破,如解决气候问题、建立太空殖民地、揭示物理学的终极奥秘等。虽然这一切不会一蹴而就,但 AI 的发展将使这些成就变得可能且常见。 智能时代 在未来几十年里,我们将能够实现一些在祖辈眼中如同魔法般的事物。 这种现象并非新鲜事,但其发展速度将大幅提升。随着时间推移,人类的能力显著增强;我们现在已经能够做到许多前辈们认为不可能的事情。 我们的能力提升并非源于基因变化,而是因为我们生活在一个比任何个体都更智慧、更强大的社会体系中。从某种意义上说,社会本身就是一种高级智慧。我们的祖辈和他们之前的几代人,为我们今天所依赖的“人类进步的基石”奠定了基础。人工智能(AI)将为人类提供工具,帮助我们解决难题,为这一进步体系增添新的支撑点,让我们能够实现单靠自身难以完成的任务。进步的故事将继续延续,我们的子孙后代将拥有更强的能力。 这一过程不会一蹴而就,但我们很快将能与 AI 合作,实现比以往更多的成就。最终,每个人都可以拥有一支虚拟专家团队,涵盖各个领域的 AI 专家,共同创造几乎所有我们能够想象的事物。孩子们将拥有虚拟导师,可以在任何学科、任何语言以及任何学习进度上,提供个性化的指导。类似的应用还可以扩展到医疗保健、软件开发等众多领域。 借助这些新能力,我们有望实现今天难以想象的共享繁荣;未来,每个人的生活都有可能比现在任何人的生活都要好。虽然财富不一定能带来幸福——即使在富人中也有不少不快乐的例子——但它确实能够显著改善世界各地人们的生活。 从狭义上看,人类历史就是科学发现和技术进步不断积累的过程。经过数千年的努力,我们学会了如何将沙子熔化,加入杂质,并以惊人的精度在极小的尺度上排列成计算机芯片,最终创造出能够生成日益强大的人工智能的系统。 这可能是迄今为止人类历史上最重大的事实。或许在未来几年内(!),我们就能拥有超级智能(Superintelligence);即使需要更长的时间,我也相信我们终将达到这一目标。 我们是如何到达这一繁荣的起点的? 简单来说,就是因为深度学习 (Deep Learning) 有效。 更具体地说,深度学习在规模扩展的过程中,表现出可预见的效果提升,而我们为其投入了越来越多的资源。 事实就是这样:人类发现了一种算法,它能够真正学习任何数据分布(更确切地说,它能够学习生成任意数据分布的“规则”)。随着计算能力和数据的增加,它帮助人们解决难题的能力也随之提升。尽管我花了很多时间去思考这一点,但仍无法完全领会它的深远意义。 我们仍有许多细节问题需要解决,但过于关注某个具体挑战是错误的。深度学习确实有效,我们将会解决剩下的问题。未来会有许多可能发生的事情,但最主要的是,随着 AI 规模的扩大,它将变得越来越强大,从而显著提升世界各地人们的生活质量。...

September 24, 2024 · 1 min · fisherdaddy

对 OpenAI o1 的逆向工程分析

本文主要是对OpenAI o1 的逆向工程分析。OpenAI 推出了新的推理系统 o1,这是一个基于强化学习(RL)训练的语言模型,旨在处理复杂的推理任务。o1 与传统的自回归语言模型不同,它在推理时进行在线搜索,并且推理过程中的计算成本显著增加,展示了新的推理扩展规律。尽管 o1 目前只是一个原型,尚未达到产品市场契合度,但它代表了 AI 未来发展的方向。OpenAI 对 o1 的发布采取了透明的态度,承认自己也不完全知道如何最有效地使用该模型,并希望通过用户反馈来完善其功能。 o1 系统的特性: o1 是通过强化学习(RL)训练的,特别注重长推理链条的生成。 与传统语言模型不同,o1 在推理过程中进行在线搜索,并且花费更多的推理计算资源,这表明推理扩展规律的存在。 o1 的推理过程更接近于闭环控制系统,而不是简单的自回归生成。 强化学习的作用: o1 的训练依赖于强化学习中的“链式思维”方法,系统在推理过程中不断改进自己的表现。 强化学习的成功使得 o1 能够在训练时有效探索新的推理路径,并通过更多的推理时间提高模型性能。 推理过程中的每一步都可能获得奖励,帮助模型识别并纠正推理中的错误。 发布背景与未来展望: o1 的发布被视为一种“预览”,类似于早期的 GPT-3 发布,而非像 ChatGPT 那样的成品。 OpenAI 还没有完全确定 o1 的最佳应用场景,并希望通过用户反馈来定义其用途。 尽管 o1 目前的表现尚未达到顶级,但它展示了未来 AI 系统中可能采用的推理和决策方法。 推理过程与计算成本: o1 的推理过程非常昂贵,尤其是在推理时生成多个候选答案并进行评分的情况下。 OpenAI 提供的推理时间计算表明,o1 的推理成本并不随着生成的令牌数量呈线性增长,而是受到推理深度和广度的影响。 目前 o1 的推理价格为每百万输入令牌 $15,每百万输出令牌 $60。 未来的挑战: 要在开源社区中复制 o1 的训练过程将非常困难,因为需要大量复杂的前向推理路径和对比示例。 o1 的成功依赖于大量计算资源以及精细的强化学习过程,这对其他公司和研究机构来说是一个巨大的挑战。 随着 o1 系统的发展,它可能会被整合到 ChatGPT 等产品中,用于处理更复杂的任务。 总结来说,o1 是 OpenAI 推理系统的一次重要尝试,展示了未来 AI 推理模型的发展方向,尽管目前仍处于原型阶段,但它的技术潜力巨大。...

September 19, 2024 · 3 min · fisherdaddy

OpenAI 官方指南:推理模型

本文由 OpenAI 发布于 2024 年 9 月 12 日。 OpenAI o1 系列模型是新一代通过强化学习训练的大型语言模型,专门用于处理复杂的推理任务。o1 模型在回答问题之前会进行思考,能够在回应用户之前生成一系列内部推理链。o1 模型在科学推理方面表现出色,在 Codeforces 编程竞赛中排名前 11%,并在美国数学奥林匹克竞赛 (AIME) 预选赛中跻身美国前 500 名选手,同时在物理、生物和化学问题的基准测试 (GPQA) 中超越了博士生水平的准确性。 API 中目前有两种推理模型: o1-preview:o1 模型的早期预览版,擅长利用广泛的世界知识来解决复杂问题。 o1-mini:o1 的更快且成本更低的版本,尤其适合处理不依赖广泛知识的编程、数学和科学任务。 虽然 o1 模型在推理能力上取得了重大进展,但并不打算在所有应用场景中取代 GPT-4o。 对于需要图像输入、函数调用或快速响应的应用,GPT-4o 和 GPT-4o mini 模型仍然是更合适的选择。不过,如果你正在开发的应用需要深度推理且可以接受较长的响应时间,那么 o1 模型可能是一个理想的选择。我们很期待看到你用这些模型创造出什么! 🧪 o1 模型目前处于测试阶段 目前,o1 模型正处于测试版阶段,功能有所限制。仅限五级开发者访问(在此处查看你的使用等级),并且速率限制较低(20 RPM)。我们正在努力增加更多功能、提高速率限制,并计划在未来几周内向更多开发者开放! 快速入门 o1-preview 和 o1-mini 模型可以通过聊天完成端点访问。 from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="o1-preview", messages=[ { "role": "user", "content": "Write a bash script that takes a matrix represented as a string with format '[1,2],[3,4],[5,6]' and prints the transpose in the same format....

September 14, 2024 · 3 min · fisherdaddy

OpenAI 推出 o1 和 o1-mini: AI 推理的新突破,迈向 AGI 的一大步

OpenAI 于 2024 年 9 月 12 日推出了 o1 和 o1-mini 模型,显著提升了 AI 推理能力。o1 不仅仅是一个新模型,更是一个新范式。ChatGPT 正在从仅使用系统 1 思维(快速、自动、直观、容易出错)发展到系统 2 思维(缓慢、深思熟虑、有意识、可靠)。这使得它能够解决以前无法解决的问题。除了模型的推出,OpenAI 还发布了2篇报告:Introducing OpenAI o1-preview、OpenAI o1-mini,通读这两篇报告,可以对 o1 和 o1-mini 有更深入的了解,我这里摘要了其中的核心内容。 o1 模型能力 一种通过强化学习训练的大语言模型,能够执行复杂的推理任务。o1 会在回答前先进行思考——它可以在回复用户之前生成较长的内部思维链。 强化学习算法 OpenAI 的大规模强化学习算法通过模型的思维链教会模型如何以高效的数据利用率进行推理。随着强化学习训练时的计算量增加,以及测试时模型思考时间的延长,模型 o1 的性能会持续提升。这种方法在扩展过程中的限制与大语言模型 (LLM) 的预训练有显著不同。 思维链方式 就像人类在回答困难问题前可能需要长时间思考一样,o1 在解决问题时也会使用“思维链” (chain of thought)的方式。通过强化学习,o1 不断优化这种思维链,改进其解决问题的策略。它能够识别并修正自己的错误,将复杂的步骤分解成简单的部分,并在当前方法无效时尝试不同的路径。这个学习过程极大地提升了模型的推理能力。 考试成绩表现 在 2024 年的 AIME(专为挑战美国顶尖高中生设计的数学竞赛)考试中,GPT-4o 平均只解决了 12%(1.8/15)的题目,而 o1 在每题只使用一个样本的情况下,解决了 74%(11.1/15);使用 64 个样本取共识后,解决率提高到 83%(12.5/15);通过对 1000 个样本进行评分排序,解决率进一步提升到 93%(13.9/15)。13.9 分的成绩足以让 o1 排名进入全国前 500 名,并超过了美国数学奥林匹克的入选线。 推理表现 在数据分析、编码和数学等推理密集型类别中,o1-preview 明显优于 gpt-4o。然而,o1-preview 在某些自然语言任务上并不是首选,这表明它并不适合所有用例。...

September 13, 2024 · 1 min · fisherdaddy

大模型领域一些常见术语的含义

本文是 Anthropic 官方文档给出的一些 LLM 术语的解释,我这里将其翻译为了中文,并增加了 LLM 中一些常见的术语词。 LLM 大语言模型(LLM, Large Language Model)是一种具有大量参数的 AI 语言模型,能够执行多种复杂且实用的任务。这些模型通过大量文本数据进行训练,能够生成类人文本、回答问题、总结信息等。Claude 是基于大语言模型的对话助手,并通过人类反馈强化学习(RLHF, Reinforcement Learning from Human Feedback)进一步训练,以更有帮助、诚实且无害。 Pretraining 预训练(Pretraining)是语言模型在大规模无标注文本数据集上进行的初始训练过程。以 Claude 为例,自回归语言模型会根据文档中的上下文来预测下一个词。预训练模型本身并不擅长回答问题或遵循指令,通常需要复杂的提示工程来引导出预期的行为。通过微调(Fine-tuning)和人类反馈强化学习(RLHF),这些预训练模型可以进一步优化,从而在广泛任务中变得更加有用。 Fine-tuning 微调(Fine-tuning)是通过额外数据进一步训练预训练模型(Pretraining)的过程。这会使模型开始模仿微调数据集中的模式和特征。微调可以帮助模型适应特定领域、任务或写作风格,但需要仔细考虑微调数据的质量及其对模型性能和潜在偏见的影响。 SFT (Supervised Fine-Tuning) SFT 是一种用于语言模型优化的技术,它通过使用标注好的数据集对模型进行进一步训练。相比预训练过程中的无监督学习,SFT 专注于让模型在特定任务上表现更好。在监督微调中,模型根据人为标注的输入和输出对进行学习,从而提高其在回答问题、完成任务或遵循指令等特定场景中的表现。SFT 经常用于帮助模型理解更复杂的任务要求,使其生成的输出更加符合预期。 LORA(Low-Rank Adaptation) LORA 是一种微调大型预训练语言模型的技术。它通过在模型的某些权重矩阵上引入低秩分解来降低模型更新所需的参数数量。传统的微调需要更新模型的所有参数,而 LORA 只微调一部分参数,这大大减少了微调的计算成本和存储需求,同时保持了模型的性能。LORA 在特定任务或数据集上的微调表现良好,因为它可以灵活地适应新的任务要求,而不需要重新训练整个模型。 QLORA(Quantized Low-Rank Adaptation) QLORA(量化低秩适应)是一种用于大语言模型的微调技术,它通过对模型权重进行低秩分解和量化来减少微调的计算开销,同时保持性能。这种方法能够在保持模型准确性的同时,显著降低内存需求和计算复杂度,因此特别适用于在有限的资源下微调超大规模模型。 QLORA 的主要特点是: 低秩适应(Low-Rank Adaptation, LORA):通过对模型权重的低秩分解,QLORA 可以仅对少量参数进行微调,这样可以在节省计算资源的同时仍能有效捕捉任务相关的模式。 量化(Quantization):QLORA 使用 4-bit 或更低精度的量化技术来减少模型的存储和计算要求。量化技术通过缩减模型中存储和处理的参数位数,能够降低硬件负载,而不显著影响模型的性能。 高效微调:QLORA 可以在不完全重训练模型的情况下进行微调,尤其适用于资源受限的场景,例如边缘设备或中小型研究团队。 QLORA 技术的出现使得对大型预训练模型进行特定任务的微调变得更加可行。 RLHF(Reinforcement Learning from Human Feedback) 来自人类反馈的强化学习(RLHF, Reinforcement Learning from Human Feedback)是一种用于训练预训练语言模型的技术,使其行为更加符合人类的偏好。这种训练方式可以帮助模型更有效地执行指令,或表现得更像聊天机器人。人类反馈的过程包括对多个文本样本进行排序,强化学习会鼓励模型倾向于生成与高排名样本相似的输出。Claude 已通过 RLHF 进行训练,使其成为一个更加有用的助手。更多详情可以参考 Anthropic 的论文: Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback。...

September 6, 2024 · 1 min · fisherdaddy

1994年的重现

本文探讨了当前互联网消费领域的创新机会,并指出我们正进入一个类似于 1994-1998、2003-2007 和 2008-2012 的新时期。在这个新时期,技术的进步将推动新一代消费级应用的诞生。文章提出了几个可能的创新方向,包括“合成专家”、“消费化的创造力”、“新浏览器”和“AI 伴侣”,并分析了这些方向的潜力和挑战。 历史背景: 互联网消费公司往往在技术突破后迅速崛起。例如,1990年代初的网络浏览器诞生后,Yahoo、Amazon、Google 等公司相继成立;高速度互联网普及后,LinkedIn、Facebook、YouTube 等平台出现;iOS 应用商店和 Facebook 平台开放后,Airbnb、Uber、Instagram 等应用迅速发展。 2010年代对消费互联网公司不太友好,部分原因是缺乏技术上的重大突破(加密货币可能是个例外)。 当前的技术机会: 合成专家:AI 技术的发展将使得某些服务变得非常便宜,并可能催生出“合成专家”类产品。这些产品可能以导师、教练或治疗师的形式出现,帮助用户学习新技能或支持情感需求。 消费化的创造力:AI 降低了创作门槛,使得更多创意领域变得对普通消费者友好。例如,Midjourney(图像)、Suno 和 Udio(音乐)、Runway(视频)等公司已经取得了突破。未来,软件开发、时尚设计、游戏开发等领域也可能会变得更加消费化。 新浏览器:浏览器可能成为用户与 AI 助手交互的主要应用,因为它是用户花费最多时间的地方。AI 提供商可能会与现有浏览器合作或收购它们,以获得用户的注意力。文章特别提到 Arc 浏览器可能成为 OpenAI 或 Anthropic 的收购目标。 AI 伴侣:AI 伴侣能够深入了解用户,提供个性化的建议和情感支持,甚至帮助用户更好地理解自己。尽管这种技术可能带来便利,但也可能让人们减少对人际关系的依赖。 总的来说,作者认为这些新兴的技术方向将带来新的消费互联网机会,但同时也提醒我们要谨慎对待这些技术对人类关系的潜在影响。 1994年的重现 2024年8月25日 随着技术的突破,最大的消费级互联网公司纷纷成立。 网络浏览器的诞生(Nexus 于1991年推出,Mosaic 于1993年,Netscape 于1994年): Yahoo(1994年),Amazon(1994年),Ebay(1995年),Craigslist(1995年),Expedia(1996年),Paypal(1998年),Google(1998年)。 高速互联网的普及: LinkedIn(2003年),FB(2004年),YouTube(2005年),Reddit(2005年),Twitter(2006年),Spotify(2006年),Dropbox(2007年)。 Facebook 平台(2007年)+ iOS 应用商店(2008年): Airbnb(2008年),Pinterest(2009年),Whatsapp(2009年),Venmo(2009年),Uber(2010年),Instagram(2010年),Snapchat(2011年),Tinder(2012年)。 2010年代对消费级互联网公司来说相当艰难。虽然有很多因素影响了消费者市场(例如,Facebook 撤销了 API,开始掠夺合作伙伴,并证明它可以成功击退、复制或收购潜在威胁……),但最简单的解释是,2010年代缺乏像之前那样推动消费市场发展的技术突破(加密货币可能是个例外)。 显而易见,我们已经进入了一个新的消费者机会期——类似于1994-1998年、2003-2007年和2008-2012年。 我们可以在哪些领域期待出现新的突破性消费应用呢?这里有几个想法: 合成专家 自动化的好处是服务变得极其便宜,但负面影响是,那些原本因为这些服务昂贵而依赖劳动的人会面临什么命运。 先从好的一面说起。在未来不远的某个时刻,我预计我们会看到类似“合成专家”的产品。 这些专家可能像导师一样,帮助我们学习新技能,比如烹饪、语言学习、高中物理、编程、象棋。它们也可能像教练或培训师,甚至是帮助我们满足情感需求的治疗师…… 创造力的普及 过去几年里,我们看到一些在不同创意表达领域取得突破的公司:Midjourney(图像),Suno 和 Udio(音乐),Runway(视频)。 我猜测有些创意领域,虽然目前还不太适合大众使用,但随着 AI 降低了进入门槛,最终会变得更加亲民。 比如软件开发——通过像 val.town、Claude 或 websim 这样的工具——可能会成为一个突破点。时尚设计、家具设计、游戏开发、硬件设计等领域也可能如此。我从未设计过自己的家具或开发过视频游戏,但我敢打赌,将来某一天我会尝试。...

September 6, 2024 · 1 min · fisherdaddy