2 分•作者: gbxk•大约 1 个月前
大家好,我是 Gary。<p>今天我想介绍 k7d,这是一个遵循 Apache 2.0 协议、用 Rust 编写的精简 VMM + shim,它实现了以前不可能的功能:能够快速克隆正在运行的虚拟化多节点 Kubernetes 集群,并且在克隆过程中保持进行中的连接。 <p>一个包含 3 个 VM 节点的 K8s 集群可以在 105 毫秒内完成克隆,在 64GB RAM 的机器上,一个包含 3 个 VM 的集群可以进行 50 次克隆,耗时 4.1 秒。 <p>我在这里有两个目标: <p>1) 实现大规模 GRPO/RL 训练的 AI 在 Kubernetes 基础设施上运行,我认为这是一个非常适合推理训练的平台,除了训练一个真正有用的能力。这不仅需要快速的 episode 重置(因为在 RL 后期训练中你需要数万次多轮交互),而且快速克隆也能极大地受益于并行分支探索、回滚和剪枝,从而在 RL 训练过程中进行。忠实的克隆也能为 GRPO 的 G 提供字节相同的起点,从而减少组间的方差。 <p>2) 为我的另一个项目 K7 实现 <3 秒的 VM 快照暂停/恢复/克隆沙箱,该项目提供大规模 VM 沙箱的自托管基础设施,具有用户友好的 CLI/API/Python SDK,并且是 Kubernetes 原生的。 <p>除此之外,k7d 还具备以下特点: <p>- 树形 API 进行资源管理:正如你所料,在克隆时,即使有优化的写时复制(CoW)页面共享,你也需要妥善管理你的资源(内存+磁盘),因此你需要知道如何在运行时进行驱逐。所以我设计了树形逻辑来跟踪子页面与父页面的共享情况,让你的 AI 代理可以保护有前景的树分支,驱逐没有前景的分支,或者在资源紧张时让 LRU(最近最少使用)之类的逻辑自动驱逐。这种基于树的逻辑既适用于单 VM 沙箱,也适用于多 VM 集群及其自身的 Linux 网桥。 <p>- 形式化验证:当然不是全部,但 k7d 的部分关键子模块已经过形式化验证:我使用 Kani 对不安全路径中的内存算术进行验证,并使用 Aeneas(带有 Lean 后端)来形式化证明上述基于树的逻辑,以确保驱逐永远不会释放被活动后代引用的页面。 <p>- 将延迟作为 CI:我严格跟踪大多数重要操作的延迟,并通过一套集成测试来持续检查/强制执行。 <p>我确实努力避免自己构建 VMM,最初我为 K7 构建了一个不同于我最初的“kfd”(Kata + Firecracker + Devmapper-snapshotter over LVM thin-pool)的后端,我称之为“kql”(Kata + Qemu + Longhorn)。如果你熟悉这个技术栈,你就会立刻明白:Longhorn 非常适合跨节点复制,所以我用它来跨节点复制我的快照,这样“快照恢复”总是有效/高可用。这里使用 Qemu 是因为 Longhorn 的块存储要求与 Firecracker 不兼容,Firecracker 需要 Devmapper-snapshotter,而我不想自己构建跨节点复制逻辑。 <p>但是这个“kql”后端由于 Longhorn 的构建方式,克隆速度为 45 秒,这对于要求 K7 实现快速克隆的用户来说太慢了。 <p>因此,这促使我转向 k7d,它被命名为“k7 的守护进程”,它是一个独立的、原生的 VMM 和 shim,同时取代了 Firecracker/Qemu 和 Kata。 <p>这使得 K7 中的 VM 沙箱可以在 2-3 秒内完成克隆,其中大部分延迟是 kubelet 的开销,因为在 VMM 层面,热克隆实际上只需要 5 毫秒。 <p>一个安全权衡:守护进程必须在同一棵树的分支之间共享:这是设计使然。因此,你失去了 Firecracker 为每个 VM 提供的 Jailer。但我可以为每棵树重建一个类似的 Jailer,当一棵树不跨租户共享时,例如在使用分支进行 RL 训练时,这已经足够了。这只是针对与 Firecracker 不同的目标进行了优化。 <p>代码库有意设计得足够精简,便于审计(VMM + shim < 30k 行代码),并且我在 README 的顶部链接了一个深入的博客文章系列。 <p>我希望大家会喜欢它,我也非常欢迎贡献者和批评者。 <p>谢谢!
3 分•作者: rhgraysonii•大约 1 个月前
目前支持 Mac、Linux 和 Windows 系统。我包含了一个简单的图形用户界面(GUI),用于查找新模型并进行构建和设置。对我来说,它在几个模型上运行得相当好。GitHub 的 README 和 DESIGN.md 文件详细介绍了“如何”和“为什么”,到目前为止效果非常显著。https://github.com/notactuallytreyanastasio/shoehorn
3 分•作者: brooke1•大约 1 个月前
我正在尝试开发一款应用程序,旨在帮助我所在的本地社区,但同时也有计划将其扩展到服务更广泛的社区。这是一个复杂的应用程序,涉及许多组件,作为一名初级开发人员,我在一些使用的技术方面经验不足,因此我将严重依赖 Claude。然而,我知道 Claude 的能力很大程度上取决于使用它的人,而我是一名初级开发人员。那么,例如,我该如何处理架构问题?我不能完全依赖 Claude 来设计架构,但我的职业生涯还不足以独立设计出完美的架构。 大家认为我可以通过阅读文章/观看 YouTube 视频自学哪些内容,又有哪些方面可能需要聘请一位资深开发人员来帮助我完成? 我这个想法已经持续了一段时间,原本打算等我成为一名更有经验的软件工程师时再开始,但现在就是最好的时机,我想下定决心开始,即使这意味着我会犯更多的错误并在工作中学习。 作为参考,我倾向于使用的技术栈是 PostgreSQL(我没有这方面的经验)、Java Spring Boot(我在这方面经验相当丰富)、TypeScript 和 Angular(经验丰富),以及一些 Python(有一些经验)。还有其他一些技术,比如 Redis(没有经验)。 总之,任何关于如何正确完成这项工作的帮助/建议都将非常有益。这个项目的初衷之一就是学习,即使这意味着几个月后我发现必须从头开始,哈哈。
1 分•作者: cryptographical•大约 1 个月前
大家好!!我受我朋友的 Carrd 启发,制作了自己的个人静态网站。我最终实现了一个浏览器原生的后量子 PGP 类系统:签名和加密消息直接通过 URL 的哈希片段传输,用户无需任何账户、专用软件或密钥上传。一旦安装为 PWA,验证和解密就可以完全离线运行;唯一需要传输到设备的是 URL 本身。点击带有签名消息的链接会自动针对网站固定的公钥验证签名。对于加密消息,点击链接并输入密码即可解锁载荷。我已从 iPad Air 2 测试到 Ryzen 9 9950X 的功能。 我选择了 UOV 和 Classic McEliece,因为这两种方案的公钥都非常大,但传输的载荷却很小。该网站将公钥作为静态二进制资产托管,因此大公钥不会增加每个共享消息链接的大小。UOV 添加了 96 字节的签名,而 Classic McEliece 添加了 96 字节的 KEM 密文;其余的 URL 大小主要是压缩后的消息本身和对称加密的开销。 此外,我还实现了一个受 Owala 启发的签名主题功能。由于我的网站总共只使用 5 种十六进制颜色代码,我可以用 UOV 签名官方配色方案,并将签名配色方案直接编码到 URL 中,一键即可验证并应用。任何人都可以本地编辑主题,但他们不能将修改后的配色方案作为我的官方主题分发,因为 diaryof.me 在应用之前会针对我的固定公钥验证 UOV 签名。 使用的方案: 对称加密:XChaCha20-Poly1305-SIV (libsodium) 密码 KDF:Argon2id (libsodium) KEM:Classic McEliece 348864f 签名:UOV-pkc-Is 这是我的个人日记,我将其献给我现实生活中的挚友。我很想听听任何反馈。请享用!
3 分•作者: pbt93•大约 1 个月前
各位 HN 的朋友们, 我是一名独立创业者,非技术背景,正在开发 W,一款基于顶级单字母域名(https://w.xyz)的 AI 驱动的网页邮箱服务。 我获得了这个域名,并利用 AI 代理构建了一个功能性的客户端概念验证。为了处理基础设施,我通过 Mailgun 实现了应用逻辑的路由。在内部,原型已经完全可用——来自 @w.xyz 邮箱的邮件可以成功发送和接收。W 结合了高度优化的界面和内置的 AI 功能,如垃圾邮件扫描、智能回复和文本摘要。 目前我有一个 30 多人的自然增长的等待名单,同时我正在完成最后的收尾工作,并准备从原型技术栈迁移。 我想向社区请教以下问题: **概念验证:** 考虑到邮箱领域的竞争异常激烈,您认为一个原生 AI 的高端网页邮箱服务是否存在一个可行的市场,还是您认为用户从 Gmail/Outlook 迁移的成本太高? **扩展路线图:** 作为一名非技术背景的创始人,即将从 AI 生成的原型技术栈迁移,我目前必须优先考虑哪些最关键的架构基础,以确保系统能够平稳扩展? 附注:如果您有兴趣从零开始构建一种新型的邮箱平台,请在下方留言。
4 分•作者: mguerville•大约 1 个月前
我想了解 HN 社区是否有关于将最先进人工智能(SOTA AI)的实际应用来改进专业服务(例如外包财务等)的优质资源(博客、播客、其他内容)。 我读过不少关于人们认为应该做什么的理论性内容,但没找到太多关于实际操作者的经验分享。