1 分•作者: novakwok•大约 8 小时前
返回首页
最新
1 分•作者: znpy•大约 8 小时前
15 分•作者: taubek•大约 8 小时前
11 分•作者: weeha•大约 8 小时前
1 分•作者: fullstacktard•大约 8 小时前
1 分•作者: duck•大约 8 小时前
1 分•作者: misbahsy•大约 8 小时前
大多数处理 PDF 或图像的产品都在默默地重建同样的东西:一个拼凑起来的“路由器”,它选择调用哪个 OCR/视觉 API,规范化响应,并祈祷月底的账单是合理的。
DocsRouter 作为一款产品,就是这一层:一个稳定的 API,与多个 OCR 引擎和视觉 LLM 对话,允许您根据成本/质量/延迟来路由每个文档,并为您提供规范化的输出(文本、表格、字段),这样您的应用程序就不必关心使用了哪个提供商。
它适用于那些使用文档进行严肃工作的团队:发票/收据、合同、工资单、医疗/管理表格、物流文档等,他们要么被困在“我们几年前选择的 OCR”上,要么被新视觉模型的快速变化所淹没。
目前,您将获得一个 REST API、简单的 SDK(即将推出)、一些可插拔的后端(经典 OCR + 较新的视觉模型)、一些基本的路由策略,以及一个游乐场,您可以在其中上传文档并并排比较输出。
我希望从 HN 获得关于两件事的反馈:
1 - 如果您已经同时使用多个 OCR/视觉提供商,您的自制路由器是什么样的,您需要什么才能信任外部路由器?
2 - 您更喜欢这个,还是直接使用 LLM/OCR 提供商,并有可能经常更换提供商?
演示和文档在这里:[https://docsrouter.com](https://docsrouter.com)
1 分•作者: binora•大约 8 小时前
1 分•作者: taubek•大约 8 小时前
1 分•作者: celadevra_•大约 9 小时前
1 分•作者: marco_z•大约 9 小时前
在不同组织构建机器学习系统后,我将编写的一些实用工具整合到一个库中。
这个库可以实现的功能:
* 在对象存储上保存(和检索)模型检查点(可选使用内容可寻址命名方案)
* 从对象存储中将数据集增量加载到 Pytorch 中,使用本地磁盘缓存
* 将训练指标存储到 SQLite 中
设计原则:
* “云端简单,软件智能” - 我更倾向于使用对象存储和容器运行时等通用服务,而不是类似框架的抽象(例如托管的 MLFlow 或类似服务)
* 以最直接的方式扩展 Lightning
* 让用户通过对现有模型代码进行最少的更改来组装轻量级的 MLOps 流程
欢迎提出任何问题并提供反馈!
该库使用 Sonnet 进行了完善,但经过了彻底的人工检查。
1 分•作者: JamesAdir•大约 9 小时前
2 分•作者: Sudachidev•大约 9 小时前
昨天读了这篇文章之后,<a href="https://news.ycombinator.com/item?id=46296863">https://news.ycombinator.com/item?id=46296863</a>,<p>我想稍微改动一下,于是就自己动手做了一个。<p>基本上,它会扫描页面上的所有段落,用日语罗马音替换其中的 5 个单词。这些单词的颜色会改变并加粗显示。当鼠标悬停在被替换的单词上时,会弹出一个小窗口,显示平假名和英文单词。<p>目前,它有一个小型的单词列表(111 个),所有单词都经过挑选,属于基础级别,并且(希望)在上下文中不会引起混淆。<p>我计划将单词列表扩展到大约 1000 个,并且每周循环使用 200 个单词,并有一定的重叠。<p>编辑:一个运行截图 - <a href="https://freeimage.host/i/fldb3KB" rel="nofollow">https://freeimage.host/i/fldb3KB</a><p>它也正在上传到 Firefox 插件商店,但需要一段时间。
3 分•作者: dakingffo•大约 9 小时前
Hi HN,
我是一名 C++ 学生,在过去的几个月里,我一直沉迷于并发数据结构的研究。现在我分享 daking::MPSC_queue,这是一个仅头文件、无锁、无界 MPSC 队列,旨在弥合链表灵活性和基于数组的吞吐量之间的差距。
1. 直面挑战:"链表瓶颈"
在传统的 MPSC 链表队列中,如果多个生产者尝试以高且均匀的频率入队单个元素,则由此产生的 CAS 争用会导致严重的缓存行弹跳。在这些饱和的均匀负载场景中,吞吐量会达到一个物理“下限”,其性能通常不如预先分配的环形缓冲区。
2. 针对现实世界场景的架构解决方案
该设计没有侧重于均匀负载下的平均吞吐量,而是针对两个特定的现实世界挑战:
* 场景 A:非均匀争用(突发弹性)
在许多系统中,生产者通常处于空闲状态,但偶尔会发生突发。通过促进一个高速生命周期,其中节点块从消费者(回收)-> 全局堆栈 -> 生产者(分配)循环,且复杂度严格为 O(1),该队列可以在突发期间快速建立类似 SPSC 的性能,峰值约为 1.61 亿/秒。
* 场景 B:批量争用减少
enqueue\_bulk 接口允许生产者在私有内存中预先链接整个段。这减少了从 N 个原子操作到单个原子交换的争用。批次越大,争用越低。
3. 隐式分块和资源生命周期
内存管理通过 Page -> Chunk -> Node 层次结构进行,而不是碎片化的分配。
* 隐式组合:与分块数组不同,节点不是存储在连续的数组中,而是自由地组合成逻辑“块”。这保持了链表的灵活性,同时获得了块的管理效率。
* 零成本弹性:无界设计消除了流量高峰期间的背压停顿或数据丢失,堆分配频率降低到 log(N)。
4. 工程严谨性
* 安全性:已通过 ThreadSanitizer (TSAN) 和 ASAN 的全面审核。
* 类型安全:支持不可默认构造的类型;noexcept 自动推导。
* 轻量级:零依赖,仅头文件,并与 C++17/20 兼容。
关于基准测试的说明:
为了完全透明,我已将其与 moodycamel::ConcurrentQueue 进行了基准测试。在高度均匀、小粒度的争用场景中,我们的实现略慢。但是,daking::MPSC\_queue 在非均匀突发和批量传输场景中提供了 3-4 倍的性能提升,其中“零成本弹性”和减少争用是主要目标。
我很想听听您对这个存储库的看法!
GitHub:[https://github.com/dakingffo/MPSC\_queue](https://github.com/dakingffo/MPSC_queue)
1 分•作者: militanz•大约 9 小时前
我最近在 HN 上读到过一篇关于这个话题的帖子,但现在找不到了,所以在这里写下我的想法。<p>最近,我开始了一个用 Rust 编写的业余项目,它从几个网站收集新闻,并为我创建一个每周摘要。<p>因为我只是为了好玩才做的,所以我开始开发一个抓取器。<p>然而,一个更简单的选择是使用网站的 RSS 订阅。因此,我也去找了它们,但很少有网站提供 RSS 订阅。<p>现在,随着 Agentic AI 的出现,RSS 订阅似乎已经过时,不再需要了。<p>你觉得呢?
1 分•作者: dorianzheng•大约 9 小时前
1 分•作者: zoenolan•大约 9 小时前
1 分•作者: lastdong•大约 9 小时前
1 分•作者: Jimmc414•大约 9 小时前
1 分•作者: helsinkiandrew•大约 9 小时前