#AI辅助

宝玉
1个月前
来学习+批判一下 FAANG 这样的大厂是怎么「凭感觉编程(Vibe Coding)」的: “先让足够多的利益相关者点头同意” “然后搞设计评审” “接着是长达几周的文档工作” “再然后是产品经理和项目经理来回拆分任务” 等三个月过去了,终于可以开始 Vibe Coding 了! --- 我们在 FAANG 是这样「凭感觉编程(Vibe Coding)」的 大家好。 我之所以想在这里发个帖子,是因为总看到有人抬杠,说 AI 辅助写的代码根本不能用在真正的产品里。这绝对是瞎说。 先介绍下背景:我是一名 AI 软件工程师,有十多年的经验,其中一半时间是在 FAANG 度过的。我职业生涯的前半段是做系统工程师,而不是开发,不过我写代码也快 15 年了。 闲话少说,下面我就讲讲我们团队是如何开始用 AI 来写真正的**生产代码 (production code)** 的。 1. 你永远要从一份**技术设计文档**开始。这才是整个工作里最核心的部分。这份文档就像一份提案,你需要说服足够多的利益相关者 (stakeholders),让他们相信你的方案是可行的。只有设计通过了,你才能着手开发系统本身。这份文档里要包含完整的系统架构、与其他系统的集成方案等等。 2. 在投入开发之前,要进行**设计评审 (Design review)**。在这个阶段,团队里的高级工程师 (Senior Engineers) 们会把你的设计文档翻来覆去地“捶打”一遍。这是件好事,我管这叫**“把痛苦前置”**。 3. 如果评审顺利通过,你就可以正式启动开发工作了。最初的几周,大家会花很多时间,为每个开发团队要构建的子系统 (subsystem),撰写更详细的文档。 4. 接着是**待办事项 (Backlog) 的开发和 Sprint 规划 (sprint planning)**。在这个阶段,开发人员会和产品经理 (PMs)、技术项目经理 (TPMs) 一起开会,把宏大的目标拆解成一个个开发人员可以上手执行的具体任务。 5. **软件开发**。终于,我们可以上手敲代码、消灭任务卡了。而这,正是 AI 发挥神力的地方,它简直是我们的**效率倍增器 (force multiplier)**。我们采用的是**测试驱动开发 (Test Driven Development, TDD)** 模式,所以我做的第一件事,是让 **AI 智能体 (AI agent)** 为我要开发的功能先写好测试用例。*只有当测试写好了,我才会开始让 AI 智能体帮我构建具体的功能*。 6. **代码提交评审**。我们的代码在合并到主分支 (main) 之前,需要有两名开发人员的批准。在这个环节,AI 也展现出了巨大的潜力,可以辅助我们进行评审。 7. **在预发布环境 (staging) 测试**。如果测试一切顺利,我们就正式发布到生产环境 (prod) 了。 总的来说,从功能提案到最终上线,我们发现整个流程的**速度提升了大约 30%**。这对我们来说是个巨大的进步。 **太长不看 (TL;DR):** 永远从一份扎实的设计文档和架构开始;然后一块一块地去实现它;永远把测试写在前面。
宝玉
2个月前
来自 Nature:Writing is thinking《写作即思考》 论大语言模型时代下,人类亲笔进行科学写作的价值。 撰写科学论文是科学方法中不可或缺的一环,也是交流研究成果的常规做法。然而,写作不仅仅是为了报告结果,它更是一种能发掘新思想、新观点的工具。写作促使我们进行结构化、有目的性的思考,而不是任由思绪如脱缰野马般混乱、跳跃。通过动笔写作,我们可以将多年来的研究、数据和分析梳理成一个逻辑连贯的故事,从而明确我们想传达的核心信息以及我们工作的影响力。这并非空谈玄理,而是有科学依据的。例如,科学证据表明,手写能促进大脑皮层的广泛连接,并对学习和记忆产生积极影响。 “我们在此呼吁,要继续重视人类亲笔进行科学写作的价值” 在大语言模型(LLM)时代,这个呼吁可能显得有些不合时宜。只要给出正确的提示,大语言模型就能在几分钟内生成整篇科学论文(甚至是同行评审报告),这似乎能在研究的“硬骨头”啃完之后,大大节省发表成果的时间和精力。然而,大语言模型因为无法承担责任,所以不能被视为作者,因此,我们不会考虑发表完全由大语言模型撰写的文稿(使用大语言模型进行文字编辑是允许的,但必须声明)。更重要的是,如果写作即思考,那么当我们阅读一份由 AI 生成的论文时,我们读到的究竟是大语言模型的“思考”,还是论文背后研究人员的思想呢? 目前的大语言模型也可能出错,这种现象被称为“幻觉”。因此,由大语言模型生成的文本需要经过彻底的检查和验证(包括每一条参考文献,因为它可能是凭空捏造的)。所以,目前的大语言模型究竟能节省多少时间,仍然是个未知数。编辑一篇由大语言模型生成的文本,可能比从头开始写一篇论文或同行评审报告更加困难和耗时,部分原因在于,你必须先理解其背后的逻辑才能进行修改。其中一些问题或许可以通过那些仅基于科学数据库进行训练的大语言模型来解决,正如本期中刘凤麟(Fenglin Liu)及其团队的一篇综述文章所概述的那样。这一切,尚需时间来证明。 当然,这并非否认大语言模型可以成为科学写作中的宝贵工具。例如,大语言模型可以帮助提升文章的可读性和语法水平,这对那些母语非英语的研究者来说尤其有用。大语言模型在搜索和总结各种科学文献方面也可能很有价值,它们还可以提供要点,协助进行头脑风暴。此外,大语言模型还有助于克服写作障碍,为研究发现提供不同的解释,或是在看似无关的主题之间建立联系,从而激发新的思想火花。 然而,若将整个写作过程完全外包给大语言模型,我们可能会失去反思自己研究领域的机会,也无法参与到那项充满创造力且至关重要的任务中——即将研究成果塑造成为一个引人入胜的叙事。而这种能力的重要性,无疑远远超出了学术写作和出版的范畴。
Cikey
2个月前
我们的第一本 Web3 科普图书,实体和开源电子版我们都完成了。 “终于” 两个字,真的不是随口一说。 从一开始说要做一本“连小学生都能看懂的 Web3 入门书”,到今天真的写完、整理好、准备发出来,中间隔了几个月,也穿过了不少情绪和反复。 最初的我们,其实想得太理想了,在低预算的情况下。我们说:要原创 IP,要手绘插画,要每一页都“有趣又有知识点”。结果动手才发现,理想很丰满,执行真的太难了。 写作、设计、排版、反馈、修改……每一步都绕着圈走,每一个细节都有人意见不同。一开始我们坚持“共识共建”,每个人都可以提建议,最后发现,推动起来几乎寸步难行。 后来我们逐渐放下完美,决定只听真正在做的人意见,才慢慢的找回了节奏。 但因为时间拉得太长,最开始积极响应到后面大家都有自己忙碌的事情,中间人员换了好几波,我们几次重新召集、整理思路、砍掉复杂的设想,才一步步把它推进下去。 在这个过程中我们学会了妥协,也学会了坚持。用 AI 替代人工绘图、减少设计时间、用更轻的方式完成原来“太重”的目标。我们一边修改内容,一边也在重新理解这个时代:不是每一件事都要完美,但值得被做出来。 现在,这本书终于完成了,我们想把它交到你手中。 也许它还有很多不足,但希望它能成为一块砖,引来更多思考、更多行动…… 希望它能让更多人看见 Web3 的可能性,有更多人参与进来、深入了解、一起打造这个还在生长中的世界。