中文

一种面向 SKILL 代码自动补全的机器学习方法

软件工程 2024-02-27 v2 计算与语言 编程语言

摘要

随着摩尔定律持续增加电子系统的复杂性,电子设计自动化(EDA)必须进步以满足全球需求。SKILL 是 EDA 技术的一个重要例子,它是一种用于定制和扩展 EDA 软件的脚本语言。最近,使用 Transformer 架构的代码生成模型在学术环境中取得了令人瞩目的成果,甚至已被用于商业开发者工具中以提高开发者生产力。据我们所知,本研究是首次将 Transformer 应用于 SKILL 代码自动补全,旨在提高硬件设计工程师的生产力。在本研究中,提出并实验验证了一种新颖的、数据高效的 SKILL 代码生成方法。更具体地说,我们提出了一种新颖的方法,用于 (i) 创建包含无标签和有标签数据的高质量 SKILL 数据集;(ii) 采用一种训练策略,将在通用编程语言代码上预训练的 T5 模型在我们的自定义 SKILL 数据集上使用无监督和监督学习进行微调;以及 (iii) 评估合成的 SKILL 代码。我们表明,使用所提出方法训练的模型在人工判断分数和 BLEU 分数方面优于基线。我们面临的一个主要挑战是,可用的 SKILL 代码数据量极少,不足以训练 Transformer 模型来生成 SKILL 代码。尽管我们验证了改进效果,但我们可用的极小数据集仍不足以训练出能够可靠地自动补全 SKILL 代码的模型。我们讨论了这一点及其他局限性,以及可能解决这些局限性的未来工作。

关键词

引用

@article{arxiv.2312.01921,
  title  = {A Machine Learning Approach Towards SKILL Code Autocompletion},
  author = {Enrique Dehaerne and Bappaditya Dey and Wannes Meert},
  journal= {arXiv preprint arXiv:2312.01921},
  year   = {2024}
}

备注

Accepted for SPIE Advanced Lithography + Patterning, 2024