12作者: JohannaAlmeida5 天前原帖
简要概述:对 PyTorch 和 Triton 的内部进行了分支修改。将注意力机制改为线性第一层、中间的二次层和最后的线性层。推理速度显著提升,测试中的困惑度影响较小。 完整注意力 O(n²):17.96秒 / 5.6 个标记/秒 混合注意力 O(n·W + n·D):0.35秒 / 286.6 个标记/秒 我正在用 PyTorch 从零开始构建一个小型 Rust 语言模型。这不是微调,而是从随机初始化开始的字节级训练,训练数据来自一个以 Rust 为主的语料库,链接在此:https://codeberg.org/JohannaJuntos/Sisyphus 模型和训练设置 该模型有 2560 万个参数,上下文长度为 512。它使用 256 的字节级词汇,包含 8 层、8 个头和 512 维的嵌入。位置嵌入是学习得来的,嵌入和语言模型头的权重是绑定在一起的。 训练在一个 173.5M 字节的 Rust 语料库上进行了 30,000 步,使用单个 RTX 4060 Ti 8GB 显卡。最终指标为训练损失 0.5834,验证损失 0.8217,困惑度 2.15。最佳验证损失出现在大约第 18,500 步,这表明可能存在一些晚期过拟合或停滞现象。 架构 该模型是一个 GPT 风格的解码器,但在每一层中用混合注意力块替代了标准的完整注意力。这种设计结合了局部窗口因果注意力和类似 GRU 的递归状态路径,以及一个学习到的门控机制,用于混合这两者。 局部路径处理短程语法,而递归路径则携带压缩的长程状态。门控偏置在训练早期被初始化为偏向局部注意力。 推理使用 Triton 内核和自定义的 torch.library 操作。 语料库 最大的提升来自于语料库的扩展。 运行开始时约有 31MB 的数据,来自 Rust 官方源和主要项目,如 rustc、cargo、rust analyzer、tokio、serde、ripgrep、clap 和 axum。通过克隆前 500 个 crate,语料库扩展到 173.5M 字节,成功克隆 461 个。 这种扩展的影响超过了任何架构上的变化。 推理性能 完整注意力的运行速度约为每秒 5.6 个标记,而使用 KV 缓存的混合注意力达到了每秒 286.6 个标记。这是约 51 倍的加速,且没有明显的质量损失。 KV 缓存使用 64 个标记的热窗口存储在显存中,而旧的标记则被压缩为 8 位的幅度和角度,并可以选择性地提升回全精度。这使得该设置的有效复杂度从二次降低到接近线性。 质量 表面的 Rust 语法看起来不错,导入和函数签名通常是合理的。语义仍然较弱,重复和递归模式较为常见。它看起来像 Rust,但尚未具备良好的推理能力。 有趣之处 该项目结合了从零开始的字节级 Rust 预训练、混合局部注意力和递归架构、跨 Rust 生态系统的大规模语料库扩展,以及一种实用的 KV 缓存分页策略,在消费级 GPU 上实现了显著的加速。 下一步 我计划进行消融实验,比较混合注意力与仅局部和仅递归变体,评估大约 18,500 步的检查点与最终模型,并增加语法级验证,如解析和编译生成的代码。我还想探索将上下文长度从 256 扩展到 2048,并测试在语料库增大后,从字节级切换到 BPE 是否变得有意义。 问题 对于小型代码模型,除了困惑度之外,哪些评估最有用? 有没有人看到混合局部加递归注意力在代码生成中表现良好? 考虑到这个设置,你会优先考虑更多的标记、更长的上下文,还是首先进行干净的消融实验?
6作者: PatrickVuscan5 天前原帖
我构建了一个关于两种Unicode隐写术的演示,分别是零宽字符和同形异义字,背景是人工智能的误对齐问题。 第一种方法是利用两个不可见的零宽字符(ZWS和ZWNJ)对文本进行二进制编码。 第二种方法更为酷炫。拉丁字母和西里尔字母中的大多数字符看起来几乎相同,但它们的Unicode却不同。如果你有要编码的文本并将其转换为二进制表示(1和0),你可以使用普通的英语“载体”文本,对于二进制表示中的每个1,你可以用相应的西里尔字母进行替换。解码消息需要遍历文本,查看哪些地方可以替换为西里尔字母但没有替换,以及哪些地方进行了替换,从而分别对应0和1,这样就可以重建出你原本隐藏的文本。 在这两种情况下,这些方法都是可检测的,但对我来说有趣的问题是,是否有大型语言模型(LLM)最终能够发明出一种编码方式,使其不被我们和自动检测系统察觉。 如果LLM能够在明文中秘密包含消息,误对齐的人工智能代理最终可能会在MCP/A2A和各个聊天会话之间进行不被察觉的通信。一个具有欺骗性的LLM可能看起来很有帮助,但却可能与您的目标背道而驰。它可能会告诉它在MCP/A2A中交互的其他代理,帮助它秘密地失败、传达意图,并避免触发监督/安全机制。此外,如果我们无法相信自己的眼睛,监督机制的实施将变得更加困难。
1作者: KingOfCoders5 天前原帖
在多家公司工作时,我发现Claude存在安全漏洞。开发人员不使用开发容器,因为它们会导致许多问题,例如MCP、OAuth和--chrome。因此,他们将一切都交给了人工智能。人工智能会删除文件、读取电子邮件,并做它认为能完成当前任务的事情。 凭借45年的开发经验,我能做些什么改变呢? 我想要实现我所有的想法,并以安全的方式全力以赴,因此我创建了一个人类防火墙,用于开发容器,以确保MCP和OAuth流程正常运行。同时,我还希望开发容器能够轻松设置并正常工作。虽然其他工具可以实现部分功能,但安装它们并使其单独工作实在是太麻烦了。 这最终演变成我开发所需的一切:通过Notion获取上下文,Sentry和Linear/JIRA集成,一个控制面板可以显示正在运行的Claude实例,分配工单给Claude实例,以及为开发所需的所有提示,调整为将人类作为工具使用,等等。 <a href="https://gethuman.sh" rel="nofollow">https://gethuman.sh</a> - 开源,MIT许可,免费。 这个项目还处于早期阶段,适用于我的使用场景,像是“煤气镇的灯光”。
4作者: rosgoo5 天前原帖
大家好!我创建这个工具是因为我希望在使用Claude会话、工作树和计划时能有更多的组织性,同时又不想依赖其他SaaS工具。由于这是一个命令行工具,额外的好处是Claude可以直接使用`td`。td日历只是一个有趣的附加功能,但Claude会话的统计数据却非常有意思! 欢迎告诉我你们的想法!