From: Ben Goertzel (email@example.com)
Date: Thu Feb 28 2002 - 21:38:52 MST
There seem to be a lot of new people on this list lately, so I reckon it's
an appropriate time to bring up an old topic again.
My Novamente AI project (successor to the Webmind AI Engine project carried
out at Webmind Inc.) could use some new team members. I am not terribly
optimistic about finding any, but, I reckon it's worth another try. "Never
venture, never win" as Sir Edmund Hilary said.
We are implementing what we believe will, when complete, be a "Real AI", and
a seed AI capable of initiating a hard takeoff. We have a fairly complete
mathematical design for the system (in the form of a 300-page book
manuscript, not published), and we have detailed software designs for many
components. Right now about 20% or so of the system is implemented. The
implementation is in C++ (mostly C) and runs only on the Linux platform at
the moment (making it more portable won't be a huge task, but we have no
immediate plans to do so; there are plenty of more urgent matters). Right
now it doesn't do a lot of Real-AI-ish things, though it can do some
interesting kinds of data mining, and there is a lot of valuable
infrastructure in place.
The design is strongly inspired by the Webmind AI Engine, but is also
substantially different in several important ways, including the approach to
low-level scheduling and memory management, and some high-level issues like
the way procedural and declarative knowledge are interrelated.
The Webmind AI Engine was being developed by a team of at maximum 45 people
(scientists, developers and testers), over a period of 3 years. Webmind
Inc. dissolved in early April 2001 for financial reasons.
The current Novamente team consists of 8 people: two of us here in
Albuquerque (though I may be moving soon), one in New York, and the rest in
Brazil. We are dividing our time between Novamente work aimed at creating
Real AI, and Novamente work aimed at making practical datamining products
from the system. (We are dreamers, but we also need to eat during the
I understand that "having a complete design for a real AI" is a big claim.
There are others on this list (e.g. Eliezer, Peter Voss, Shane Legg) who are
moving in roughly the same direction as we are, and whose thinking I respect
considerably. However, I think that the Novamente project is considerably
further along than their projects are. Whether we are further along in the
*right direction* is of course a matter of opinion, until the final success
or failure of our project is empirically determined. At present, no one
outside our project really has the knowledge to assess our design. Even
those who were involved with the Webmind AI Engine do not, because we have
made tremendous conceptual progress in the last year, based on rethinking
our approach from scratch in the light of the lessons we learned at Webmind
We currently do not have funding adequate to pay new team members salaries.
We do anticipate getting funded in the future, and when this happens, people
who have been working during the unfunded period will be first in line for
New team members will be compensated via shares in Novamente LLC, a
for-profit firm that owns the Novamente codebase (and is not currently
making any significant profit ;)
This is not an open-source project. There are two reasons for this:
1) We believe our prospects for achieving significant funding again are
greater if the source is kept proprietary, as business funding sources are
generally (and often rightly, from a business perspective) nervous about the
2) We believe that managing an open-source project of this nature would
require a *lot* of time and effort, and we don't have the spare bandwidth
We could quite likely be convinced to open up the project by a sufficient
infusion of dollars!
This is not an easy project for a new person to get involved with. So far,
during the last year, several have tried, and one person has partly
succeeded. The difficulties with getting involved seem to be:
a) the concepts involved are very difficult, and unfamiliar;
b) it is hard for anyone to carry on work of this kind on a part-time basis,
but without pay, few can afford to help out on a full-time basis;
c) the current team is very tightly-knit, having worked together for 4 years
already, and we communicate very concisely and efficiently amongst
ourselves, which means that in spite of our best efforts it can be hard for
a new person to "break in."
Who do we need, at this stage? There are four categories of individual who
could be useful to us.
1) Excellent C/C++ programmers, familiar with the Linux environment or eager
to learn. Strong knowledge of data structures and algorithms is required;
we do many nasty things with trees, hashtables, etc. and our own
experience-refined variations on the standard data structures. Knowledge of
OO design patterns is highly desirable, even though the majority of the
codebase is straight C. The willingness to adhere to a standard coding
style is important, as is an understanding of when it is and isn't necessary
to comment a line of code. Also, the ability to write a comprehensible
design document describing a complex piece of code (articulate broken
English is fine; the majority of the team has English as a second language).
2) We could use another mathematician in the project. The kinds of math
involved are, for instance: combinatory logic, nonlinear dynamics, and
probability theory. We have a lot of fairly complex mathematical structures
defined, and there are some moderately thorny technical math problems to do
with them, which we have deferred considering until they *absolutely have to
be solved*. We do have the expertise to handle all this stuff, but we're
all over-busy (to make an understatement).
This is not "pure" mathematics however; working on the math problems we have
requires a good sense for practical software efficiency of algorithms, and
the ability to combine formal work with simulations and Mathematica-type
3) We could use someone experienced with programming language
implementation, particularly in the functional programming domain. We have
designed a programming language called Sasha, which needs to be implemented.
The idea is not to implement Novamente in Sasha (not for a few years at
least), but to use Sasha to specify complex internal Novamente structures,
and to represent complex learned internal Novamente structures.
4) We could use a cognitive science expert with a broad scope of knowledge
and a sympathy for complex, self-organizing-systems type thinking. We have
a very comprehensive design worked out, which synthesizes ideas from
computer science, experimental and introspective psychology, mathematics,
neuroscience, and assorted other disciplines. We could use someone who has
the time and inclination to absorb this whole design and think about it as a
whole, and come up with creative criticisms, additions, modifications, etc.
In order to "get" what we're doing, you'll need to have a decent knowledge
of computer programming as well as some mathematical knowledge (some of the
interesting *conceptual* aspects of the design are really only graspable in
terms of equations, not words), as well as a thorough and diverse knowledge
of cognitive science.
Excellent e-mail communication skills are required in all cases, as this is
a globally distributed team. We do not have any fancy global knowledge
management system. We use CVS and e-mail.
This kind of work takes a lot of time. If you have, say, 5 hours a week
available, you probably can't be useful to us. On the other hand, 10-15
hours a week is probably meaningful, assuming you're an efficient worker.
One thing I've observed is that most people overestimate the amount of free
time they're willing to devote to a project such as this. Another thing
I've observed is that most people can MAKE a substantial amount of time for
a project such as this if they want to badly enough.
Anyway, if there's someone on this list who fits into one of the above 4
categories, and is interested in helping us create real AI over the next few
years, please e-mail me privately and let me know. firstname.lastname@example.org .
The Webmind Inc. AI team was too big, I can see in retrospect. We don't
need a 45-man squadron. However, we could use another 5-10 excellent
people; this could make the difference between it taking us 3-5 years to
finish implementing and testing the system (with the current team and our
current division of labor between real AI work and datamining work) and 1-2
If you are interested in joining our team but do *not* fit into one of the
above 4 categories, then I'm certainly open to chatting with you about what
we're doing, but unfortunately I don't have any concrete work for you at
present. The most useful thing you could do for us would be to spend some
time gaining expertise in one of the 4 areas mentioned above. I have made
some efforts to involve people lacking the appropriate skill set in the
project, with predictable lack of success. Enthusiasm and brilliance are
important, but not adequate in themselves for jumping into the middle of a
project like this one.
If you are interested and qualified, the way it will work is as follows.
First, you will have to sign a nondisclosure document to be allowed access
to the design documentation. Then we'll give you some stuff to read, which
realistically will take a couple months, as there is a lot there. Then we
will give you a small project to do, to get a sense of your abilities and
the pragmatics of working with you. If this initial project is succesful,
then you'll be accepted as a full member of the team, given CVS access and
put on our glorious internal e-mail lists, and so forth. I hope this
"initiation process" does not sound too arrogant; the purpose of it is
protect us from spending too much of our time working with intelligent,
interested people who don't actually possess the combination of time and
skill required to help with the project.
Thanks for reading this far!!!
This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:37 MDT