Live data from Hacker News

How AI based programming could work

bjenik.com

31–40 of 61 posts

Re: How AI based programming could work

#31
post #29
post #9

I suspect we'll see supervised seq2seq generated code first. Like: --- Programmer inputs on left: compute std dev of x please AI on right proposes edit to code: + import numpy as np ... + stddev_x = np.std(x) --- Not super complicated to start with, but you can see where it will go from there.

How in the world do you train that? Where's the corpus of english code mappings come from?

The corpus can be acquired from companies that host coding competitions. In this paper http://arxiv.org/pdf/1510.07211v1.pdf (I already mentioned it many times, but it is very relevant) researchers took the data from a similar source

>To accomplish this goal, we leverage a dataset from a pedagogical programming online judge (OJ) system,2 intended for the undergraduate course, Introduction to Computing. The OJ system comprises different programming problems. Students submit their source code to a specific problem, and the OJ system judges its validity automatically (via running).

And trained seq2seq model on it on character level and it almost works, barring a few typos. IMHO this is an underappreciated breakthrough. With more data and a better model generating competition-grade programs seems possible.

Re: How AI based programming could work

#32
post #5

Earlier quoted context omitted.

Why Prolog? I have never noticed that Prolog was any better than other computer languages at reading one's mind!

Prolog, or at least logic programming languages, were thought to be the wave of the future of programming in the 80s. They, of course, turned out to be a massive bust.

You are factually correct

But, a key problem was the runtime (in)efficiency of the prolog implementation engine. Maybe today with x1M more powerful computers it is worth trying again ?

Neural networks were abandoned in the 80s and made a massive comeback with a. more compute power b. convolutional networks

In fact, maybe a ML-optimized VM will make higher-level languages useful again ;)

Re: How AI based programming could work

#33

Interesting idea, but to be honest I think it will never take off in a large scale. If you want to write a vague and generic piece of code that can figure out by itself what it is that its outputs ought to be with regards to its inputs, you are, with effect, creating artificial intelligence. This, in turn, requires teaching. What if suddenly you have new pages on your website? Your AI program thingy wouldn't be able…

3 years ago many systems that exist today would be regarded as "scifi" or "maybe 10 years into the future". One of the most striking examples is Visual Question Answering with dynamic memory networks [1]. The model is given raw pixels and encoded question in natural language, it should output a natural language answer. See how it works on data it hasn't seen: http://i.imgur.com/074G9pg.jpg

Do not underestimate what good ML model can learn given enough data. And in case of online shopping there usually is more than enough data, and big companies like Amazon have been using ML (context bandits) for quite some time.

1. https://arxiv.org/abs/1603.01417

Re: How AI based programming could work

#34
post #27

Interesting idea, but to be honest I think it will never take off in a large scale. If you want to write a vague and generic piece of code that can figure out by itself what it is that its outputs ought to be with regards to its inputs, you are, with effect, creating artificial intelligence. This, in turn, requires teaching. What if suddenly you have new pages on your website? Your AI program thingy wouldn't be able…

I disagree with your conclusion. In my app, 7 Second Meditation, I am constantly authoring new content. It uses improve.ai to show that new content to some small number of users and learn how they react to that content. The learning happens from the users themselves. In my particular case, within about 300-500 views the system can tell if a new piece of content is total crap and will basically stop showing it. If the…

Your example isn't even real statistical/machine learning, it's basic A/B testing. This has nothing in common with orchestrating code.

Re: How AI based programming could work

#36
post #18

Earlier quoted context omitted.

The forth black box paper seems to be quite close actually. The big difference is that I would like to go for higher level tasks. The low level variant - having code missing a few lines/functions and filling those is indeed quite well researched. More interesting would be the opposite: Having blocks of code (called components in my text) and letting the net find a good way to use them. Normally the way a programmer w…

> The thing I would like to get working is telling the net "here is a ton of different buttons, grids, lists and a lot of other UI stuff, and there are all our products - I want to maximize revenue - do whatever you like to get there". As you referenced in your footnote, this goal is a little like the goal of putting a man on the moon, if the year is 1900. One could the make the case that something resembling an AGI…

IMHO talking about AGI here sounds like "all or nothing" type of thinking. Almost all problems can be formulated as [perhaps very hard] machine learning problems of 3 basic types https://en.wikipedia.org/wiki/Machine_learning#Types_of_prob... .

Every ML problem has a lot of algorithms that can be applied to it to solve it. Previously unsolvable problem (e.g. learning playing atari game from pixels) can become solvable if a better ML algorithm is devised, more compute power is applied, or the problem is simplified (maybe with data augmentation or feature engineering, or constraining the domain).

I think the problem you are stating - finding the best configuration of website to extract more ad revenue - can be simplified until it is solvable by currently available algorithms and hardware. Big companies are already doing similar things - Google uses reinforcement learning to recommend new items on its services, Facebook is known to use machine learning to somehow make more profit from users.

Given expert knowledge of the problem and good algorithms, it can be solved in some form, that's my point here.

Re: How AI based programming could work

#37

The author proposes a lot of vague ideas in this article (for example "I believe one of the biggest problems is the use of Error Propagation and Gradient Descent") without references or any solid proofs why they are necessary to solve the proposed program (Automate programming using ML?). In fact there is already a lot of solid work just on this subject: * Learning algorithms from examples http://arxiv.org/abs/1511.0…

Great mini survey!

Can you mention any key papers about NNs that manipulate existing code? e.g. parse it, find design pattern, optimize, etc I think this is just as interesting and already feasible.

Re: How AI based programming could work

#38
Why do we need to jump to ML-based programming again? I'm confident that as we build simpler interfaces and workflows for replacing the most modular components in our programs with AI, we'll begin to see which components are the next lowest-hanging fruit and what concrete ML problems need to be solved to model them.

We imagine a future where AI becomes a dominant paradigm for "writing" software -- I think that will be the case, but not in the way everyone suspects. I think 80% of the new value of software in the future will be derived from AI components, but that 80% of the production costs will still go into the structural glue code that supports the value-powerhouse models. Thus, most of the software written in the future will look similar to most of the code written today.

I also suspect that as the complexity of AI models increases, the structural code required to support these models will keep pace in complexity. For this reason, I see a future where the unit cost of high-quality software does not see any big drop, but where the value of this software continues to increase exponentially. A corollary to this is that valuable software will be no easier to program in the future than it is today.

Re: How AI based programming could work

#39

The whole point of programming is to get exact results by solving all edge cases. Machine learning/Neural nets are only good at guessing results, and cannot solve all edge cases without specific direction.

That's the traditional focus of programming, but I wouldn't say that makes it the whole point. I very much expect programming to change over time

Re: How AI based programming could work

#40
post #37

The author proposes a lot of vague ideas in this article (for example "I believe one of the biggest problems is the use of Error Propagation and Gradient Descent") without references or any solid proofs why they are necessary to solve the proposed program (Automate programming using ML?). In fact there is already a lot of solid work just on this subject: * Learning algorithms from examples http://arxiv.org/abs/1511.0…

Great mini survey! Can you mention any key papers about NNs that manipulate existing code? e.g. parse it, find design pattern, optimize, etc I think this is just as interesting and already feasible.

Thank you! I found a great list of deep learning paper summaries that is mostly about learning algorithms from data and other cutting edge models: http://colinraffel.com/wiki/tag:neural_networks?do=showtag&t... all kudos to the owner/author of this list !

>NNs that manipulate existing code? e.g. parse it, find design pattern, optimize

Also: you probably shouldn't need special architectures for such problems, these can be solved by seq2seq, NTM, RL-NTM and such, given a good dataset. Such tasks are still beyond current state of art though, it seems.

Post reply on HN