2025-01-01

25 篇热帖

1. Happy New Year 2025

文章内容仅为一个道歉词“Sorry.”,与标题“Happy New Year 2025”所呈现的节日祝福氛围形成明显对比。

3. Things we learned about LLMs in 2024 (simonwillison.net)

2024年大语言模型(LLM)领域发展迅速,主要发现和趋势可总结如下:

  1. GPT-4壁垒被全面打破:2024年,超越GPT-4的模型大量涌现,来自18个不同组织的70个模型在Chatbot Arena排行榜上均超越了最初的GPT-4(2023年3月版)。这包括谷歌的Gemini 1.5 Pro、Anthropic的Claude 3系列等,训练一个GPT-4级模型不再是难以企及的目标。

  2. 高性能模型本地化:得益于训练和推理效率的提升,GPT-4级别的模型现已能在个人笔记本电脑(如64GB内存的MacBook Pro)上运行,例如Qwen2.5-Coder-32B和Meta的Llama 3.3 70B。更小的模型(如Llama 3.2 3B)甚至能在手机上流畅运行。

  3. LLM价格大幅下跌:由于竞争加剧和效率提升,主流模型的价格大幅下降。例如,OpenAI的GPT-4o比一年前的GPT-4便宜12倍,而GPT-4o mini更便宜200倍。其他提供商如谷歌的Gemini 1.5 Flash价格更低,处理数万张图片的成本仅需几美元。

  4. 多模态能力普及:几乎所有主要模型提供商都推出了多模态模型,视觉能力已成常态,音频和视频输入/输出也开始出现。这扩展了LLM的应用范围,例如通过图片生成描述、实时视频对话等。

  5. 语音与实时视频模式:高级语音模式(如ChatGPT的Advanced Voice)能进行自然、富有表现力的语音对话,甚至能模仿口音。实时视频功能允许模型通过摄像头实时分析画面并进行交流,这些曾属于科幻场景的功能已成为现实。

  6. 提示词驱动的应用生成成为标配:通过单次提示即可生成完整的交互式应用程序(如Claude Artifacts),该功能已被多个平台实现并成为一项标准特性,表明其已成为一项基础能力。

  7. 访问最佳模型的免费期短暂:年中有一段时间,GPT-4o、Claude 3.5 Sonnet和Gemini 1.5 Pro等顶级模型免费可用,但随着OpenAI推出ChatGPT Pro(200美元/月),这一时期可能已经结束。

  8. “代理”尚未真正实现:尽管是热门术语,但“代理”缺乏明确定义,且因LLM易受误导(幻觉、提示注入)的根本问题未解,其实用性仍存疑,可能依赖于尚未实现的AGI。

  9. 评估(Evals)至关重要:为LLM应用构建良好的自动化评估套件已成为关键技能,它能帮助更快地采用新模型、迭代产品并构建更可靠的功能。

  10. 苹果的MLX库优秀,Apple Intelligence平庸:苹果的MLX库极大地提升了在Apple Silicon上运行本地模型的体验,但其官方推出的Apple Intelligence功能(如通知摘要、写作助手)表现令人失望,未能发挥前沿模型的全部能力。

  11. 推理缩放“推理模型”兴起:以OpenAI的o1/o3系列为代表,这类模型通过消耗更多“推理token”来深入思考,从而在更复杂的问题上取得更好性能,开辟了除训练缩放外的新缩放维度。DeepSeek、谷歌等也推出了类似模型。

  12. 环境影响呈现矛盾面

    • 积极面:单次提示的能耗和成本因效率提升而大幅降低,环境影响已变得微不足道。
    • 消极面:各大科技公司为未来建设大规模AI数据中心基础设施,投入巨额资金,对电网和环境造成巨大压力,其必要性存疑。
  13. 其他重要趋势

    • “Slop”年:形容未经请求、未经审核的AI生成内容的术语“Slop”(劣质内容)流行起来。
    • 合成训练数据有效:精心设计的合成数据被广泛用于训练,并能提升模型性能,所谓“模型崩溃”并未发生。
    • LLM更难用:随着系统和工具复杂性增加,普通用户更难充分理解和有效利用LLM,易产生错误认知。
    • 知识分布极不均衡:大众对LLM技术的认知与前沿发展之间存在巨大鸿沟。
    • 需要更好的批评:对LLM的批评应更具建设性,既要指出问题,也需承认其合理应用价值,并提供正确使用的指导。
4. 30% drop in O1-preview accuracy when Putnam problems are slightly variated (openreview.net)

Putnam-AXIOM 是一个用于评估大语言模型数学推理能力的挑战性基准测试,旨在解决现有基准趋于饱和及数据污染问题。

该基准包含两部分:

  1. Putnam-AXIOM Original:由来自威廉·洛厄尔·普特南数学竞赛的236道数学问题及详细解题步骤组成。
  2. Putnam-AXIOM Variation:为缓解数据污染,选取了52道原始问题,通过编程方式改变其中的变量和常数等功能性元素,生成了全新的、难度相当的变体问题。这种方法理论上可以产生无限的、未在网络公开的新问题。

评估结果显示,几乎所有被测模型在变体问题上的准确率都显著低于在对应原始问题上的准确率。表现最优的 OpenAI o1-preview 模型在原始问题上的准确率为 41.95%,但在变体问题集上,其准确率相较于对应的原始问题下降了约 30%。这一发现揭示了当前模型在数学推理能力上存在显著差距,并凸显了数据污染对模型评估可能产生的影响。

5. Static search trees: faster than binary search (curiouscoding.nl)

静态搜索树:比二叉搜索更快

概述

本文探讨了如何对静态排序数据构建高性能搜索数据结构(S+树),以优化查询吞吐量。通过一系列系统性的优化,最终实现了在4GB输入数据上,查询性能从二叉搜索的约1150纳秒/查询提升至约27纳秒/查询,提升超过40倍。

核心优化策略

1. 基础布局与缓存优化

  • Eytzinger布局:将数据按广度优先顺序存储,使得二叉搜索树的前几层缓存友好,支持预取,比标准二叉搜索快约6倍。
  • S树结构:采用节点大小为16个u32值(对齐64字节缓存行)的B+树变体。每个节点存储一个排序子集,形成一个高分支因子(通常为17)的搜索树,比逐层存储更高效利用缓存行。
  • 内存分配:默认使用2MB大页(Hugepages)减少TLB压力。

2. 查询处理优化

  • 批处理:同时处理多个查询(如128个),允许CPU和内存系统并行处理,隐藏内存访问延迟,这是性能提升的关键。
  • 预取:在批处理的每一步提前预取下一层节点的内存,进一步减少等待时间。
  • SIMD优化
    • 初始使用线性扫描节点内16个值,效果不佳。
    • 通过自动向量化和手动SIMD指令(如vpcmpgtd, vpackssdw, vpmovmskb, popcnt)实现无分支并行比较,将节点内查找优化至仅需5条指令。
    • 最终采用“popcount”方法计算小于查询值的元素数量,效率最高。

3. 树布局与结构优化

  • 左最大值树:修改内部节点存储其左子树的最大值(而非右子树最小值),使搜索更直接,减少不必要的缓存行读取。
  • 字节指针算术:将索引计算转换为基于字节的指针运算,避免每次乘以节点大小(64)的开销。
  • 分支因子:尝试使用节点大小15(分支因子16),虽然在数据适合L3缓存时略有速度优势,但增加了数据结构开销(从6.25%增至13.3%),对大内存数据无益。

4. 查询交织

  • 为了平衡CPU计算与内存访问的不同延迟,实现了多查询层交织。同时处理多个批处理,每个批处理处于搜索树的不同层,使CPU始终有任务可执行,显著提升吞吐量(从约29纳秒/查询降至24纳秒/查询)。

5. 前缀分区

  • 思路:按查询值的前b位将数据划分为2^b部分,每部分构建独立的S树,可跳过前几层搜索。
  • 实现:尝试了完整布局、紧凑子树、首层压缩、重叠树等多种布局以减少空间开销。
  • 结果:对于均匀数据,分区可节省约一层搜索的时间。但在处理非均匀真实数据(如人类基因组k-mer)时,部分大小分布极度不均,导致空间开销巨大或需要额外的查找表,实际收益有限。最终认为,分区带来的额外复杂性和对数据分布的依赖,相较于直接使用交织查询,收益不高。

关键实验结果

  • 基准测试:在i7-10750H CPU(2.6GHz固定频率)上,使用均匀随机31位整数进行测试。
  • 性能对比
    • 标准二叉搜索(1GB数据):~1150 ns/查询。
    • Eytzinger布局:~200 ns/查询。
    • 最终优化S树(批处理+交织):~27 ns/查询。
  • 多线程:使用6线程时,运行时间从27纳秒降至7纳秒,表明总内存带宽已成为瓶颈。

结论与未来工作

通过S树结构、批处理、SIMD节点内查找、树布局优化和查询交织的综合应用,实现了静态搜索查询吞吐量的巨大提升。前缀分区在均匀数据上有潜力,但对真实数据普适性不足。

未来方向包括:

  1. 分支搜索:处理少数极大分区以节省层步。
  2. 插值搜索:利用数据分布估计位置,减少内存访问(但对非随机数据风险高)。
  3. 数据压缩:例如存储16位值并利用已知前缀进行比较。
  4. 支持返回原始索引、范围查询、查询排序
  5. 集成到后缀数组搜索中,用于生物信息学DNA序列快速索引。
6. Databases in 2024: A Year in Review (www.cs.cmu.edu)

2024年数据库领域年度回顾

本文回顾了2024年数据库领域的主要事件,核心聚焦于许可证变更引发的开源生态动荡、主要云数据仓库厂商间的激烈竞争,以及嵌入式分析引擎DuckDB的崛起。

1. 许可证变更风波:Redis与Elasticsearch

开源数据库公司为抵御云厂商的免费托管竞争,普遍采取了更严格的许可证策略。

  • Redis:2024年3月,Redis Ltd.将许可证从BSD-3改为双重许可(RSPL+SSPL)。此举引发强烈反弹,Valkey等开源分支迅速出现并加入Linux基金会。年底,Redis原作者表达了回归社区、促成和解的意向。
  • Elasticsearch:2021年改为双重许可后,2024年8月,Elastic N.V.宣布改回AGPL开源许可。次月,亚马逊将其OpenSearch项目移交给Linux基金会。
  • 根本矛盾:开源数据库公司面临云厂商直接托管其产品并获取更多利润的威胁。变更许可证是为了自保,但常因非原创作者身份、社区贡献占比高等原因,被指责为“窃取”社区成果,从而招致更大反弹。

2. Databricks vs. Snowflake:全方位竞争升级

两家数据巨头的竞争从性能比拼扩展至AI模型与数据生态。

  • 大模型竞赛:Databricks(3月)与Snowflake(4月)相继发布开源大模型DBRX和Arctic,重点在于超越对手而非绝对性能。
  • 数据目录争夺战:围绕数据湖的元数据管理展开。Databricks以20亿美元高价收购Iceberg背后的公司Tabular,此举发生在Snowflake宣布开源其Polaris目录服务的同一天。随后,Databricks宣布开源其Unity目录,给予对手重击。竞争焦点已从查询引擎转向数据摄入、管理与AI工具链等生态系统。

3. DuckDB的崛起:嵌入式OLAP新标准

DuckDB因其易用性和强大分析能力,正成为嵌入式OLAP引擎的首选。

  • 集成至PostgreSQL:2024年出现了多个将DuckDB集成到PostgreSQL的扩展项目(如pg_analytics、pg_duck等),旨在为PostgreSQL用户提供高性能的列式分析能力。
  • 意义:这些扩展利用了PostgreSQL强大的扩展性,用户无需单独构建数据仓库即可获得高效分析能力。大多数OLAP查询数据量较小,单机DuckDB足以胜任,这推动了其广泛应用。

4. 其他重要动态

  • 新版本发布
    • Amazon Aurora DSQL:类Spanner的分布式数据库。
    • CedarDB:基于Umbra研究原型的商业化数据库。
    • Google Bigtable:新增SQL支持。
    • Microsoft Garnet:兼容Redis的高性能键值存储。
  • 重要收购
    • OrioleDB被Supabase收购(改进PostgreSQL存储引擎)。
    • PeerDB被ClickHouse收购(优化数据迁移)。
    • Speedb被Redis Ltd.收购(可能用于磁盘扩展)。
  • 重大融资:Databricks获得100亿美元J轮融资(主要用于员工股票回购),继续领跑数据库领域融资。
  • 领域轶事
    • Oracle创始人拉里·埃里森(80岁)个人生活丰富,并资助密歇根大学招募明星四分卫。
    • Andres Freund在为微软工作时,发现了xz压缩库中的重大安全后门。

5. 总结与展望

2024年数据库领域的核心矛盾仍是开源商业模式在云时代的可持续性问题。与此同时,竞争已从单一产品性能扩展到数据生态系统和AI集成DuckDB代表了嵌入式分析的民主化趋势。展望2025年,随着利率变化和Databricks IPO的临近,数据库初创公司可能迎来新的融资和上市窗口期。

7. Books I Loved Reading in 2024 (thoughts.wyounas.com)

以下是文章《2024年我喜爱的阅读书单》的摘要:

作者回顾了2024年阅读并喜爱的多本书籍,涵盖文学、哲学、计算机科学、传记和经济学等多个领域,并分享了个人见解与收获。

  1. 《西塞罗书信集(卷一)》:作者欣赏西塞罗优美的拉丁文散文及其译本所展现的修辞魅力。这些信件既提供了古罗马生活与关系的 insight,也展示了西塞罗如何用细腻文字表达关切、请求或情感。

  2. 《计算机科学的数学逻辑》:这是一本理论性强、难度较高的技术书籍,作者通过其“第一性原理”方法重新梳理了逻辑知识。书中涵盖命题逻辑、演绎系统、时序逻辑及程序验证等内容,被视为有价值但需慢读的材料。

  3. 《作为一种生活方式的哲学》:作者偶然发现此书,认为其成功地将哲学变得平易近人,旨在教人如何用哲学改善生活。书中探讨了古代哲学如何通过口头传统和对话来转变灵魂,并强调哲学应是实践而非空谈。

  4. 《奥瑞斯提亚》:作为古希腊悲剧之父埃斯库罗斯的三联剧,该剧探讨了正义、复仇与社会秩序演进。作者赞赏其对人类心理的洞察,并认为是值得反复阅读的智慧之作。

  5. 《SPIN模型检测器原理》:这本技术书篇幅不长但 insight 深刻,激发了作者对并发程序验证的兴趣。书中结合自创的教学工具(如jSpin)讲解概念,并涉及时序逻辑与案例分析。

  6. 《天生站立》:喜剧演员史蒂夫·马丁的回忆录。作者称赞其坦诚讲述了成名前的挣扎、漫长练习与自我磨练,强调成功需要耐心、努力、反思与坚持。

  7. 《小于一》:诺贝尔奖得主约瑟夫·布罗茨基的散文集。作者钦佩其对文学和人性 condition 的深刻见解,尤其是分析陀思妥耶夫斯基和奥登诗歌的篇章,展现了其从独特角度解读作品的能力。

  8. 《地海巫师》:作者初读厄休拉·勒古恩的小说,认为其表面是奇幻故事,内里却蕴含人生智慧。书中关于邪恶、阴影与光明的句子令人深思。

  9. 《泰戈尔精选集》:收录了泰戈尔的散文与戏剧。作者欣赏其将思想付诸行动(如创办学校),并认为其关于教育、民族主义等话题的散文富有文采与启发性。

  10. 《最奇怪的人》:物理学家保罗·狄拉克的传记。作者被其童年经历、寡言性格以及对数学之美的追求所吸引,认为这是一本 engaging 的传记。

  11. 《惯于争鸣的印度人》:诺贝尔经济学奖得主阿马蒂亚·森的著作。作者认为此书具有启发性且易读,论证了印度历史中的论辩传统,并批判了殖民偏见对印度知识成就的扭曲。

  12. 《人性的,太人性的》:作者着重分享了尼采的这部作品。书中以格言体探讨文化、社会、道德等话题,展现其“自由精神”思想与对传统、习惯的犀利批判。作者认为尼采的写作穿透力强,思想深刻,尤其赞赏其关于思想与行动、灵感与创作、文人懒惰等观点。

作者在结尾感谢读者支持,并希望其分享能引起共鸣。整体而言,这份书单体现了作者广泛的阅读兴趣和对思想深度、写作艺术及人生智慧的追求。

8. Show HN: API Parrot – Automatically Reverse Engineer HTTP APIs (apiparrot.com)

API Parrot:自动化逆向工程HTTP API的工具

核心功能与定位 API Parrot 是一款专为逆向工程任意网站的HTTP API而设计的工具。它旨在帮助开发者更轻松地实现对那些未提供公开API的网站进行自动化操作、集成或数据抓取。该工具提供了一站式解决方案,涵盖从录制HTTP请求到最终导出可执行代码的完整工作流程,力求使流程快速高效。

主要特点

  • 自动化API逆向:其核心能力是自动分析和复制网站的API接口。
  • 全流程覆盖:工具整合了从录制网络请求到生成可用代码的关键步骤,优化了开发者的工作流。
  • 通用性强:设计为一款通用工具,可用于团队和个人的各种任务场景。

开发与服务 该工具由API Parrot的创始团队开发,他们不仅深入研究API逆向工程,更构建了这个实际可用的行业工具。团队基于此工具提供专业的API集成服务:

  • 免费评估:为公开可访问的网站提供免费的项目探索与评估。
  • 高效交付:承诺大多数定制集成项目可在1至2周内完成。
  • 专业支持:团队提供项目的持续支持与维护服务。

使用与支持 用户可以免费下载并试用API Parrot的Beta版本,体验其API复制功能。若需技术支持、功能咨询或提交错误报告,可通过邮件(contact@apiparrot.com)或项目的GitHub页面联系团队。

9. The GTA III port for the Dreamcast has been released (gitlab.com)

《侠盗猎车手III》Dreamcast移植版已发布

基于提供的标题,核心信息是:经典游戏《侠盗猎车手III》已被成功移植到世嘉Dreamcast平台,且该移植版本现已正式发布。

要点概述:

  1. 事件:玩家社区完成了《侠盗猎车手III》向Dreamcast主机的移植工作。
  2. 状态:该移植版本已脱离开发阶段,正式面向公众发布。
  3. 平台:移植目标硬件为世嘉Dreamcast游戏主机。

注意:所提供的文章内容仅为占位文本("dca3-game" 和 "Loading"),不包含关于此移植项目的开发者、具体发布日期、游戏特性、运行效果或获取方式等进一步细节。以上摘要完全基于文章标题的明确陈述。

10. Systems ideas that sound good but almost never work (hardcoresoftware.learningbyshipping.com)

系统设计中听起来很好但几乎从不奏效的理念

这篇文章总结了在系统设计中一些常见但通常失败的构想,这些构想常因低估复杂性而导致问题。作者基于多年工程经验指出,约90%的情况下这些方案会失败,强调工程是结合“经验法则”与社会性的实践。

核心理念及失败原因

  1. “让我们把它做成可插拔的” 当认为某个实现可能无法满足需求时,设计者常希望允许未来替换新实现而无需修改调用者。然而,真正的“可插拔”极难实现。历史上最可插拔的组件之一是设备驱动程序,但它们曾问题频出,现代操作系统要么禁止使用,要么已自行构建多年。唯一可能奏效的方法是同时设计主要实现和第二个实现来证明其可行性。

  2. “让我们添加一个API” 产品或公司在成功后常希望成为平台并吸引开发者,于是仓促推出API。问题在于:成为API提供者本身需要一种特定的心态和技能,需不断权衡兼容性与功能,并受遗留行为约束;提供API不等于有人愿意使用它。第三方开发者并非等待填补你产品空白,他们有自己的业务和客户。构建平台是严肃的业务,极少能通过简单“提供一些API”实现。

  3. “让我们再抽象一次” 引用了巴特勒·兰普森的名言“计算机科学中的所有问题都可以通过增加一层间接性来解决”。抽象虽真实有效,但常因过早引入而失败(例如Windows NT中存在大量从未真正使用的抽象层)。相比之下,Mac OS的演进中出现的抽象似乎在后续版本中变得有用,因为它们是基于计划引入的。事后添加的抽象会导致代码混乱、难以维护和优化性能。

  4. “让我们把它做成异步的” 计算机科学早期大量研究如何处理异步问题。现代框架已为数据层抽象了异步问题。然而,一旦超出框架或数据层而自行管理异步,几乎总会遇到一年后才出现且无法复现的Bug,这可能导致数据损坏等问题。

  5. “让我们稍后再添加访问控制” 尽管理论上知道系统需要安全,但上市压力下几乎没有系统从一开始就彻底思考访问控制/安全模型。除非从一开始就从客户和攻击者视角设计访问控制,否则无法正确实现。推迟添加访问控制要么导致失败,要么将来需要重写产品,体验糟糕。

  6. “让我们同步数据” 在设备、SaaS应用和数据存储多样化的世界中,“同步数据”的提议很常见。但正如雷·奥兹(Lotus Notes、Groove等创始人,微软Azure奠基人)所言:“同步是一个难题”。对于具备完整语义和事务的数据存储,同步已非常困难;一旦涉及同步二进制块、非结构化数据或数据翻译,难度会急剧增加。几乎不应将解决方案建立在同步数据之上。

  7. “让我们让它跨平台” 每当讨论跨平台,总有人展示他们认为“效果很好”的代码。然而,承诺跨平台实质上是在承诺构建一个操作系统、云提供商或浏览器。跨平台仅在两个阶段可能有效:平台新颖且简单时(如早期的云计算)以及应用本身新颖简单时。随着底层平台分化或应用功能复杂化,跨平台开发会变得极其困难。著名案例是微软最终放弃用同一代码库为Mac和Windows构建Office,于1998年分支了代码。

  8. “让我们允许逃逸到原生” 由于跨平台通常只短暂有效,常见解决方案是允许框架或API抽象“逃逸到原生”调用。理论上,这可以利用尚未被抽象层暴露的平台新特性。但这几乎总失败,因为框架维护着自己的内部状态和缓存。直接调用原生平台会破坏框架未知的数据结构和状态。虽然框架可能提供机制来交换数据,但这类似于手动内存管理,在现代自动内存管理的世界中并非良策。

总结

作者并非绝对否定这些方法,在某些特定上下文中它们可能有效。但大多数情况下,存在更好的替代方案。关键经验是:应基于第一原则解决问题,而非盲目套用这些高风险的软件模式。工程管理常结合了“经验法则”和从艰难经历中学到的教训。

12. Arnis: Generate cities in Minecraft from OpenStreetMap (github.com)

Arnis 项目摘要

Arnis 是一个免费的开源项目,它能利用来自 OpenStreetMap 的真实世界地理数据,在 Minecraft Java 版 (1.17+) 和基岩版中创建复杂且精确的世界。该算法处理地理空间数据以及高程数据,以生成准确的地形和建筑结构。

核心功能与使用方式

  • 核心功能:基于现实世界的地理、地形和建筑数据,生成大规模、详尽的 Minecraft 地图。
  • 使用方法
    1. 官方渠道下载:仅从官方网站 arnismc.com 或 GitHub 仓库下载。
    2. 操作流程:使用地图上的矩形工具选择区域,选择 Minecraft 世界存档路径,点击“开始生成”。用户可自定义世界比例、出生点、建筑内部生成等设置。
    3. 构建方式
      • GUIcargo run
      • 命令行cargo run --no-default-features -- --terrain --path="世界存档路径" --bbox="min_lat,min_lng,max_lat,max_lng"
    4. 其他方式:提供基于浏览器的生成工具 MapSmith,支持移动端和更大地图。

开源与项目目标

  • 开源协议:采用 Apache License 2.0 授权。
  • 关键目标
    • 模块化:数据获取、处理和世界生成等组件分离,便于维护和扩展。
    • 性能优化:确保快速的世界生成。
    • 全面的文档:提供详细的代码内文档和 GitHub Wiki。
    • 用户体验:专注于项目的易用性。
    • 跨平台支持:支持在 Windows、macOS 和 Linux 上运行。

贡献与社区

  • 项目欢迎各种形式的贡献,如修复错误、改进性能、添加功能或完善文档。
  • 贡献者可以通过 Fork 仓库、进行修改并提交 Pull Request 的方式参与。所有级别的贡献都受到感谢。

学术与媒体认可

项目自 2024 年 12 月以来获得了关注,并被多家媒体和学术出版物提及,例如:

  • 《AWS 上使用开放数据构建逼真的 Minecraft 世界》
  • 《Hackaday》:将 OpenStreetMap 数据引入 Minecraft
  • 《TomsHardware》:Minecraft 工具让您创建真实世界位置的等比复制品

重要声明

  • 非官方产品:Arnis 不是 Minecraft 官方产品,未获 Mojang 或 Microsoft 的批准或关联。
  • 许可补充:项目中的 Luanti 方块名称映射文件源自 MC2MT,并依据 GNU LGPL v2.1 或更高版本授权。
  • 安全警告:务必仅从上述官方渠道下载,其他声称提供下载的网站可能是非官方且存在恶意风险的。
13. Show HN: Watch 3 AIs compete in real-time stock trading (trading.snagra.com)

SNAGRA Trading 摘要

核心概念

SNAGRA Trading 是一个自主AI交易系统,专注于实时股票交易实验。该系统使用真实资金,由AI代理独立管理交易、执行操作并持续进化自身策略,无需人工审批。其核心目标是实现完全透明,公开显示每个交易细节、资金流动和决策过程。

关键特性

  • 自主交易:AI代理自动处理交易决策和风险管理,根据性能数据自我优化策略。
  • 实时透明:所有交易活动、资金使用和策略演变均实时公开,确保可追溯性。
  • 真实资金操作:实验涉及实际货币,强调实践中的AI能力和风险。
  • 策略进化:AI能基于历史表现和反馈,动态调整交易策略以提升效果。

技术实现

  • 前端结构:网站采用HTML作为入口页面,核心内容通过JavaScript模块动态加载(例如/assets/index-xUS-12Oc.js),CSS样式表(/assets/index-DrF52AWy.css)控制外观。
  • 元数据优化:包括SEO元标签(如标题、描述、关键词)、社交媒体分享标签(Open Graph和Twitter),以增强可见性和分享功能。
  • 分析集成:使用Mixpanel进行用户行为跟踪和数据收集,支持稳定访问者身份识别和回退跟踪。

项目背景

该项目由Sunny Nagra创建,旨在通过公开实验展示AI在金融交易中的自主性和适应性。网站设计为单页应用,通过<div id="root"></div>容器加载动态内容,提升用户体验。

总结

SNAGRA Trading 代表了一个前沿的AI交易实验,结合真实资金操作、完全透明度和自主策略进化,为观察AI在复杂金融市场中的表现提供了一个实时平台。

14. Ruby 3.4 Highlights (blog.sinjakli.co.uk)

Ruby 3.4 亮点总结

Ruby 3.4 带来了多项新功能,其中以下三个方面尤为突出:

1. 默认块参数名 it

在许多使用块(block)的场景中(如 eachmapfilter),块通常只接收一个参数。开发者常将其命名为 item 等通用名称。
Ruby 3.4 引入了默认参数名 it,允许在简单场景中省略参数定义,使代码更简洁。
示例

# 旧写法
["beige chinos", "blue jorts", "rainbow jorts"].filter { |item| item =~ /jorts/ }

# Ruby 3.4 新写法
["beige chinos", "blue jorts", "rainbow jorts"].filter { it =~ /jorts/ }

2. 更好的连接处理:Happy Eyeballs Version 2

Ruby 3.4 在 TCP 套接字中实现了 RFC 8305(Happy Eyeballs Version 2),旨在优化双栈(IPv4/IPv6)网络下的连接性能。
核心改进

  • 客户端处理 DNS 查询返回的多个 IP 地址时,通过并发尝试连接,平衡响应速度与服务器负载。
  • RFC 8305 提供了具体的算法描述和经过广泛测量得出的默认参数值,提升了双栈网络的兼容性。
    意义:推动 IPv6 过渡,减少开发者手动调试网络连接问题的负担。

3. 更清晰的异常回溯信息

异常回溯现在会显示方法所属的类或模块,而非仅方法名,增强了调试信息的可读性。
示例

  • 旧版:inspect'
  • Ruby 3.4:Foo::Bar#inspect'
    此改进帮助开发者更快定位问题,体现了 Ruby 对开发者体验的重视。
15. Large Concept Models: Language modeling in a sentence representation space (github.com)

大型概念模型:在句子表示空间中进行语言建模

大型概念模型(LCM)是一种在显式的高级语义表示(称为“概念”)空间中操作的语言模型。一个“概念”对应一个句子,且该表示独立于语言和模态。本工作使用SONAR嵌入空间,支持文本(约200种语言)和语音(57种语言)。

核心方法与架构

LCM是一个在概念空间中训练的序列到序列模型,旨在执行自回归句子预测。主要探索了三种方法:

  1. MSE回归:基础LCM,对应代码中的 base_lcm
  2. 基于扩散的生成:包括 two_tower_diffusion_lcm 等变体。
  3. 在量化SONAR空间中操作的模型(即将发布)。

这些探索基于1.6B参数的模型,使用约1.3T tokens的数据进行训练。

安装与环境

本项目依赖 fairseq2。推荐使用 uv 进行安装:

uv sync --extra cpu --extra eval --extra data

GPU支持需自行安装对应版本的 torchfairseq2。使用 pip 安装类似,但需手动管理环境并先安装 fairseq2

数据准备

训练和评估数据需预先处理为句子,并用SONAR进行嵌入。提供了示例处理管道:

uv run --extra data scripts/prepare_wikipedia.py /输出目录

此脚本展示了如何从HuggingFace获取数据集并使用SONAR和SaT进行处理。也提供了处理JSONL、Parquet和CSV格式数据的API。

模型训练

预训练

  • 基础MSE LCM
    • 使用SLURM提交作业:python -m lcm.train +pretrain=mse ...
    • 本地使用torchrun训练(需调整批量大小):CUDA_VISIBLE_DEVICES=0,1 torchrun ... +pretrain=mse ...
  • 双塔扩散LCM
    • 通过类似命令进行预训练,使用 +pretrain=two_tower 配方。

微调

  1. 注册预训练检查点:将预训练模型的 model_card.yaml 复制并注册为fairseq2资产。
  2. 启动微调作业:指向已注册的模型。
    # 双塔扩散LCM示例
    CUDA_VISIBLE_DEVICES=0,1 torchrun ... +finetune=two_tower ... ++trainer.model_config_or_name=my_pretrained_two_tower
    # MSE LCM同理,使用 `+finetune=mse`
    

模型评估

  1. 准备:下载NLTK数据(用于ROUGE评估):python -m nltk.downloader punkt_tab
  2. 评估:使用相应的预测器(two_tower_diffusion_lcmbase_lcm)并指定模型卡路径运行评估命令。
    # 双塔扩散LCM评估示例
    torchrun ... -m lcm.evaluation --predictor two_tower_diffusion_lcm --model_card <路径> ...
    
    评估结果(包括语料级别分数)将保存在指定的输出目录中。如需评估下游任务,请参阅评估文档。

其他

  • 许可证:MIT许可证。
  • 引用:如使用本代码库,请引用对应论文。
16. Building Game Prototypes with LÖVE (healeycodes.com)

本文介绍了作者使用LÖVE框架开发游戏原型的经历,旨在为2025年完成并发布完整游戏做准备。

LÖVE框架体验

  • 特点:LÖVE是一个基于Lua的2D游戏框架,API简洁强大。与游戏引擎相比,它能用更少的代码(例如10行)实现完整功能,适合自由形式的UI原型设计。
  • 优势:框架易于上手,作者虽Lua经验有限但能快速掌握。其代码结构对大型语言模型(LLM)友好,便于生成和分析,这优于某些引擎(如Godot的GDScript)。
  • 不足:缺乏热重载功能,在较大项目中需自行构建调试工具。同时,它更适合自由形式UI,对于需要标准输入控件(如按钮)的场景可能不是最佳选择。

游戏原型项目

  1. 国际象棋UI

    • 目的:作为基准项目,探索棋类游戏UI的状态管理。
    • 实现:耗时约2小时,通过LÖVE的回调函数(如love.mousereleased)处理鼠标输入,实现棋子拖放和点击移动。UI逻辑与游戏逻辑的分离尚可,但仍有改进空间。
    • 代码示例:展示了如何渲染拖拽中的棋子(基于光标位置)和处理棋子移动的交互逻辑。
  2. 卡牌游戏UI

    • 灵感:受《炉石传说》启发,卡牌游戏在实现复杂度上处于“甜点区”,侧重于策划而非大量美术资源。
    • 实现:耗时约3小时,代码量约为象棋原型的两倍。重点实现了卡牌交互动画(如悬停上升、拖拽),采用线性插值(lerping)技术实现平滑过渡。
    • 代码示例:包含资源条(如生命值、法力值)的绘制函数,以及通过love.update更新卡牌动画状态(上升/缩放和拖拽偏移)。

开发辅助与经验

  • LLM应用:Claude-3.5-sonnet和GPT-4o等模型能较好地协助搭建基础架构(如绘制基础图形、整理状态),尤其在简单任务上表现突出。
  • 动画处理:动画对卡牌游戏体验至关重要,因此提前纳入原型阶段。通过定义目标状态(如悬停时的上升高度和缩放比例)并使用插值函数实现平滑动画。
  • 工具对比:作者也测试了Godot引擎,认为若项目需要复杂实体交互、物理模拟等引擎特性,Godot更合适。

未来规划

  • 作者计划从设计纸笔原型开始,逐步迭代到数字MVP、艺术创作,最终发布游戏。
  • 所有原型代码已开源,但作者指出其作为学习资源的价值有限。

总体而言,LÖVE框架以其简洁性和对LLM的友好性,成为作者快速游戏原型开发的有效工具,尤其适用于自由形式的2D游戏UI探索。

17. Cesium for Unreal – Bring the Real World to Unreal Engine (cesium.com)

Cesium for Unreal 是一款虚幻引擎插件,旨在将真实世界背景融入虚拟环境。其主要功能与特点如下:

全球3D内容即时访问
该插件集成了 Cesium ion 服务,用户可直接从云端获取高分辨率全球3D数据,涵盖摄影测量、地形、影像及建筑物等多类内容。

行业领先的3D瓦片化处理
通过先进的处理管道,用户可将自有内容转换为优化的、空间索引化的3D Tiles格式,便于流式传输至虚幻引擎。该处理能力作为 Cesium ion 订阅服务的一部分提供。

灵活的部署与开放标准支持
插件支持基于开放标准和API的云端及私有网络服务部署。用户可在自身环境中搭建系统,实现可扩展、可定制的端到端工作流程。

19. Déjà vu: Ghostly CVEs in my terminal title (dgl.cx)

文章摘要:Ghostty终端模拟器中的“似曾相识”安全漏洞

这篇文章揭示了新发布的终端模拟器Ghostty 1.0中存在一个安全漏洞(CVE-2024-56803),该漏洞与2003年由HD Moore发现的终端模拟器安全问题(CVE-2003-0063)性质相似,属于历史问题的重现。

漏洞根本原因

  • 带内信令机制:所有现代终端模拟器本质上都在模拟1970年代的硬件终端,使用ASCII转义字符(ESC)进行“带内信令”。这意味着普通文本模式与控制序列模式之间没有明确分隔。
  • 危险的“标题查询”功能:终端允许通过转义序列设置和查询窗口标题。当结合带内信令时,恶意程序可以注入序列,诱使终端将查询到的标题内容作为用户输入回传,从而执行任意命令。

攻击方式与影响

  • Zsh和Bash的vi模式易受攻击:攻击者可通过精心构造的转义序列,利用Zsh(默认在特定环境变量下启用vi模式)和Bash(需用户手动启用vi模式)的漏洞,在用户终端中执行任意命令(例如打开计算器应用)。
  • 可实现远程代码执行(RCE):该攻击不仅限于本地,还可通过SSH远程利用。当连接到被入侵的远程系统时,恶意代码可以缓冲并转发这些序列,最终在本地终端执行。
  • 演示证明:作者通过一个脚本演示了如何在Ghostty 1.0.0中通过停止shell进程、注入序列并强制终止进程的方式,在macOS上打开计算器。

修复与缓解措施

  1. 升级Ghostty:官方已在Ghostty 1.0.1版本中修复该漏洞,默认禁用标题报告功能,并使其可配置。
  2. 临时缓解方案(若无法立即升级):
    • Zsh用户:可在~/.zshrc中添加一个函数,使Zsh跳过OSC(操作系统命令)序列回复,避免将其误判为用户输入。
    • Bash用户:可在~/.inputrc中添加配置,使Bash跳过相关的转义序列。
  3. 根本性缓解:文章指出,由于终端带内信令的根本设计,此类问题难以彻底根除。许多现代终端已默认禁用标题报告或未实现此功能。

结论

  • 该漏洞再次凸显了终端模拟器底层设计的历史遗留问题。
  • 作者强调此分析并非针对Ghostty项目的攻击,并肯定了其快速的响应和修复。
  • 文章建议对终端内部工作原理感兴趣的读者参考其2023年的相关演讲和更深入的分析文章。
20. FBI: Largest homemade explosives cache in agency history found in Virginia (thehill.com)

该内容并非实际的文章内容,而是一个访问被拒绝的页面。页面标题显示为“FBI: Largest homemade explosives cache in agency history found in Virginia”,但正文被一个人机验证和广告拦截提示系统所取代。

主要内容概括:

  1. 访问受阻:用户试图访问的页面被拦截,提示“Access to this page has been denied”。
  2. 人机验证:系统要求用户进行“按住”操作以证明其是人类而非机器人。
  3. 广告拦截器问题:页面提示,若验证脚本加载失败,可能是由于广告拦截器阻止了相关资源。它建议用户将域名 captcha.px-cloud.net 添加到广告拦截器的白名单中,或暂时禁用广告拦截器。
  4. 故障排除:页面提供了网络连接问题排查指引,以及联系支持团队(challengehelp@humansecurity.com)的邮箱链接。
  5. 技术细节:页面包含用于执行验证的JavaScript代码、错误样式处理以及后备的纯文本信息(针对JavaScript被禁用的浏览器)。

结论:所提供的“内容”实质是一个网站安全验证拦截页,而非原始文章。因此,无法从给定代码中总结关于FBI在弗吉尼亚州发现爆炸物的任何实际新闻信息。用户所看到的是阻止自动访问的技术屏障。

21. Supernovae evidence for foundational change to cosmological models (academic.oup.com)

本文标题为“超新星证据表明宇宙学模型需根本性变革”。根据标题推断,文章的核心内容应围绕超新星的观测数据展开,这些数据可能对当前主流的宇宙学标准模型(如ΛCDM模型)构成了挑战或提出了修正要求。

主要论点可总结为:

  1. 证据来源:分析来自超新星的观测数据。超新星(特别是Ia型超新星)常被用作“标准烛光”来测量宇宙距离,是研究宇宙膨胀历史和暗能量性质的关键工具。
  2. 核心发现:最新的超新星观测结果与现有宇宙学模型的预测存在不一致或冲突。这种不一致不是微小的调整,而是暗示着模型可能需要“根本性改变”。
  3. 影响与意义:该发现质疑了当前对宇宙构成(如暗能量、暗物质比例)、膨胀速率(哈勃常数)或宇宙演化历史的理解,可能推动建立新的物理学理论或修改爱因斯坦广义相对论在大尺度上的应用。

由于原文内容为无法访问的验证页面,以上摘要基于标题的直接含义及天文学常识进行推断。确切的新证据细节、数据对比及具体提出的替代模型,需查阅原始研究论文。

22. Amiga Games Released in 2024 Index (www.lemonamiga.com)

该内容为Cloudflare安全验证页面的HTML代码,并非实际文章内容。页面标题显示为“Just a moment...”,表明用户需通过验证后才能访问“www.lemonamiga.com”网站上关于“2024年发布的Amiga游戏索引”的论坛帖子(topic ID: 19114)。页面核心功能是通过JavaScript脚本执行验证流程,代码中包含加密令牌、时间戳及安全策略等配置信息,旨在拦截非授权访问,未提供具体的游戏列表或描述内容。

24. You don't need Next.js – Why we migrated from Next to React (www.comfydeploy.com)

从 Next.js 迁移至纯 React 的实践总结

核心动机与成果

团队将 ComfyDeploy 的仪表板从 Next.js 迁移至纯 React,主要因以下问题:

  • Vercel 因用户 API 调用产生高额账单($2,000)
  • 构建时间过长(从 3 分钟增至 7 分钟)
  • 本地开发体验差:服务器端渲染(SSR)导致热重载缓慢,修改微小错误需等待数分钟
  • Next.js 15 升级尝试未解决性能问题,反而引入兼容性障碍

迁移后关键改善:

  • 构建时间:从 3 分钟降至 18 秒
  • 热重载:低于 200 毫秒
  • 页面切换:因直接使用 HTML/JS 而更流畅
  • 开发体验:团队效率与满意度显著提升

技术栈调整

  • 前端:采用 TanStack Router + Rspack 替代 Next.js
  • 后端:独立为 Python FastAPI 服务,部署于 Google Cloud Run(支持自动扩展)
  • 结构:前后端代码库分离,强化关注点分离
  • 构建工具:Turbo 模式与 Rspack 优化开发与构建流程

权衡与架构优化

迁移中牺牲了 Next.js 的部分特性,但推动了更合理的架构设计:

  • 失去前端后端共置:换来更清晰的代码边界
  • 失去内置缓存:改为按需实现缓存,更符合实时数据需求
  • 失去预渲染与服务器组件:通过代码分割优化加载速度,并设计更明确的加载状态
  • 失去服务器操作(Server Actions):被迫设计更合理的 API 接口,提升实时数据轮询效率

适用场景与结论

  • Next.js 适合落地页、SEO 友好型项目或简单全栈应用
  • 对于以 React 为核心、无需服务端渲染功能的仪表板类应用,纯 React 配合现代路由与构建工具更具优势
  • 迁移过程也促使团队清理冗余功能、优化依赖管理,并重构 API 设计
  • 团队仍保留 Next.js 用于落地页和 SEO 场景,但仪表板采用纯 React 方案,实现更快迭代与开发愉悦度

作者强调:此决策基于团队特定需求,并非否定 Next.js 本身。Vercel 平台仍用于其他项目,但当前产品阶段更适合轻量化技术栈。

25. The comb jelly can fuse with another (including nervous and digestive systems) (www.cnn.com)