返回首页

一周热榜

2作者: prabhavsanga3 天前原帖
嗨,HN!我开发了 LayerClaw(https://github.com/layerclaw/layerclaw),这是一个以本地为中心的 PyTorch 训练可观察性工具。 问题:在训练神经网络时,很多问题都是悄无声息地发生的。你的损失在第 47,392 步时爆炸;你的梯度在第 12 层消失;你的 GPU 内存随机飙升。等你注意到这些问题时,可能已经浪费了数小时或数天的计算资源。 我厌倦了添加打印语句、手动检查 TensorBoard 文件以及事后追踪训练问题。现有的工具要么需要云账户(如 W&B、Neptune),要么对于快速实验来说太过笨重(如 MLflow、用于梯度分析的 TensorBoard)。 LayerClaw 的功能: - 在训练过程中自动跟踪梯度、指标和系统资源 - 所有数据都存储在本地(使用 SQLite + Parquet,无需云服务) - 检测异常:梯度爆炸、NaN/Inf 值、损失峰值 - 提供命令行界面(CLI)以比较运行结果:`tracer compare run1 run2 --metric loss` - 异步写入的开销极小(约 2-3%) 快速示例: ```python import tracer import torch # 初始化(只需一行) tracer.init(project="my-project", track_gradients=True) # 你的正常训练循环 model = YourModel() tracer._state.tracer.attach_hooks(model) for batch in dataloader: loss = train_step(model, batch) tracer.log({"loss": loss.item()}) tracer.step() tracer.finish() ``` 然后分析:`tracer anomalies my-run --auto` 与其他工具的不同之处: 1. 本地优先:无需注册,无数据离开你的机器,无供应商锁定 2. 专为调试设计:内置深度梯度跟踪和异常检测(不是事后添加的功能) 3. 轻量级:在你的训练循环中只需添加两行代码,开销极小 4. 兼容所有框架:原生 PyTorch、HuggingFace Transformers、PyTorch Lightning 当前限制(v0.1.0): - 仅支持 CLI(计划在 v0.2 中推出 Web UI) - 单机训练(分布式支持即将推出) - 处于早期阶段,欢迎对最有用的功能提供反馈 现在可用: - GitHub: https://github.com/layerclaw/layerclaw *我在寻找贡献者!* 我已经创建了几个“适合新手的问题”,欢迎任何有兴趣贡献的人。需要帮助的领域: - 可视化的 Web UI - 分布式训练支持 - 更多框架集成 - 实时监控仪表板 如果你之前在机器学习训练中遇到过问题,我非常希望听到你认为最有价值的意见。欢迎提交 PR,或者如果你觉得这个项目有趣,请给仓库加星! 什么功能会让这个工具成为你工作流程中不可或缺的一部分?
2作者: gurgeous4 天前原帖
嗨,HN。AnsiColor 为您的 TUI、CLI 应用程序或提示构建了强大的 ANSI 颜色代码。这些颜色在用户的终端主题下都能正常工作。 我是在使用 Solarized Dark 主题时,体验到 Codex CLI 的可读性极差后,才开始构建这个工具。如果一家价值数十亿美元的公司都做不好,我们就需要更好的工具。 它提供了以下主题: ``` Andromeda Ayu Dark/Light Bearded Dark/Light Catppuccin Frappe Catppuccin Latte Catppuccin Macchiato Catppuccin Mocha Dracula GitHub Dark Gruvbox Monokai Dark/Light Nord One Dark/Light Palenight Panda Solarized Dark/Light Synthwave 84 Tailwind Tokyo Night Dark/Light ```
2作者: duriantaco5 天前原帖
我一直在思考为什么在Python中,死代码检测(以及静态分析一般)相比其他语言感觉如此不可靠。我明白Python本质上是动态的。 理论上,这应该是简单的(再次强调,理论上):解析抽象语法树(AST),构建调用图,找到引用为零的符号。但在实践中,由于许多因素,这一过程很快就会失效,例如: 1. 动态调度(getattr、注册表、插件系统) 2. 框架入口点(Flask/FastAPI路由、Django视图、pytest夹具) 3. 装饰器和隐式命名约定 4. 仅通过测试或运行时配置调用的代码 大多数工具似乎在两种糟糕的权衡中选择其一: 1. 保守处理,错过大量真正的死代码 2. 激进处理,标记假阳性,导致人们失去信任 到目前为止,对我来说最有效的方法是将代码视为一种置信度评分,并结合一些有限的运行时信息(例如,测试期间实际执行的内容),而不是完全依赖静态分析。 我很好奇其他人在实际代码库中是如何处理这个问题的……你们是接受假阳性吗?还是完全忽视死代码检测?有没有人见过实际可扩展的方法?我知道SonarQube的噪音很大。 我构建了一个带有vsce扩展的库,主要是为了探索这些权衡(如果相关,链接在下面),但我更感兴趣的是其他人是如何看待这个问题的。希望我在正确的频道。 上下文的代码库: https://github.com/duriantaco/skylos
2作者: cloneisme5 天前原帖
随着像OpenClaw这样的个人AI代理通过利用用户的私人数据变得越来越强大,隐私问题已成为一个根本性的瓶颈。<p>我们推出了HEVEC,这是一种基于同态加密的向量数据库,能够实现端到端的隐私保护,并支持大规模的实时搜索。<p>HEVEC被设计为明文向量数据库的可替代方案,支持大规模的实时加密搜索(在约187毫秒内处理100万个向量)。<p>关键点: - 一个安全的、可替代明文向量数据库的方案 - 对数据和查询进行端到端的同态加密 - 大规模的实时加密搜索(在187毫秒内处理100万个向量)<p>随着个人AI代理变得更加个性化,数据的所有权必须归用户所有。<p>HEVEC通过隐私设计架构来强制执行这一点。<p>我们欢迎来自AI、系统和隐私社区的反馈。
2作者: ambonvik5 天前原帖
大家好, 我开发了一个名为<i>Cimba</i>的多线程离散事件模拟库,使用C语言编写。 Cimba利用POSIX pthread多线程技术实现多个模拟试验的并行执行,同时协程在每个模拟试验的宇宙内部提供了并发性。模拟的过程基于不对称的栈协程,切换上下文的部分是用汇编语言手动编码的。 栈协程使得表达代理行为变得自然,因为可以在概念上将自己“置于”该过程内部,并描述它的行为。一个过程可以在无限循环中运行,也可以作为一个一次性客户在系统中传递,能够在其调用栈的任何层级进行让步和恢复执行,既可以充当主动代理,也可以根据需要充当被动对象。这一设计灵感来源于我多年前在Simula67编程的经历,当时我发现协程的重要性超过了当时广受欢迎的面向对象编程。 Cimba的运行速度非常快。在一个简单的基准测试中,100次M/M/1队列的试验,每次运行一百万时间单位,Cimba的速度比用SimPy和Python多进程构建的等效模型快<i>45倍</i>。与SimPy模型相比,运行时间减少了<i>97.8%</i>。Cimba甚至在单个CPU核心上每秒处理的模拟事件数量也超过了SimPy在所有64个核心上能做到的。 这种速度不仅仅归功于高效的协程。其他部分也经过了速度优化,比如哈希堆事件队列(二叉堆加斐波那契哈希表)、快速随机数生成器和分布、频繁使用的对象类型的内存池等等。 初始实现支持Linux和Windows的AMD64/x86-64架构。我计划接下来支持Apple Silicon,然后可能会考虑ARM架构。 我相信这可能会引起HN社区的兴趣。我希望听到大家对API和代码的看法。对于未来考虑的目标架构,大家有什么想法吗? 文档:<a href="https://cimba.readthedocs.io/en/latest/" rel="nofollow">https://cimba.readthedocs.io/en/latest/</a> 代码库:<a href="https://github.com/ambonvik/cimba" rel="nofollow">https://github.com/ambonvik/cimba</a>
2作者: boxqr5 天前原帖
嘿,HN(黑客新闻), 在开发了 Box QR(个人库存追踪器)之后,我不断听到“我需要这个来管理我的业务。”因此,我正在探索 ItemGrid——一种轻量级的库存管理工具,简单易用。 问题是:小企业在 Google Sheets(杂乱无章,无法移动扫描)和企业软件(昂贵,过于复杂)之间陷入了困境。 ItemGrid 的功能包括: - 视觉网格界面 - QR/条形码扫描 - 多地点支持 - 永久免费支持一个地点 - 当你扩展时,每位用户 $8 目前,它只是一个收集验证注册的登录页面。在收到 50-100 个注册以确认真实需求之前,不会构建完整产品。 非常希望能得到反馈,特别是如果你曾经遇到过库存管理的烦恼。 [https://itemgrid.io](https://itemgrid.io)