每日HackerNews RSS

## TPU 与 GPU:深入探讨 Flash Attention 本文详细介绍了将为 GPU 开发的 Flash Attention 内核(在第 4 部分中)移植到 TPU 的尝试,揭示了令人惊讶的性能差异。虽然算法保持不变,但底层的硬件和编译器优化却极大地改变了结果。 最初移植到 JAX/TPU 的版本比融合的标准注意力实现要慢得多。这被追溯到 TPU 的架构:其矩阵乘法单元 (MXU) 专为平铺矩阵运算而设计,并且其大型片上存储器 (VMEM) 允许完整的注意力矩阵驻留在其中,用于较短的序列长度。最初的 JAX 实现,使用 `fori_loop`,阻碍了编译器优化并行性的能力。 切换到 `jax.vmap` – 信号查询块之间的独立性 – 释放了显著的性能提升,最终超越了融合的标准注意力,用于更长的序列。这突出了向编译器传达意图的重要性。关键要点是:TPU 硬件和 XLA 编译器通常会自动处理平铺和优化,使得手动干预变得不必要甚至有害。 进一步的研究表明,TPU 的收缩阵列设计本质上可以有效地执行平铺矩阵乘法。虽然通过 Pallas 进行自定义内核提供了细粒度的控制(DMA 流水线,显式内存放置),但对于许多用例,利用 XLA 的自动优化可以提供最佳性能。该项目强调,在 GPU 上有效的优化策略不一定对 TPU 有益,并且理解底层硬件对于编写高效代码至关重要。

## 黑客新闻讨论:TPU上的Flash Attention & AI辅助写作 最近黑客新闻上出现了一场讨论,围绕一篇详细介绍了在TPU(张量处理单元)上优化Flash Attention的挑战的博客文章展开。虽然这项技术工作本身很有价值——专注于索引、分区和加速器性能的基准测试——但对话的很大一部分集中在文章的*写作*上。 许多评论者表达了对写作风格的沮丧,认为这是使用了AI(特别是Claude)造成的。担忧包括句子过于冗长、措辞生硬(“Claude式”表达)、以及Markdown格式不一致。一些人认为,如果作者懒得清晰写作,读者就不应该费心阅读。另一些人则认为使用AI来总结工作是有益的,可以解放工程师专注于构建。 一个关键点是内容创作周围的社会契约正在发生变化:随着AI使写作变得更容易,阅读现在需要更多的努力,作者有责任以深思熟虑的原创文笔来尊重他们的读者。 许多评论员指出,虽然底层信息很有用,但AI生成的风格降低了阅读体验,并使理解技术细节更加困难。

莉比·科普和她的男友雅各布·阿诺德,在TikTok和Instagram上发布了一段他们跑步时制作黄油的视频,迅速走红。这对来自俄勒冈州的夫妇将浓奶油和盐装入密封袋,固定在他们的跑步背心上,然后开始在小路上跑步,利用运动将奶油搅打成黄油。 这个想法源于科普对乳制品的热爱,以及阿诺德发现奶油在摇晃时很容易起泡。在确认了科学原理——剧烈搅拌可以分离脂肪分子形成黄油后,他们开始实验,最初使用了过多的奶油,甚至试图在河里冷却密封袋。他们后来改进了技术,发现50-55°F(约10-13°C)的温度最理想。 他们的视频获得了数百万次观看,并激励了其他人尝试“搅打跑步”,出现了各种变化,包括调味黄油,甚至在旅途中制作冰淇淋。科普强调,除了新奇之外,这次经历让她回忆起跑步的简单乐趣,她说:“只是为了氛围。只是为了黄油。”

## 跑步与制黄油:一种古怪的趋势 一位跑者分享了他们不同寻常的爱好:在跑步*的同时*制作黄油,灵感来自斯堪的纳维亚烹饪节目。这个过程包括将奶油密封在袋子里,利用跑步的运动搅动奶油使其变成黄油——大约需要25分钟。 评论者们热情地分享了他们自己的制黄油经验,指出自制黄油由于水分含量较低和风味更浓郁,味道比商店购买的黄油更好。许多人还详细描述了通过用酪乳制作意大利乳清干酪,甚至用乳清制作类似软糖的奶酪来延长这个过程。虽然清理工作很麻烦,但成本可能低于购买黄油,尤其是在添加其他产品的情况下。 讨论还涉及黄油的保存(冷冻或加盐)、温度影响搅打的原理,以及黄油可能通过类似意外搅动方式发明的历史可能性。这一趋势引发了与“跑步时做其他事情”活动(如制作冰淇淋)的比较,以及关于其实用性的幽默辩论。

错误:无法满足请求。请求被阻止。我们目前无法连接到此应用程序或网站的服务器。可能流量过多或配置错误。稍后重试,或联系应用程序或网站所有者。如果您通过 CloudFront 向客户提供内容,可以在 CloudFront 文档中找到故障排除步骤,以帮助防止此错误。由 cloudfront (CloudFront) 生成。请求 ID:yz2YhgkpmFKDVypzqjGb2Vtk7LbD4ZXN94Na284hGDrn5s25iJ1bkQ==

谷歌计划在2026年第二季度将Chrome浏览器带到ARM64 Linux设备上,此前已成功在macOS(2020年)和Windows(2024年)ARM平台上发布。此举旨在满足对功能齐全的浏览体验日益增长的需求,该体验将谷歌的服务与开源Chromium项目集成。 ARM64 Linux版本将提供与其他Chrome版本相同的安全性、稳定性以及丰富的功能,包括通过Google账户无缝同步、访问Chrome网上应用店扩展程序以及即时网页翻译。增强的安全功能,如带有AI保护的安全浏览、Google Pay集成以及Google密码管理器也包含在内。 谷歌正在与NVIDIA合作,简化DGX Spark用户的安装流程,其他用户可以直接从chrome.com/download下载。此发布标志着谷歌对Linux社区和不断扩展的Arm生态系统的承诺。

## Chrome 登陆 ARM64 Linux 谷歌官方宣布 Chrome 将登陆 ARM64 Linux 设备,预计于 2026 年第二季度发布。虽然 Chromium 已在 ARM64 Linux 上可用一段时间,但官方 Chrome 版本一直缺失,这让用户感到沮丧,尤其是那些使用基于 ARM 的工作站,例如 NVIDIA Spark 的用户。 此举弥补了长期存在的差距,因为 Chrome 已经支持基于 ARM 的 macOS 和 Windows。讨论指出,由于 perceived 的有限需求和支持成本,谷歌之前缺乏支持 ARM64 Linux 的动力,尽管现有的 ARM Chromebook 已经使用了类似技术。 官方发布的关键优势包括潜在的 Widevine DRM 支持改进(Spotify 和 YouTube 等服务需要),以及同步功能,在使用 Chromium 时设置起来一直很麻烦。用户希望获得更好的硬件加速,尤其是在 Raspberry Pi 等设备上。此版本还将帮助使用浏览器自动化工具的开发者。

最近在Python Discord的讨论中,发现`float('nan')`(非数字)存在一种奇怪的行为。令人惊讶的是,`nan`是可哈希的,允许将其添加到集合并用作字典的键。然而,`nan`甚至不等于自身(`nan == nan`的结果是`False`),这意味着每个`nan`实例都被认为是唯一的。 这导致了意想不到的结果:一个集合可以包含多个`nan`值,一个字典可以保存多个以`nan`作为键的条目——但使用`nan`本身检索值会引发`KeyError`。只有使用*特定*的`nan`实例(存储在变量中)才能访问字典。 即使计算可迭代对象中`nan`的出现次数也是不准确的,因为`Counter`将每个`nan`视为不同的值。虽然这在实际应用中没有用处,但这展示了Python处理`nan`值时一个有趣且违反直觉的特性。

## Python & NaN:一则黑客新闻讨论总结 一则黑客新闻讨论围绕Python中NaN(非数字)的特殊行为,特别是关于相等性和哈希的问题。核心问题是NaN不等于自身(NaN != NaN),这是IEEE 754浮点标准的结果。这在使用NaN作为字典键时会导致意外结果,因为Python在这种情况下依赖于对象标识进行哈希。 评论者争论这是否是Python的缺陷,或者是否是对标准的忠实实现。一些人认为NaN代表一个无法表示的数字,因此不应该进行相等性比较。另一些人建议Python应该用错误来处理除以零的情况,而不是NaN,从而与更直观的数学期望保持一致。 一个关键点是,IEEE 754标准允许全序和偏序浮点数,而Python默认使用后者,因此需要小心处理NaN。许多人认为取消屏蔽无效操作异常比处理NaN的怪癖更干净。讨论还涉及C++、Rust和JavaScript等其他语言中相关问题,强调了处理浮点错误的不同方法。

这次Hacker News的讨论围绕一张大型公告板系统(BBS)的照片,照片来自互联网普及之前的时代。这张图片引发了人们对这些系统运作方式的怀旧和技术讨论。 关键点包括:BBS在互联网广泛普及之前是重要的在线交流方式,通常在配备多个调制解调器的PC网络上运行。虽然有些人认为容量有限,但许多BBS通过多任务操作系统(如DESQview)或专用软件支持多个并发用户。照片中设置的规模——可能包含数十条电话线和计算机——引发了关于维护这种系统所需的工作量与运行它的“炫酷程度”的争论。 用户分享了拨号上网、下载共享软件以及BBS培养的独特社区的记忆,并将其与现代在线平台的算法性质进行了对比。讨论还涉及了当时使用的调制解调器、串行卡和网络技术等硬件的技术细节,突出了早期在线先驱的独创性和足智多谋。

由于提供的内容是PDF二进制数据流,其中包含大量非文本字符,无法直接翻译成可读的中文。它看起来像是图像或压缩数据的一部分,而不是人类可读的文本。

一场 Hacker News 的讨论围绕着一篇近期文章(以及链接的 PDF)展开,该文章详细描述了在创造“AI 亲密关系”中涉及的令人不安的情感劳动,特别关注数据标注员的经历。核心问题是 AI 开发背后的人力成本,尤其是在 AI 聊天机器人和“AI 女朋友”等领域。 文章强调,一些人,包括来自非洲的一名男子,被雇佣来提供逼真的回应,甚至参与角色扮演以训练这些 AI 模型——有时甚至是用于性暴露目的。评论员对这项工作的剥削性质表示震惊,并将其与人们对 AI 纯粹是技术的认知形成对比。 关于这项工作是仅仅一份工作,还是本质上具有创伤性,引发了争论。一些人指出,其他数据标注任务也存在类似的问题,并质疑应该采取什么具体的行动。另一些人强调了一些 AI 应用的欺骗性,用户认为他们正在与真人互动。讨论还涉及公司将这项劳动外包到印度等国家的情况,以及围绕“AI”解决方案的误导性营销,这些解决方案严重依赖人工输入。

启用 JavaScript 和 Cookie 以继续。

过去一年,作者一直在努力使编码代理真正具有协作性,为此赋予它们对项目的深入理解——超越仅仅是文件内容。最初的尝试侧重于手动向代理提供上下文,虽然有效但不可持续。各种解决方案被尝试过——规则、提取的会话数据和“技能”——但都受到难以持续捕捉*决策时刻*上下文的困扰。 突破来自于意识到 Git 的提交历史已经*记录*了会话。缺失的部分是详细提交信息的规范,解释代码更改的*原因*,而不仅仅是*内容*。这促成了“上下文提交”,一种受 Conventional Commits 启发的规范,在提交信息中使用结构化的行为行来记录意图、决策和学习到的信息。 这种方法消除了对单独上下文跟踪系统的需求,利用了 Git 本身的扩展性和并发性。一个简单的“回忆”技能允许代理主动搜索这段历史以获取推理依据。作者已经将此作为标准开源,希望得到更广泛的应用,并有可能与编码工具进行原生集成,最终目标是实现“更好的提交”——以及更知情、更具协作性的编码体验。

## 上下文提交:在Git历史中记录“为什么” 最近Hacker News上的一场讨论围绕着一项“开放标准”提案——上下文提交,旨在通过明确记录代码变更背后的*原因*,而不是仅仅记录*做了什么*,来改进Git历史。目前,提交信息通常侧重于“做了什么”,而忽略了“为什么”,这会阻碍理解,尤其是在项目增长和开发者变更的情况下。 核心思想是使用键值对(例如 `rejected(oauth-library)`)来构建提交信息,从而可以针对历史决策进行查询。虽然有些人认为提交正文足以解释意图,但支持者认为这种结构化方法更适合“代理编码”——即AI工具需要理解代码背后的逻辑。 这场辩论凸显了既定实践(例如引用外部问题跟踪器,如Jira)与对自包含、机器可读历史的渴望之间的紧张关系。人们对可执行性和潜在复杂性表示担忧,一些人建议现有的工具,如提交尾部,可以实现类似的结果。最终,这场讨论强调了在代码中清晰沟通的重要性,无论对于人类开发者还是日益复杂的AI助手。

启用 JavaScript 和 Cookie 以继续。

## 苦涩的教训与AI辅助写作:摘要 最近的Hacker News讨论围绕一篇论文展开,该论文认为“苦涩的教训”——即在足够算力下,扩展简单方法总是胜出的——并不需要特定的“效用函数”。作者承认使用Claude(一种LLM)作为起草伙伴,引发了关于作者身份和真实性的争论。 许多评论者担心依赖LLM进行散文写作会降低写作的清晰度和直接性,将其比作引入不准确性的图像人工放大。一些人认为,高质量的写作优先考虑简洁和清晰,而这些是LLM经常牺牲的品质。 一个关键点是,尽管LLM具有令人印象深刻的能力,但人们缺乏努力去*理解* LLM正在学习的内容。这些模型被视为黑盒子,而预处理和后处理仍然很初级。 作者为他们的流程辩护,表示他们提供了论点,而LLM完善了文笔,并认为对这种劳动分工感到不适,反映了人们对“苦涩的教训”本身的偏见。然而,其他人批评由此产生的写作可能缺乏真正的理解,并且不必要地冗长,强调了LLM在缺乏真正理解的情况下填补语义差距的风险。最终,这场讨论质疑了AI对作者身份的影响以及清晰简洁沟通的未来。

更多

联系我们 contact @ memedata.com