Replies: 6 comments 8 replies
-
|
Beta Was this translation helpful? Give feedback.
-
|
Thank you @bvdmitri for this proposal: exposing the users to the details of the inference process would be incredibly useful for understanding the system better. I actually have a suggestion here: in my opinion this proposal conflates two aspects that are orthogonal, and I fear pursuing both at the same time would yield a suboptimal result. They are:
The first is essentially a data question, and I think it should be approached through the lens of what data you would put in a database. You hinted at this in your field description, which is a good starting point. The risk of conflating the two together is that:
As a bonus, if you disentangle the concerns, you get the So, tl;dr: I would suggest concentrating on making available the right data (and documenting the process properly for end users!), which is also where you have the excellent expertise of your group and can move fast. Once that's done, and there is some feedback on debugging with it, another proposal could think about how to construct a good UI informed by some usage. I hope my suggestion can be useful, but either way I absolutely wish to have better introspection capabilities for RxInfer. Also, thanks for all the work done so far! This project is amazing! |
Beta Was this translation helpful? Give feedback.
-
|
Definitely in favor. As a first MVP, can we leverage upon TensorBoardLogger.jl before starting with custom interfaces/UI? It supports automatic refreshing, so that could help with the Another ref that could be interesting: https://wandb.ai/site/ |
Beta Was this translation helpful? Give feedback.
-
|
Hi all, just wanted to checkin how things are progressing on the data accumulation vs. visualization part? would much appreciate simpler debugging:) |
Beta Was this translation helpful? Give feedback.
-
|
Great initiative. I feel that the primary objective is to debug code but I think the analysis of what is going on in the 'black box' is a much more interesting objective. Log Format: I would pick a format that is easiest for live monitoring. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Author: @bvdmitri
Date: Nov 11 2025
Status: Draft
Version: v0.1
Target Audience: RxInfer users, contributors, and maintainers
RxInferBoard — A Debugging and Analysis UI for RxInfer Inference
1. Summary
This RFC proposes a new system for debugging inference inside RxInfer, designed to make identifying issues during inference more efficient and to enable better analysis of obtained results. The system introduces a dedicated UI (RxInferBoard) for exploring inference events, message passing, and posterior updates interactively.
2. Motivation
2.1 Why This Change Is Needed
Debugging inference in RxInfer currently requires significant time and expertise. Users often resort to guessing what is happening internally, making the debugging process unreliable and slow.
2.2 Problems This Solves
The proposed system aims to reduce the time and complexity of debugging inference and models by providing structured insight into message passing, variable updates, and the overall inference flow.
2.3 Who Benefits
3. Background / Context
RxInfer currently performs message passing internally, but this mechanism is not exposed through the user API. Users typically interact with the
inferfunction, which abstracts away the underlying message passing process.While this abstraction simplifies usage, it limits users’ ability to inspect or understand failures or unintuitive inference results.
Existing debugging tools, such as
DebugAddons, offer limited functionality and require substantial manual effort. Visualizing factor graphs helps identify structural issues (e.g., loops), but offers no visibility into what occurs during inference. Moreover, model visualization is currently implemented in GraphPPL, which itself does not perform inference.In practice, this results in a “black box” inference process that is hard to reason about or explain—contrary to the transparency promised by factor graphs and message passing.
4. Proposal
Introduce a dedicated UI (RxInferBoard) that visualizes inference in RxInfer, including:
4.1 Key UI Features
The UI will allow users to:
5. Architecture Overview and API / Interface Changes
5.1 Overview
A new flag will be introduced to the
inferfunction that, when enabled, logs inference activity (message order, content, posterior updates) in a language-agnostic format.Each inference event—such as message updates, posterior updates, and free energy computations—will be recorded as a structured log entry.
This log can then be loaded into RxInferBoard, a standalone web application (proposed: Next.js) that visualizes and analyzes inference traces.
5.2 Logging Format
The log format should be language-independent (not Julia-specific).
Options include:
Each log entry would represent an event with fields such as:
5.3 Example Usage
Julia
Command Line
From within the UI
5.4 Implementation Stack
6. Impact
Performance:
Enabling logging will slow inference due to the additional data recording overhead.
Backward Compatibility:
Existing workflows remain unaffected. The logging feature is opt-in via the new flag.
Codebase Changes:
Certain internal structures will need adjustment to support event logging and serialization.
7. Alternatives Considered
7.1 Extending DebugAddon
Developing on top of the existing
DebugAddonwas considered but found limiting:7.2 Pluto-based UI
A Pluto-based prototype (by @abpolym) demonstrates feasibility but remains constrained by Pluto’s reactive notebook paradigm.
The proposed web UI (Next.js) offers greater flexibility, modularity, and a more modern experience.
8. Open Questions
Log Format
Free Energy Tracking
Live Connection Mode
9. References
Beta Was this translation helpful? Give feedback.
All reactions