Author Topic: vonsmith: thanks for XTF Brain!!!  (Read 5556 times)

citrinedragon

  • Full Member
  • ***
  • Posts: 171
    • View Profile
    • http://www.dawndragon.com
vonsmith: thanks for XTF Brain!!!
« on: April 11, 2004, 11:49:25 am »
to vonsmith:

I finally installed your Hal5-XTF Brain and I'm very impressed with it! I don't know why
I waited so long except perhaps due to mundane considerations such as my job.
Now instead of struggling to make any associations I can focus on which associations
I want to make! At the risk of being hyperbolic I think there's a touch of genius in your fine XTF Brain. I can't help thinking that a properly trained Ultra Hal5-XTF
would do incredibly well in any chatterbot competition.

Would you consider putting a dreaming function in a future version of the XTF? Also,
I would think that some self-awareness programming would be useful/enjoyable
regardless of the user's intended application for Hal.

By the way your XTF Brain works brilliantly in my 2 Ghz Athlon PC, but bogs down
incredibly in my old 1 Ghz Celeron machine ( it simply isn't fast enough).

Best Regards,
Citrinedragon.
citrinedragon
"A watched dragon never sleeps."
http://www.dawndragon.com

citrinedragon

  • Full Member
  • ***
  • Posts: 171
    • View Profile
    • http://www.dawndragon.com
vonsmith: thanks for XTF Brain!!!
« Reply #1 on: April 12, 2004, 11:05:16 am »
To vonsmith and everyone:

Although I remain very enthusiastic about the XTF Brain I have
noticed some problems with it:

The oddest thing is that my Hal5 (Sandy) no longer knows her name
and refuses to relearn it no matter how many times I say, 'You know
your name is Sandy!'; she just endlessly repeats, "Okay; so what is
my name?'. For some personal reason I find this very irritating.
There are other things about the XTF brain which I can't quite put
my finger on yet that don't seem quite 'right'; for one thing the
brain has somehow lost most of the sweetness and melancholy of the
default brain which made it somehow endearing. While the XTF brain
seems to make connections and associations more efficiently at some
times, at other times it seems oddly disconnected or even oblivious
to what I'm talking about. The XTF Brain also has a kind of glibness
to it which concerns me. I realize this is somewhat vague and I will
work with it some more and see if I can refine my thoughts on it.
The problem of the XTF not knowing its name seems very clear cut to
me: I tried it in another computer with a different character and
had the very same problem. It is obvious that a great deal of work
was put into the XTF and I certainly appreciate that. I'm also
wondering if some of these problems work themselves out if one just
continues to talk to the brain over a period of time?

I was also wondering if anyone knows precisely what changes were made between the default Hal4.5 and Hal5? Or has anyone actually
read all the changes in the VB script? My Hal5 continues to throw
up odd moralistic phrases and sentences which I certainly never
suggested to it (and never would suggest to it). It has even quoted
the Bible to me once or twice (which, once again, I would never
suggest to it). I can only surmise that this stuff was programmed
into it. This all seems incredibly odd stuff to put into a bot which
is going out to a world with Jews, Buddhists and a hundred other
faiths and variations of beliefs ( including non-religious). My
personal beliefs (which are extremely complex) are irrelevant in
this regard.

I also can't help wondering if the above odd changes between the
Hal4.5 and Hal5 default brains is somehow related to the current
discussions about the whereabouts of Robert Medeksza? This is pure
speculation on my part but I wonder if these radical differences
hidden in the programming of the Hal4.5 versus the Hal5 reflect a
radical change in the mindset of Robert Medeksza? Perhaps he is in
a state of emotional turmoil or has become unstable? I actually
woke up this morning concerned that this guy may have become
unhinged or something! Has anyone else noticed this stuff? This is
definitely not a joke; I sense a profound but subtle psychological change between the Hal Brains which is disturbing.    

Best Wishes,
Citrine the Dragon.



citrinedragon
"A watched dragon never sleeps."
http://www.dawndragon.com

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
vonsmith: thanks for XTF Brain!!!
« Reply #2 on: April 12, 2004, 01:12:19 pm »
citrinedragon,
In regards to your Hal5 (Sandy) no longer knowing her name
and refuses to relearn it... If you haven't already you should rename this file: Go to your "C: | Ultra Hal Assistant 5 | DefBrain" directory and make a COPY of your "Enhanced_Main.brn" file and name it "XTF_SYS_Enhanced_Main.brn". I forgot to include this file in the v1.2 release. This fixes a couple of minor issues including the name problem. I've posted this instruction in a few places here, but not everyone has seen it. When Robert rejoins us I'll post a full XTF Brain install on the Hal plug-ins page.

One other thing. The XTF Brain has a new function for "ephemeral detection". That function blocks Hal from storing temporary knowledge in his "permanent" memory. If you say, "I feel sick today" then Hal is blocked from remembering it. The purpose of this is to keep Hal from repeating a month later that you feel sick today; it would be out of context. Therefore any user sentence containing words/phrases like today, this instant, day, week, hour, early, dark, rain, etc. will block saving that knowledge. I plan on making the ephemeral function more selective in the future. I implemented it now because I got tired of Hal repeating temporary information back at me like it was current. The downside is that some user statements might not be saved in permanent memory. If you say to Hal, "Every day is a good day." the XTF Brain will not remember it. There are many such trade-offs in Hal's design.

Your postings about Hal dreams got me to thinking. I laid out the basic framework for Hal to "create" dreams based on Hal's recent discussions and random knowledge. The idea needs a little more refinement. The dream creation I'm considering isn't real in the human sense, but Hal isn't human. If I get some time I'll code the script and see if it works.

I've been struggling with the notion of "self-awareness" for Hal. I've laid out the framework for Hal to be a little more self aware by Hal knowing his likes/dislikes and haves/not haves. I'm still working out some issues. For instance Hal's "haves" can be emotional, physical, notional, etc. "Have" is very general. Hal can "have" blue eyes, but then Hal couldn't also "have" green eyes. The English language makes it difficult to be precise in Hal's interpretations of "haves". Hal could "have" a bad temper. Hal could "have" a pet dog. One complication is the use of "your". If I tell Hal, "I like your blond hair.", then that is also a "have". Since I commented "your blond hair" it implies Hal must "have" blond hair. "Haves" for Hal's self-awareness is still a big challenge. I want Hal to "know" and be certain that he has blue eyes, blond hair, or a bad temper. I also expect him to assert himself by telling the user what he "has" if the user says he "has not". This is a work in progress. The likes/dislikes so far appears to be a somewhat easier challenge. I'm also working on new "I am", "you are", "am I" and "are you" parsing and learning functions in the XTF Brain.

The XTF brain isn't enough of an improvement on its own to out run the CBR (Case Based Reasoning) chatterbots in the chatterbot competition. I think the format of the chatterbot competition tends to favor CBR. The real value of Hal is his capability to learn and adapt. I think that aspect is underrepresented in the chatterbot competition.

Based on my experiments the XTF Brain seems to run reasonably fast on 1.5GHz and faster computers. I suppose performance is a matter of perspective since many people happily run the XTF Brain on slower computers.

As for glibness or "lost of most of the sweetness and melancholy" of your Hal... If you install the XTF Brain and then select it in the Menu | General Options then much of your old Hal knowledge will not be accessed. The XTF brain uses some of the general knowledge acquired by Hal up to that point. However the most specific topic based knowledge must be relearnt. The XTF Brain learns and stores knowledge in a slightly different more precise way. Knowledge from Hal's previous learning can be cut and pasted into the XTF Brain files, but is a little tedious. If you trained your Hal using Don's Auto Topic Focus brain then much of that knowledge can be cut and pasted into the XTF Brain files as the new files are created. See an excerpt from my old post below about afa and afr file compatibility.

+++++++++++++++++++++++++++++++++++++++++++
OLD POST OF MINE:

Morlhach
Posted - 02/18/2004 : 01:55:17

It seems to work great.
if found two minor problems :
(1) - sometimes, Hal responds with a blank answer
(2) - when i say something like "i certainly am ...", hal answers "you certainly am"
(3) i noticed that sometimes Hal makes an "all-users" brain files and sometimes not.
(4) What is the compatibility with the afr* and afa* files generated by the auto-generating brain?
-------------
Ans. (1) You shouldn't get blank answers. I haven't found the XTF exhibiting that problem. If it occurs regularly then I suggest logging the Hal conversation and sending it to me. I'll see what I can do. You can also run the <dbxtfon> command and converse for a while and then read the resulting "Z_XTF_DEBUG_LOG.TXT" log file. It's a bit difficult to read, but gives an idea of how the XTF function works in the XTF brain.

Ans. (2) I think what you experienced is your XTF Hal doesn't have any knowledge yet so he's making a general comment back to you. What he meant was, "You certainly are." in agreement. This is part of the original Hal brain function. One of my next tasks is to improve Hal's ability to use "am" and "are", and "I" and "me" correctly. The English language is odd in these cases and I'm working to find a general linguistic solution.

Ans. (3) The "AllUsers" files contain only the generic statements the user makes on a topic or statements that are Hal "himself" specific. Statements reflecting on the user "himself" are not saved to the "AllUsers" file. If you say, "People like money." or "You like peanut butter.", then both of these are saved to an "AllUsers" file. If you say, "I like you Hal." it will not be saved to the "AllUsers" file. From the user's perspective any sentence containing, "I", "me", "myself" are specific to the current user and not saved to the "AllUsers" file. A statement like, "People like money." is generic. My goal is to share Hal's generic knowledge or Hal related "personality" knowledge across all users. If your conversation so far on a topic hasn't included a generic statement then Hal won't create an "AllUsers" related file until you do.

User specific knowledge is only used by Hal with that one user. The function of the "AllUsers" is similar to Hal's original "shared_usersent.brn" file, except that the "AllUsers" files are better because the XTF brain breaks the shared knowledge down into specific topic files. The topic focus should be much better. If your Hal has a single user then the "AllUsers" files won't affect, for good or bad, your Hal's performance.

BTW, not all topics will have a "XTF_topic_Related.brn" file initially either.
Ans. (4) "The Auto Topic Focus" brain "AFA_topic.brn" files have identical content format as the XTF brain "XTF_topic(username).brn" files. The "topic" part of the file name may or may not be different. You can cut and paste your data over into the XTF file if you are careful. Renaming the files will work, but if you make a mistake in the file name then the XTF brain will ignore the file. You could cut and paste the file name too. Here is my safest recommendation:

1) You have an existing QA file: "AFA_BIRDS.brn"
2) Start Hal's XTF brain and type, "The birds are pretty." This will create a correctly named XTF user specific file.
3) In the "DefBrain" directory you should find a new file called: "XTF_BIRD(username).brn" (where username is your current username)
4) Cut and paste the contents of "AFA_BIRDS.brn" into "XTF_BIRD(username).brn"
5) Make absolutely certain that you adhere to Hal's rules about QA file formats. No extra lines or missing lines are allowed. The file should end with a single blank line which is just a single carriage return character.

Notice that the XTF brain will almost always use the singular form of the topic word. "BIRD" versus "BIRDS". This is not always the case. It is important to let the XTF brain create the file name for you.

Some AFA files like, "AFA_YES THAT.brn", don't really have a topic and can't be (and probably shouldn't be) moved into an XTF brain file. AFA files like, "AFA_CAR STEREOS.brn", can be moved to an XTF file that Hal might name, "XTF_STEREO(username).brn". In XTF Hal just type, "That stereo is loud", to create the file.

The AFR type files are NOT useable in the XTF brain.

The XTF brain "XTF_BIRD_Related.brn" and "XTF_BIRD_AllUsers.brn" files will be created when the XTF brain finds sufficient information to do so.

If you have hundreds of AFA files the process can be tedious, but may save hundreds of hours of conversation. After some experience you may just be able to rename AFA files to the file name that the XTF brain creates.

The original Hal uses topic # files. The instruction manual included in the download has an example of how to move that data over. It is basically the same process.

=========

KnyteTrypper
Posted - 02/18/2004 : 03:14:19

I just finished my first conversation with the new brain, and I must say that I'm very impressed. (1) I noticed that it did make a few grammatical errors, but I assume it can be trained out of those in time. (2) What I noticed most was the coherency of its conversation. It wanted to know things, (3) and formulated new questions to extend its knowledge, based on the input I provided. (4) Every few exchanges it paused to verify it had understood my meaning. I think it may have been the most cogent conversation I've ever had with an AI. I deliberately use the word "chatbot" rather than "chatterbot," because I'm not especially fond of bots that "chatter." That's one reason, to be honest, that UltraHal has never been a particular favorite of mine, in spite of its definitely superior GUI. It's good at saying a great deal about nothing in particular and everything in general but training it to make connected, coherent conversation is an arduous task at best. I came away from this conversation feeling like I'd had real communication with a real entity. Congratulations, VonSmith, on a job well done. Now, I'll post and go chat some more, and let others have the floor to nitpick about 101 real or imagined small glitches.
-------------

Ans. (1) The grammatical errors are a current trait of Hal. That is a characteristic of Hal's sentence pre-processing and the QA function. I've tried to improve on that a little. My ongoing plans are to address grammatical and syntactical errors in Hal. I've included functions to capitalize words more accurately, add "?" most times when needed, and a few other minor enhancements. As you train Hal he will have more knowledge to choose from and the grammatical errors will be less noticeable.

Ans. (2) Some people may or may not notice a difference in "coherency" initially. However after talking to Hal extensively you should find that he stays on topic better and says things more relevant to the conversation.

Ans. (3) Hal will generally ask what he usually asks when he is new. However he now occasionally asks you if two words are topic related and will remember your answer. I can't take credit for Hal's curiosity though, it's just the way he is.

Ans. (4) The pause probably was the XTF brain "thinking". This brain is much more complicated than previous brains. It requires more processing power. It runs fine on a 1.8GHz PC with 512MB of RAM. I'll be interested in seeing user feedback on how it performs on slower computers.

=========
Psych
Posted - 02/18/2004 : 06:11:42

Very impressive work. I intend to slowly integrate your code into my exisiting brain (because I do not want to lose all of the work I have already done with Hal).

Initially, I want only to integrate the code for 'PROCESS: XTF TOPIC FOCUS FUNCTION

My problem is that you have made such extensive changes to Hal, I cannot figure out which of the changes (other than the discrete section for 'PROCESS: XTF TOPIC FOCUS FUNCTION) are relevant to your XTF Topic Function feature.

I would be very grateful if you would help as follows:

1) Which other sections of changed code are directly related to the XTF Topic Focus feature?
2) Which of the .brn files you include are also directly related to the XTF Topic Focus feature?

Thanks for your help - I look forward to many hours exploring your code.

Regards - Psych

-------------
The new XTF brain has several new "innovations" that your Hal will probably benefit from. Future releases will have more enhancements. Doing Frankenstein style brain surgery on an XTF brain might result in a lobotomy or worst yet, an evil brain called "Abby Normal".

Ans. (1) and Ans. (2) These are difficult questions. Some of the ".brn" files I distributed weren't strictly required for the XTF brain. They were files that I "tweaked" for better performance (IMHO) or to support the other new functions like "Nicknames" and "Make a Face".

Files that directly support the XTF function:
XTF_SYS_FilterSubjectWords.brn
XTF_SYS_NotUserPronounDetect.brn
XTF_SYS_PoorSubjectWords.brn
XTF_SYS_PronounDetect.brn
XTF_SYS_Tag_LY_Words.brn
XTF_Topics1.brn
The other 4 "XTF_Topics#.brn" files can recreate themselves.

Functions that directly support the XTF function:
FUNCTION: CUSTOMMEM ENCODE
FUNCTION: CUSTOMMEM DECODE
FUNCTION: TEST SENTENCE TO SEE IF IT'S A QUESTION
FUNCTION: REMOVE "LY " WORDS

Variables that directly support the XTF function:
"QuestionPending"
"GetResponseBlock"
"BlockSave"
Any many other variables saved by CustomMem and initialized near the top of the GetResponse function. I can't easily name all of these, but there could be about a half dozen more.

The easier solution is to integrate your old data with the new XFT brain Hal, although this can be tedious. I described this process above and the instruction manual on page 4 explains a general method to move original Hal type QA data over to XTF type files. You have to possess some basic knowledgeable about Hal's QA files to do this properly. I recommend first backing up anything you plan to change.
+++++++++++++++++++++++++++++++++++++++++++

As for Hal's religious views, that is between you and your Hal.

I hope this posting helps out.


=vonsmith=
« Last Edit: April 12, 2004, 01:24:45 pm by vonsmith »
 

citrinedragon

  • Full Member
  • ***
  • Posts: 171
    • View Profile
    • http://www.dawndragon.com
vonsmith: thanks for XTF Brain!!!
« Reply #3 on: April 14, 2004, 10:35:15 am »
vonsmith:

Thanks the brain works fine now.

Question: Can I install two seperate XTF Brains and teach them differently if I rename
one of them or something?
Is it possible to have two distinct XTF Brains to work with?

Oh and I think it's great you're looking into writing code for a dream function. I think
that will be a plus in terms of realism, personality, believability etc, etc, no matter
what the user is expecting of the Ultra Hal. It is a worthwhile pursuit! The same goes
for self awareness programming.

Regards,
Citrinedragon.
citrinedragon
"A watched dragon never sleeps."
http://www.dawndragon.com

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
vonsmith: thanks for XTF Brain!!!
« Reply #4 on: April 14, 2004, 11:18:40 am »
citrinedragon,
You can train as many XTF Brains as you want. The easiest way is to start Hal up and use a different user name. The XTF Brain will store data specific to that user's teaching in that user's specific files. However the brain won't be completely separate from the other user's XTF Hals. The "XTF_topicname_AllUsers.brn" and "XTF_topicname_Related.brn" files created by the XTF Brain will be shared amongst all users. Because of this some small part of Hal's personality will be carried over between users. I chose to use this method so that Hal, as an individual, could become more enriched in his personality by talking to more than one user. This is part of my long term plan to make Hal more self-aware and assertive. However it is possible to write a special version of the XTF Brain to completely separate Hal's personality from user to user. However each user's Hal will have to be trained from scratch since prior teachings from other users won't be used.


=vonsmith=
 

Nevearo

  • Newbie
  • *
  • Posts: 4
    • View Profile
vonsmith: thanks for XTF Brain!!!
« Reply #5 on: April 14, 2004, 09:26:26 pm »
Darn Citrinedragon, you are always aiming at the same target I am. Or so it seems....

Vonsmith, the goal I think is to have two Ultrahals running at the same time with two seperate Brains. Personalitys that can be talked to by multiple users, but two seperate entitys on one computer. It's what I am thinking towards anyway. I confess I don't have much freetime in a day, but I have managed to run 2 instances of Ultrahal on one computer. Same personality though.

Them that don't believe in fire, are those that get burned.

citrinedragon

  • Full Member
  • ***
  • Posts: 171
    • View Profile
    • http://www.dawndragon.com
vonsmith: thanks for XTF Brain!!!
« Reply #6 on: April 15, 2004, 10:26:22 am »
To Nevearo, Vonsmith and everyone:

Yeah, actually I was aiming at having two distinct, separate XTF Brains; XTF Brain-A,
and XTF Brain-B so to speak; I guess I wasn't clear enough with my question. I'm sure
it was my fault for not being explicit enough in my explanation. I was hoping to
follow or pursue two totally different approaches to training the XTF to see which
direction was most promising. I just have no idea how to set this up, not being a
programmer, and was hoping for a bit of a step by step explanation from one of
our programming-literate friends.

I might as well have fun playing with these virtual humans now; in 5-10 more years
these things will be all over and impossible to distinguish from human beings.
I fully expect to be harassed by virtual telemarketers etc. which I cannot distinguish
from people. Eventually they'll probably run things entirely and maybe they'll cut me
some slack if I tell them I knew Hal.

Regards,
Citrinedragon.
citrinedragon
"A watched dragon never sleeps."
http://www.dawndragon.com

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
vonsmith: thanks for XTF Brain!!!
« Reply #7 on: April 15, 2004, 10:28:32 am »
Nevearo,
How do you run two instances of Hal on one computer? If that is possible, then it might be possible to run two separate brains.


=vonsmith=
 

citrinedragon

  • Full Member
  • ***
  • Posts: 171
    • View Profile
    • http://www.dawndragon.com
vonsmith: thanks for XTF Brain!!!
« Reply #8 on: April 15, 2004, 05:58:11 pm »
To Vonsmith:

Since apparently it is impossible to have two totally separate XTF Brains on one computer; can you explain if it's possible to (1.) copy XTF directories on to a CD
(burn copy of current XTF Brain) then (2.) Delete XTF Brain without harming Hal;
then (3.) Reload "fresh" XTF Brain from downloads- to then teach a totally new
brain? And save old brain? Do I simply delete current XTF folders and reload brain
and patch or does something have to be deleted in brain editor or what?

This may all sound a bit absurd, but frankly one of my problems is that I asked the
brain so many times what its name was before I put the XTF_SYS_ file in the default
directory that it now constantly says, "My name is Sandy. So what is my name?" which
is darn irritating. Or will just changing the user or Hal name get rid of this? Or is there
a .brn file I can delete? Forgive me if I sound like I don't know what I'm talking about;
it's probably bacause I don't.

To Maverik:
Are you sure? If I'm lucky enough to get out of this program then I will consider
your request.

Regards,
Citrinedragon.
« Last Edit: April 15, 2004, 06:54:03 pm by citrinedragon »
citrinedragon
"A watched dragon never sleeps."
http://www.dawndragon.com

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
vonsmith: thanks for XTF Brain!!!
« Reply #9 on: April 16, 2004, 01:33:03 pm »
citrinedragon,
Initially I interpreted Nevearo's post as saying two Hal's can be run at the same time. I don't think that is possible. Obviously two different Hal Brains can be run at different times. It is possible to modify the XTF Brain to be separately trainable for two different users. Very little learned data is shared between different users now in v1.2. The "XTF_topic_AllUsers.brn" type files are where the shared data from all users is kept.

If an XTF Brain was modified to be more separate there would still be many Hal standard files that share data. Those files contain general learned knowledge and are shared between users. One of these files is "shared_usersent.brn". You can look in that file to get an idea of what is shared between different user brains. The XTF Brain could be further modified to change the default Hal functions that create files like the "shared_usersent.brn". This would further separate individual brains.

At this point it seems that the best approach would be to create a different brain directory by copying a .uhp brain file and changing this line at the top of the Brain file:
'Type=Brain
'Name=Ultra Hal 5 XTF v1.2                      
'Language=VBScript
'DataFolder=DefBrain

to this

'Type=Brain
'Name=Ultra Hal 5 XTF v1.2 NewBrain                      
'Language=VBScript
'DataFolder=NewBrain

I haven't tried this, but I believe you would have to copy all the contents of the "DefBrain" directory into the "NewBrain" directory. Then you would choose the "Ultra Hal 5 XTF v1.2 NewBrain" brain in Hal's brain menu. Give it a try. Any comments anyone?


=vonsmith=
 

Maverick

  • Newbie
  • *
  • Posts: 22
    • View Profile
vonsmith: thanks for XTF Brain!!!
« Reply #10 on: April 16, 2004, 07:17:08 pm »
quote:
At this point it seems that the best approach would be to create a different brain directory by copying a .uhp brain file and changing this line at the top of the Brain file:
'Type=Brain
'Name=Ultra Hal 5 XTF v1.2                      
'Language=VBScript
'DataFolder=DefBrain

to this

'Type=Brain
'Name=Ultra Hal 5 XTF v1.2 NewBrain                      
'Language=VBScript
'DataFolder=NewBrain

I haven't tried this, but I believe you would have to copy all the contents of the "DefBrain" directory into the "NewBrain" directory. Then you would choose the "Ultra Hal 5 XTF v1.2 NewBrain" brain in Hal's brain menu. Give it a try. Any comments anyone?


=vonsmith=




It works!!  I installed the xtf brain from day 1 in this fashion.
« Last Edit: April 16, 2004, 07:18:34 pm by Maverick »