zysszy / TreeGen

A Tree-Based Transformer Architecture for Code Generation. (AAAI'20)
MIT License
90 stars 26 forks source link

我实在忍不住吐槽一句#I couldn't help wanting to talk #26

Closed Smithol closed 2 years ago

zysszy commented 2 years ago

您好,

您有什么问题请直接问?

我实在忍不住吐槽一句话,您写的程序好难读呀.from xxx import *全引用,都分不清谁是谁了,全局变量漫天飞.感觉本来很清晰简单的思路,就是预测选择语法规则嘛,程序还不如文章好看懂.

这份代码本身也是做了很多实验,调了很多很多次的,因而开发确实比较随意,非常抱歉。

您能不能使用pytorch或者tensorflow2.x.您可以试着重新按照您的REDEME建立一个环境,看看能不能跑通,有多难跑,load the model 有多慢.如果您能把您自己的环境封装在docker中,我将不胜感激.

本项目在开发和发表的时候并没有tensorflow 2.x,本人当时也是一个初学者并不会pytorch。tensorflow更新太快,没想到短短几年时间tensorflow 1.x就已经被淘汰了。我们有一个pytorch版本的TreeGen,不过是我师弟开发的,最近应该会开源。我承认load model确实很慢,但是我也没什么很好的办法。至于docker我也可以提供,但是这并不影响速度?我不知道您这边哪跑的难点在哪里?

您能不能公布一下数据预处理部分呢,我们特别想了解模型的泛化性.我们需要测试更多的数据集.

数据预处理部分冗余代码过多,运行十分缓慢且复杂,如果您需要的话,可以给我发邮件,我发给您。

语法规则理论上是无穷无尽的,您的Rule这么少是因为数据集就这么少的规则,所以如果我想把它变成像copilot一样自动写代码,没有数据集限制,这可行吗?

语法规则是无穷无尽的,可是即使是GPT,是copilot难道就会从无尽变成有穷的吗?我觉得copilot中的每一个token都可以转变为这里的一条语法规则,其本质上是一个数量级的。至于变成copilot那种没有数据集限制的方法,我觉得它确实是可行的,不过可能需要稍微设计一下语法规则。

还有这个模型能跨语言吗?如果跨语言的话如何解决语法规则冲突问题.

我觉得跨语言的本质不在于模型,其实可以利用几种特殊的语法规则就可以解决冲突问题(比如利用“root->C”, "root->Java"),或者额外再设计一些更复杂的语法规则。另外,我也做过跨语言的实验,以及我们的模型在Java上也验证过,效果都令人满意。

非常抱歉给您造成了困扰。

Zeyu

Smithol commented 2 years ago

感谢您的回复.这两天看您的程序看上头了.

zysszy commented 2 years ago

感谢您的回复.这两天看您的程序看上头了.

非常不好意思,有任何问题直接邮件或者GitHub问我就好。

Zeyu