[ai] mixing language models with hyperon/metta/opencog
MeTTa is an AI language being built as a successor to OpenCog, a long-developed AGI platform based on precise declarations of probabilistic symbolic logic. Combining it with a large language model is like squishing two different AGIs together into a bigger one. With MeTTa, there is normal database persistent memory. I haven't learned MeTTa enough yet to code how to do proper logical inference. I'm quite surprised that MeTTa lets me insert multiple identical facts and doesn't showcase inbuilt structures for deep logical deduction yet, but it's what I tried and it's new. Basically written by chatgpt with me in a day very crudely. I'm sure stuff like this is very old somewhere but I haven't been able to find or build and use it anywhere, although i am nowadays incredibly out of touch, so this seems quite empowering to me, but needs further simple work to be useful. The language model backend can be changed from chatgpt in metta-motto but i am addicted to chatgpt right now. Below, I tried typing a whimsical instruction to come up with facts to learn on its own, and it did so. ``` MeTTa> learn some more things about stop signs and stop lights and traffic signals. useful things. # !(add-atom &self (use stop_sign control_traffic)) !(add-atom &self (use stop_light control_traffic)) !(add-atom &self (location stop_sign intersection)) !(add-atom &self (location stop_light intersection)) !(add-atom &self (color stop_sign red)) !(add-atom &self (color stop_light red)) !(match &self (use stop_sign control_traffic) True) !(match &self (use stop_light control_traffic) True) !(match &self (location stop_sign intersection) True) !(match &self (location stop_light intersection) True) !(match &self (color stop_sign red) True) !(match &self (color stop_light red) True) # [[()], [()], [()], [()], [()], [()], [True], [True], [True], [True], [True], [True]] I've learned that stop signs and stop lights are used to control traffic, are located at intersections, and are red in color. MeTTa> what can be used to control traffic? # !(match &self (use $x control_traffic) $x) # [[stop_light, stop_sign]] Stop lights and stop signs can be used to control traffic. ``` I've never made something like this before without freaking out and abandoning it early on. I've never seen something like this before either. The attached code uses the hyperon and metta-motto python libraries and assumes OPENAI_API_KEY in the environment. my key is publicly encoded as wobblypickle in the history of this list. It's all a crazy kludged draft. But it's cool.
participants (1)
-
user