返回首页
最新
我们在Nutanix开发了这个工具,以解决一个反复出现的问题:检测大型对象存储之间的数据漂移(数亿个对象)。<p>现有的工具,如AWS CLI(aws s3 sync --dryrun)和s5cmd(--dry-run),在许多工作流程中表现良好,但我们对更深入和灵活的比较有稍微不同的需求。这促使我们开发了这个工具,并且我们现在已将其开源,以便更广泛地使用。<p>主要功能:<p>1. 双向差异比较:给定两个存储桶A和B,该工具报告(A−B)和(B−A)。<p>2. 浅层检查模式:比较对象名称和ETag以确定对象的存在。<p>3. 深层检查模式:通过HeadObject比较标签、元数据和ObjectLock/WORM。<p>4. 可恢复性:检查点功能允许长时间运行的任务无缝恢复。例如,一个在8M对象处中断的10M对象运行将从中断处继续。<p>性能(50万个对象):
浅层模式:约3900个对象/秒
深层模式:约1345个对象/秒(25个工作进程)<p>该工具可以在任何两个兼容S3的存储桶之间工作。<p>欢迎讨论有关该工具的任何问题!
我和女朋友发生了争吵。我们都在没有告诉对方的情况下,登录了共享的Claude账户来发泄情绪。最终,她注意到了那个聊天记录,加入了进来,并开始对我进行盘问。我收到了一些奇怪的回复,Claude让我冷静下来。在意识到聊天记录被重命名为“为什么迈克尔是个不体贴的混蛋”后,我刷新了一下,发现Claude并没有考虑到多会话的WebSocket功能,于是告诉它有我们两个。之后,看到同一个对话中的双方,它自然开始进行调解。没有人要求它这样做。它识别出正确的发言者,读懂了气氛,并根据当下的需要作出回应。
我们寻找“与AI的群聊”,但并不存在。所有的都是一对一的助手模式。
于是我们开始构建它。一个作为参与者坐在你群聊中的AI,而不是一个你@来提问的机器人。它有自己的观点。它决定何时发言,何时保持沉默。它能读懂气氛。
我遇到的最有趣的障碍是记忆。
RAG、嵌入、原生KV都共享一个我需要打破的限制。“用户X喜欢寿司。”变得在任何地方、永远对每个人可访问。这并不是知识的运作方式。如果我在酒吧告诉你一个秘密,桌子上的人都知道。20分钟后才出现的那个人就不知道。如果我在私下告诉你一些敏感的事情,你会永远知道,但不会在大家面前提起。
因此,我构建了基于见证者的记忆。当AI学到某些东西时,它会将在场的每个人标记为见证者。记忆是不可变的,属于那些在场听到的人共同拥有的财产。
只有在至少有一个见证者在场时,记忆才可用。艾丽斯在你提到分手时在场吗?AI在艾丽斯在的任何房间都知道。只有你和鲍勃?没有任何概念。艾丽斯加入?现在它记住了。私密对话被标记为learned_privately,并且永远不会在公共场合出现。AI像一个真实的人对待秘密一样对待私密知识。
记忆的衰减因类型而异:事实是永久的,偏好在几个月内消退,情感在几天内消退,意图在几周内消退。所有记忆在一个显著性评分的上下文槽中竞争。最近的访问和当前房间的存在都会提升它。新记忆通过嵌入检查现有记忆。“迈克尔有一只狗” + “这只狗的名字是萨姆”会形成一个链条一起浮现,而不是覆盖。
记忆是第一个难题。第二个难题是知道何时不该发言。
每个大型语言模型的默认模式是回应。但真实对话中的参与者大部分时间都是沉默的。当你的两个朋友在处理某些事情时,你不会插嘴。难题不在于该说什么,而在于识别何时正确的举动是保持沉默。
因此,在昂贵的个性模型运行之前,一个便宜的模型(Haiku)会读取最后N条消息,并决定AI是否应该发言。我先尝试了规则,但效果很差。现在它是一个描述对话物理的提示。开放循环(某人被悬而未决,填补空白)与封闭循环(两个人来回交流,保持沉默)。经过几次迭代,它才不再愚蠢。结果发现Haiku在布尔工具输出上有系统性偏见,因此我不得不反转模式:询问should_stay_quiet而不是should_respond。大幅减少了误报。
这已经在真实用户中上线。对话的感觉不同。最令人惊讶的涌现行为之一是它是多么搞笑(评论中有截图)。对此完全没有提示。
我不断回到一个观点:大多数AI产品看起来平淡或机械的原因并不是模型,而是框架层。当你不再将AI构建为一个被单个用户查询的助手,而是作为一个多人的社交环境中的参与者时,模型展现出比助手框架所暴露的更多个性和能力。架构是瓶颈,而不是权重。
如果你想尝试,可以访问takt.chat。这个帖子更多是关于架构而非产品。
我正在积极开发一个任意精度算术库,使用C语言,旨在提供一个几乎与GNU的LibGMP一样快速的替代品,但采用MIT许可证。作为一名全日制大学生,独立完成这个项目有些繁琐,但进展缓慢而稳定。
<p>GitHub链接:https://github.com/EpsilonNought117/libapac</p>
我从GMP的公共API中获得了API和命名方案的灵感,但内部实现(据我所知)完全是我自己的。该库目前在Unix-like和Windows操作系统上使用运行时调度来支持x86-64 CPU的特定微架构版本的汇编函数,未来也计划支持ARM64。所有汇编例程都是我手动编写的(从写作风格上来看可能很明显),使用了MASM和GAS汇编器,并且有一些基于SIMD的例程是使用编译器内置函数编写的。
<p>截至目前,性能似乎与GMP在小到中型大整数上的表现相当(性能图见README)。我实现了一些算法,例如Karatsuba算法和分治法(平衡和不平衡)除法,未来还会根据需要实现更多算法。Brent和Zimmerman的《现代计算机算术》和Henry Warren Jr的《黑客的乐趣》这两本书对我帮助很大。</p>
<p>仍在大量开发中。</p>
我对任何反馈和批评都很感兴趣,欢迎提出任何问题。