2024-05-20

32 篇热帖

1. ICC prosecutor seeks arrest warrants against Sinwar and Netanyahu for war crimes (www.cnn.com)
2. The Lunacy of Artemis (idlewords.com)

阿尔忒弥斯计划的混乱性

文章批评了NASA的阿尔忒弥斯重返月球计划,认为其在成本、能力和安全性上远逊于五十多年前的阿波罗计划。以下是核心要点:

与阿波罗计划的对比

  • 成本:阿波罗17号任务耗资33亿美元(2023年美元),而阿尔忒弥斯3号的首次载人登月任务预估成本高达70-100亿美元。
  • 能力:阿波罗任务单次发射即可完成,且科学产出更多。阿尔忒弥斯3号任务需要十余次重型火箭发射,且科学回报更少。
  • 安全性:阿尔忒弥斯计划引入了阿波罗时代认为不可接受的风险。

SLS火箭:昂贵且能力不足

  • 设计缺陷:SLS火箭推力虽大于土星五号,但因上面级过弱,其地月转移运力仅27吨,远低于土星五号的49吨,无法执行阿波罗式的直接登月任务。
  • 成本高昂:每两年发射一次,单次发射成本约40-50亿美元。使用退役的航天飞机主发动机,翻新或重新生产均代价巨大。
  • 产能瓶颈:手工打造、低发射频率导致操作熟练度下降,无法支持充分的测试飞行。

猎户座飞船:臃肿且动力不足

  • 重量问题:原设计容纳6名宇航员,现仅搭载4人,导致质量冗余,几乎是阿波罗指令舱的两倍。
  • 推进剂短缺:配套的欧洲服务模块推进剂过少,无法支持飞船独立进入和离开实用的环月轨道。
  • 级联影响:过大的飞船需要大型逃逸塔,进一步增加重量,影响降落伞和隔热盾设计。

轨道选择:NRHO的权衡与风险

  • 妥协选择:由于火箭和飞船能力限制,任务选择近直线晕轨道(NRHO)而非更实用的低月球轨道。
  • 安全风险:NRHO轨道使得中止登月返回时间大幅延长(可能数天),显著增加了宇航员在紧急情况下的风险,削弱了任务灵活性。
  • 任务时长约束:月面停留时间被NRHO的6.5天轨道周期所固定,缺乏灵活性。

Gateway空间站:政治产物

  • 技术必要性存疑:首次阿尔忒弥斯登月任务已被证明无需Gateway,但其建造仍是计划核心。
  • 主要作用:更多是政治和组织管理工具,旨在通过国际合作、创造就业和确保预算连续性来保护计划不被终止。
  • 负面影响:增加复杂性和成本,挤占未来月面居住舱或火星相关技术的资金和时间。

着陆器与在轨加注:技术豪赌

  • SpaceX星舰着陆器设计:体型巨大、单体式设计,面临陆难度大、月面起飞未要求演示验证等问题。其设计更适配火星,而非最优月球着陆器。
  • 在轨加注挑战:计划依赖在地球低轨道进行大规模低温推进剂转移,这是从未验证过的复杂技术,面临测量、晃动、蒸发等难题。
  • 发射节奏压力:加注任务要求星舰达到约每六天一次的发射频率,远超当前任何火箭记录,时间窗口极其紧张。
  • Blue Origin方案:技术挑战更大,涉及在月球轨道转移液氢。

结论与根本矛盾

  • 内部逻辑冲突:如果突破性的在轨加注技术成功,将使昂贵的SLS/Orion和复杂的Gateway变得多余;如果失败,则计划无备份方案。
  • 系统性问题:文章指出NASA的载人航天部门存在机构性失真、管理臃肿、为满足不切实际的时间表而扭曲工程标准等问题,延续了导致过去航天飞机事故的文化弊病。
  • 核心警告:阿尔忒弥斯计划代表着美国国家航天局工程能力的衰退,其混乱的架构和政治化的管理,而非技术限制,是重返月球的主要障碍。
3. 3M executives convinced a scientist forever chemicals in human blood were safe (www.propublica.org)

1997年,3M公司科学家克里斯·汉森受命检测人体血液是否受化学污染,结果在从未接触3M产品的人群血液中,发现了该公司生产的“永久化学物”全氟辛烷磺酸(PFOS)。她的上司吉姆·约翰逊对此反应神秘,称“这改变了一切”,随后其上级戴尔·培根质疑她的方法。汉森反复验证,确认了PFOS的普遍存在。

然而,汉森不知道的是,3M早在20世纪70年代的动物实验中就已发现PFOS具有剧毒(大鼠和猴子死亡),且其代谢物能在人体和环境长久累积。公司咨询的毒理学家哈罗德·霍奇曾警告“可能产生严重问题”,但其警告被保密,生产规模却持续扩大。公司的秘密策略包括:信息分块、沉默、形成保密同盟。

汉森的研究结果间接促使3M于1998年向美国环保署(EPA)报告了在人群中发现PFOS,但隐瞒了动物毒性数据,并声称“无不良影响”。1999年,汉森向CEO利维奥·德西蒙内汇报时,会议充满质疑,德西蒙内甚至睡着。会后她的工作被严格限制,研究权被转交。

2000年,3M在EPA压力下宣布停产PFOS,但声称“不是健康问题”。公司长期利用保密和法律策略对抗监管与诉讼,直到2006年因未及时披露危害被罚款150万美元,2018年为解决明尼苏达州污染诉讼赔付8.5亿美元。

汉森本人因公司文化的施压而长期回避该议题,直到2021年接触外部报道后,才重新审视已知的PFOS危害证据(影响免疫、肝脏、发育等)。2022年离职后,她选择公开往事。

退休科学家约翰逊透露,他早已知晓PFOS的累积性,但作为“忠诚士兵”选择沉默,并将汉森视为执行验证任务的工具人。他的行为揭示了公司内部将秘密保持在特定“隔间”内的文化。

PFAS(全氟和多氟烷基物质)污染现已全球性蔓延。科学研究不断揭示其与癌症、免疫系统损害、生殖问题、甲状腺疾病等的关联。2024年,EPA将PFOS等列为“可能致癌物”并制定饮用水标准。3M虽于2022年承诺在2025年底前全面停产PFAS,但其污染遗留问题严重,清理成本巨大(如125亿美元和解协议)。这起事件展示了企业如何系统性隐瞒环境健康风险,以及由此导致的广泛而持久的生态与公共健康灾难。

4. Llama3 implemented from scratch (github.com)

Llama3 从零实现总结

整体目标与方法

本文档展示了如何从零开始逐步实现Llama3模型,通过手动加载和操作每一个张量与矩阵乘法来实现。代码基于Meta官方提供的Llama3-8B模型权重文件,需预先下载。

核心实现步骤

1. 模型配置与分词器

  • 模型配置:从params.json加载配置,包括维度(4096)、层数(32)、注意力头数(32)、KV头数(8)、词汇表大小(128256)等关键参数。
  • 分词器:使用tiktoken库实现,加载预训练的BPE分词模型,定义了特殊标记(如<|begin_of_text|>),将文本转换为token序列。

2. 模型权重加载与文本处理

  • 直接从PyTorch保存的权重文件加载张量(如tok_embeddings.weight、各层注意力权重)。
  • 将提示文本分词,并转换为张量,例如提示"the answer to the ultimate question..."被转换为包含17个token的序列。

3. 嵌入层与标准化

  • 通过嵌入层将token转换为4096维的向量表示。
  • 使用RMS标准化对嵌入向量进行归一化,避免零均值问题。

4. Transformer层实现(以第一层为例)

a. 注意力机制(自注意力)

  • 查询、键、值计算:从模型加载权重矩阵,将其重塑为按注意力头组织的形状(例如,查询权重重塑为[32, 128, 4096])。
  • 旋转位置编码:对查询和键向量应用RoPE,通过复数乘法旋转向量对,为每个token的位置注入位置信息。旋转角度基于rope_theta和token位置生成。
  • 注意力得分计算:计算查询和键的点积,并应用缩放(除以sqrt(head_dim))。
  • 掩码与Softmax:应用上三角掩码(防止看到未来token),然后进行Softmax归一化,得到注意力权重。
  • 值聚合:使用注意力权重对值向量进行加权求和,得到上下文向量。
  • 多头合并:重复上述过程计算所有32个头的注意力,然后将结果拼接,通过输出权重矩阵进行线性变换。
  • 残差连接:将注意力输出加到原始嵌入上。

b. 前馈网络

  • 对经过标准化的嵌入应用SwiGLU激活函数前馈网络(使用权重w1, w2, w3)。
  • 将前馈网络的输出与注意力输出的残差相加,完成一个Transformer层的处理。

5. 完整模型推理循环

  • 上述注意力与前馈过程在所有32个层中循环执行,每层更新嵌入表示。
  • 最终嵌入经过最后的RMS标准化。

6. 输出预测

  • 使用输出权重矩阵将最终嵌入(取最后一个token的嵌入)转换为词汇表维度的logits。
  • 通过argmax选择概率最高的token作为预测结果。

验证结果

  • 对提示"the answer to the ultimate question of life, the universe, and everything is ",模型成功预测出token2983,解码后为"42",与《银河系漫游指南》的经典答案一致,验证了从零实现的正确性。

关键技术点

  • RoPE:使用复数乘法实现旋转位置编码,为查询和键注入相对位置信息。
  • GQA:键和值权重在多个注意力头之间共享(此处为每4个查询头共享1个KV头),以提高效率。
  • SwiGLU:现代LLM中常用的前馈网络激活函数,增强了模型的非线性表达能力。
  • RMS标准化:标准化嵌入向量,稳定训练与推理。
  • 因果掩码:确保自回归生成过程中,每个token只能关注其之前的token。
5. Coding My Handwriting (www.amygoodchild.com)

这篇文章介绍了作者如何使用JavaScript和p5.js创建自定义的草书手写字体,主要分为以下几个部分:

  1. 项目起始:作者最初认为草书过于复杂,但最终决定尝试。此前他已创建过一个分体式(block script)字母表,其流程是:手动定义每个字母路径的关键点(约10个/字母)→ 使用Chaikin曲线算法平滑路径 → 将路径转换为可变宽度的形状 → 用p5.js绘制。

  2. 设计字母工具:为了优化设计流程,作者在p5.js编辑器中创建了一个辅助工具。该工具允许:

    • 通过点击放置路径关键点,并实时显示平滑后的曲线。
    • 编辑已放置的点。
    • 导出路径坐标。
    • 加载个人手写样本图片进行描摹。
    • 为每个字母创建了2-3个不同的路径选项以增加变化。
  3. 草书连接挑战与解决方案

    • 问题:简单地将相邻字母的路径直接连接,会导致连接处不自然(如笔画穿过字母或产生突起)。
    • 解决方案:作者为每个字母路径的开头和结尾引入了一个连接属性数字(0, 1, 2, 3),分别代表“不可连接”、“在基线附近连接”、“在基线稍上方连接”、“在x高度附近连接”。生成单词时,程序会根据相邻字母的连接属性,动态调整当前字母路径的首尾点(例如增删点、改变位置),以确保连接流畅。
  4. 生成单词的流程

    1. 为单词中的每个字母选择一个基础路径(从2-3个选项中随机选取)。
    2. 根据选定的路径及其与前、后字母的连接属性信息,调用每个字母的 adjust 函数来调整其路径点,以适应相邻字母。
    3. 将所有调整后的字母路径拼接成一条或多条连续路径(遇到连接属性为0时断开)。
    4. 对拼接后的路径进行曲线平滑,转换为可变宽度形状,并添加一些基于Perlin噪声的抖动以模拟手写效果。
  5. 成果与应用

    • 视觉效果:最终生成的草书文本具有手写风格,且通过多次路径选项和动态调整实现了自然的变化。
    • 文件大小:草书字体类文件(压缩后)为26.1KB,比之前的分体式字体(9.7KB)更大,因为包含了多个路径选项和调整函数。作者提出了通过调整默认坐标基数(如从20改为200)来减少字符数的优化思路。
    • 实际使用:作者将该手写体用于图表标题、标签和注释,并享受直接操作路径的乐趣(如改变字母位置、笔画粗细)。此外,该字体的进化版本已被用于制作并出售独一无二的定制印刷品。
6. City in a Bottle – A 256 Byte Raycasting System (frankforce.com)

City in a Bottle:一个256字节的光线追踪城市生成器

这是一个仅由256字节的HTML文件实现的光线追踪引擎与程序化城市生成器

程序概述与触发方式

  • 核心:一个<canvas>元素,CSS宽度设为99%,ID为c
  • 触发:用户点击画布后,通过setInterval以约9毫秒(接近60帧/秒)的间隔启动主循环。循环内包含了一个紧凑的、可执行的JavaScript代码字符串。

主代码逻辑与结构

主代码是一个双层循环,外层循环遍历每个像素(共6000次,对应约99x60的画布),内层循环执行光线追踪

  1. 初始化与相机向量

    • 外层循环开始时,根据像素索引i计算相机光线的水平分量a和垂直分量b,并将时间变量t作为场景的起始X坐标,以实现动画效果。
    • 变量s初始化为b,用作背景的垂直渐变色。
  2. 光线追踪内循环

    • 这是程序最核心的部分。光线从相机出发(Z=1开始),沿(a, -b, 1)的方向步进。
    • 城市生成(碰撞检测):通过一个条件判断光线是否与建筑物相交。建筑高度由公式6 - (32<Z & 27<X%w && X/9^Z/8)*8%46生成。这个公式巧妙地组合了:
      • 32<Z:为相机留出起始空间。
      • 27<X%w:周期性创建街道和海滨空地。
      • X/9^Z/8:使用异或运算生成伪随机的建筑高度分布。
      • *8%46:缩放并限制最大高度,创造变化。
    • 纹理与阴影:当光线碰撞到物体(或条件满足)时,执行纹理和阴影计算:
      • 纹理(X&Y&Z)%3生成一种类似窗户的灰度纹理s
      • 阴影检测:将变量d设为Z/w(距离雾效),并将光线方向(a, b)重置为(1, 1),使其指向一个假设的光源(如太阳)。这使得内循环可以第二次运行,用于检测该点是否处于阴影中。如果第二次碰撞发生,则该点绘制为阴影。
  3. 像素绘制

    • 每个像素的亮度由公式1 - d*Z/w + s计算。
    • d*Z/w:结合距离雾效和阴影,模拟环境光遮蔽。
    • s:添加建筑纹理。
    • 最终亮度通过在canvas上绘制一个尺寸为1 - (上述亮度)的像素点来实现,值越小,像素越大、越亮。

视觉效果

程序最终生成了一个带有建筑纹理、距离雾效和动态阴影的微型城市侧面透视图,场景会随着时间向右平移,营造出动画效果。

后续发展

  • 此作品曾提交至Revision 2022演示聚会。
  • 在Shadertoy上出现了其高清、60帧/秒的着色器版本
  • 社区成员还制作了交互工具,允许实时调试程序参数。

总结来说,这个256字节的程序通过极度精简的代码,将光线追踪、程序化建模、纹理映射和实时阴影等复杂技术融合在一个微型演示中,展示了极限代码压缩下的惊人创造力。

7. Hertz Charging a Tesla Renter for Gas Was Not an Isolated Incident (www.thedrive.com)

Hertz电动车租赁错误收费问题

主要事件

Hertz租车公司在电动车租赁业务中遇到挑战,正在清算多余的特斯拉车辆,因需求有限和价值下降。近期,多名客户报告被错误收取汽油费,而他们的租用车辆(如特斯拉Model 3)实际使用电池,无需汽油。

具体案例

  1. 初始报道:一名客户租用特斯拉Model 3,归还时电量与取车时相同,却被收取277.39美元的“Skip the Pump”费用(该费用通常用于汽油车)。Hertz最初拒绝退款,直至媒体介入后才解决。
  2. Hertz回应:公司声明称错误源于“系统错误”,已修复,并主动联系受影响客户退款,同时提供未来电动车租赁信用作为补偿。

其他客户经历

  • Evan的案例:预订特斯拉Model 3长续航版,但取车时被降级为标准续航版,仅获22美元折扣。归还时电量21%,预期支付25美元充电费,却收到340.97美元“Skip the Pump”费。经社交媒体抗议后费用逆转,但退款需5-7工作日,仅获一天免费EV租赁。
  • Toan Le的案例:预付329.83美元租用Model 3一周,归还后被收费690.32美元,包括475.19美元燃油费、25美元充电费和125.01美元Supercharger使用费(通常成本约15美元)。燃油费虽被免除,但客户对大额账单不满,考虑不再选择Hertz。

影响与后续

  • 类似错误收费自2023年3月起已有报告,表明问题持续存在。
  • Hertz的系统错误和客户服务问题可能导致电动车租户犹豫,影响公司业务。
  • 文章强调,Hertz的电动车租赁体验不佳,包括车辆可用性、计费错误和补偿不足等问题。

关键点总结

  • Hertz的EV租赁面临挑战,错误收费非孤立事件。
  • 公司已修复系统错误并退款,但客户体验仍受影响。
  • 多个案例显示计费问题,可能损害客户信任。
8. Discussion: Job seekers can't find a job and Employers can't find an employees
9. C Style: My favorite C programming practices (2014) (github.com)

本文总结了作者推崇的C语言编程实践,旨在提高代码的正确性、可读性、简单性和可维护性。作者强调应避免过早优化,并鼓励使用现代C标准。

编译与工具链

  • 始终开启所有警告:推荐使用 -Wall -Wextra -Wpedantic 及更多特定警告选项,并配合优化级别编译以帮助检测错误。
  • 自动生成依赖:利用GCC的-M选项和Make规则,从源文件的#include指令自动生成对象文件依赖。
  • 使用现代标准:优先使用C11标准(-std=c11),避免使用编译器特定方言(如gnu11)。

代码格式与风格

  • 缩进只使用空格,不使用制表符(Tab),以避免不一致和配置问题。
  • 行宽严格限制每行不超过79个字符,以保持在80列视图下的可读性。
  • 注释主要使用//单行注释,减少复杂度和视觉干扰。为非标准库的#include添加注释,说明从中使用了哪些符号。
  • 语言:在代码、注释和文档中统一使用美式英语拼写

头文件与预处理

  • 依赖明确总是包含定义了你所用符号的头文件,不要依赖头文件自身的包含关系。
  • 避免统一头文件:倾向于模块化、松耦合的头文件设计。
  • 防止重复包含为所有头文件提供包含保护宏
  • 宏的使用:避免包裹控制流的宏。如果宏行为与函数不同,才使用大写字母命名。在函数内部定义仅用于该函数的宏。

变量、类型与声明

  • 使用const尽可能地使用const,以提高编译期正确性和代码可读性。函数原型中只为指针型参数使用const
  • 作用域最小化在需要时才声明变量,并尽可能晚地声明。减少变量作用域有助于提取函数和降低认知负荷。
  • 基本类型优先使用double而非float。使用stdbool.h中的bool类型表示布尔值。尽量避免使用unsigned类型,因其整数转换规则复杂,易引发漏洞。
  • 字符串初始化将字符串字面量初始化为数组(如char s[] = "..."),以便使用sizeof获取大小并保证安全性。
  • 命名:结构体使用TitleCase并typedef;枚举类型使用UPPERCASE_SNAKE,枚举值使用lowercase;枚举应定义其大小的常量;避免以_开头或以_t结尾的名称(它们被标准保留)。

函数与控制流

  • 参数传递:仅在需要NULL、数组或修改参数时使用指针参数;优先通过返回值传递结果而非修改指针参数
  • 结构体与参数:利用结构体和复合字面量实现可选命名参数,提升接口可读性。
  • 避免副作用不要在表达式中改变状态(如赋值、++)。避免在条件中进行复杂的非纯函数调用。
  • 控制结构总是使用花括号避免使用switch语句,因其容易出错,推荐使用条件表达式或函数指针表替代。
  • 断言:在程序可能出错的地方使用assert,但不要依赖断言进行错误处理或保证正确性。

数据结构与指针

  • 结构体设计文档化并提供结构体不变量检查函数。使用C11的匿名结构体和联合体来表达互斥的字段。使用指定初始化器初始化结构体。
  • 指针使用:结构体中仅在必要时使用指针(如表示空值、动态数组或不完整类型)。将void *尽快转换为具体类型。
  • 避免面向对象模拟C并非面向对象语言,不应强行模拟类、继承等特性。应接受C将数据与功能分离的特性,并学习Haskell等语言以编写更模块化、更少可变性的代码。
10. CVE-2024-4367 – Arbitrary JavaScript execution in PDF.js (codeanlabs.com)

CVE-2024-4367:PDF.js 中的任意 JavaScript 执行漏洞

该漏洞由 Codean Labs 发现,影响基于 JavaScript 的 PDF 查看器 PDF.js。攻击者只需诱使用户打开一个特制的 PDF 文件,即可立即执行任意 JavaScript 代码。

核心原理

漏洞源于 PDF.js 字体渲染代码中的一个疏忽。为了优化性能,PDF.js 会为每个字形预编译一个路径生成函数(new Function)。该函数的函数体由一系列渲染命令拼接而成,其中一个关键命令是 transform,其参数来源于 fontMatrix 数组。

问题在于,当 fontMatrix 数组来自 PDF 文档的元数据(/FontMatrix)时,其内容未被充分验证。攻击者可以在该数组中注入字符串值(在 PDF 中用括号 () 表示)。由于这些字符串在拼接函数体时被直接插入,且未加引号,攻击者可以通过精心构造字符串来闭合语法结构并注入任意 JavaScript 代码。

例如,设置 /FontMatrix [1 2 3 4 5 (0\); alert\('foobar')],会导致生成的函数体包含 c.transform(1,2,3,4,5,0\); alert\('foobar')),从而在 PDF 渲染时触发 alert 弹窗。

影响范围

  • 所有 Firefox 126 以下版本的用户,因为 Firefox 内置使用 PDF.js 显示 PDF。
  • 众多 Web 应用和 Electron 应用,这些应用通过 pdfjs-dist 包(每周下载量约 270 万)间接使用 PDF.js 提供 PDF 预览功能。

影响严重性

  • 在 Firefox 中,JavaScript 运行在 resource://pdf.js 源下。虽无法直接访问本地文件系统,但可调用文件下载对话框,甚至下载 file:// URL。同时,攻击者可获取打开的 PDF 文件的真实本地路径。
  • 在 Web 应用中,若无额外防护,此漏洞相当于一个 XSS 漏洞,可导致数据泄露或账户接管。
  • 在未沙盒化的 Electron 应用中,该漏洞甚至可导致原生代码执行

受影响版本与缓解

该漏洞自 PDF.js 首个公开版本(v0.8.1181)起即存在,但部分 2016-2017 年的版本因一个意外的拼写错误未受影响(但仍存在其他漏洞)。

主要缓解措施

  1. 升级:将 PDF.js 升级至 v4.2.67 或更高版本。使用 react-pdf 等上层库的开发者也应更新相关依赖。
  2. 配置禁用:在 PDF.js 配置中将 isEvalSupported 设置为 false,以禁用易受攻击的代码路径。
  3. 内容安全策略(CSP):实施严格的 CSP,禁止 evalFunction 构造函数的使用,可阻止漏洞被利用。

时间线

  • 2024-04-26:向 Mozilla 披露漏洞。
  • 2024-04-29:PDF.js v4.2.67 修复版本发布。
  • 2024-05-14:Firefox 126、Firefox ESR 115.11 和 Thunderbird 115.11 发布,包含修复后的 PDF.js。
11. How a 64k intro is made (2017) (www.lofibucket.com)

如何制作64K intro (2017) 摘要

本文详细介绍了2017年Revision demo party上发布的64K intro《Guberniya》的制作过程。该作品是一个在64KB以内的Windows可执行文件,使用C++、OpenGL和GLSL着色器实现,团队耗时约四个月完成。

项目概况

  • 技术栈:C++、OpenGL,使用dear imgui构建GUI。
  • 规模:最终Windows二进制文件为62,976字节,使用kkrunchy压缩。包含约8300行C++代码和4840行GLSL着色器代码。
  • 团队:六人小组,包括五名程序员和一名美术。
  • 发布场景:在Revision 2017 demo party上作为竞赛作品发布,注重实时渲染效果。

开发与工作流程

  • 开发环境:使用Visual Studio 2013编译(因兼容性问题),但用VS2015编辑。
  • 工具链
    • 动画同步:使用GNU Rocket的分支Ground Control进行动画曲线编辑,通过TCP连接与demo同步。
    • 实时着色器重载:通过全局键盘钩子监听Ctrl+S,实现着色器代码保存后自动重载。
    • GUI与工具:使用dear imgui库快速集成参数调节滑块、摄像机控制等调试功能,摄像机位置可保存为C++代码片段。

二进制精简技术

  • 标准库替代:基于Tiny C Runtime Library构建自定义C运行时,避免默认标准库的体积开销。
  • 压缩:使用kkrunchy对编译后的可执行文件进行压缩。
  • 浮点处理难题:通过禁用SSE向量化、移除特定函数调用(如ftol)、并手动设置浮点舍入模式为截断,以避免生成对标准库函数的调用。例如,为解决pow函数的编译问题,从Wine项目中找到了调用约定并实现了自定义包装。

渲染技术

  • 核心方法:主要使用光线步进进行场景渲染,利用hg_sdf库辅助距离场操作。
  • 光照模型:采用UE4风格的GGX微表面着色。曾尝试统一的延迟渲染和阴影映射方案,但因地形阴影精度问题而放弃,导致光线步进场景与光栅化物体(如电线)的光照匹配变得复杂。
  • 地形渲染:使用带有解析导数的价值噪声生成地形,用于着色和加速光线步进(在平滑区域增大步长)。阴影采用软阴影技巧,反射和阴影计算采用暴力方法,性能较低。
  • 天空渲染:基于光线方向的简单函数构建,太阳光通过输出高亮值实现自然泛光。
  • 场景实例
    • 建筑巷道:受摄影启发,使用重复的距离场方块建模,后期处理增强效果。
    • 轰炸机建模:使用有符号距离场组合胶囊体等基本体进行建模。
    • 角色动画:使用打包的1位位图序列,并通过交叉淡化实现帧间过渡。

后期处理管线

  1. 应用G缓冲着色。
  2. 计算景深(基于DICE的技术,使用三次渲染通道和旋转方框模糊)。
  3. 提取亮部用于泛光。
  4. 执行多次可分离高斯模糊。
  5. 生成镜头光晕(遵循John Chapman描述的技术)。
  6. 合成所有效果。
  7. 应用FXAA抗锯齿。
  8. 颜色校正(通过动态切换的配置文件实现不同色调)和伽马校正。

物理模拟

  • 电线模拟:使用计算着色器在GPU上基于弹簧系统和Verlet积分进行模拟,同时生成三棱柱几何体并输出到顶点缓冲区。
  • 鸟群模拟:512只鸟,其中128只为领头者,领头者沿噪声路径移动,其余跟随。使用点精灵渲染,通过大小调制模拟振翅效果。

音乐制作

  • 核心算法:实现了基于GPU的朴素O(N²)离散傅里叶变换,用于运行Paulstretch算法。该算法通过拉伸输入音频并扰动频域相位,产生空灵的回声效果,避免了金属感伪影。
  • 音源:使用Windows内置的gm.dls MIDI音色库,通过MilkyTracker以XM模块格式作曲。原始音色通过大量混响处理来改善听感。
  • 技术选择:避免使用传统虚拟合成器(如V2),而是结合跟踪器音乐格式和Paulstretch处理,以在极小体积内实现大气的环境音效。

设计与影响

  • 初始视觉构想:受《半条命2》概念艺术和冰岛风光视频影响,原计划包含电线、宏大建筑等元素,后调整。
  • 叙事尝试:绘制了分镜脚本以组织思路,但最终成品与脚本差异较大。
  • 飞船设计:结合多个Mandelbox分形与几何基元,使用光线步进渲染。

总结

《Guberniya》的制作展示了在严格体积限制下,通过精巧的技术选择(如自定义运行时、GPU计算、特定渲染技巧)和高效工具集成,如何实现具有复杂视觉效果和听觉体验的实时演示作品。团队在有限时间内,通过紧密协作和不断迭代,克服了多项技术挑战,最终完成了这部在demoscene中具有代表性的作品。

12. Beating Jeff's 3.14 Ghz Raspberry Pi 5 (jonatron.github.io)

这篇文章记录了作者尝试超越Jeff超频树莓派5至3.14GHz记录的过程,主要涉及超频设置、固件分析及性能结果。

超频尝试与结果 作者使用其树莓派5和特定散热器,通过调整 over_voltage_deltaarm_freqforce_turbo 参数进行测试,并用 sysbench cpu 快速评估性能。测试显示:

  • arm_freq=2900:约32951-32954次事件。
  • arm_freq=3000:约34076-34094次事件。
  • arm_freq=3200(3.2GHz):约36373-36365次事件,性能提升明显。
  • arm_freq=3300(3.3GHz):系统极不稳定。

固件与电压限制分析 作者指出,1V电压限制位于固件中。通过分析树莓派5的启动固件(存储在eeprom),在bootmain阶段发现疑似电压限制器的代码。由于启动阶段(包括bootmain)经过签名保护,无法直接修改固件。作者作为root用户,通过内存映射(/dev/vc-mem)运行时修改相关指令来移除限制,但此方法存在风险,可能导致硬件故障。

稳定超频至3.3GHz的方法 为实现在3.3GHz下稳定运行,作者采取以下步骤:

  1. 限制启动频率:创建系统服务,在启动早期将CPU频率限制在2.9GHz,以保证系统稳定初始化。
  2. 移除电压限制:执行自定义程序移除电压限制。
  3. 解除频率限制:将CPU最大频率设为3.3GHz。
  4. 设置性能模式:将CPU调速器设为performance模式以强制最高频率。

设置 over_voltage_delta=60000 后,电压为1.0437V,频率成功达到3.3GHz。

最终性能评估 尽管成功以3.3GHz运行,sysbench测试结果为约37712次事件。与之前3.2GHz下的结果(约36373次事件)相比,提升极其有限。作者最终认为,鉴于性能收益微乎其微,且过程复杂并有风险,这次超频尝试“不值得”(not worth it)。这暗示了硅片质量、散热条件等因素限制了频率进一步提升带来的实际收益。

13. How I Made Google's "Web" View My Default Search (tedium.co)

谷歌“Web”视图默认搜索设置方法

谷歌搜索的新变化与“Web”过滤器

谷歌近期在搜索结果中大规模加入了“AI摘要”功能,提供了预处理的答案,但这常与搜索意图不符。对于旨在寻找网站而非直接答案的用户而言,体验较差。这种做法类似于多年已有的知识面板,但更加突出。

在此背景下,谷歌悄然推出了一个**“Web”过滤器**。该功能通过搜索联络员Danny Sullivan在Twitter上公布,其设计理念是响应用户希望在搜索结果中只看到网页链接的需求,例如在使用网络条件有限的设备时,或单纯偏好纯文本结果的用户。

“Web”过滤器的特点

  • 简化呈现:结果显示类似谷歌2000年代初的经典样式,移除了元数据(如地址、链接信息)、知识面板以及广告。
  • 定位隐蔽:该选项被隐藏在搜索结果的“更多”菜单中,类似谷歌其他一些边缘化或旧有的服务(如谷歌图书)。
  • 核心价值:它提供了未经谷歌AI引擎预解析或内容精选的原始搜索结果列表,可被视为“去除臃肿的谷歌”或“去谷歌化”的谷歌搜索体验。

将其设为默认搜索的方法

尽管谷歌未提供直接设置,但通过修改浏览器默认搜索引擎的URL参数可以实现。

  1. 核心参数:在谷歌搜索URL后附加 &udm=14,即可直接获取“Web”视图结果。
  2. 浏览器设置示例(以Vivaldi为例):
    • 进入浏览器设置 > 搜索管理。
    • 添加一个新的搜索引擎。
    • 将名称设为“Google Web Only”,昵称可设为“gw”。
    • 将URL模板设置为 https://www.google.com/search?q=%s&udm=14
    • 将其设置为默认搜索引擎。
  3. 使用方式:设置后,在浏览器地址栏(万能栏)直接输入搜索词,将默认使用“Web”视图。若需使用完整谷歌搜索(含AI摘要等),可在搜索词前添加指定前缀(如“g”)。

作者的评价与注意事项

  • 工具价值:此功能对深度搜索的高级用户而言是一个有价值的工具。
  • 局限性:它仅是 “2024年谷歌的2001年风格呈现”,并不能改变搜索结果本身因长期SEO优化而导致质量下降的问题。结果仍是当前优化后的,只是展示了更简洁的链接列表。
  • 普及障碍:由于该功能被深藏菜单,预计只有少数用户会发现并使用它。谷歌此举似乎更倾向于相信用户将从其AI引擎的预解析答案中受益。
15. Grothendieck’s use of equality (arxiv.org)

文章内容概要

本文主要介绍了 arXiv 平台提供的几项核心功能与服务模块,旨在帮助研究人员更好地探索、管理和关联学术文献。文章内容可归纳为以下几个方面:

  1. 文献与引文工具:平台提供了一系列工具,例如 文献浏览器,用于帮助用户查找、浏览和管理学术论文及其引用关系。

  2. 关联数据与媒体:强调论文可与相关的 代码、数据和媒体 文件进行关联,便于研究的重现与验证。

  3. 演示与推荐:平台设有 演示 区域,并集成了 推荐器和搜索工具,旨在提升文献发现与内容获取的效率。

  4. arXivLabs 合作项目:文中特别介绍了 arXivLabs,这是一个允许社区合作者共同开发和分享新功能的实验性框架。该框架秉持开放、协作、卓越和用户数据隐私的价值观,鼓励个人或组织提出能为arXiv社区增值的项目创意。

核心要点:文章整体描述了arXiv作为学术预印本服务器,在传统论文存储与分享功能之外,致力于通过集成工具、关联数据和开放合作(arXivLabs)来增强学术研究的连贯性、可重复性和协作性。

17. Unprojecting text with ellipses (2016) (mzucker.github.io)

本文介绍了一种利用椭圆估计文本透视变换的方法,旨在自动校正因拍摄角度造成的透视扭曲(如梯形效应),使文本更易于阅读或进行OCR识别。

核心原理 方法基于一个简单假设:在正常文本中,所有字母的大小大致相同。透视扭曲会破坏这一规律,导致远离透视消失点的字母显得更大。通过寻找一个单应性变换,使所有字母在变换后的面积方差最小化,即可校正透视。

技术方法

  1. 预处理与特征提取:对输入图像进行阈值化和连通组件标记,获取每个字母的轮廓。为简化计算,将每个字母轮廓用一个面积相同的椭圆(代理形状)拟合。椭圆的优势在于描述简单、能匹配字母的形状特征,且在透视变换下仍保持为椭圆。

  2. 透视变换优化:将问题转化为优化问题,仅调整控制透视失真的单应性参数 (g, h)。目标函数是最小化所有代理椭圆变换后的面积方差。使用 scipy.optimize.minimize 进行数值优化。由于椭圆变换有封闭解,此过程高效。

  3. 旋转校正:透视校正后,文本可能仍有旋转。利用霍夫变换检测文本边缘方向,找到对应于最多零像素的列,确定最佳旋转角度,并应用旋转变换。

  4. 倾斜校正:最后,使用一个仅包含一个倾斜参数 b 的单应性变换,以优化后字母的凸包宽度为代理,最小化字母宽度的软最大值,从而进一步修正文本行的倾斜。

最终校正图像是通过依次应用透视、旋转和倾斜三个单应性变换的复合得到的。

方法特点与结论 该方法避免了复杂的文本行检测,转而利用字母大小的统计规律进行优化。作者通过数学公式(齐次坐标、单应性矩阵)高效地实现了变换和优化。虽然作者自认其精度可能不及一些更复杂的方法,但该方法能产生直观有效的结果,并附有开源代码。整体而言,它是一个将透视校正问题分解为若干可优化子问题的简洁解决方案。

18. Ask HN: Video streaming is expensive yet YouTube "seems" to do it for free. How?
19. Show HN: ffmpeg-english "capture from /dev/video0 every 1 second to jpg files" (github.com)

GitHub平台提供全面的开发者工具和服务,涵盖代码创建、工作流自动化、安全防护和资源探索。核心功能包括:

  • AI代码创建:通过GitHub Copilot辅助编写代码,并利用MCP Registry集成外部工具。
  • 开发者工作流:支持Actions(自动化工作流)、Codespaces(即时开发环境)、Issues(任务规划与跟踪)和Code Review(代码变更管理)。
  • 应用安全:提供GitHub Advanced Security(漏洞检测与修复)、Code security(构建时代码保护)和Secret protection(防止机密泄露)。
  • 探索分类:按公司大小(企业、中小团队、初创企业、非营利组织)、用例(应用现代化、DevSecOps、DevOps、CI/CD)和行业(医疗、金融、制造、政府)细分解决方案,并支持按主题(AI、软件开发、DevOps、安全)或类型(客户故事、活动、电子书)浏览。
  • 支持与服务:包括文档、客户支持、社区论坛、信任中心和合作伙伴资源。
  • 社区与程序:通过GitHub Sponsors资助开源开发者,并参与Security Lab、Maintainer Community、Accelerator和GitHub Stars等项目。
  • 企业解决方案:提供企业级平台、AI驱动的开发环境,以及高级安全、商业Copilot和优质支持等附加服务。
  • 其他元素:包含反馈收集(需提供电子邮件地址)、保存搜索功能、登录/注册选项和外观设置界面。

该平台旨在整合工具链,提升开发效率、安全性和协作能力,适用于多样化的技术需求和组织规模。

20. The efficacy of duct tape vs. cryotherapy in the treatment of the common wart (2002) (pubmed.ncbi.nlm.nih.gov)
### 研究概要

**文章标题**:胶带 vs 冷冻疗法治疗普通疣的疗效(2002年)

**文献类型**:临床试验

**发表信息**:Arch Pediatr Adolesc Med. 2002年10月; 156(10):971-4.
**PMID**: 12361440
**DOI**: 10.1001/archpedi.156.10.971

**作者**: Dean R Focht 3rd 等人

---

### 研究核心内容

#### 研究目标
确定使用胶带(封包疗法)治疗普通疣的效果是否与冷冻疗法相当。

#### 研究设计
一项前瞻性、随机对照试验,包含两个治疗组,针对儿童患者。

#### 研究环境
一家军事医疗中心的普通儿科及青少年门诊。

#### 研究对象
从2000年10月31日至2001年7月25日共招募61名患者(年龄范围:3-22岁),最终51名患者完成研究并被纳入分析。

#### 治疗干预
患者通过计算机生成的随机码分配至以下两组:
1. **冷冻疗法组**:每2-3周对每个疣体应用液氮治疗10秒,最多接受6次治疗。
2. **胶带封包组**:将胶带直接贴在疣体上,持续最多2个月。
患者在基线期和复诊时测量疣体大小。

#### 主要结局指标
研究目标疣体的完全消退。

#### 研究结果
在完成研究的51名患者中:
- **胶带组**:26名患者(51%),其中22名患者(85%)的疣体完全消退。
- **冷冻疗法组**:25名患者(49%),其中15名患者(60%)的疣体完全消退。
经卡方检验分析,两组差异具有统计学意义(P = .05)。大多数对任一疗法有反应的疣体在治疗的第一个月内就已消退。

#### 研究结论
胶带封包疗法在治疗普通疣方面,效果显著优于冷冻疗法。
21. Reflections on our Responsible Scaling Policy (www.anthropic.com)

对《负责任扩展政策》的反思

去年夏天,Anthropic发布了首份《负责任扩展政策》,旨在应对前沿模型可能引发的灾难性安全故障和滥用问题。该政策的目标是将高级安全理念转化为适用于快速发展技术组织的实用指南。本文分享了政策实施过程中的初步反思,并预告将发布更新版本。

政策实施的核心价值与挑战

明确的政策框架极具价值:它提供了结构化框架,帮助厘清组织优先事项,并围绕项目时间线、人员配置、威胁模型和权衡取舍展开讨论,促使一系列重要问题得以早期识别。 平衡承诺与不确定性具有挑战性:在寻求明确答案的现实下,制定过于具体的要求可能难以持久。原政策在某些方面存在模糊性,需要澄清。随着行业面临日益增长的商业压力,希望从自愿承诺逐步转向既定最佳实践,并最终推动形成审慎的监管规定。

五大高层级承诺框架

政策实施围绕以下五个核心承诺展开:

  1. 确立“红线能力”:承诺识别并公开未来模型可能涌现的、按当前安全标准(ASL-2)不足以安全部署或存储的“红线能力”。
  2. 测试“红线能力”(前沿风险评估):承诺通过与领域专家合作设计“前沿风险评估”测试,证明模型未达到或接近红线能力。若无法证明,则按具备该能力处理。承诺公开评估流程和结果摘要。
  3. 应对“红线能力”:承诺制定并实施一套新的安全标准(ASL-3),足以处理具备红线能力的模型。承诺明确定义风险缓解措施并通过验证过程确保其有效性,并在必要时暂停训练或部署,直至能应用ASL-3标准。
  4. 迭代扩展政策:承诺在启动需要ASL-3标准的活动前,明确其适用上限,即定义下一批需要更高标准(ASL-4)的红线能力,并公开相关评估流程。
  5. 建立保证机制:承诺通过实施保证机制(如压力测试评估、公开或独立专家验证、董事会及长期利益信托的监督以及政策更新流程)确保政策得到执行。

威胁建模与评估实践

  • 威胁建模:团队专注于改进威胁模型,与领域专家合作,并尝试进行量化建模。关键反思包括:新模型的涌现能力使得预测未来模型特性异常困难;专家们对优先风险存在合理分歧;量化模型有助于决策。
  • 评估方法:目前在高计算量模型上进行网络安全、CBRN(化学、生物、放射性、核)和模型自主性等领域的部署前测试。关键反思包括:与领域专家快速迭代至关重要;应鼓励更广泛的外部研究生态系统;不同评估方法各有优劣,需根据威胁模型选择。
    • 问答数据集:易于设计运行,但可能无法完全反映现实风险。
    • 人类试验:通过比较有模型访问权限的用户与使用搜索引擎的用户表现来衡量滥用风险,但耗时且需严谨流程。
    • 自动化任务评估:适用于评估模型自主行动,但构建逼真虚拟环境工程量大,且需安全基础设施。
    • 专家红队测试与记录审查:允许更开放地探索能力,但可重复性较低。
  • 挑战与未来方向:存在几个未解决的研究问题,包括:如何基于当前证据外推未来风险;在测试中如何充分激发模型能力而不等同于训练该能力;如何设计既能维持外部可验证性、又能更好聚合不同证据的风险评估流程。

ASL-3安全标准的开发

此标准旨在设计并实施一系列控制措施,足以缓解模型权重被非国家行为者窃取或模型被通过产品滥用的风险。团队反思如下:

  • 产品安全(防滥用):采用深度防御策略,结合人类反馈强化学习、宪法AI、多阶段滥用检测分类器以及针对漏洞的响应与修复。
  • 信息安全(防窃取):约8%的Anthropic员工从事安全相关工作,且比例预计增长。重点在于实施多方授权时限性访问控制,降低内部人员泄露模型权重的风险。公司已有的同行评审文化为此奠定了基础。
  • 制定标准的原则:在快速发展的领域,预先定义具体的缓解措施和评估方法很困难。倾向于提供高级目标(如防御非国家行为者),并配以清晰的“认证”标准(如详细的控制清单、独立专家审查、董事会批准)。

保证与治理结构

  • 中央协调:工作的跨职能性质需要高度协调,成立了专门的“负责任扩展团队”,并需要强有力的高管支持。
  • 第二道防线:建立了“对齐压力测试”团队,以对抗性方式审查核心工作流(如评估、干预措施)。例如,为Claude 3 Opus评估报告提供了关于“可能未充分激发能力”的反思。
  • 透明度与报告:定期向董事会、长期利益信托和全体员工汇报进展。最近实施了不合规报告政策,允许员工匿名报告对政策执行的关切。

总结

负责任扩展政策是凝聚公司各团队努力的强大焦点。将安全理念付诸实践需要全公司的广泛参与,且仍有大量工作待完成。分享这些反思旨在推动关于为前沿模型风险建立审慎、基于实证的框架的讨论,并期待更多公司采纳并分享各自的框架,从而发展出共同的最佳实践,为未来的政府努力提供信息。

23. British engineering giant Arup revealed as $25M deepfake scam victim (www.cnn.com)
25. Operation CHARM: Car repair manuals for everyone (charm.li)

Operation CHARM 总结

当前状态

  • CHARM 网站:已发布截至2025年的维修手册,但官方宣布其继任者网站 LEMON 已上线。
  • LEMON 网站:被描述为 CHARM 的"精神继承者",包含所有 CHARM 手册,并提供更新的资料(至2025年)。

LEMON 网站介绍

  • 内容:拥有比 CHARM 更新的手册,覆盖所有原有 CHARM 资料。
  • 访问地址
    • lemon-manuals.la
    • lemon-manuals.org.ua
  • 推荐:官方鼓励用户尝试使用 LEMON。

访问问题与解决方案

  • 连接问题:部分用户可能遇到访问困难。
  • 临时解决方案
    • 使用 Firefox 浏览器。
    • 更换 DNS 服务器。
  • 状态:LEMON 团队正在调查此问题。

消息显示控制

  • 用户可选择隐藏当前提示信息(支持暂时或永久隐藏)。
26. The problem with new URL(), and how URL.parse() fixes that (kilianvalkhof.com)

new URL() 的问题及 URL.parse() 的解决方案

核心问题:new URL() 的错误处理方式不够理想

  • new URL() 是一个构造函数,用于解析并创建 URL 对象实例。
  • 当传入一个格式错误的 URL 字符串时,它会抛出错误
  • 为了防止脚本中止执行,开发者必须使用 try...catch 块来捕获错误。
  • 这导致代码行数增加、视觉噪音增多、控制流变得复杂,并且无法继续使用 const 声明变量。

渐进式的改进方案

  1. URL.canParse() 方法

    • 这是近期(2023年12月起)跨浏览器支持的新增方法。
    • 它返回一个布尔值,表示给定的字符串是否是可解析的URL。
    • 可以与 new URL() 结合使用,先判断再解析,避免了 try...catch
    • 示例:const result = URL.canParse(str) && new URL(str);
  2. 根本性解决方案:URL.parse() 方法

    • 起源于一个旨在提供不抛出错误的解析函数的规范讨论。
    • URL.parse() 方法会尝试解析字符串,如果失败则返回 null,而不是抛出错误
    • 这使得代码可以非常简洁和直观,控制流简单。
    • 示例:const result = URL.parse(str); (如果 str 无效,resultnull

浏览器支持与现状

  • URL.parse() 已经被纳入规范,并正在各浏览器引擎中实现。
  • 计划在 Chromium 126、Firefox 126 等版本中发布(预计在文章发布后的几个月内)。
  • 开发者将能逐步用更简洁的 URL.parse() 替换现有的 try...catch 模式。
27. What Is Generative Art? (2022) (www.amygoodchild.com)

生成艺术概述

本文探讨了生成艺术的定义、核心要素与实践方法,将其定义为使用自主过程创作的艺术,其中自主过程指不受直接人工控制的过程。作者强调此定义旨在包容而非排除,并将自主过程归纳为三种主要类型:随机性规则自然系统

一、随机性

随机性是生成艺术中最常见的方法。艺术家编写代码,通过随机函数(如random())为变量(如位置、颜色、尺寸)赋值,每次运行都能产生不同输出。

  • 伪随机性与真随机性:计算机通常使用伪随机数生成器,它依赖于初始“种子”值和算法,结果是确定且可重现的(如区块链交易哈希作为种子)。真随机性需借助自然混沌数据源(如大气噪声、熔岩灯),但成本更高。这引发了关于宇宙决定论的哲学思考。
  • 分布调整:通过数学函数(如缓动函数)可将均匀分布调整为非均匀分布,以创造特定视觉效果(如渐变)。
  • 其他算法:如柏林噪声,能生成连续相似的值,适合创造有机形状和运动。

二、规则

规则是另一核心要素,艺术家设定指令或算法,由他人或机器执行,从而在控制权上取得平衡。

  • 指令艺术:索尔·勒维特的作品是典范,其指令本身即是艺术,不同执行会产生不同结果。
  • 涌现现象:当系统中的个体遵循简单规则时,整体层面会涌现出复杂模式。例如:
    • 细胞自动机:如“康威生命游戏”,基于网格中细胞的生死规则,演化出复杂图案。
    • 模拟生态系统:为模拟生物(如鸟群)设定行为规则(群聚、繁殖、避障),观察系统层级的涌现。
  • 数学与算法:几何、三角学等数学工具是规则生成的基石,许多创意本身就体现为算法步骤。
  • 模拟自然现象:许多算法灵感来源于现实世界,如扩散限制聚合、反应扩散、树木生长等,其抽象程度介于艺术与科学之间。

三、自然系统

此类艺术直接将自然过程作为创作主体,而非模拟。

  • 系统即艺术:如汉斯·哈克的《冷凝立方》,其艺术性在于密封环境中水的冷凝过程与环境(温度、光线)的互动。
  • 引导自然生长:如安托万·布里迪耶-纳米亚斯通过控制培养皿条件(氧气、光照)来影响微生物生长模式。这与模拟的区别在于其真实性、混沌性与更高的“分辨率”。

四、其他相关领域

  • 数据源与输入:艺术可利用外部数据(如航空交通数据、舞者动作)作为生成基础,介于数据可视化与生成艺术之间。
  • 人工智能:机器学习算法(如生成对抗网络)可视为复杂的规则系统,需要数据训练,其创作涉及艺术家对数据集的控制与对算法输出的让渡。
  • 自动主义:超现实主义的自动绘画等技术,允许潜意识或偶然性参与创作,挑战了“直接控制”的定义边界。
  • 传统绘画的生成性:即使是绘画,只要过程包含自动主义(如波洛克的滴画)或利用物理偶然性(如流体动力学),也可被视为具有生成元素。创作可视为一个从完全控制到完全随机的连续光谱。

总结

生成艺术的核心在于艺术家与机器、参与者或自然过程之间的控制权分配,以及自主过程的介入。其边界是模糊的,类别间存在交叉。文章提供了一个开放的框架,鼓励结合不同方法探索新的创作可能,并思考关于偶然性、控制权、模拟与自然等深层概念问题。

29. 26× Faster Inference with Layer-Condensed KV Cache for Large Language Models (arxiv.org)

论文摘要总结

本文提出一种名为 Layer-Condensed KV Cache 的新方法,旨在解决大型语言模型(LLM)推理过程中因键值(KV)缓存占用大量内存而导致部署困难、吞吐量低的问题。该方法通过仅计算和缓存模型中少数层的 KV 值,显著降低内存消耗并提升推理吞吐量。

核心内容如下:

  1. 问题背景:Transformer 架构的 LLM 在推理时,其注意力机制的 KV 缓存会随模型深度(层数)增加而消耗大量内存,成为实现高吞吐量部署的主要瓶颈。
  2. 方法创新:提出 Layer-Condensed KV Cache,其关键在于不再为所有层计算和存储完整的 KV 缓存,而是选择性地处理部分层的 KV 信息,从而大幅减少内存占用。
  3. 实验效果:在 LLM 上的实验表明,该方法可实现高达 26 倍的推理吞吐量提升。同时,在语言建模和下游任务上保持了具有竞争力的性能
  4. 技术特点:该方法与现有用于节省 Transformer 内存的其他技术(如量化、剪枝等)正交,可以方便地集成使用,以实现更优的推理效率。

总之,该研究为降低大语言模型推理成本、提升部署效率提供了一种有效的内存优化方案。

31. Uber Migrates 1T Records from DynamoDB to LedgerStore to Save $6M Annually (www.infoq.com)

Uber将支付交易数据从DynamoDB迁移至自建LedgerStore,每年节省超600万美元。迁移起源于成本上升,原有架构将DynamoDB仅用于12周内热数据,旧数据存于内部服务TerraBlob。

LedgerStore是专为金融交易设计的不可变存储,确保数据完整性与可验证性,支持多种索引访问模式。其强一致性索引采用两阶段提交:先持久化索引意图,再写入记录,最后异步提交或回滚。最终一致性索引则基于内部Docstore数据库的物化视图实现。

为管理冷数据,LedgerStore使用时间范围索引,并将原有DynamoDB双表设计优化为Docstore单表结合前缀扫描。索引生命周期管理支持自动化重建索引,涉及新索引创建、数据回填、验证和旧索引删除。

迁移面临巨大挑战,包括影子验证(双写对比)和历史数据离线验证。通过Spark执行的回填作业负载达生产环境的十倍,耗时三个月,期间使用动态速率控制与紧急停止机制控制风险。迁移采用保守策略,保留DynamoDB作为回退源,最终成功完成且无停机。

此次迁移显著降低了存储成本与架构复杂度。但此举也引发了社区关于自建服务与采用云服务之间权衡的讨论,涉及投资回报率、维护成本与迁移努力等因素。

32. Russia's glide bombs devastating Ukraine's cities on the cheap (www.bbc.com)

俄罗斯在乌克兰战场上大量使用低成本但高破坏力的滑翔炸弹,以加速其军事进攻。这种武器由旧式苏联炸弹改装而成,加装可折叠机翼和卫星导航系统,使其能滑行更远距离并实现相对精确打击。每枚成本估计仅为2万至3万美元,远低于传统导弹。

滑翔炸弹的使用频率和规模显著上升。例如,在哈尔科夫州沃夫昌斯克镇的进攻中,一周内发射超过200枚;2024年3月全乌克兰境内投掷约3000枚。这类炸弹破坏力极强,常用型号FAB-1500重达1.5吨,可摧毁坚固防御工事,对人员和平民建筑造成毁灭性影响。

乌克兰面临有效反制挑战:拦截滑翔炸弹不切实际,因数量过多;用爱国者系统攻击投弹战机需靠近前线,易遭俄军反击;使用远程导弹打击俄境内机场则受西方武器使用限制制约。

俄方因滑翔炸弹易于大规模生产而持续增加部署,甚至测试超过3吨的更大型号。此战术加剧乌军防御难度,并对军事和平民士气产生负面影响。泽连斯基多次呼吁获得更多防空系统和现代战机,但目前乌方仍缺乏有效解决方案。