
Neurolume:在 Mac 上微调 LLM 并逐层观察训练变化
来源标题:Show HN: Neurolume – Fine-tune LLMs on a Mac and watch what changes per layer
Neurolume 是一款本地 Mac 应用,让用户在微调 LLM 的同时逐层观察训练带来的变化。它已用 Devstral Small 2 和 Qwen3.6-27B 验证,支持实时层探针、logit lens、逐 token 置信度、LoRA 训练和前后对比,目前处于早期 alpha 阶段。官方给出的 Devstral 训练数据为 36 步、峰值内存 15GB,验证损失从 4.45 降至 1.06。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
看模型如何学习。 在 Mac 上点几下就能微调 LLM——并逐层看到训练究竟改变了什么。 ▶ 在线试用 Demo(无需安装;回放真实录制的一次运行)· English · 简体中文 真实数据,并非模拟:以下是一个来自 Devstral Small 2 在 M5 Max 上的回答(逐层活跃度、logit lens、逐 token 置信度),以及一个真实 adapter 的 ΔW,均在在线 Demo 中回放 · 视频 大多数微调工具止步于“训练完成,loss = 1.23”。大多数可解释性工具展示的是你无法改变的模型。Neurolume 将两者放进一个本地应用:你训练模型,同时观察它的内部。 状态:早期 alpha。服务端、UI 和工具链均有单元测试覆盖(110+ 测试,无需 GPU)。目前以下所有内容都在一台机器上跑通(MacBook Pro M5 Max,128 GB)。在该机器上用 Devstral Small 2 和 Qwen3.6-27B 验证过:实时逐层探针、logit lens(实时版,以及为未开启时生成的回答事后计算版)、逐 token 置信度、引导式 LoRA 训练(Devstral:36 步,峰值 15 GB,验证 loss 4.45 → 1.06)、前后对比、MLX 导出和训练数据生成。Ollama 导出尚未经过硬件测试。非常欢迎其他机器的反馈。 所有标注为模型活动的内容都来自模型本身;模拟数据均有标注。完整定义见 docs/SIGNALS.md。 窗口分为两部分:右侧是聊天,左侧上方是“大脑”,下方是层窗口和回答回放。 第一行:选择模型;绿色“Live · real model”表示数据来自运行中的模型,黄色“demo”表示模拟数据。训练后还会出现 adapter 下拉菜单(“no adapter”即基础模型)以及 Compare with base 按钮。 工具栏:Models(下载、加载)· Train(向导)· Web search(齿轮打开搜索设置)· Knowledge base · 中文/English · Agent · 🗑 清空聊天。 2. 大脑(左上) 两种形态:星云和球体(右下角切换)。每个高度带/环代表一层,左侧标注编号;Qwen3.6 的全注意力层标有 ◆。 它只在模型生成或训练时活跃。层的亮度来自逐层活跃度,闪烁频率跟随 GPU 和内存负载;表面火花的路径、颜色和辉光为风格化处理。 底部一行:GPU 负载、内存、模型大小、生成速度(tok/s)。 3. 层窗口(左下):四种视图 视图 内容 Inference 每层一列,每层四个矩阵:attention Q、attention 输出、MLP gate、MLP down-projection;每个格子是该矩阵中的一个真实权重(等距采样)。生成时,某一层对 token 表示的改动越大,该层越亮。相邻两层之间的连线束亮度取两者的几何平均,因此只有两层都繁忙时连线才粗且亮,任一层安静则变暗。悬停格子可查看真实权重和该层的原始测量值。 Train adapter 的真实 ΔW(绿色 = 权重增加,橙红 = 减少);下方柱状条为每层的总变化量,可任选已训练的 adapter 查看。LoRA 默认只训练最后 16 层,因此早期层未变化属正常。 Weights 静态权重:橙色 = 正值,青色 = 负值,强度 = |w| ÷ 矩阵标准差(上限 3σ)。 Logit lens 一张表:每列一个生成的 token,每行一层,显示该层“如果模型在此停止”会输出什么;颜色越深表示越自信。绿色下划线表示该层已与最终输出一致;“Settled”行标明从哪一层开始一致。◇ 表示多字节字符的一个字节片段。可选择显示哪些层:全部 / 后半 / 最后 16 层 / 自定义范围和步长。若生成回答时该视图处于关闭状态,切换到该视图会事后为该回答计算 lens。 4. 回答回放(层窗口下方) 每个 token 一个柱:越高表示模型在该 token 上越犹豫(1 − 模型赋予该 token 的概率)。颜色:青色 = 自信,黄色 = 一般,橙红 = 不确定。白线为平滑趋势。 回答文本以相同方式着色,犹豫的词更醒目;不确定的词带波浪下划线。悬停可查看它考虑过的其他选项,例如“生命”32 %,“爱与”29 %,“深刻”15 % 作为备选。 点击任意柱或词,大脑和层图会冻结在该 token 生成的那一刻;拖动滑块或按“▶ Replay”逐步回放。 在聊天中选中 AI 回答的一部分,回放只显示该部分;“Latest answer”返回完整回答。 在 logit-lens 视图中,柱状条改为显示每个 token 在哪一层确定(越高 = 确定得越晚),坐标轴只覆盖实际出现的层。 5. 训练向导 随用随收集:聊天中每个回答都有“Save as training sample”和“Edit, then save…”。好的回答直接保存;其他回答先改成你想要的样子,模型学的是修正后的版本。 导入数据(从聊天保存的样本、.jsonl、笔记、代码、从 ChatGPT 或 Claude 导出的 conversations.json、Claude Code 会话 .jsonl 文件,或让模型从你的文件中生成配对;多个来源可合并为一个数据集)→ 自动检查(移除密钥、去重、训练/验证划分)→ 选择预设并训练(实时 loss、速度、内存)→ 结果:验证 loss 前 → 后、逐层 ΔW、与基础模型的并排对比 → 导出为 MLX 模型或导出到 Ollama。 知识库:导入书籍和文档;模型在回答前检索相关段落并引用。 网页搜索:开启时,模型在需要时搜索并阅读页面(你的问题会发送给搜索服务);关闭时,Neurolume 不向外发送任何内容。 Agent:选择一个项目文件夹;模型读取文件并逐条提出修改建议,每条都需你批准,且均可撤销。 本地 API:http://127.0.0.1:8765/v1/chat/completions,兼容 OpenAI,其他工具可使用本地模型。 FAQ
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。