Live data from Hacker News

Diffusion on syntax trees for program synthesis

tree-diffusion.github.io

51–60 of 95 posts

Re: Diffusion on syntax trees for program synthesis

#51
post #50

Surprised to see Stuart Russells name on this as I thought he was fully consumed by the doomsday cult. Although he's last author so he's probably only on it because he's the head of the lab

What's with the last author/first author thing in science papers? I've read several times that the author listed last is usually the most significant contributor, and the first author the least significant, due to some kind of tradition around modesty plus favourably introducing new names. (Which then of course doesn't work, if everyone knows it's happening...) Here, you've interpreted it as the reverse, and by that…

>the author listed last is usually the most significant contributor

Where did you read that?

That's definitely not the case in machine learning.

Re: Diffusion on syntax trees for program synthesis

#52
post #8
post #4

This is very cool! My first thought is: can this be applied to converting raster graphics to vector graphics (eg PNG to SVG)? Seems like a very similar problem, though probably much more computationally expensive.

> We apply our approach to inverse graphics tasks, where our model learns to convert images into programs that produce those images. I would argue that at least on a philosophical level, this is, definitionally, the process of converting raster graphics to vector graphics, as long as you by the premise that the difference between the two is simply that vector gfx is a programmatic/imperative representation of image g…

> vector gfx is a programmatic/imperative representation of image generation, while raster is a data structure/declarative representation of images.

This seems a bit off to me.

Aside from oddities such as Postscript, most vector formats are canonical examples of declarative code. The distinction is more about what is being represented rather than how it is represented.

Re: Diffusion on syntax trees for program synthesis

#53

This is fascinating. I've been trying to envisage how the new language models will have deeper or lower-level role in software production than simple code generation.

I think browsers could be the next iteration. Website backend will have premade flows. e.g. a transfer money from my account to another account, etc. And through fluidic UIs, the website will collect info need, necessary approvals before flow submission. AI-based browser DOM manipulation.

Re: Diffusion on syntax trees for program synthesis

#54
post #50

Surprised to see Stuart Russells name on this as I thought he was fully consumed by the doomsday cult. Although he's last author so he's probably only on it because he's the head of the lab

What's with the last author/first author thing in science papers? I've read several times that the author listed last is usually the most significant contributor, and the first author the least significant, due to some kind of tradition around modesty plus favourably introducing new names. (Which then of course doesn't work, if everyone knows it's happening...) Here, you've interpreted it as the reverse, and by that…

Conventions vary by field, but within a specific field they're usually pretty consistent. In natural sciences (except large physics papers) the convention is that the first author is the one doing most of the practical work. The last author is the PI (principal investigator) of the group who had a hand in designing the experiments and oversaw the research. Now, the latter can mean anything from barely doing any work on the paper to being deeply involved in the research.

If you're reading papers most of the time the last author is more meaningful to you because they're the senior researcher, you know their research interests and what kind of papers they produce. The first authors are PhD students and PostDocs, they change much more often.

Re: Diffusion on syntax trees for program synthesis

#55
The application to graphics is interesting. It seems to me that current image generation models struggle with stylized pictures ("ligne claire" in comics, geometric shapes and so on). After all this kinds of pictures should be easy to encode in vectoriel formats (like SVG), which are basically programming languages.

Re: Diffusion on syntax trees for program synthesis

#56
post #30

Surprised to see Stuart Russells name on this as I thought he was fully consumed by the doomsday cult. Although he's last author so he's probably only on it because he's the head of the lab

I haven’t heard anyone make sane case against the doomsday argument. Only attacks.

You can't be scared while you laugh at someone. So laughing is a good thing to do to stave of fear.

Re: Diffusion on syntax trees for program synthesis

#58
I had idea about doing something similar based on DifussER paper. One would need to model code edits as algebra similar to add char, replace char or delete char but something like define func, remove func, define var etc. I am undereducated to do it myself but have a feeling it could work.

Re: Diffusion on syntax trees for program synthesis

#59
I wonder how this would apply to compiler/interpreter optimizations.

Is it possible that it can "disect" some parts of the execution, perhaps at assembly level, and come up with optimizations specific to the compiled code without changing the output (I mean expected program output, not emitted binary), that modern compilers have not deterministically come up with?

Re: Diffusion on syntax trees for program synthesis

#60

I had idea about doing something similar based on DifussER paper. One would need to model code edits as algebra similar to add char, replace char or delete char but something like define func, remove func, define var etc. I am undereducated to do it myself but have a feeling it could work.

I will have to dig into this paper as it looks like exactly this. I wonder if they use closures to limit valid operations space.

The only thing I didn’t understand to make it happen was how to connect it well to description of desired program or edit.

BTW my idea was to train it by destructing programs available on github (so adding noise via some random valid ops and then removing it to retrieve original program). Probably best done in N-1 commit is treated as noise and moving back to commit 0

Post reply on HN