UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback

📄 arXiv: 2406.07739v1 📥 PDF

作者: Jason Wu, Eldon Schoop, Alan Leung, Titus Barik, Jeffrey P. Bigham, Jeffrey Nichols

分类: cs.CL, cs.HC, cs.SE

发布日期: 2024-06-11

备注: Accepted to NAACL 2024


💡 一句话要点

UICoder:通过自动反馈微调大型语言模型以生成用户界面代码

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 用户界面生成 大型语言模型 自动反馈 代码生成 模型微调

📋 核心要点

  1. 现有LLM在生成UI代码时,难以保证代码的可编译性和视觉设计的相关性,需要改进。
  2. 该论文提出利用编译器和多模态模型进行自动反馈,指导LLM生成高质量UI代码。
  3. 实验结果表明,该方法优于其他开源基线模型,性能接近大型专有模型。

📝 摘要(中文)

大型语言模型(LLMs)在生成可编译且产生视觉相关设计的UI代码方面表现不稳定。现有的改进方法依赖于昂贵的人工反馈或专有模型的提炼。本文探索了使用自动反馈(编译器和多模态模型)来指导LLMs生成高质量UI代码。我们的方法从现有的LLM开始,通过使用原始模型自生成大型合成数据集,并应用自动化工具进行积极过滤、评分和去重,从而迭代生成改进的模型,最终得到一个精炼的更高质量的数据集。通过在这个精炼的数据集上进行微调,原始LLM得到改进。我们将该方法应用于多个开源LLM,并将结果模型的性能与基线模型进行比较,包括自动指标和人类偏好。评估表明,结果模型优于所有其他可下载的基线模型,并接近更大的专有模型的性能。

🔬 方法详解

问题定义:论文旨在解决大型语言模型在生成用户界面(UI)代码时,难以保证代码质量(可编译性)和设计相关性的问题。现有方法依赖于昂贵的人工反馈或专有模型的知识蒸馏,成本高昂且不易推广。

核心思路:核心思路是利用自动反馈机制,代替人工反馈,指导LLM生成更高质量的UI代码。具体而言,使用编译器和多模态模型作为自动反馈工具,对LLM生成的代码进行评估和过滤,从而构建高质量的训练数据集。

技术框架:整体框架包含以下几个主要阶段:1) 使用原始LLM自生成大规模合成UI代码数据集;2) 使用编译器和多模态模型对生成的数据集进行自动过滤、评分和去重,得到精炼的高质量数据集;3) 使用精炼后的数据集对原始LLM进行微调,得到改进后的模型。这个过程可以迭代进行,不断提升模型的性能。

关键创新:最重要的创新点在于利用自动反馈机制,避免了对人工标注数据的依赖,降低了训练成本,并提高了模型的泛化能力。与现有方法相比,该方法更加高效、可扩展,并且可以应用于各种开源LLM。

关键设计:论文中,编译器用于检查生成代码的可编译性,多模态模型用于评估生成UI代码的视觉相关性。具体的多模态模型选择和训练细节未知。数据集的过滤、评分和去重策略也未知,但这些策略对最终模型的性能至关重要。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,通过自动反馈微调后的模型,在UI代码生成任务上,性能优于所有其他可下载的开源基线模型,并且接近大型专有模型的性能。具体的性能提升幅度未知,但整体效果显著。

🎯 应用场景

该研究成果可应用于自动化UI代码生成、低代码/无代码开发平台等领域,降低UI开发的门槛,提高开发效率。未来,该方法可以扩展到其他类型的代码生成任务,例如游戏开发、数据可视化等,具有广阔的应用前景。

📄 摘要(原文)

Large language models (LLMs) struggle to consistently generate UI code that compiles and produces visually relevant designs. Existing approaches to improve generation rely on expensive human feedback or distilling a proprietary model. In this paper, we explore the use of automated feedback (compilers and multi-modal models) to guide LLMs to generate high-quality UI code. Our method starts with an existing LLM and iteratively produces improved models by self-generating a large synthetic dataset using an original model, applying automated tools to aggressively filter, score, and de-duplicate the data into a refined higher quality dataset. The original LLM is improved by finetuning on this refined dataset. We applied our approach to several open-source LLMs and compared the resulting performance to baseline models with both automated metrics and human preferences. Our evaluation shows the resulting models outperform all other downloadable baselines and approach the performance of larger proprietary models.