Rich_Morin

Rich_Morin

Use of Phoenix for Monty (TBP) modules?

The Thousand Brains Project (TBP) is developing an open source, neuroscience-inspired AI system called Monty (in honor of Vernon Mountcastle). The basic idea is that Monty will have bazillions of message-passing Learning Modules, each of which will (loosely) emulate a cortical column.

Although the current Monty prototype is implemented in Python, I’ve been suggesting ways that it could be migrated (in part, at least) into Elixir. I’ve extolled the virtues of the BEAM, Nerves, Nx, Phoenix, Pythonx, etc. Somewhat surprisingly, this seems to be getting some traction with the project team et al.

In any case, my latest inspiration has to do with the use of Phoenix for Monty modules. Here’s a precis:

I wonder whether Phoenix could be useful infrastructure for a learning module. So, instead of having an ordered set of patterns do the dispatching, we’d have the stream of input messages drop into the top of a Phoenix-based app, hit the routing code, and get handled like a web request.

ChatGPT was quite encouraging:

That’s a very cool thought—and it’s absolutely worth exploring.

You’re proposing treating each Learning Module (LM) like a Phoenix application—or at least like a Phoenix Endpoint—and routing incoming messages in a way that’s conceptually similar to HTTP request routing.

However, I’m not sure how well Phoenix would work as infrastructure in situation where hundreds of thousands of modules are incorporating it and associated libraries (e.g., PubSub). Can anyone give me some feedback on the scalability (etc) issues that might arise?

Most Liked

FlyingNoodle

FlyingNoodle

Don’t trust anything chatgpt says like that.

It will tell you that something is a great idea for pretty much everything. It likes to blow smoke on your ass so you feel like you are a genius and keep using it.

Rich_Morin

Rich_Morin

There are a lot of annoyingly overloaded words; “module” is only the tip of the iceberg. However, the TBP uses the word as they will (i.e., it is what it is), so my plan is to grimace and move on to real (as opposed to semantic) issues.

So yes, many if not all Learning Modules will be running the same code and varying only in their local data, position within the flow of messages, etc.

It’s not clear that either space or time efficiency is going to be a gating item, at least in the exploratory stages of development. As Donald Knuth said:

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

Nonetheless, it would be very useful to know if there are any show-stoppers before any Real Development ™ is attempted…

Where Next?

Popular in Questions Top

nobody
How to bind a phoenix app to a specific ip address? could not find anything about that, nowhere, unfortunately, but for me this is quite...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lists...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
mgjohns61585
Could someone help me? I’m making my first elixir program, number guessing game. I can’t figure out how to convert the user’s guess from ...
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Other popular topics Top

hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39467 209
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement