[HN Gopher] We Don't Know How to Compute (2011) [video]
___________________________________________________________________
We Don't Know How to Compute (2011) [video]
Author : ducktective
Score : 115 points
Date : 2023-05-15 08:13 UTC (14 hours ago)
(HTM) web link (www.youtube.com)
(TXT) w3m dump (www.youtube.com)
| CraigJPerry wrote:
| We do keep looking under the proverbial lamppost for the missing
| keys[1] when it comes to computation.
|
| Compilers for the most popular languages are pretty amazing these
| days. Yet it's still on the developer to make the most of them.
| One aspect might be performance: - structure
| your problem in such a way (carefully manage dependency
| relationships, eliminate branches, etc). that the compiler can
| choose to emit vector instructions - manage memory access
| patterns (e.g. prefer columnar and SoA access patterns over cache
| unfriendly pointer chasing structures) - understand how
| to maximally exploit cache hierarchies for your problem (e.g.
| threading to exploit the other L1 caches rather than relying on
| slower L3 etc.)
|
| Another aspect might be data security rules, e.g. tagging and
| labelling with the ability to enforce rules for the developer.
|
| But there are literally hundreds of aspects to deal with. Our
| languages today look at the problem space through a toilet roll
| tube with the other eye closed.
|
| The future of computation is guaranteed to be rich, vibrant and
| exciting.
|
| [1] https://en.m.wikipedia.org/wiki/Streetlight_effect
| mgaunard wrote:
| Few of the things we care about need to be fast, and fewer of
| the things that need to be fast are held up by number crunching
| performance.
|
| There are already a plethora of languages designed for
| numerical computing. Just use that if that's what you're doing.
| messe wrote:
| I think every suggestion you have there would fall under that
| very same lamppost: a linear model of computation going only
| one direction. Sussman details in this talk a different model
| he calls propagators that deal with information flow back and
| forth, allowing for some interesting ways of working with
| "fuzzy" and incomplete data, while still allowing for cheap
| backtracking if a contradiction arises. I haven't read the
| Radul & Sussman's paper "The Art of the Propagator"[1] yet, but
| I fully intend to now having watched the talk.
|
| [1]: https://dspace.mit.edu/bitstream/handle/1721.1/44215/MIT-
| CSA...
| jFriedensreich wrote:
| could someone explain why people laugh when he sais he went by
| the lab that said "laboratory for experimental histology"?
| messe wrote:
| I know the transcript says "experimental histology", but I
| think he actually says was "experimental epistemology", which
| is a branch of philosophy dealing with the nature of knowledge
| --hence the laugh at "experimental".
| jFriedensreich wrote:
| thanks that is also the only thing that makes sense, i just
| could not hear it after being primed by the transcript
| messe wrote:
| Technically "histology"--the microscopic study of tissues--
| also makes sense in the context of the lab (studying
| neurons), but it would be far less funny of a joke.
| messe wrote:
| I reached out to find out, and received this reply:
|
| > It was indeed "experimental epistemology,"
|
| > GJS
| squirrel wrote:
| Isn't Sussman's idea similar to the tuple spaces of languages
| like Linda? https://en.wikipedia.org/wiki/Tuple_space
| agentultra wrote:
| This is such an interesting talk!
|
| However I think the take on EWD's contributions to computer
| science could use a different take. On maintainability and
| extension of systems it is possible to achieve a system like
| Sussman's propagators while still maintaining proofs of
| correctness. It's true that overly specific proofs that don't
| work on the more general principles are harder to maintain in
| step with a changing program; however the trade-off is that you
| don't know if the change you made (to the highly dynamic system)
| will have the desired effect (or at least, you can't prove it
| doesn't).
|
| For a small circuit diagram it might be simple enough that there
| are obviously no errors. However the prevailing approach to
| software development is to make software so complex there are no
| obvious errors.
|
| Biological systems seem to get around this by encoding a lot of
| redundant information, preserving a ton of errors, and it takes
| millions of years to sort them out.
|
| I think though that in some cases it does make sense to trade off
| some correctness when prototyping and experimenting with ideas.
| However, in my limited experience, taking that idea to the
| extreme can lead to systems that only the original author can
| understand. Mathematics may be impressionistic but the
| formalization of mathematics, though tedious and pedantic, isn't!
|
| It wouldn't be until a few years later when systems like Lean are
| shared to the wider world (and Coq continues to improve) that
| show how maintaining more general proof-level engineering can be
| done on a larger scale without sacrificing flexibility.
|
| Sussman is legendary. Loved this talk!
| AndrewOMartin wrote:
| This is a video of a talk from Gerald Sussman in 2011 at the
| Strange Loop conference. Abstract below.
|
| Though we have been building and programming computing machines
| for about 60 years and have learned a great deal about
| composition and abstraction, we have just begun to scratch the
| surface.
|
| A mammalian neuron takes about ten milliseconds to respond to a
| stimulus. A driver can respond to a visual stimulus in a few
| hundred milliseconds, and decide an action, such as making a
| turn. So the computational depth of this behavior is only a few
| tens of steps. We don't know how to make such a machine, and we
| wouldn't know how to program it.
|
| The human genome -- the information required to build a human
| from a single, undifferentiated eukariotic cell -- is about 1GB.
| The instructions to build a mammal are written in very dense
| code, and the program is extremely flexible. Only small patches
| to the human genome are required to build a cow or a dog rather
| than a human. Bigger patches result in a frog or a snake. We
| don't have any idea how to make a description of such a complex
| machine that is both dense and flexible.
|
| New design principles and new linguistic support are needed. I
| will address this issue and show some ideas that can perhaps get
| us to the next phase of engineering design.
|
| Gerald Sussman Massachusetts Institute of Technology
| unstuck3958 wrote:
| > _So the computational depth of this behavior is only a few
| tens of steps._
|
| One of the primary "criticisms" of pre-LLM machine learning was
| that it is _inefficient_ compared to, say, a human, because it
| requires a plethora of examples to classify something just to
| match the performance of a human who has only seen a few
| examples.
|
| That argument no longer holds the same value since the
| discovery of few-shot learning features of LLMs (though they
| still have a long way to go). Which makes me think: maybe the
| reason behind human brain's apparent "efficiency" is the
| complexity that hides beneath the billions of neurons we have.
|
| Disclaimer: I am an amateur and probably have only a litte idea
| of what I'm talking about.
| imtringued wrote:
| Sorry but there is no need for a whole brain to outperform
| ANNs in learning speed.
|
| https://bigthink.com/neuropsych/brain-cells-chip-play-pong/
| lostmsu wrote:
| > A driver can respond to a visual stimulus in a few hundred
| milliseconds, and decide an action, such as making a turn. So
| the computational depth of this behavior is only a few tens of
| steps. We don't know how to make such a machine, and we
| wouldn't know how to program it.
|
| IMHO, that makes no sense. Assuming we have a really large
| state machine with all many possible situations in a state of
| driving on a straight highway with a few vehicles with more or
| less constant relative velocity, determining if we need to make
| a turn is definitely doable in a few computation steps.
| leroy-is-here wrote:
| We attempted the symbolic route of AI programming and it
| didn't work because it is explosive in computation time and
| exhaustive to model in code.
|
| We can't program our AI "models" now because they are based
| on chains of probabilities. Therefore they can run in real
| time. They don't have any real logic that we specifically
| programmed, only what the model was able to infer and then
| encode.
|
| Perhaps there should be a marriage between these two attempts
| of AI.
| marcosdumay wrote:
| > it is explosive in computation time
|
| Hum... The numerical route for AI necessarily has the same
| complexity in computation time. Those two have equivalent
| semantics. If you can get a result with one, you can get
| the same result with the other, it can just differ on how
| easy it is to program.
|
| By the way, symbolic AI can learn too, you don't need to
| model things in code.
| leroy-is-here wrote:
| I was talking about attempts such as expert systems. We
| attempted to symbolically encode things as sums of their
| parts in plain terms, e.g. a bicycle is two wheels, an
| axle, a chain, some peddles, etc. but in more detail than
| that. The problem is the level of detail required for
| general knowledge: firstly it is hard to codify, secondly
| as it grows computation becomes exponentially more
| expensive.
|
| We as humans have the intelligence to simply see for
| fractions of a second and then just know -- we can know
| the answers to math problems and how a person is feeling.
| The symbolic AI programming was an attempt to codify what
| symbols we are seeing but they are so diverse and nuanced
| it became apparent this was an ineffective scientific
| route.
| lostmsu wrote:
| I was talking about hardware rather then software here.
|
| How do lane keeping assists work?
| MichaelZuo wrote:
| F1 drivers can instinctively respond to a minor bump on a curve
| and make a decision in probably ~100 milliseconds, so the lower
| bound is just 10 computational steps.
|
| A more complex decision such as swerving to avoid a wheel that
| just came off the car in front, probably takes around ~500
| milliseconds, or 50 computational steps.
|
| Considering that modern computers need billions of
| computational steps to start a calculator app and draw it on
| the desktop, we have a long way to go.
|
| Though there has been regression on this point, a 1990
| NeXTStation Color could do the same with ~50 million cycles on
| a 1120x832 display. (on 12 MB of RAM and 1.5 MB of VRAM.)
| taeric wrote:
| That feels like an odd example. Going on a google for speeds,
| that means they are responding to a bump after they have
| traveled 30 feet past it. Impressive, to be sure, but I'm not
| clear what the learning is there. More engineering went into
| the vehicles so that, by design, many other things happened
| before the driver is aware of it.
| TeMPOraL wrote:
| I think the trick is, our computational steps are massively
| parallel. Take the visual system. By the time you notice -
| consciously - the pothole you're about to drive into, it's
| already processed into high-level concepts.
|
| Our visual senses aren't camera feeds - the image we are
| aware of isn't raw input from the eyes, but rather it's
| _generated_ out of some combination of raw inputs, low-level
| hacks to hide limited FOV and discontinuities caused by
| saccades, and higher-level interpretations based on how we
| feel, what seems to fit the context based on our prior
| experiences, etc.
|
| I think it makes sense to assume that this process has many
| extra off-ramps that can trigger high-level reactions while
| bypassing conscious awareness. I.e. imagine that half-way
| through the post-processing stack, the relevant parts of the
| brain are somewhat convinced you're looking at a fast-moving
| object about to hit you in the face. There's a point at which
| it makes sense for the brain to make your body start a
| dodging move, even if it may be a misprediction, rather than
| waste a few dozen milliseconds to make sure, at the risk of
| getting a ball (or a rock, or a fist) up your nose.
| daveguy wrote:
| This is an extremely important point. "10 computational
| steps" is obviously underestimated. Each neuron can
| communicate with 10s to 100s of additional neurons, so if
| you're talking about 10 ms per step 100ms being 10 steps
| you are missing the fact that each step can be an
| exponential increase in the amount of computation involved.
| This is one of the main reasons I believe we are nowhere
| near human or even mouse level AGI. Many of the simple
| neuron count metrics do not include the _synapse counts_ or
| the incredible amount of parallel information that is
| processed. We have network interfaces with 100-400 Gb
| throughput whereas the communications between synapses
| represents exabits _of throughput between computational
| units_. We are very far from AGI just on a fundamental
| processing scale. Not to mention we know very little about
| the algorithms involved.
| TeMPOraL wrote:
| I would almost agree with you on the AGI angle, but my
| beliefs are still recovering from the shock of how we
| kind of randomly stumbled into solving multiple classes
| of seemingly intractable cognitive problems, just by
| feeding a program half the Internet and letting it
| position pieces of words in a hundred thousand
| dimensional vector space.
|
| Human brain has to do a lot of work processing and
| integrating all the senses we use, which could cover at
| least for part of the neural capacity you mention, but I
| feel that where _thinking_ is concerned, we may have
| accidentally solved the core problems. I somewhat expect
| that we 'll look back and see that current LLMs were to
| human minds what the ol' Model T is to Tesla Model S -
| vastly different in levels of advancement, but also
| fundamentally the same thing.
| daveguy wrote:
| > the shock of how we kind of randomly stumbled into
| solving multiple classes of seemingly intractable
| cognitive problems...
|
| Another excellent point. The idea that we may stumble
| onto massive computational leaps based on imprecise data
| processing requirements is terrifying. I do think we are
| nowhere near where we will need to be with respect to
| computation and, more important, information throughput.
| But the fact that we "oops"-ed into such a strong
| statistical model of conversation is deeply unsettling. I
| do believe GPT based language models will be part of an
| AGI.
| TeMPOraL wrote:
| Part of the reason I think LLMs are a step in the right
| direction is that it's too big of a coincidence. We don't
| know how our own brains work, but we have good reasons to
| believe that, whatever the "magic" trick is, it can't be
| _too_ complex, because _evolution had to "oops" into it
| too_.
|
| Now, it would be one hell of a coincidence if the model
| we "oops-ed" into with LLMs, and the model evolution
| "oops-ed" into, were completely unrelated approaches to
| the same problem.
| EliRivers wrote:
| If there are a billion different ways to solve this
| problem, it would seem much more of a coincidence if with
| LLMs we've "oops-ed" into an approach just like the one
| inside our heads. It would seem more likely that they're
| unrelated approaches.
| TeMPOraL wrote:
| Right. However, I don't see the reason to believe there
| is a billion ways to solve the fundamentals. And even if,
| they're not all equal here: we're considering solutions
| that are _very_ simple, provide huge leverage, and are
| continuous.
|
| For our own brains, this is because evolution is the OG
| incremental learner - it just doesn't do leaps of faith,
| nor does it invest resources. Incremental evolutionary
| advancements must quickly stack into something improving
| survival rates, or else they get selected _out_ of the
| gene pool. This strongly suggests that brains (human and
| animal alike) are based on a design that scaled easily
| and continuously - one that started simple and could be
| improved step by step, with each step being simple and
| conferring some non-zero survival advantage.
|
| For our AI work, LLMs are exactly this: they derive from
| simple models that were iterated on over the past few
| decades, in small steps. They are _still_ structurally
| simple as programs - but they 've hit the right structure
| that allowed them to make _qualitative_ jumps in
| capabilities from _simple scaling_ - more parameters,
| more memory, more compute, more training time, more input
| data. This may be just my own perception, but I feel that
| LLMs are exactly the kind of model that an evolutionary
| process would be able to develop incrementally.
|
| With the above in mind, plus the fact that LLMs are
| trained on the output of our brains (and their output is
| rated by our brains), makes me believe it's highly likely
| that, with language models, we've stumbled on the very
| same fundamental method of implementing thinking that is
| core to how our own brains work.
| marcosdumay wrote:
| > I think the trick is, our computational steps are
| massively parallel.
|
| Yes, one trick is that. Our computers have to serialize
| everything. We don't know how to build or program massively
| parallel computers with distributed memory. But the GP
| already touched on that point.
| MichaelZuo wrote:
| Well it seems like Nvidia is taking some baby steps in
| that direction with the 'Grace Hopper Superchip'.
| bionhoward wrote:
| Seems like fractals are the difference maker here because if
| you don't use a fractal you have to program the whole thing
| whereas if you use fractals (embryology) then your code can be
| massively recursive. Alternative splicing and epigenetics (holy
| shit, I can't believe the iPhone autocorrect doesn't know the
| word "epigenetics" in '23) also multiply the flexibility of the
| genome. Also, phosphorylation: proteins are not Boolean
| switches, they have arbitrary numbers of activation states.
| Ternary logic is already way more dense than Boolean so when
| you go even further like into 6-ary, 9-ary logics you're a lot
| more free to program stuff. Also the network motifs are a lot
| simpler than first appear. The metabolic map looks like
| spaghetti on the wall but each point is composed of reusable
| blocks like feedforward and feedback etc (see Uri Alon's book
| and "Wetware" book and Synthetic Biology: A primer for more
| detail)
|
| I'm biased as a molecular biologist but genetics and systems
| biology are the most incredible thing. Natural nanotech
| MisterTea wrote:
| > Natural nanotech
|
| When I was a kid in the 80's there were a number of
| gross/gore/horror trading cards for kids - Garbage Pail Kids
| being the prime example. One of the sets I had was set in
| some far flung future, I can barely remember the series but
| part of the theme were living, biological machines. The only
| card I can clearly remember featured a flying prisoner
| transport where the prisoners were seated in the ships
| cavernous stomach and "if upset during transport could
| accidentally digest the prisoners." (Honorable mention to HL2
| featuring "synthtech" - the drop ship, strider and gun ships
| were living biological machines.)
|
| This stuck in my head as the idea of designing machines which
| grow like plants or raised like animals was an incredibly
| amazing and interesting concept. But as I got older and
| educated the idea them seemed as far flung as the cards
| themselves. Though reading you post makes me think, maybe
| they aren't so far flung after all. Though I still fell that
| a creature which grows steel or titanium skeletons is still
| quite firmly in the realm of sci-fi.
| [deleted]
| alcover wrote:
| > The human genome [...] is about 1GB
|
| I don't get how this is impressive or relevant on its own.
| Sure, it sounds small in face of the final result : a full-
| grown human. But this 1GB program is born out of and expressed
| into the full OS that is the physical world.
| karmakaze wrote:
| Not really a fair comparison--250 ms is reaction time. A
| deliberate conscious response would be much longer. "Reaction
| times can reflect habits rather than computations"[0].
|
| [0] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5582865/
| danybittel wrote:
| And yet the computer is so much better in many areas than a
| human.
|
| It so weird to compare the two. Why would you even want that?
| We have already plenty of brains on earth. Who sais, that once
| a computer works like a brain.. it doesn't also come with it's
| downsides?
|
| There are lot's of problems in compute.. making it more brain
| like, more linguistic isn't going to solve that.
|
| I believe the whole notion of "a computer as an assistant", is
| doing more damage than good.
| pfarrell wrote:
| My takeaway is that Sussman is looking at his field after a
| lifetime of contribution. He's looking for signposts on where
| we can go next. He's not valuing one over the other, but
| looking at the brain and saying, "Here's something that
| exists that's operating on problems in a way we can't begin
| to approach using current software/hardware techniques". He
| sees some hints available to us in the noise reduction things
| he talks about at the end. In that way, the talk is more him
| challenging the audience to question our approaches and
| implied constraints rather than him trying to present us with
| an answer. It's one of my favorite videos (the way too loud
| HI at the beginning, notwithstanding).
| moffkalast wrote:
| Well an assistant is traditionally the one who eventually
| replaces the master, so that notion is not conceptually
| wrong.
|
| Do people still think there will be any humans left alive in
| a few hundred years? We've gone as far as we could as
| biological constructs, switching to a more adaptable
| architecture is just the next step forward. Our bodies are
| overfitted for living on this one specific planet which is
| greatly limiting the real goal of life: to expand to new
| areas and replicate.
| kweingar wrote:
| > Do people still think there will be any humans left alive
| in a few hundred years?
|
| I will go on the record and predict there will be some
| human beings alive in a few hundred years.
| moffkalast wrote:
| Alright there will always be some that stubbornly cling
| on, but I would bet that most entities that could be
| considered intelligent beings won't be human by that
| point, just out of practicality.
| imtringued wrote:
| Stupid flesh and blood humans with their finite needs!
| Let's build cyborgs with infinite information processing
| capability so their needs can never be saturated!
| TeMPOraL wrote:
| Question is, would they be alive by choice, and would
| they want to continue being alive?
| kweingar wrote:
| Are you and I alive by choice? I don't know what this
| means.
|
| I will go further and boldly predict that some of these
| future people will like living.
| TeMPOraL wrote:
| Ok, I'll spell out what I meant. One of the possible
| scenarios where, centuries after GAI was created, there
| would still be humans (recognizable to us as such) alive,
| is the same as the reason why horses and pigs and cows
| are alive today - because they're bred as inputs to some
| industrial process.
| kweingar wrote:
| Well, in human history there have been many people bred
| as inputs to an industrial process. Today most people of
| conscience look on those situations (past and present) in
| horror. I would hope that humans someday learn to never
| allow that to happen to any of us again.
| FrustratedMonky wrote:
| Dude, already happening, it never stopped, it isn't
| 'horror' it's 'efficiency'. There is no such thing as
| 'people of conscience'. It will always happen, because,
| human nature.
| TeMPOraL wrote:
| > _I would hope that humans someday learn to never allow
| that to happen to any of us again._
|
| I would hope so too, but here we are, racing full steam
| towards AGI.
| lbriner wrote:
| I find it funny that in the age of "User experience" my
| experience of most software is terrible. I don't use all the
| programs out there but apart from games, which often _need_ to
| perform well to sell in the first place I have constant problems
| with Windows, MacOS, MS Office, most web sites, Visual Studio,
| browsers sometimes, virus scanners, network equipment, fast food
| touchscreens, Android, tablets etc. it 's like we have rushed to
| quickly to demonstrate our super-powers at the expense of stuff
| that just works.
|
| I remember when desktop apps were written in desktop frameworks
| in the days when your PC was a Pentium 90 with 64MB of RAM and
| they opened quickly, they responded immediately to commands and
| they felt native. Despite the fact that these apps today do very
| little of _value_ differently than 30 years ago bu the hardware
| is 1000s of times more powerful, they seem to make untold
| "metrics" network connections, they have no snap, they feel like
| massively incorrect abstractions over the hardware, they create
| weird user-experience and the people who sell them often don't
| know how to support them.
|
| I feel we have lost our way as an Industry being seduced by what
| the spoiled rich companies do and applying it to our own little
| kingdoms instead of doing what we need to do well. We have
| created false demons to slay and have ended up with such a mess
| its actually a little embarrassing.
|
| I guess while we lack any recognised/required industry
| qualifications, like Law or Medicine, we are just all doing our
| own things for our own reasons and unreasonably expecting
| everything to keep getting better. I mean, have you used Azure
| Devops? Who decided that it was reasonable to make a basic web
| app into a front-end monster that makes 100s of ajax calls?
| marcosdumay wrote:
| > when your PC was a Pentium 90 with 64MB of RAM and they
| opened quickly, they responded immediately to commands and they
| felt native
|
| Well, no, I don't remember that. I remember them locking all
| the time (up to the point where moving the mouse made them
| slower) and taking ages to load.
|
| I do agree that it's absurd that the applications that do the
| same tasks today still take about as long to load and lock
| about as much, even though computers are 1000s of times more
| powerful. But they were never fast.
| Jtsummers wrote:
| I remember using Word on an early Pentium and being able to
| type faster than it could keep up with, at a whopping 30wpm
| at the time. I'd type a paragraph or two, and wait. To make
| it responsive it had to be the only thing open. And if I
| could type at my current speed on that thing (~100-120wpm,
| keyboard dependent) I doubt even that would be enough.
|
| We just expected and did less (at once) with computers at the
| time. If I close everything on my computer today and only run
| one application, it's pretty damned responsive (unless it's
| MS Teams).
| namelosw wrote:
| GJS and SICP inspired me to love programming - before that, I
| only knew the rigid and cold C++ "Pyramid". Lisp is more dynamic
| and "organic" to me. (And I like his Babylonian wizard costume
| more than a Harry Potter one!)
|
| The past decades were dull for me in terms of programming
| languages, compared to the era of Scheme and Prolog. But the
| computing industry advanced steadily: multi-core programming,
| map-reduce clusters, CUDA, etc. And these led to these crazy
| generative neural networks we see today.
|
| I recall GJS gave several talks on this "We Don't Know How to
| Compute". I can't find the source and I skimmed this video and
| couldn't find it, but I remember he talked about how Gecko (or
| Lizard I'm not sure) could be transplanted with extra arms and
| still function. It strikes me as how much we don't know about
| computing, if we view biology and other things as computation.
|
| Now, with the AI hype, these frontiers seem open again to
| exploration. For example, you can give AI agents goals and tools
| and let them act on their own, it's still clunky but it works and
| it's improving fast every single day. It's just that we haven't
| figure out the patterns, implications and best practices yet.
| Exciting times!
| dgb23 wrote:
| IMO the three most important reasons we use computers are:
|
| - correctness
|
| - performance
|
| - automation
|
| (We basically still suck at all three.)
|
| As I understood it, the talk mainly addresses the third point. We
| write inflexible concretions that require a buttload of work,
| maintenance and resources to achieve mediocre things.
|
| Sussman is pushing programming and software design into
| directions that break away with this limitation, often through
| powerful general principles and techniques. The book "Software
| Design and Flexibility" explores this and provides a variety of
| examples and advice.
___________________________________________________________________
(page generated 2023-05-15 23:01 UTC)