-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
We're going to need a UI of some kind #6
Comments
I added a basic diagram to the |
Does web interface need to be programmed in Python? I can imagine doing server side Python tweaks to feed data to a Javascript UI interface for browsers. Does that seem acceptable? |
No, but we will need to host the web server with something like Flask. This part already works, and can be accessed at http://localhost:2100 when you start the Praxis server. I do have an idea of what I want it to look like now. Here's a simple example: Basically, we have a controller that learns how to "route" through various experts/layers, at every forward pass. The end result is something like this: So, if you can imagine a unique number assigned to every expert in the swarm - I want to draw the active-route through each expert, per-token, at every forward pass. The end result will look a bit like "synapses firing in the brain", though slower - because they will only change every ~3 seconds or so. Anyway, I thought React Flow looked like a decent solution for this, so I set up a demo page in the web/ directory. I haven't done anything with this yet, mostly because I'm not familiar with React. Also going to need some kind of chat interface, and configuration/settings management. |
Yes, this is acceptable and necessary. The Pytorch model will produce training metrics, configuration values, log messages, etc. We will need to pass all of that from the backend (Python) to the frontend (JavaScript/HTML/CSS). |
Can there be a hierarchy in that graph diagram you posted? And how many nodes are usually depicted? |
Potentially? I'm sure that React Flow could represent a hierarchy of some sort, but I'm not sure how you're envisioning it would look. It would have to tie to the underlying data structures in some meaningful, interpretable way, IMO. |
Oooh, yeah, I can see the fractal hierarchy now. I could envision a world where you click on a node/expert, and "zoom in" to details about that particular layer, including its name, its hyperparameters, its owner, its IP address, its DHT address, your model's preference/confidence in that node's "expertise", etc. I could definitely see something like that being useful. |
I have a finished thing right now. Each node is represented by one HTML for circle contents, and one XML to connect it to child nodes. It is scalable, meaning it can host a gazillion nodes that can be constructed and fetched from server. If you have idea on how to populate nodes, and if you can find it useful, I'm interested in helping out making this visualization. We can also add other elements to the main window, in new frames, like chat between servers, or anything else, if you are interested. |
I also had an idea: what if we gave each node depth?
I would love to see an example of your thing. I think for now, just populate it with dummy data. We're too early in development to really build a consistent interface yet. There are too many changing variables still. |
Here, download this. The MIT licence for your purposes is included. Unzip it to local server directory and open it in a browser. You will see meta instructions spanned through the tree, it should be all clear. Take look at the Take your time, think of something cool and what else could be added, and let me know how can I help. I'm looking forward to collaborate. |
I have tentatively started work on a mobile app, which I'm calling "Axis". You can use Godot to open the project at axis. While this is not a web app, per se - a Godot project can be exported to HTML. I'm not sure if we'll actually do that yet, or if we'll go in a different direction entirely. We may omit the web page entirely, in favor of a web API, exclusively (which already exists; it's how we interface with the Godot app). |
https://reactflow.dev/examples/overview
Not entirely sure what I want or what we're going to need, but we need to somehow allow the user to "wire-together" different experts, scattered across the swarm. The user's node is going to need to have an awareness of which peers it is connected to, as well as the peers that his peers are connected to. Somehow, we need to display the cyclical connections in the computation graph.
The text was updated successfully, but these errors were encountered: