Neuronpedia五大服务如何协作:深入解读可解释性平台的微服务架构 📅 2026/8/24 17:21:04 Neuronpedia五大服务如何协作深入解读可解释性平台的微服务架构【免费下载链接】neuronpediaopen source interpretability platform 项目地址: https://gitcode.com/gh_mirrors/ne/neuronpediaNeuronpedia 是一个开源的大模型可解释性平台open source interpretability platform它把 SAE 特征探索、激活值测试、特征转向Steering、自动解释、电路图等能力拆分成五大独立微服务协作完成。本文带你用 10 分钟看懂这套微服务架构每个服务负责什么、它们如何通信、以及如何用 Docker 一键部署。一图看懂 Neuronpedia 整体架构从上面的架构图可以读出三条关键设计前端与 API 合二为一Neuronpedia Frontend 和 API 是同一个 Next.js 应用apps/webapp/用户浏览器直接与之交互数据统一落库特征元数据、激活值、自动解释、评分等全部存在 Postgres 数据库里支撑服务独立部署Inference Servers 与 Auto-Interp Server 作为支撑服务器由 webapp 按需调用。每个 Inference 实例绑定一个特定模型 一组 SAE因此可以横向扩出多个实例。这种服务即独立应用的设计是刻意为之每个服务都能单独 fork、单独替换。比如你完全可以换掉 Inference 服务只要它遵守同一份 OpenAPI 规范。五大服务速览职责、技术栈与端口服务代码位置职责技术栈WebAppapps/webapp/前端界面 REST API用户唯一入口Next.js / ReactInferenceapps/inference/转向、激活值测试、Jacobian Lens、按 token 搜索Python / PyTorchAutointerpapps/autointerp/自动生成特征解释与质量评分Python / DelphiGraphapps/graph/基于电路追踪生成归因图CircuitsPython / circuit-tracerNLAapps/nla/自然语言自编码器向量↔自然语言互译Python / FastAPI此外还有两个轻量补充服务apps/activations/残差流原始向量提取和apps/sparsity/MLP 稀疏电路分析同样遵循独立服务模式。服务一WebApp——用户与平台的唯一入口WebApp 是整个可解释性平台的总调度台承担两重角色前端提供特征浏览器、搜索、转向实验台、UMap 可视化、特征列表等界面API 网关neuronpedia.org/api-doc暴露的 REST API负责把用户请求转发给 Inference、Autointerp、Graph 等后端服务并读写 Postgres 数据库。它的数据库访问层基于 Prisma ORM数据模型定义在apps/webapp/prisma/schema.prisma涵盖模型Model、来源Source、特征Feature、解释Explanation、投票、书签等实体。对于新手来说只需要启动 webapp 数据库就能通过管理面板导入数据并开始使用平台其余服务可以按需接入。服务二Inference Server——转向与激活值计算引擎Inference 服务是平台里最重的服务它把大语言模型和 SAE 一起加载进 GPU 内存对外提供激活值提取单个特征、批量特征、按 token 的 top-k 激活特征转向Steering在生成过程中注入方向向量实时改变模型输出Jacobian Lens / Persona查看中间层看到的内容。它最重要的特性是每个实例只服务一个模型。比如实例 A 加载 Gemma-2-2B Gemmascope SAE实例 B 加载 GPT-2 small res-jb SAE。webapp 会根据你选择的模型把请求路由到对应实例——这正是架构图中出现多个 Inference Server 方块的原因。服务启动后自带 Swagger 交互文档/docs路径可以用任意 HTTP 客户端直接测试。它的 OpenAPI 规范位于schemas/openapi/inference-server.yaml是前后端协作的合同。服务三Autointerp——让 AI 自动解释 AI 特征人类给 32000 个 SAE 特征写解释显然不现实Autointerp 服务就解决了这个痛点基于 EleutherAI 的 Delphi 框架它自动完成两件事Explain为指定特征批量生成自然语言解释支持多种 explainer核心探针、稀疏探针、吸收式等Score用多种打分器评估已有解释的质量嵌入相似度、SCR、消融式等。Autointerp 的结果由 webapp 写入数据库最终呈现在每个特征页面的解释面板中并支持用户点赞/点踩投票。它同样遵循 OpenAPI 规范schemas/openapi/autointerp-server.yaml且每个解释器、打分器都是可插拔的独立模块方便社区扩展。服务四Graph Server——电路追踪与归因图生成Graph 服务负责平台中电路Circuits页面的后端计算内置两套引擎circuit-tracer默认用 transcoder/CLT 分解 MLP 层追踪特征间的归因路径lm-saes-crm用 Complete Replacement Model 同时分解 MLP 与注意力层Lorsa生成更丰富的电路图。你在 webapp 的 Graph 页面点击生成归因图时请求实际是webapp → Graph 服务 → 加载模型做前向传播 电路追踪 → 返回图 JSON → 前端渲染。它还支持把大图输出到 S3 并返回预签名链接以应对超大电路的传输开销。服务五NLA Server——把激活向量翻译成一句话NLANatural Language Autoencoder服务是最新的实验性能力由一对微调后的语言模型组成方向模型角色作用向量 → 文本Verbalizer把激活向量注入为 token 嵌入自动解码出自然语言描述文本 → 向量Reconstructor从描述重建原始向量往返误差衡量描述质量配合第三个源模型被解释的基座 LLMNLA 服务可以回答这类问题模型在这个 token 位置的内部状态到底在想什么——直接输出一段人类可读的文本。五大服务如何协作OpenAPI 驱动的合同式通信理解了每个服务关键问题是它们如何可靠地协作Neuronpedia 的答案是Schema-Driven Development模式驱动开发先改规范所有接口契约定义在schemas/目录下的 OpenAPI YAML 文件中自动生成客户端用 OpenAPI 生成器从同一份规范分别生成 TypeScript 客户端webapp 调用后端和 Python 客户端各服务端自身的类型来源产物位于packages/typescript/与packages/python/最后改代码服务实现只需匹配生成的类型签名错误在编译期就暴露。这意味着新增一个推理端点只需先改 YAML 规范、重新生成客户端webapp 与 inference 两端就会同时获得类型安全的调用接口——这就是微服务之间松耦合但强契约的协作方式。本地部署Docker Compose 一键拉起平台提供完整的部署编排docker/compose.yaml及系列 overlay 文件定义了各服务的构建与依赖关系如 webapp 依赖 postgres 健康检查 数据库初始化 Job。典型本地启动路径# 1. 拉起 webapp 数据库 make webapp-localhost-run # 2. 为某个模型启动 inference 实例以 gemma-2-2b 为例 make inference-localhost-dev-gpu \ MODEL_SOURCESETgemma-2-2b-it.gemmascope-res-16k # 3. 浏览器访问 localhost:3000 开始使用如果想体验全部功能依次再启动graph-localhost-dev与autointerp-localhost-dev即可。生产环境则参考k8s/目录下的 Kustomize 清单以及apps/inference/k8s/中针对 CPU/GPU 节点的推理服务覆盖层。想要完整复现可以先克隆仓库git clone https://gitcode.com/gh_mirrors/ne/neuronpedia然后运行make help查看全部可用命令。小结这套架构给新手带来什么启示单一职责每个服务只做一件事模型加载、自动解释、电路追踪互不干扰可独立扩缩容契约先行OpenAPI 规范是服务间的普通话接口变更先改文档、再生成代码杜绝了前后端扯皮可替换性任何服务都可以被同规范的外部实现替换前端无感知渐进式接入先用 webapp 数据库跑起来再按实验需求逐个接入 inference / autointerp / graph。这正是 Neuronpedia 作为开源可解释性平台的工程精髓用微服务架构把复杂的模型解释工作流拆成简单、独立、可协作的五个服务。【免费下载链接】neuronpediaopen source interpretability platform 项目地址: https://gitcode.com/gh_mirrors/ne/neuronpedia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考