RE: A fairly concrete path to the Singularity

From: Patrick McCuller (patrick@kia.net)
Date: Thu Apr 26 2001 - 10:58:30 MDT


> The first is the creation of a formalized database of knowledge about
> algorithms, programming languages and AI. At www.mizar.org, there is a
> formalized database of knowledge about undergraduate and some graduate-level
> mathematics. But it's scanty on CS. Now, I am well aware that formalized
> theorems and proofs are not the essence of mathematics. But they're an
> important component, which a young AI will more easily absorb from
> formalized treatments than from journal math articles, which have their own
> peculiar social and psychological assumptions underlying them, different
> from the patterns underlying the math itself.

        I think this is a valid approach. One word of caution is that they've been
working on this for 28 years. Even with 20,000 formalized theorems, they still
have a way to go.

        Mizar syntax is not sophisticated enough for codifying CS knowledge
(admittedly, you can accomplish a hell of a lot with it)... and there isn't an
Office of Naval Research funding the project. It's a great idea, but I'm
interested in hearing more ideas on how to accomplish it.

>
> The second is the creation of an efficient & scalable programming language
> with a purely formal semantics. C# may fulfill this criterion; Peter Voss
> is evaluating it for this purpose. Java is formal but not yet efficient and
> scalable enough; an improved JVM could solve the problem, particularly a JVM
> specialized for large-scale AI. C is efficient and scalable but its use of
> pointers means that its formal semantics needs to include a formal model of
> heap memory, which makes the task of inference-driven self-modification
> MUCH more difficult for a C program. [When I say C I include C++]

        I think your concerns about Java's performance are based on two things.
First, your were using it for a high performance application just before it
was really ready for it - you saw a lot of blood. Second, you were trying to
use it on cheap hardware.

        I'm sure based on the bills you paid you don't think x4 processor PCs with
4GB of RAM is cheap, but you are also aware that much better alternatives
exist.

        These short papers introduce some high performance Java projects:

http://www.developer.ibm.com/java/j2/IBM_Java_2_Intel.pdf

http://himalaya.compaq.com/docs/IO/4791/ATT/javaprb.pdf

        Building an AI with Java, you have a lot riding on high performance Java. IBM
and COMPAQ have tens of billions riding on high performance Java.

        In truth, I would not rely on x4 PCs to accomplish any difficult task. I
would buy or steal better hardware, namely 64 bit hardware such as alphas.
They have had a functional JVM since, I think, 1996, running at 64 bits with
64 bit memory addressing.

        More work accomplished on each machine means fewer messages between machines
for the same amount of work. That coupled with IBM's (or whoever's) object
serialization performance improvements greatly reduces the problems you met. A
caveat, though, is that distributed object systems always take a performance
hit, there's nothing you can do about this architectural reality.

        Memory space goes to 64 bit. That's more RAM than you're likely to stuff into
a computer.

        Garbage collection is greatly sped up, with options to tweak.

        I would also consider switching from RMI to CORBA for your message-passing
needs (a lot of this work could be done by people who understand RMI and
CORBA, but not AI, saving yourself a lot of trouble finding people.)

        The advantages of staying with Java and switching to CORBA and a 64 bit
architecture are that you keep a lot of your code: you do have many years'
effort already accomplished in terms of code. Write system components in
languages other than Java when you need to.

        A note on C#:

        I am also intrigued with C#. It tests nicely, though there are some problems
and it will take a couple of years before all the kinks are worked out. And
that's one problem you must consider: all the headache you got from going with
Java early, you will get again with C#.

Patrick McCuller

>
> I think that this picture of the path to the Singularity is a little
> different from that of Eliezer. But I'm not sure. My sense is that he
> views self-modification as entering into the picture earlier, perhaps in
> stage 1, as the best way of getting to the first "fairly intelligent AI."
> I'm not 100% sure this is wrong, but after a lot of thought I have not seen
> a good way to do this, whereas I have a pretty clear picture of how to get
> to the Singularity according to the steps I've outlined here.
>
>
> -- Ben
>



This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:36 MDT