Large Language Models to Generate System-Level Test Programs Targeting Non-functional Properties

📄 arXiv: 2403.10086v2 📥 PDF

作者: Denis Schwachhofer, Peter Domanski, Steffen Becker, Stefan Wagner, Matthias Sauer, Dirk Pflüger, Ilia Polian

分类: cs.SE, cs.AI, cs.ET, cs.PL

发布日期: 2024-03-15 (更新: 2024-03-19)

备注: Testmethoden und Zuverlässigkeit von Schaltungen und Systemen, TuZ 2024


💡 一句话要点

提出大语言模型生成系统级测试程序以优化非功能属性

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

关键词: 大语言模型 系统级测试 非功能属性 测试程序生成 自动化测试 集成电路

📋 核心要点

  1. 现有的测试程序生成方法主要依赖人工,难以有效控制被测设备的非功能属性,且过程繁琐。
  2. 本文提出利用大语言模型生成测试程序,通过设计特定提示生成C代码片段,以优化非功能属性。
  3. 实验结果表明,经过提示和超参数优化后,生成的测试程序在每周期指令数上有显著提升,验证了方法的有效性。

📝 摘要(中文)

系统级测试(SLT)在集成电路测试流程中已有十多年历史,且其重要性不断上升。然而,目前缺乏针对被测设备(DUT)非功能属性的测试程序生成系统化方法。测试工程师通常手动从现成软件中组合测试套件,这一过程既繁琐又难以保证对非功能属性的充分控制。本文提出利用大语言模型(LLMs)生成测试程序,首次探讨预训练LLMs在生成测试程序方面的表现,以优化DUT的非功能属性。我们设计了一个提示以生成C代码片段,旨在最大化超标量、乱序架构在仿真中的每周期指令数。此外,我们还进行了提示和超参数优化,以在不进行进一步训练的情况下实现最佳结果。

🔬 方法详解

问题定义:本文旨在解决现有系统级测试程序生成方法的不足,特别是在非功能属性控制方面的挑战。现有方法依赖人工组合测试套件,效率低且难以保证质量。

核心思路:论文提出利用大语言模型(LLMs)生成测试程序,通过设计特定的提示来生成优化的C代码片段,以提高被测设备的非功能属性表现。这样的设计旨在减少人工干预,提高生成效率和质量。

技术框架:整体流程包括使用预训练的大语言模型生成C代码片段,随后进行提示和超参数优化。主要模块包括提示设计、代码生成和优化阶段。

关键创新:最重要的创新在于将大语言模型应用于测试程序生成领域,尤其是针对非功能属性的优化,这与传统的手动组合方法有本质区别。

关键设计:在提示设计中,特别关注生成代码的性能指标,如每周期指令数。此外,通过超参数优化来调整生成过程中的关键参数,以实现最佳的测试程序性能。

🖼️ 关键图片

fig_0

📊 实验亮点

实验结果显示,经过优化的测试程序在每周期指令数方面相比基线有显著提升,具体性能数据未详细列出,但表明了大语言模型在测试程序生成中的有效性和潜力。

🎯 应用场景

该研究的潜在应用领域包括集成电路设计和验证、嵌入式系统测试等。通过自动化生成测试程序,可以显著提高测试效率,降低人工成本,并确保测试覆盖更全面,提升产品质量。未来,该方法可能扩展到其他领域的自动化测试生成,具有广泛的实际价值和影响力。

📄 摘要(原文)

System-Level Test (SLT) has been a part of the test flow for integrated circuits for over a decade and still gains importance. However, no systematic approaches exist for test program generation, especially targeting non-functional properties of the Device under Test (DUT). Currently, test engineers manually compose test suites from off-the-shelf software, approximating the end-user environment of the DUT. This is a challenging and tedious task that does not guarantee sufficient control over non-functional properties. This paper proposes Large Language Models (LLMs) to generate test programs. We take a first glance at how pre-trained LLMs perform in test program generation to optimize non-functional properties of the DUT. Therefore, we write a prompt to generate C code snippets that maximize the instructions per cycle of a super-scalar, out-of-order architecture in simulation. Additionally, we apply prompt and hyperparameter optimization to achieve the best possible results without further training.