## MicroGPT:200行代码实现的LLM Andrej Karpathy 使用200行Python代码创建了一个完全可用的GPT语言模型,展示了像ChatGPT这样的模型背后的核心原理,*无需*依赖外部库。该模型从32,000个示例的数据集中学习生成合理的人名。 过程首先将名称转换为数字标记——为每个字符分配一个ID,以及一个“序列开始”标记。然后,模型预测序列中的下一个标记,学习字符之间的统计关系。这种预测依赖于“注意力”机制,允许模型权衡输入不同部分的重要性。 至关重要的是,模型通过反向传播学习,使用交叉熵方法调整其参数以最小化预测误差(损失)。这涉及计算梯度并通过像Adam这样的优化器更新参数。 虽然这个micro-GPT使用简单的Python标量,但其底层算法与更大的LLM相同——这只是规模的问题。差异在于利用GPU、更大的数据集、更复杂的标记化以及大幅增加的模型大小(参数和层)。最终,核心循环保持不变:预测下一个标记,衡量误差,并完善模型。
## Servo 0.0.5:实验性浏览器重大更新
Servo 0.0.5 在网络平台功能、性能和稳定性方面带来了显著改进。主要新增内容包括对 `<link rel=preload>`、`<style blocking>` 和 `<img align>` 的支持,以及对 `<select disabled>`、`<audio>`(现在可以播放 OGG 文件)和 CSS 功能(如 `cursor-color` 和 `<details>` 元素的样式设置)的增强功能。
在底层,Servo 拥有新的 Web Cryptography 算法(ML-KEM、ML-DSA、AES-OCB),改进了 JS 模块加载,支持循环导入和 JSON 模块,并启用了 `navigator.sendBeacon()` 以实现更快的分析。网络改进包括 HTTPS 代理支持和更完善的错误处理。
性能提升得益于优化的 IPC 通道和缓存策略,而稳定性则通过大量的错误修复和防止崩溃措施得到加强。开发者工具也得到了增强,具有更好的 UI 分类和调试功能。
最后,该更新强调了持续的社区支持,通过捐赠和赞助来推动持续开发和基础设施建设。此版本代表着 Servo 作为下一代 Web 浏览器引擎向前迈出的重要一步。
## SAS-音频处理器:一套25种音频工具
SAS-音频处理器是一套包含25种音频处理工具的集合——包括修剪、归一化、EQ、混响、音高变换以及BPM检测和调性识别等分析功能,可通过DeclarAgent的MCP(多命令协议)访问。这些工具接受WAV文件并输出结构化的JSON数据。
该套件分为处理、效果、分析、MIDI和复合工具几类,提供静音移除、压缩和旋律提取等功能。用户可以将工具链式连接起来,执行复杂操作,例如母带处理过程(归一化 -> 压缩 -> 限制)。
**集成:** 该处理器通过简单的配置更新,可与Claude Code和其他MCP客户端(如Cursor、Windsurf和Copilot)集成。
**用法:** 工具通过类似`sas-processor analyze --input <文件>`的命令调用,结果以JSON形式返回。 快速入门指南提供了示例对话,展示了在Claude Code中的使用方法。
**安装:** 安装涉及克隆GitHub仓库、设置Python虚拟环境和安装依赖项。 提供适用于macOS的预构建二进制文件。 该项目还包括全面的测试和覆盖报告。
## 从电动自行车困境到DIY动力中心
出于减少汽车使用的愿望,作者开始探索克服标准电动自行车局限性的方法。虽然承认电动自行车在中程出行方面优于汽车(并且在荷兰很受欢迎),但他们发现现有型号的续航里程和速度不足。
最初使用二手电池的尝试被证明是不够的,导致“续航焦虑”。升级到更快的S-Pedelec虽然提供了更高的速度,但续航里程却更差。这促使他们启动了一个复杂的项目:为Riese & Mueller自行车构建定制的高容量电池组。
该项目涉及深入研究Bosch电动自行车系统的复杂性,规避DRM限制,并最终构建了一个170节(最初计划190节)的锂离子电池组。挑战包括焊接过程中的电源问题以及确保安全构造。结果?一个2150Wh的电池,提供惊人的130公里续航里程,有效地取代了汽车出行。
作者公开分享了构建过程,强调了潜在的改进,并鼓励反馈以推动电动自行车技术的发展,倡导通过优化的充电/放电循环来实现更持久的电池。
## GIMP 与 GEGL:与 Øyvind Kolås 的对话
本文呈现了一篇重现的采访,采访对象是 GEGL 和 babl 的维护者 Øyvind Kolås(“Pippin”),它们是 GIMP 功能的关键色彩引擎,包括 GIMP 3.0 中的全新非破坏性滤镜。 这次采访于 2017 年进行,深入探讨了 Øyvind 的背景、他对项目的贡献以及自由软件图形的未来。
Øyvind 的参与始于一个改进 GIMP 透视变换的补丁,源于他对视频编辑工具的实验。 他解释说,GEGL 是一个用于串联图像操作的系统,可以实现强大的功能,例如非破坏性编辑。 他承认 Mitch 对 GEGL 与 GIMP 的集成有最深入的理解,但他讨论了为高级功能实现用户友好界面的挑战。
他强调了 GEGL 在 GIMP 之外的潜力,设想其滤镜可以在其他软件中使用。 Øyvind 还谈到了性能方面的考虑,目标是每秒 10 帧的更新速度,以及持续努力改进文档和网站展示。 他最后讨论了他的 Patreon,寻求支持以继续开发开源图形工具并追求他在代码和视觉媒体中的创意探索。
## 重新思考Postgres的`random_page_cost`
Postgres默认的`random_page_cost`,在过去25年里一直设置为4.0,可能无法反映现代存储的实际情况。实验表明,随机页面读取比顺序读取要昂贵得多——在本地SSD上慢约25-35倍,在云存储上甚至更高——这与将SSD的值降低到1.0的建议相矛盾。
这种差异源于虽然SSD处理随机I/O更好,但*成本*差异仍然很大。调整`random_page_cost`会影响查询计划;配置不当的值可能导致次优计划,可能导致查询时间长达10倍。
然而,降低成本并不总是错误的。在具有高缓存命中率的系统中,随机I/O可能优于完全顺序扫描。此外,当前的成本模型没有考虑预取,而预取可以显著提高性能。
最终,调整`random_page_cost`需要仔细监控和评估,因为它是一种解决复杂数据访问模式的简单粗暴的方法。未来的改进可以包括分离非I/O成本、更好的缓存统计信息以及将预取纳入成本模型。