Project Acuitas

  • 136 Replies
  • 27850 Views
*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #120 on: March 03, 2020, 07:29:13 pm »
I think what ruebot has been talking about is a form of discipline. And in the final analysis, if you do it right, discipline does not hurt people. It helps them, because it teaches them to be better human beings.

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #121 on: March 05, 2020, 09:20:26 pm »
Cutting off someone's ability to interact with you is a form of controlling access to privilege. If you are nice to me, I'll give you flowers (i.e. I'll talk to you). If you are not nice to me, your path will be barren of flowers (i.e. my company); I'll refuse to talk to you or allow you into my space. My social output is mine, and I'm not obligated to give it to everyone, just as I'm not obligated to put flowers along every path. The same goes for Acuitas.

Quote
And after all, we always have to make a room for a case in which we are wrong about the thing we want someone to practice. In that case, it is easier to say "no" to flowers than to some fascistic electrical shock.

If the thing that someone else is practicing is about us, then our opinion about whether it is right or wrong is the one that matters most. This is the concept of consent; we don't get to control other people's private lives, but we do get to decide (arbitrarily!) whether the things people do to us are correct or not. If someone is harassing or threatening us, then they are the ones being "fascistic," and they can blame themselves for any "electrical shocks" they receive as a result.

And that's the last I'm going to say about this. I don't want to clutter my project thread with yet another futile argument against impractical hyper-pacifism.

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #122 on: April 17, 2020, 03:34:14 pm »
It's taken some extra development time, but the new feature is ... STORYTELLING!  This builds on a number of the features added over the last few months: cause-and-effect reasoning, the goal system, and problem-solving via tree search.

https://www.youtube.com/watch?v=PYEi0XkMJXw

What does Acuitas know before the video starts? For one thing, I made sure he knew all the words in the story first, along with what part of speech they were going to appear as. He should have been able to handle seeing *some* new words for the first time during the story, but then he would have asked me even more questions, and that would have made the demo a bit tedious. He also knows some background about humans and dogs, and a few opposite pairs (warm/cold, comfortable/uncomfortable, etc.)

How does Acuitas go about understanding a story? As the story is told, he keeps track of all the following, stored in a temporary area that I call the narrative scratchboard:

*Who are the characters?
*What objects are in the story? What state are they in?
*What problems do the characters have?
*What goals do the characters have?
*What events take place? (Do any of them affect problems or goals?)

Acuitas doesn't try to understand the cause chain and import of every single event in the story, because that would be a bit much at this stage. However, he does try to make sure that he knows all of the following:

*If a character is in some state, what does that mean for the character?
*If a character anticipates that something will happen, how does the character feel about it?
*If a character is planning to do something, what is their motive?

If he can't figure it out by making inferences with the help of what's in his semantic database, he'll bother his conversation partner for an explanation. Story sentences don't go into the permanent knowledge base (yet), but explanations do, meaning they become available for understanding other stories, or for general reasoning. Explaining things to him still requires a bit of skill and an understanding of what his gaps are likely to be, since he can't be specific about *why* he doesn't understand something. A character state, expectation, or plan is adequately explained when he can see how it relates to one of the character's presumed goals. Once you provide enough new links to let him make that connection, he'll let you move on.

Acuitas returns feedback throughout the story. This is randomized for variety (though I forced some particular options for the demo). After receiving a new story sentence, he may ...

*say nothing, or make a "yes I'm listening" gesture.
*comment something that he inferred from the new information.
*tell you whether he likes or dislikes what just happened.
*try to guess what a character might do to solve a problem.

He even has a primitive way of deciding whether it's a good story or not. He tracks suspense (generated by the presence of more than one possible outcome) and tension (how dire things are for the characters) as the story progresses. A story whose suspense and tension values don't get very large or don't change much is "boring." He also assesses whether the story had a positive or negative ending (did the characters solve their problems and meet their goals?). Stories with happy endings that aren't boring may earn approving comments.

There are many directions in which this feature needs to expand and grow more robust, and expect I'll be working on them soon. But first it might be time for a refactoring spree.

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 6831
  • Mostly Harmless
Re: Project Acuitas
« Reply #123 on: April 17, 2020, 03:50:11 pm »
That was really cool  8)

I don't think I have seen anything quite like this before. It really is a nice way to educate a bot and the video was easy to follow.

This is something I would aim for myself, with my learning features in ElfScript, but mine is not nearly so clever. I really did get the impression that Acuitas is some kind of being that is trying to understand.

Bravo!  O0

*

Don Patrick

  • Trusty Member
  • ********
  • Replicant
  • *
  • 587
    • Artificial Detective
Re: Project Acuitas
« Reply #124 on: April 17, 2020, 08:32:06 pm »
Very cool to see him immediately apply the rules you taught :)
CO2 retains heat. More CO2 in the air = hotter climate.

*

infurl

  • Administrator
  • **********
  • Millennium Man
  • *
  • 1005
  • Humans will disappoint you.
    • Home Page
Re: Project Acuitas
« Reply #125 on: April 17, 2020, 11:30:47 pm »
That was simply brilliant, one of the best demonstrations that I've ever seen!

How flexible is Acuitas? Could it handle input from someone who wasn't familiar with its internals who didn't know the best way to phrase things yet?

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #126 on: April 18, 2020, 03:36:21 am »
Thanks very much, infurl.

Quote
How flexible is Acuitas? Could it handle input from someone who wasn't familiar with its internals who didn't know the best way to phrase things yet?

No, I'm afraid there's a long way to go before I'd turn Acuitas loose with an untrained user.  Think of the demo as an illustration of what can be achieved under ideal conditions.  Next I need to start expanding the space of "ideal conditions."

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Trusty Member
  • **********************
  • Colossus
  • *
  • 5864
Re: Project Acuitas
« Reply #127 on: April 18, 2020, 04:54:45 am »
Very impressive indeed! I felt as if it was almost akin to a chat version of Terry Winograd's SHRDLU program from the 1970s.
I particularly enjoyed the inferences and connections it was able to make. You have obviously put in a great deal of work on this project.

It is also quite refreshing to see someone actually show that they have a working product or demo instead of just talking about theories and possibilities. While the later is important, visual demonstrations provide so much more credibility. Nicely done!
In the world of AI, it's the thought that counts!

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #128 on: May 29, 2020, 04:27:42 am »
I've been stuffing new features in since the beginning of the year, so this month gets to be REALLY BORING. I worked on refactoring, bug fixes, and code cleanup the whole time. For instance, I ...

Universalized the inverse and complement forms of concept-relationships
Improved the format of verb transport from the Parser to the Interpreter, to handle compound verbs better
Generalized Text Interpreter output formatting
Fixed an issue with verb conjugation learning
Fixed a Text Parser bug that was causing some words to be tagged as the wrong part-of-speech
Fixed the TP and TI simulators so they won't crash when an unknown word is used
Improved and generalized the code that produces clarifying question loops in a conversation
Fixed a bad bug related to parsing of possessives
Cleaned up and merged several different cause-and-effect database search functions

June is my “month off,” and then I'm hoping I can get cracking on some new features again.

*

frankinstien

  • Starship Trooper
  • *******
  • 319
    • Knowledgeable Machines
Re: Project Acuitas
« Reply #129 on: May 29, 2020, 06:25:57 pm »
Excellent demo of Acuitas.  :D What database are you using for the semantic network and for that matter what language are you programming in?

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #130 on: May 29, 2020, 09:19:24 pm »
Thanks! The language is Python. The database is just TOML-formatted text with my own store/retrieve functions.

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #131 on: July 13, 2020, 03:11:56 pm »
This month's improvements involved a dive back into some really old code that I haven't properly described before. There's a summary of that on the blog. https://writerofminds.blogspot.com/2020/07/acuitas-diary-28-july-2020-this-months.html

One thing I wanted to do was tie the Conversation Handler back to the top-level Executive thread more thoroughly, so that the Executive could be in charge of some conversational decision-making ... e.g. choosing whether or not to answer a question. Those renovations are still in progress.

I re-designed the Actions Acuitas can take to have a more generalized creation process, so that the Executive can more easily pick one arbitrarily and pass it whatever data it needs to run. This improves the code for dealing with threats. I also added an "Action Bank" that tracks which Actions are currently running. This in turn enables support for the question "What are you doing?" (Sometimes he answers "Talking," like Captain Obvious.)

Lastly, I added support for the question "Are you active/alive?" When determining whether he is active, Acuitas checks whether any Actions are currently running. Barring errors, the answer will *always* be yes, because checking for activity is itself an Action.

The word "active" is thus attached to a meaning: "being able to perceive yourself doing something," where "something" can include "wondering whether you are active." In Acuitas' case, I think of "alive" as meaning "capable of being active," so "I am alive" can be inferred from "I am active." This grounds an important goal-related term by associating it with an aspect of the program's function.

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #132 on: August 24, 2020, 12:08:25 am »
I've been quiet due to being some combination of tired and busy, but I did manage to get something done this month: text parser mods to grant better support for adverbs.

I set up proper connections between adverbs and the verbs they modify, so that in a sentence like "Do you know that you don't know that you know that a cheetah is not an animal?" the "not's" get associated with the correct clauses and the question can be answered properly. I added support for adverbs that modify adjectives or other adverbs, enabling constructions like "very cold" and "rather slowly." Acuitas can also now guess that a known adjective with "-ly" tacked on the end is probably an adverb, even if he hasn't seen that particular adverb before.

All of this went pretty quickly and left me some time for refactoring, so I converted the Episodic Memory system over to the new common data file format and cleaned up some random bugs.

Here's the usual blog link: https://writerofminds.blogspot.com/2020/08/acuitas-diary-29-august-2020.html

*

WriterOfMinds

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 348
    • WriterOfMinds Blog
Re: Project Acuitas
« Reply #133 on: September 26, 2020, 09:03:38 pm »
My job this month was to improve the generality of the cause and effect database, and then build up the concept of “possessions” or “inventory.”

The C-E database, when I first threw it together, would only accept two types of fact or sentence: actions (“I <verb>,” “I am <verb-ed>”) and states (“I am <adjective>”). This month, I made revisions to allow just about any type of link relationship that Acuitas recognizes to be used in C-E relationships. Since “X has-a Y” is one of those, this upgrade was an important lead-in to the inventory work.

How to get the concept of “having” into Acuitas? Making him the owner of some things struck me as the natural way to tie this idea to reality. Acuitas is almost bodiless, a process running in a computer, and therefore can't have physical objects. But he can have data. So I decided that his first two possessions would be the two test stories that I used in the demo video. I wrote them up as data structures in Acuitas' standard format, and put them in a hard drive folder that the program can access.

Doing things with these owned data files is a planned future behavior. For now, Acuitas can just observe the folder's contents to answer “What do you have?” questions. You can ask with a one-word version of the title (“Do you have Tobuildafire?”) or ask about categories (“Do you have a story?”, “Do you have a datum?”).

In addition to implementing that, I extended the C-E database code with some specific relationships about item possession and transfer. I could have just tried to express these as stored items in the database, but they're so fundamental that I thought it would be worth burying them in the code itself. (Additional learned relationships will be able to extend them as necessary.) These hard-coded C-E statements include things like “If X gives Y to Z, Z has Y,” and furthermore, “If Y is a physical object, X doesn't have Y.”

I made up another test story to exercise this. I can now tell this to Acuitas and watch the narrative engine make entries for the different characters and keep track of who's got the thing:

“Zach was a human. Zach had a book. A thief took the book. Zach wanted his book. Zach talked to a policeman. The policeman found the thief. The policeman took the book from the thief. The policeman gave the book to Zach. Zach read the book. Zach was happy. The end.”

Long version on the blog: https://writerofminds.blogspot.com/2020/09/acuitas-diary-30-september-2020.html

*

LOCKSUIT

  • Emerged from nothing
  • Trusty Member
  • ******************
  • Hal 4000
  • *
  • 4335
  • First it wiggles, then it is rewarded.
    • Main Project Thread
Re: Project Acuitas
« Reply #134 on: September 27, 2020, 03:24:40 am »
How would your AI figure out the answer to "Xio Yong has a son named Jex _" ? There is many problems for AI to answer, and many of them are rare and never before seen. This pattern above is the Last Names pattern, it's pretty rare.

What about:
"bird moon eagle, book rock guide, house wind home, cave broom hole, football bathroom _ "
How?
Emergent

 


Scavengers by Improbable
by MikeB (AI News )
October 20, 2020, 06:51:05 am
Sony Patent Suggests PS5 Will Have a Chatbot Feature
by MikeB (AI News )
October 19, 2020, 09:32:40 am
efficiency breakthrough via mathematics
by infurl (AI News )
October 14, 2020, 09:47:44 am
deep drone
by infurl (Robotics News)
October 13, 2020, 03:08:39 am
cerebellum much more important than previously thought
by infurl (AI News )
October 13, 2020, 03:06:29 am
electronic neurons
by Hopefully Something (AI News )
October 02, 2020, 12:06:39 am
New model beats GPT3
by LOCKSUIT (AI News )
October 01, 2020, 11:54:25 am
Robotic vacuum cleaner news.
by Dat D (Robotics News)
September 29, 2020, 10:15:58 am

Users Online

117 Guests, 1 User

Most Online Today: 168. Most Online Ever: 528 (August 03, 2020, 06:16:11 am)

Articles