2024-08-27

27 篇热帖

2. Anthropic publishes the 'system prompts' that make Claude tick (techcrunch.com)

Anthropic 公开 Claude 模型系统提示词

核心事件与背景 生成式 AI 模型本身不具备人类智能,而是依赖“系统提示词”(System Prompts)来设定基本特质、行为准则及回复语气,以防止不当行为。出于竞争和安全(如防止提示词注入攻击)考量,大多数 AI 供应商通常对此严格保密。然而,为彰显道德与透明度,Anthropic 打破了这一惯例,公开发布了其最新模型(Claude 3 Opus、Claude 3.5 Sonnet 和 Claude 3 Haiku)在 iOS、Android 和 Web 端的系统提示词。

具体举措与更新机制 Anthropic 开发者关系负责人 Alex Albert 表示,公司计划将此类披露常态化,并在官方文档中新增了“系统提示词发布说明”板块,用于定期记录默认提示词的变更历史(注:该默认提示词变更不影响 API 用户)。

提示词的关键设定与细节 最新公布的提示词(7月12日版)详细规定了模型的功能限制与人格特征:

  • 功能与安全限制:明确禁止模型打开 URL、链接或视频;严格限制面部识别功能,要求模型在图像处理中表现为“脸盲”,绝不识别或命名图像中的人物。
  • 性格与语气塑造:提示词的撰写方式类似于戏剧角色的性格分析表。例如,Claude 3 Opus 被设定为聪明、充满求知欲且乐于探讨各类话题;要求在争议话题上保持客观中立;并明确禁止使用“certainly”或“absolutely”作为回复的开头。

本质揭示与行业影响 这些精心编写的提示词虽然营造出屏幕另一端存在独立意识的错觉,但实际上揭示了生成式 AI 的本质:在缺乏人类指令和引导的情况下,模型仅仅是空白的统计预测系统。作为首家公开系统提示词更新日志的主要 AI 供应商,Anthropic 的透明化举措不仅打破了行业惯例,也向其他竞争对手施加了公开其系统提示词的压力。

4. Box64 and RISC-V in 2024: What It Takes to Run the Witcher 3 on RISC-V (box86.org)
5. New 0-Day Attacks Linked to China's 'Volt Typhoon' (krebsonsecurity.com)

新零日攻击关联中国“伏特台风”组织

网络安全研究人员发现,许多互联网及IT服务提供商使用的软件 Versa Director 存在一个零日漏洞(CVE-2024-39717),正被恶意黑客利用。研究人员认为,该活动与中国网络间谍组织“伏特台风” 有关。该组织长期专注于渗透美国关键网络,为未来冲突中破坏美亚通信奠定基础。

漏洞详情与影响

  • 受影响对象:Versa Director 系统主要被互联网服务提供商(ISP)和托管服务提供商(MSP)使用,这些服务商为众多中小型企业提供IT支持。
  • 漏洞机制:该漏洞允许攻击者向 vulnerable 系统上传任意文件。厂商 Versa 在8月26日发布的安全公告中指出,已发布修复版本(Versa Director 22.1.4)。厂商同时批评部分客户未能遵守系统强化和防火墙指南,导致管理端口暴露于互联网,为攻击者提供了初始访问途径。
  • 发现过程:漏洞的发现源于Lumen Technologies安全研究部门Black Lotus Labs的骨干网遥测数据。研究员Michael Horka于2024年6月底首次报告相关活动。最早可追溯的攻击发生于6月12日的一家美国ISP。

与“伏特台风”组织的关联

Black Lotus Labs以 “中等置信度” 评估认为此次攻击系“伏特台风”所为,并指出攻击手法符合该组织特征:

  1. 目标选择:针对IT基础设施提供商发动零日攻击。
  2. 技术手法:使用基于Java的内存驻留后门。
  3. 历史活动:该组织别名“Bronze Silhouette”,自2023年起多次被美国国家安全局(NSA)、联邦调查局(FBI)和网络安全与基础设施安全局(CISA)点名警告。其攻击模式包括:
    • 利用小型办公室/家庭办公室(SOHO)网络设备隐藏活动。
    • 滥用受感染的SOHO路由器组建“KV僵尸网络”,为多个中国国家支持的黑客组织提供隐蔽数据传输通道。
    • 长期针对美国及海外领土(如关岛)的通信、能源、交通、水务等关键基础设施网络进行渗透,意图为未来破坏性行动进行预置。

美方评估与回应

美国官方多次强调,“伏特台风”的活动 “不符合传统网络间谍或情报收集模式” ,其高置信度评估认为该组织正为潜在冲突中破坏运营技术(OT)资产而提前布局。2024年4月,FBI局长公开表示中国正发展在适当时机对美国关键基础设施“造成实体破坏”的能力,其计划旨在通过打击民用基础设施制造恐慌。

开发商与安全社区反馈

  • Lumen实验室的贡献:Black Lotus Labs在漏洞披露中扮演了关键角色,但Versa的官方公告中仅将其称为“第三方”,未具名致谢。Lumen工程师对此表示失望,但肯定漏洞修补后暴露于风险的系统数量已大幅减少。
  • 攻击规模:目前已在美国境内4家及境外1家ISP/MSP机构中发现植入的网页后门。

总结

此次事件凸显了针对IT供应链(尤其是服务于关键行业的软件平台)的零日攻击的严重威胁。攻击者一旦成功渗透此类系统,便可能横向移动至下游大量网络,对国家关键基础设施构成广泛且深远的风险。

7. 80% of AI Projects Crash and Burn, Billions Wasted Says Rand Report (salesforcedevops.net)

兰德公司最新报告揭示了人工智能项目的严峻现实:超过80%的项目失败,失败率是传统IT项目的两倍。报告基于对65名数据科学家和工程师的访谈,指出项目失败的主要原因并非技术本身,而在于人为因素和管理策略。

项目失败的核心原因:

  1. 领导与沟通脱节: 企业高层往往误解AI能力,设定不切实际的目标,并与技术团队沟通不畅。他们缺乏耐心,在项目展现价值前就轻易放弃或转移重心。
  2. 数据质量低下: 训练有效模型所需的数据常常不足、不均衡或缺乏背景信息。数据工程师短缺且不受重视,导致关键数据处理工作出现纰漏。
  3. 追求技术时髦: 工程师倾向于采用最新技术,而非选择最适合解决问题的方案,这导致方案过于复杂,资源浪费。
  4. 基础设施投资不足: 企业急于启动项目,却忽视了数据管理、模型部署和维护所需的基础设施建设,阻碍了原型向生产环境的转化。

报告提出的改进建议:

  • 明确目标与背景: 确保技术人员充分理解项目业务目的。
  • 选择持久问题: 专注于解决特定的长期业务问题,至少投入一年时间。
  • 问题导向而非技术导向: 根据实际问题选择合适技术,而非盲目追逐最新算法。
  • 加强基础设施投资: 在数据治理和模型部署基础设施上进行前期投入,能大幅缩短项目周期。
  • 认清AI局限性: 合理评估AI的能力边界,避免将其视为万能解药。

学术界的挑战: 报告指出,学术界存在重发表轻应用的倾向,研究往往追求新颖性而非实用性,且缺乏真实世界的数据集,导致研究与行业需求脱节。

结论: 这份报告为AI行业敲响了警钟。成功的AI实施需要弥合宣传与现实之间的差距,夯实数据质量、基础设施和业务-技术团队沟通等基础。组织需要具备耐心和长期承诺,以平衡技术创新与实际应用,从而真正释放AI的潜力。

8. Nuclear reactors a mile underground promise safe, cheap power (newatlas.com)

Deep Fission 深地核反应堆技术方案

背景与行业痛点

核能燃料成本极低且能量密度极高,但其发展长期受限于安全担忧和高昂的建设成本。传统核电站的高成本并非源于核技术或燃料本身,而是为了防范灾难性事故而建造的庞大土木工程,包括厚重的不锈钢压力容器、钢筋混凝土安全壳、地基、加压器及冷却系统等。

创新解决方案

初创公司 Deep Fission 提出了一种颠覆性的设计:建造一个直径小于30英寸(76厘米)的小型核反应堆,并将其放置在一英里(1.6公里)深的钻井底部。该方案旨在利用地下深层环境省去昂贵的地面土木工程,从而同时解决经济与安全问题。

技术结构与关键功能

  • 基础设计:基于传统压水反应堆(PWR)设计,运行压力为160个大气压,温度为315°C。使用与常规PWR相同类型的燃料和诸多相同组件。
  • 极简管路系统:通过两根管道与地面连接,一根向下注水,另一根向上输送蒸汽。除远程控制的调节棒外,反应堆几乎没有活动部件。
  • 自然加压与被动冷却:利用一英里高的水柱自身重量对反应堆进行加压(类似于深海环境),从而彻底省去加压器;冷却系统完全采用被动设计。
  • 天然安全壳:反应堆被包裹在远低于地下水位的固体岩层中,天然替代了昂贵的人工安全壳结构。若发生极端事故,只需直接填封钻井即可。
  • 自限性与易维护:反应堆设计具有物理自限性,过热时核反应会自动减弱。若需检查或维护,可通过缆绳在1至2小时内将反应堆提升至地面。

项目当前进展

Deep Fission 目前已与美国能源部(DOE)启动了预申请和申请审查流程,旨在推进该系统的开发,并为未来的试点工厂寻找最佳的地质选址。

10. The Arrest of Pavel Durov Is a Reminder That Telegram Is Not Encrypted (gizmodo.com)
11. The End of Finale (www.finalemusic.com)

Finale 软件停止开发的公告摘要

MakeMusic 公司正式宣布终止其拥有 35 年历史的乐谱软件 Finale 的开发。主要原因是技术栈老化、操作系统持续演变以及庞大的代码库,使得继续提供有价值的更新变得愈发困难。公司决定不再发布仅能带来边际提升的新版本。

核心变化与时间线

立即生效的变更:

  • Finale 及其关联工具(PrintMusic, Notepad, Songwriter)将不再有任何更新
  • 在 MakeMusic eStore 中无法再购买或升级 Finale。
  • 目前已安装 Finale 的设备可继续使用,除非操作系统发生不兼容变更。

2025年8月起生效的变更(宣布一年后):

  • 将无法在新设备上激活或重新激活 Finale。
  • Finale v27 或任何其他版本的技术支持将终止

用户过渡方案与支持

公司推荐用户转向由 Steinberg(雅马哈子公司)开发的 Dorico 乐谱软件。为促进过渡,推出特别优惠:

  • Finale 或 PrintMusic 的任何版本用户,可以 149 美元 的优惠价格购买 Dorico Pro(零售价 579 美元)。
  • MakeMusic 官网提供过渡指南(FAQ)以协助用户。

后续更新与澄清

  1. Finale 授权:在可预见的未来,激活服务仍可用,但未来操作系统变更可能影响其在新设备上的使用。
  2. 文件迁移:为确保用户能导出文件,所有购买或打算购买 Dorico Pro 交叉升级包的用户,现在可免费下载 Finale v27。该版本支持使用最新的 MusicXML 4.0 格式导出文件,便于将作品迁移至 Dorico 等软件。
  3. Dorico 版本:自 2025 年 4 月 30 日起,通过 Finale eStore 购买 Dorico 交叉升级的客户,将直接获得最新的 Dorico Pro 6

MakeMusic 对用户社区的长期支持表示感谢,并相信 Dorico 将为用户提供持续创新的工具。

13. Predicting the Future of Distributed Systems (blog.colinbreck.com)

分布式系统正经历重大变革,对象存储逐渐成为数据库核心,事务处理与分析处理的工具趋向融合,新的编程模型也在涌现。这些变化不仅影响系统编程方式,也深刻改变运营模式。然而,选择技术路径面临挑战:增量价值难以说服投资,具有跃变价值的新技术若缺乏迁移路径则风险高昂,而编程模型的演进路径尤其难以把握。

杰夫·贝索斯提出的“单向门”与“双向门”决策框架对技术选择极具指导意义。单向门决策影响深远且难以逆转,需谨慎决策;双向门决策后果较轻,可快速试错。技术选型往往是单向门决策,因其投资巨大、变更成本高昂。

对象存储是双向门决策的典范。它技术成熟、高度可靠,并持续创新。其架构优势显著:将复杂功能(如复制、事务性)下沉至存储层,简化应用开发。例如,利用Azure Blob存储构建消息队列,无需关注领导选举、数据复制等分布式难题。如今,从关系数据库到消息队列等各类系统都将其作为核心,尤其适用于事务型负载。对象存储功能不断扩展(跨区域复制、不可变性、分层存储等),且标准化程度高,便于实现合规、成本优化与数据生命周期管理。其未来发展趋势乐观:读写性能将持续提升,Parquet等存储格式可借助Iceberg、Delta Lake等开放表格式灵活演进,DuckDB等嵌入式处理库使其能在云端、本地服务器乃至浏览器和物联网设备间无缝迁移。对象存储的众多可选方案和迁移路径构成了“一系列双向门”。

新编程模型可能成为未来十年最具颠覆性的变化,它旨在将更多代码移入基础设施,并提升业务逻辑的可移植性与安全性。目前解决方案可分为三类:1)抽象分布式系统复杂状态管理的平台(如Kalix、Temporal);2)允许执行任意代码的运行时(如wasmCloud、Spin);3)独特的方案(如Golem、Unison)。尽管前景诱人,但当前选择此类技术如同面临一系列单向门:技术尚不成熟,生态系统(工具链、调试等)有待完善,且云服务商可能推出集成解决方案带来市场风险。最大机遇在于将应用中的辅助代码(如HTTP服务器、日志库)移入基础设施,使其可独立管理、安全补丁,业务逻辑从而具备跨环境可移植性。WebAssembly有望通过提供安全、可移植的代码运行环境及标准化接口,降低采纳风险。关键的采纳障碍包括:需要渐进迁移路径而非完全重写,以及避免供应商锁定。

总之,分布式系统的未来演变路径清晰:对象存储因其中立、灵活的双向门特性将继续普及;而新的编程模型虽潜力巨大,但因其目前呈现的单向门特性,采纳将更为谨慎。编程分布式系统的核心挑战在于部分失败和抽象泄露,新的模型尝试在不同的抽象层次上简化系统构建。最终,早期采纳者是否能获得竞争优势,以及行业何时能形成清晰的新范式,仍是待解之题。

14. Marketing to Engineers (www.bly.com)

向工程师营销的六大核心原则

本文作者 Robert W. Bly 结合其化学工程师背景及十年的 B2B 营销文案经验,总结了针对工程师群体进行营销的六项关键原则:

  1. 避免传统广告风格,注重专业与信息性 工程师通常对广告及广告从业者持负面看法,坚信自己的决策基于技术事实。因此,营销材料应专业且信息丰富,避免花哨的图形和夸张的“广告腔”,以免被工程师视为无用的推销废话。

  2. 摒弃“消费者导向”的创意手法 大量测试表明,直接、低调且专业的沟通方式比花哨的消费者风格广告更具转化力。应将工程师视为寻求问题解决方案的技术专家,避免缺乏事实支撑的强硬推销。

  3. 诉求逻辑而非情感,保持清晰直接 工程师的购买属于“深思熟虑的决策”,侧重于权衡事实和对比分析,而非冲动消费。文案必须清晰、有深度,直接说明产品内容及如何满足需求,切忌使用制造悬念等肤浅的消费者营销套路。

  4. 强调产品功能与技术规格 与消费者广告侧重“利益”不同,工程师需要详细的性能特征、效率和技术规格来辅助决策。特别是针对 OEM(原始设备制造商)和系统集成商等买家,他们更关注产品规格是否能满足其技术整合需求,而非基础利益。

  5. 合理使用行业术语(行话) 虽然面向大众沟通时应避免行话,但在针对工程师等技术受众时,恰当使用行业术语能证明营销者“懂行”。使用对方的专业语言进行交流,可以有效拉近距离并增强信任感。

  6. 运用工程师专属的“视觉语言” 工程师习惯通过图表、数据表格、工程图纸、数学公式等视觉工具进行交流。在营销材料中使用目标受众专业领域的特定视觉元素(如电气工程师的电路图、程序员的流程图),不仅能提高信息传递效率,还能强化材料的技术专业属性,打消其对“推销废话”的顾虑。

16. The possibilities for dark matter have shrunk (www.sciencenews.org)

LZ实验最新搜寻未发现暗物质迹象

科学家近期大幅缩减了暗物质粒子的可能藏身范围。LUX-ZEPLIN(简称LZ)实验在8月26日举行的两场会议上报告,其最新搜寻排除了具有广泛属性的暗物质粒子的存在。暗物质的影响在星系和星系团尺度上可见,但从未被直接探测到。

LZ实验专门搜寻一种假设的暗物质粒子——弱相互作用大质量粒子,特别是质量高于90亿电子伏特的此类粒子(作为对比,质子质量约为10亿电子伏特)。该探测器内装有10吨液态氙,通过监测当WIMP粒子撞击液体时引发的原子核反冲来捕捉信号。

研究人员通过截面(即粒子发生相互作用的概率)来表征WIMP。此次报告的结果将最大可能截面缩小至此前结果所允许范围的约五分之一。这些发现于芝加哥举行的TeV粒子天体物理会议和圣保罗举行的惰性元素光探测会议上公布。

伦敦大学学院物理学家、LZ项目发言人Chamkaur Ghag表示:“我们正在开拓全新领域并取得巨大进展。”本次研究基于280天的数据。LZ的最终结果将基于1000天的数据,有望进一步缩小暗物质的可能性范围,或找到其存在的证据。

17. Intel SGX Fuse Key0, a.k.a. Root Provisioning Key Was Extracted by Researchers (twitter.com)

摘要:

文章内容呈现了一个技术错误提示,主要描述了在访问x.com网站时出现的问题。错误消息指出“Something went wrong”(出现问题),并安抚用户“don’t fret”(不要担心),建议再次尝试。关键细节包括:该问题可能由隐私相关扩展引起,这些扩展在x.com上可能导致功能异常。消息最后给出明确的行动建议,即禁用相关隐私扩展后重试访问。

结构与目的:

  • 目的:通知用户网站访问障碍,并提供一个简单的故障排除步骤,以帮助用户恢复正常使用。
  • 结构:消息以问题陈述开头,接着是安慰性语气,随后指出可能的原因(隐私扩展),最后以具体建议结尾。
  • 关键功能:识别并归因问题于特定用户设置(隐私扩展),并引导用户通过禁用扩展来解决问题,强调了用户端调整的重要性。

整体内容简短、直接,聚焦于技术问题的即时解决方案,不涉及深层技术细节或背景信息。

18. Snowden: The arrest of Durov is an assault on the basic human rights (twitter.com)

当前无法获取文章内容。提供的文本显示为网站错误提示:“出了点问题,但别担心——我们再试一次。一些隐私相关扩展程序可能会导致x.com出现问题。请禁用它们并重试。”

因此,无法基于实际文章内容生成关于“斯诺登称杜罗夫被捕是对基本人权的侵犯”的总结。建议检查文章链接或提供可访问的文本内容。

19. Notes on Buttondown.com (jmduke.com)

Buttondown.com 域名迁移项目总结

项目背景

2024年4月,Buttondown 斥资 85,000 美元购买了 buttondown.com 域名,这是该项目迄今为止最大的资本支出。至同年8月,平台已正式从 buttondown.email 全面迁移至 buttondown.com

技术架构与迁移挑战

  • 复杂架构:Buttondown 采用混合架构,营销和文档站点基于 Vercel/Next,核心应用基于 Django/Heroku,并通过 HAProxy 负载均衡器进行请求路由,这增加了迁移的复杂性。
  • 测试工具:团队引入了 hurl 作为 HAProxy 的测试工具,有效保障了迁移测试过程。

迁移过程与关键发现

  • SEO 与系统稳定性:尽管预期 Google 重新协商规范 URL 会影响 SEO 流量,但实际流量表现健康。由于迁移范围明确(仅将 Web 流量迁移至 .com,无需重新映射路径和 SMTP 流量),生产环境出现的问题远少于预期。
  • 主要难点:最困难的部分在于处理无法通过代码搜索(grep)查找的内容,例如其他网站上的外部链接和 OAuth 重定向 URL。
  • 渐进式策略:团队首先从不依赖 HAProxy 的独立域名(如文档站和演示站)开始迁移,为后续的全面平滑迁移建立了信心。
  • 项目周期:整体项目耗时大致为“三个月的规划与担忧、一周的代码搜索以及一周的后续问题处理”。

投资价值与成果

作者认为这笔支出非常值得。相比于收购其他业务或进行大规模营销等会带来持续日常运营成本的投资,购买域名是一项明确的固定成本。此外,此次迁移成功解决了用户常将品牌误称为“Buttondown Email”的问题,提升了品牌名称的准确性。

20. Splatt3R: Zero-Shot Gaussian Splatting from Uncalibrated Image Pairs (splatt3r.active.vision)

Splatt3R:从未校准图像对进行零样本高斯溅射

核心方法
Splatt3R是一种基于前馈模型的3D重建与新视图合成方法,仅需一对未经校准的自然图像作为输入,无需相机参数或深度信息即可预测3D高斯溅射(3D Gaussian Splat)。该方法在MASt3R(一种基础3D几何重建模型)的基础上进行扩展,不仅重建3D点云,还为每个点预测完整的高斯基元属性,包括协方差(由旋转四元数和尺度参数化)、球谐函数、不透明度及均值偏移,从而支持从任意视角进行实时渲染。

技术特点

  • 架构设计:采用Vision Transformer编码器同时处理双图像,通过Transformer解码器进行跨图像注意力交互。在原MASt3R的两个预测头(3D点云/置信度、特征匹配)之外,新增第三个头以预测高斯属性,实现从像素到高斯基元的直接转换。
  • 训练策略:首先利用预训练MASt3R模型初始化几何参数,仅训练新增的高斯预测头。优化过程分为两阶段:先优化3D点云几何损失,再优化新视图合成损失,以避免从立体视图训练高斯溅射时陷入局部最小值。
  • 损失掩码策略:提出一种新颖的损失掩码计算方法,仅监督渲染图像中与输入图像存在直接像素对应的区域。该策略对处理输入视图未覆盖的外推视角至关重要,提升了模型在真实场景中的泛化能力。

性能与结果

  • 数据集与评估:在ScanNet++数据集上训练,并展示了对未校准野外图像(如手机拍摄图像对)的优秀泛化能力。
  • 效率:可在512×512分辨率下以4FPS的速度重建场景,生成的高斯溅射支持实时渲染。
  • 应用场景:适用于从立体图像对直接进行3D场景重建与自由视角合成,无需相机标定或深度先验。

研究意义
Splatt3R通过将几何重建与外观预测统一于前馈模型中,实现了从非结构化图像对到高质量3D表示的零样本转换,为实时3D内容生成提供了高效且通用的解决方案。

21. Erasure Coding for Distributed Systems (transactional.blog)

擦除编码在分布式系统中的应用总结

擦除编码基础

擦除编码是一种在存储效率容错能力之间进行权衡的技术。其核心是配置参数 km

  • k:数据被分割成的分片数量。要恢复原始数据,至少需要读取 k 个分片。每个分片大小为原始文件的 1/k
  • m:生成的校验(奇偶)分片数量,代表容错能力,即可容忍的丢失分片数。
  • n:生成的分片总数(n = k + m)。 编码方案通常表示为 k+m。例如,17+3 的方案使用约1.18倍存储空间,可容忍3个分片丢失。这种方案比完整复制(最高耐用性但成本高)和分片存储(最低成本但无冗余)提供了更灵活的中间选择。

在分布式系统中的应用

1. 降低存储成本与提升耐用性

通过将数据以擦除编码方式分布到更多节点,可在提高耐用性的同时显著减少所需存储空间。例如,将3个完整副本替换为(10+5)编码,总数据量减半,但容错能力从1个节点故障提升至5个。

2. 改善尾部延迟

在缓存等系统中,使用擦除编码允许系统不等待最慢的 m 个节点的响应即可完成读取,从而降低读取延迟。

3. 与法定人数系统的结合

  • 读操作:与擦除编码的(k+m)模式兼容,从任意 k 个响应即可解码。
  • 写操作:法定人数写入允许只向 q 个节点写入(q > n/2),但直接应用擦除编码可能无法节省空间。研究如 HRaft 提出自适应编码:根据当前可用副本数动态调整编码参数(例如,5个节点时用3+2,4个时用2+2,3个时用1+2即完整复制)。这在高可用、快恢复场景下能优化资源使用。

使用与实现要点

常用库与工具

  • JerasureIntel ISA-L 是广泛使用的擦除编码库。
  • liberasurecode 提供了统一抽象层,但会在每个分片中添加元数据。
  • pyeclib 等语言绑定可简化使用。

解码成本差异

解码所需计算资源取决于参与恢复的分片类型:

  • 仅使用数据分片解码:计算简单。
  • 使用校验分片解码:需要解线性方程组(如高斯消元),计算成本随所需校验分片数增加而上升。

库间差异

不同库的实现并非完全等价:

  • Jerasure 会对输出进行置换,因此解码必须与编码使用的库和配置完全一致。
  • ISA-L 不进行置换,允许更灵活的解码。
  • 其他库如 zfeccm256leopard 等在算法效率上各有侧重。

实现效率优化

擦除编码的高效实现涉及算法选择底层优化两个层面。

1. 算法效率

  • 对于校验分片数 m = 1,2,3 的情况,存在仅使用XOR运算的专用高效算法(如RAID-6的Liberation编码)。
  • 一般情况使用Reed-Solomon码,通过范德蒙德矩阵或柯西矩阵构造编码矩阵。解码通常采用高斯消元,但更快的算法包括对柯西矩阵的优化及使用快速傅里叶变换(如leopard库)。

2. 实现效率优化

  • 底层实现:用C语言实现,依赖编译器自动向量化。
  • SIMD指令利用:使用如highwayxsimd等向量化库,或编译器内置函数,并针对特定架构(如-march=native)优化。
  • 核心运算优化:伽罗瓦域(GF(256))的乘法和加法是关键。优化方向包括:
    • 使用优化的GF(256)运算库(如catid/gf256)。
    • 手写向量化的编码/解码核心函数。
    • 对于固定k+m配置,可进一步将矩阵乘法转换为一系列优化指令,并通过工具(如tvm-ec)探索最佳指令调度。

总结

擦除编码是分布式存储系统中平衡成本、耐用性和性能的关键技术。其有效应用需要理解k+m参数配置的权衡,并根据系统负载(CPU vs. 存储)、故障模型和访问模式选择合适的方案与实现库。在算法和实现层面持续的优化,使得擦除编码能够在追求存储效率的同时,保持可接受的读写性能。

22. Tinybox of tinygrad by George Hotz is finally entering production (twitter.com)

文章总结

  • 核心动态:由 George Hotz 开发的 tinygrad 项目旗下的硬件产品 Tinybox 已正式进入生产阶段。
  • 正文状态:文章正文内容未能成功加载。页面显示 X(原 Twitter)平台的错误提示,指出可能是由于某些与隐私保护相关的浏览器扩展程序引发冲突,导致内容无法正常显示,并建议禁用相关扩展后重试。
23. Eating the Birds of America: Audubon's Culinary Reviews of America's Birds (usbirdhistory.com)

奥杜邦的美国鸟类食评摘要

本文介绍了美国著名鸟类学家及画家约翰·詹姆斯·奥杜邦在研究美国鸟类时的一个特殊习惯:品尝鸟类的肉质,并将味道评价记录在其巨著《鸟类学传记》中。这一行为发生在19世纪,当时野生鸟类是美国城乡常见的食材。

核心内容:

  • 目的与背景:奥杜邦品尝鸟类是为了完善其著作《鸟类学传记》(共五卷),该书是为其鸿篇巨制《美国鸟类》(包含435幅真人大小鸟类画作)配套的文字说明。在描述鸟类外观、习性的同时,他常加入肉质风味评价。
  • 历史记录:他品尝的鸟类种类极多,远超当时市场上常见的120种鸟类(据1867年统计),因此他可能持有“食用美国鸟类种类最多”的记录。
  • 法律保护:自1918年美国《候鸟条约法》生效后,猎杀或交易大多数候鸟成为联邦犯罪,此记录因此无法被超越。

分类评价概览:

  1. 游戏鸟

    • 评价较佳:环颈鸭、普通绒鸭肉质“极好”;加拿大雁“美味”;木鸭在秋季“鲜嫩多汁”;艾草松鸡(尤以越橘喂养者为佳)和哀鸽“非常精美”。
    • 评价较差:鹊鸭“有腥味、令人不适”;普通金眼鸭肉“不宜食用”;帆背潜鸭“坚韧、腥臊”。
  2. 后院鸟类与鸣禽

    • 常见食用种:知更鸟“肥美多汁”;食米鸟“极其嫩滑多汁”;棕头歌雀更被视为美味。
    • 其他种类:路易斯水鸫冬季“肥腻”、“极其美味”;紫雀肉“等同于任何其他小鸟”;雪松太平鸟甚至会被做成馅饼。
    • 评价不佳:鹩哥肉“干燥无味”;沼泽雀虽肥嫩,但肉有“芦苇味”;啄木鸟肉多有蚂蚁味。
  3. 海鸟与滨鸟

    • 普遍评价低:玫瑰琵鹭“油腻且难吃”;塘鹅和美洲鹈鹕“坚韧腥臊”,仅推荐给极度饥饿者;潜鸟肉“坚韧、腥臊”。
    • 可食用种:黑浮鸥“尚可”;幼年美洲鸻“肥美鲜嫩”;斑鹬在秋季“美味”;黑颈长脚鹬“普通”。
    • 特殊做法:渔民会将银鸥盐渍保存过冬食用。
  4. 受保护或已灭绝鸟类

    • 旅鸽(已灭绝):肉深色但可接受;幼鸟“备受推崇”。
    • 卡罗琳鹦鹉(已灭绝):幼鸟肉“可食”。
    • 美洲鹤(濒危):幼鸟“鲜嫩多汁”,成鸟则“坚韧”。
    • 白头海雕:幼鸟肉“如小牛肉般鲜嫩”。
    • 雪鸮:肉“似鸡肉,不算粗糙”。

重要事例: 文中以奥杜邦1826年的一次经历为例,他详细观察并首次在文字中描述了一种当时科学未知的海鸟(后命名为奥杜邦海鸥),并品尝了其肉,评价为“肥腻但坚韧,有强烈气味,不宜食用”。这体现了他将品尝作为科学观察一部分的习惯。

结论: 奥杜邦的食评为19世纪美国鸟类的生态与人类利用史提供了一个独特视角。尽管其中许多鸟类如今已受法律严格保护,他的记录仍是一份珍贵的、关于鸟类风味的历史资料。

24. MiniJinja: Learnings from Building a Template Engine in Rust (lucumr.pocoo.org)

MiniJinja:在Rust中构建模板引擎的经验总结

本文作者分享了构建MiniJinja(一个用Rust实现的Jinja2模板引擎)的经验与心得。MiniJinja旨在提供高兼容性的Jinja2实现,并拥有出色的性能和友好的API。

创建MiniJinja的动机

尽管服务器端渲染HTML的需求减少,但Jinja2模板在生成YAML、LLM提示等文本场景中依然常见。作者最初因一个需要动态加载模板的基础设施自动化实验而创建了MiniJinja。现有的Rust Jinja引擎要么不兼容(如使用代码生成的Askama),要么对Jinja2特性支持不足。

核心设计与实现

1. 运行时值与对象系统

MiniJinja构建了一个为文本生成优化的小型动态语言。其核心是Value类型,表示为一个枚举,包含UndefinedNoneBool、数字、String(使用Arc<str>和优化的SmallStr)以及Object等变体。SmallStr可将不超过22字节的字符串数据内联存储,优化内存布局。

对象通过Object trait实现,允许将Rust原生类型(如BTreeMapVec)暴露给模板引擎。DynObject是一个包装了Arc<dyn Object>的智能指针,支持借用和对象安全。引擎大量使用Arc进行引用计数,但没有采用垃圾回收,需手动处理循环引用。

2. 枚举器与对象行为

对象通过enumerate方法返回Enumerator,定义其迭代方式。Enumerator有多种变体:NonEnumerable(不可迭代)、EmptySeq(usize)(序列)、Iter(Box<dyn Iterator>)Values(Vec<Value>)。引擎结合ObjectRepr(如MapSeq)决定对象在模板中的行为(如索引方式、循环迭代内容)。

Enumerator与迭代器不同,它可能只描述如何迭代(例如Seq仅告知长度)。引擎通过检查迭代器的size_hint来假设其长度,从而像对待列表一样操作具有已知长度的可迭代对象(如range(10))。

3. 虚拟机与字节码

MiniJinja使用基于AST的字节码编译器和栈式VM。AST节点包含Spanned<T>包装器,存储代码位置信息以供调试。字节码指令集包括EmitRawStoreLocalLookupLoadConstJump等,操作码结构力求紧凑。

VM在循环中逐步执行指令,维护一个值栈。的实现是一个挑战,因为宏持有的指令引用了具有生命周期的模板源码。解决方案是让宏存储一个macro_ref_id,在执行时从State动态查找指令,但宏不能从模板中“返回”,只能被导入。

4. 过滤器的巧妙API

add_filter函数展示了Rust trait系统的强大。它接受具有不同签名(如fn slugify(value: String) -> Stringfn timeformat(state: &State, ts: f64) -> String)的函数。这通过一系列trait实现:

  • FunctionArgs:辅助类型转换,为不同大小的元组实现。
  • ArgType:知道如何将Value转换为所需参数类型。
  • Filter:为符合FunctionArgs签名且返回FunctionResult的函数实现。
  • FunctionResult:表示函数可返回Value、可转换为Value的类型或Result

这种设计允许用户以非常自然和类型安全的方式编写过滤器。

结论

构建MiniJinja让作者在Rust的创意API设计方面收获颇丰。引擎的公共API设计出色,文档完备。文中探讨的许多模式(如值系统、对象trait、枚举器协议、宏处理和trait魔法)对Rust项目开发具有普遍参考价值。MiniJinja不仅是一个兼容且高效的Jinja2引擎,其代码库也是学习在Rust中构建运行时和对象系统的良好范例。

25. Qualcomm Oryon CPU Core Design (chipsandcheese.com)

Qualcomm Oryon CPU核心设计摘要

前端设计与分支预测

  • 分支预测:采用TAGE(Tagged Geometric length)预测方法,灵活选择历史长度,条件预测器存储预算为80 KB,间接分支预测器预算较小。
  • 解码器:8宽解码器,每周期从指令缓存取64字节,有助于填充流水线和缓解分支误预测后的影响。
  • 误预测惩罚:13周期,平衡微架构性能,与AMD Zen 4的11-18周期范围相当。

执行引擎与流水线

  • 8宽流水线:高通选择8宽设计以预留未来性能提升空间,向量和标量引擎均配有物理寄存器文件。
  • 数据馈送:每个引擎每周期可处理4个加载,高于AMD Zen 4的整数3个和向量2个。
  • 调度模型:采用分布式调度,便于选择最旧就绪指令,调度容量大于加载/存储队列容量。

加载/存储单元

  • 调度器:拥有64条目大型调度器,支持操作如存储数据,提升吞吐量。
  • 微基准测试:显示62个突出加载在重命名处出现调度停顿,暗示调度限制;存储可能有更多调度容量。

缓存与内存系统

  • L1数据缓存:96 KB容量,多端口设计,使用标准位单元以满足时钟频率要求。
  • TLB设计
    • DTLB:224条目,平衡时序与容量。
    • L2 TLB:容量异常大,可能达到数万条目(如每条目覆盖多个4KB页),最小化地址翻译延迟。
    • 预取策略:积极预取,提前将翻译加载至TLB,减少页面遍历压力。
  • L2缓存:12 MB集成缓存,延迟15-20周期,由多个切片组成;每个核心典型数据占用2-3 MB,单线程可利用全容量。
  • 系统级缓存(SLC):6 MB动态分配缓存,对CPU核心作用较小,主要服务GPU和显示引擎。

内存带宽与预取

  • 带宽:通过积极预取,单线程DRAM带宽可达近100 GB/s,远高于其他架构(如30 GB/s)。
  • 预取器:多种标准与专有预取器,针对不同访问模式隐藏延迟,线性访问模式下几乎完全隐藏L2延迟。

系统级配置

  • 核心架构:Snapdragon X Elite包含12核心,分为三个四核集群;早期L2互连限制导致未采用更大集群。
  • 设计意图:12核心支持在不同功率目标下扩展性能,适应各种散热条件,与Intel和AMD的多核心计数策略形成对比。

总结

  • Oryon是高通长期未有的定制CPU核心,专注于高性能、高效缓存和预取策略。
  • 设计平衡了时序、容量和未来扩展性,为高通在PC和移动设备市场提供竞争力。
26. Launch HN: Bucket Robotics (YC S24) – Defect detection for molded and cast parts