Have we reached peak Python and peak Pytorch?

Hear here!

1 Like

Let me play the devils advocate here - what would such Hypercard for ML do?

Hypercard gave people with no programming knowledge the ability to build programs.

If we translate this for ML purposes:

HyperML would give people the ability to build models without machine learning knowledge.

But what is a model good for? What use does a person using a computer have for a model? There are no immediate applications as far as I can tell.

To automate things? This would need to be part of some bigger pipeline, something like zappier but with added ML, and ML would only be a small, tiny afterthought piece.

To give people the ability to detect what’s in images, tell their holiday pictures from sports pictures, etc? Google picasa was doing this IIRC, might be it is part of other programs. Still fairly narrow application with limited value.

Models for some image analysis for laboratory / medical purposes? That might be cool but for any of such applications even tiny improvements in results matter a lot, probably an all purpose tool would not cut it. Again, this would need to be integrated into specialized software most likely anyhow.

For small business owners? No clue what general purpose ML could do for them. Of course, we can pull the AGI card and say it could do whatever, but that is of course a BS thing to say at this point. What algorithm, if packaged in a UI, could have 100 small businesses using it in 6 months? I have no clue.

For developers, there are many APIs that they can leverage. Building an API for something that is not covered yet would be fun and interesting (would love to work on such a thing but have no clue what that might be). But whatever would be created specifically for developers would be a far cry from “hypercard for ML”.

I know I sound like that IBM exec who said that the world would only have a use for 10 computers or something along these lines. At the same time, maybe ML does not have such an ubiquitous use as the combination of data storage and simple data manipulation capabilities have? (which is what hypercard did).

I would love to stand corrected. Would love to see how ML can open completely new areas of application in the hands of individual users, as opposed to just making specialized applications already available at scale incrementally better.

4 Likes

I think this is getting a bit too off-topic for this thread, so I won’t give a detailed reply right now - other than to say, I do think you’re about as accurate in your guess as the “only 10 computers needed” predictions! :slight_smile: And I’ll point out two things:

  • Arthur Samuel, the inventor of machine learning, predicted (in 1962) that one day nearly all programming would be done by giving machines examples of what we want, rather than explicit programming. I think he’s right
  • Bret Victor (who is the most amazing HCI researcher in the world, IMHO, and inspired @clattner’s work on Swift Playgrounds) showed how with some simple learning-based tools you could create his award-winning transit app without code: http://worrydream.com/MagicInk/#designing_a_design_tool (I’ve linked to the relevant section - although the whole article, and all his articles, are worth deep study!)
8 Likes

I think the most important thing that HyperCard did was that it made programming “uncool” because it empowered a whole generation of regular folk by demystifying programming. Fast.ai , for ML, is a step in that general direction IMO.

3 Likes

@mike.moloch @radek @jeremy In my view, what HyperCard did was create a multi-page (multi-card) web site / web app on your local machine and allow you to give it away by SneakerNet or publish it on CDs. At that point nobody except for Ted Nelson maybe knew what a web site would be :smile:. but it turned out that tens of thousands of people really enjoyed building their own local webs, for themselves, their kids, their employees.

And I think with ML we have a similar situation where thousands of people would like to make previews of some type of future smart applications of machine learning, stuff we can feel a need for but which won’t really get here for another 10 years but people can already feel its future presence. And people would like a tool to emulate this new new thing which isn’t here yet.

It’s not about Swift, and strong typing and and … it’s about linking together pieces of the existing world effortlessly. About allowing Joe User to write an app making his computer listen to the conversation in a conference room, and transcribe it, identify the individual participants’ positions, and email everybody a summary. About allowing Mary Teen to make a data funnel that every day rips Kim Kardashian’s latest lipstick color off her Insta feed selfies and pastes it on her own profile picture.

Edmund

4 Likes

Thank you very much Jeremy, this has been an eye opener :slight_smile: I see how we can already build smarter interfaces with the use of ML. On the books example, I have an idea for a gui where using simple ML, book embeddings and some key info for each book (page count, genre, etc) one could create an interactive workflow for discovering books one might want to read (not books one might enjoy in general, but helping a person find a book they are looking for on something).

But hard to say if the idea is any good and it would take me too long to build something to find out. :slight_smile:

The programming by example part though, where the program infers rules based on data it is shown… I have not come across this paradigm before, or at least not fleshed out to this extent. Wow. So much food for thought there.

This is a really powerful excerpt:

However, the best learning algorithms are considerably more complex than this one. Currently, machine learning is considered an experts-only area, where the fruits of research are restricted to specialists. Implementing learning behavior typically involves calling in an expert, not assigning it to the application programmer.

Unfortunately, an algorithm that can only be wielded by a master is almost worthless. There are far more applications than experts; if application programmers cannot make use of learning, learning applications will remain rare and exotic.

This predicament has been overcome many times before. All software today performs an intricate dance of feeding a processor primitive machine-level instructions, repolarizing tiny magnets in hard drives, transmitting bits reliably across wires, and lighting up specific pixels on a screen. The algorithms behind these operations are unimaginably complex, requiring years of study. Yet, even novice programmers have no trouble with these operations. The complexity has been hidden behind abstractions.

Programmers write to “files,” read from “sockets,” draw with “fonts” and “images,” and think in “programming languages.” Behind each abstraction are experts who devote their entire careers to their particular niche, following cutting-edge research and participating in the community. In front of the abstractions are armies of application programmers, blessedly able to take all this for granted. Without these abstractions, our modern software landscape simply wouldn’t exist.

As I see it, the primary challenge for the machine learning community is not the generation and tuning of yet more algorithms, but the design of simple abstractions. Learning magic must be packaged. Like a “file,” the abstraction must be usable by any engineer working in any domain. It must be so simple that it can be taken for granted.

Today, a Perl programmer needs just four letters to invoke decades of research into filesystems and physical media: “open.” A finely-tuned mergesort is available with the word “sort,” and even more finely-tuned hashing algorithms require just a pair of brackets. Until machine learning is as accessible and effortless as typing the word “learn,” it will never become widespread.

I think you are right :slight_smile:

I see your point - very interesting to look at things from this perspective.

7 Likes

Interesting discussion. Bret Victor’s post reminded me of an effort I recently read about by a University of Washington lab to write software that deduces best graphic design principles on the basis of a universal set of constraints; the idea is to create programs that are able to autonomously decide how to display a dataset in a way that best represented the information contained in the data, while adjusting for human weaknesses in interpretation.
Formalizing visualization design paper

is the video online? couldn’t find it … :wink:

I believe they will be - all the main talks and presentations were professionally videoed. Nothing yet on the LLVM youtube channel though.

1 Like

FWIW, I just uploaded the MLIR slides from the recent talk if you’re interested (these are an expanded version of the earlier talk). The video isn’t available yet, but should be linked from the EuroLLVM web page when it is.

4 Likes