1作者: davidvartanian5 个月前原帖
我曾经认为,定义清晰的接口和服务之间的契约就足以维持模块化。我共享数据库,因为这似乎是最简单的选择。我错了。共享数据库或任何跨越外部组件边界的资源,会形成一种“焊接”连接,违背了任何接口定义。这会造成潜在的故障级联,随时可能发生。 许多工程师希望避免严格定义数据所有权所带来的摩擦。他们寻求一个礼貌的中立区域,以避免冲突。我认为这种做法在智识上是不诚实的。通过避免为了强制执行真正的模块化而必须进行的对抗,你构建的系统注定会在架构变化的那一刻崩溃。 我不得不通过艰难的方式学习到这一点。现在,我在每个组件的数据层强制严格分离。虽然这在前期更困难,但这是构建能够扩展而不至于在自身重压下崩溃的系统的唯一方法。如果你在共享数据库,或者以任何方式让你的领域数据跨越到外部模块,你就不是在构建一个模块化系统,而是在推迟不可避免的崩溃。
26作者: xlayn5 个月前原帖
我在消费级AMD GPU(RX 7900 XT + RX 6950 XT)上复现了David Ng的RYS方法([链接](https://dnhkng.github.io/posts/rys/)),并发现了一些意想不到的结果。 变压器似乎具有离散的“推理电路”——由3到4层连续组成的块,作为不可分割的认知单元。复制正确的块后,模型的推理流程会运行两次。权重没有变化,没有训练,模型只是思考得更久。 在标准基准测试(lm-evaluation-harness,n=50)上的结果如下: Devstral-24B,层12-14复制一次: - BBH逻辑推理:0.22 → 0.76 - GSM8K(严格):0.48 → 0.64 - MBPP(代码生成):0.72 → 0.78 - 没有任何下降 Qwen2.5-Coder-32B,层7-9复制一次: - 推理探测:76% → 94% 奇怪的是,不同的复制模式会从相同的权重中产生不同的认知“模式”。双重通过提升了数学能力,三重通过提升了情感推理。交错复制(13,13,14,14,15,15,16)则创造了一个纯数学专家。相同的模型,相同的显存,不同的路由。 电路边界非常清晰——移动一层,效果就会消失或反转。较小的模型(24B)比较大的模型(Ng在72B中发现7层)具有更紧凑的电路(3层)。 在这个代码库中,有工具可以在任何GGUF模型中找到电路并应用任意层路由。整个过程——扫描、发现、验证——只花了一个晚上。 欢迎提问。