ScenicNL: Generating Probabilistic Scenario Programs from Natural Language
作者: Karim Elmaaroufi, Devan Shanker, Ana Cismaru, Marcell Vazquez-Chanlatte, Alberto Sangiovanni-Vincentelli, Matei Zaharia, Sanjit A. Seshia
分类: cs.SE, cs.AI, cs.LG, cs.PL
发布日期: 2024-05-03 (更新: 2024-10-02)
备注: 22 pages, 3 figures. Published at COLM 2024. https://ke7.github.io/ScenicNL
💡 一句话要点
ScenicNL:利用自然语言生成概率场景程序,助力网络物理系统安全。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 自然语言处理 概率编程 场景生成 网络物理系统 自动驾驶 大语言模型 安全验证
📋 核心要点
- 网络物理系统在罕见事件中的致命错误阻碍了其大规模部署,现有方法难以灵活地进行“如果...会怎样”的场景分析。
- ScenarioNL利用自然语言生成概率场景程序,通过概率编程语言Scenic清晰地表示CPS行为的不确定性和变化。
- 实验表明,常用的大语言模型提示技术难以直接应用于概率场景程序的生成,该系统能够生成语义和语法上正确的代码。
📝 摘要(中文)
针对机器人和自动驾驶汽车等网络物理系统(CPS)在罕见事件中发生致命错误的问题,阻碍了其大规模部署。为了复现车辆碰撞等罕见事件,许多公司创建了日志系统,并聘请碰撞重建专家在模拟中精心重现这些有价值的事件。然而,这些方法难以提出和回答“如果...会怎样”的问题。我们提出了ScenarioNL,一个利用自然语言创建场景程序的AI系统。具体来说,我们从警方事故报告中生成这些程序。报告通常包含关于事件确切细节的不确定性,我们通过概率编程语言(PPL)Scenic来表示。通过使用Scenic,我们可以清晰简洁地表示CPS行为、属性和交互的不确定性和变化。我们展示了最佳大语言模型(LLM)的常用提示技术无法推理概率场景程序,也无法为Scenic等低资源语言生成代码。我们的系统由多个LLM链接在一起,结合多种提示策略、编译器和模拟器。我们使用加州过去五年公开的自动驾驶汽车碰撞报告评估了我们的系统,并分享了关于如何生成在语义上有意义且在语法上正确的代码的见解。
🔬 方法详解
问题定义:论文旨在解决网络物理系统(CPS)在罕见事件中发生致命错误,导致难以大规模部署的问题。现有方法,如依赖日志系统和碰撞重建专家,难以灵活地进行“如果...会怎样”的场景分析,无法有效应对CPS行为中的不确定性。
核心思路:论文的核心思路是利用自然语言处理技术,特别是大型语言模型(LLM),将警方事故报告等自然语言描述转化为概率场景程序。通过概率编程语言(PPL)Scenic,能够清晰简洁地表示CPS行为、属性和交互的不确定性和变化,从而支持更灵活的场景分析和系统验证。
技术框架:ScenarioNL系统包含以下主要模块:1) 自然语言输入:接收警方事故报告等自然语言描述;2) LLM链:利用多个LLM,结合不同的提示策略,将自然语言转化为Scenic代码;3) 编译器:将生成的Scenic代码编译成可执行程序;4) 模拟器:运行编译后的程序,模拟CPS在不同场景下的行为。整个流程旨在自动化生成概率场景,并支持对CPS进行更全面的测试和验证。
关键创新:该论文的关键创新在于将自然语言处理技术应用于概率场景程序的生成,并提出了一种基于LLM链的解决方案。与传统的手动编写场景程序相比,该方法能够更高效、更灵活地生成大量具有不确定性的场景,从而更全面地覆盖CPS可能遇到的各种情况。此外,论文还强调了现有LLM在处理低资源概率编程语言方面的局限性,并针对性地设计了系统架构。
关键设计:论文的关键设计包括:1) LLM选择与提示策略:选择合适的LLM,并设计有效的提示策略,以指导LLM生成符合Scenic语法和语义的代码;2) 概率编程语言Scenic:利用Scenic的特性,清晰地表示CPS行为中的不确定性;3) 编译器与模拟器:确保生成的Scenic代码能够正确编译和执行,并提供可靠的模拟结果。具体的参数设置、损失函数、网络结构等技术细节在论文中可能未详细说明,属于未知信息。
🖼️ 关键图片
📊 实验亮点
论文通过在加州公开的自动驾驶汽车碰撞报告上进行评估,验证了ScenarioNL系统的有效性。实验结果表明,该系统能够生成语义上有意义且语法上正确的Scenic代码,为自动驾驶汽车的场景测试提供了新的解决方案。具体的性能数据和提升幅度需要在论文中进一步查找,属于未知信息。
🎯 应用场景
该研究成果可应用于自动驾驶汽车、机器人等网络物理系统的安全测试与验证。通过自动生成各种概率场景,可以更全面地评估系统在罕见事件中的表现,从而提高系统的安全性和可靠性。此外,该方法还可以应用于事故分析、风险评估等领域,为相关决策提供支持。
📄 摘要(原文)
For cyber-physical systems (CPS), including robotics and autonomous vehicles, mass deployment has been hindered by fatal errors that occur when operating in rare events. To replicate rare events such as vehicle crashes, many companies have created logging systems and employed crash reconstruction experts to meticulously recreate these valuable events in simulation. However, in these methods, "what if" questions are not easily formulated and answered. We present ScenarioNL, an AI System for creating scenario programs from natural language. Specifically, we generate these programs from police crash reports. Reports normally contain uncertainty about the exact details of the incidents which we represent through a Probabilistic Programming Language (PPL), Scenic. By using Scenic, we can clearly and concisely represent uncertainty and variation over CPS behaviors, properties, and interactions. We demonstrate how commonplace prompting techniques with the best Large Language Models (LLM) are incapable of reasoning about probabilistic scenario programs and generating code for low-resource languages such as Scenic. Our system is comprised of several LLMs chained together with several kinds of prompting strategies, a compiler, and a simulator. We evaluate our system on publicly available autonomous vehicle crash reports in California from the last five years and share insights into how we generate code that is both semantically meaningful and syntactically correct.