生成式 AI 正在改变汽车行业的各个方面,包括软件开发、测试、用户体验、个性化和安全性。随着汽车行业从机械驱动转向软件驱动,生成式 AI 正在释放出无限的可能性。
Tata 咨询服务(TCS) 专注于在汽车行业中利用生成式人工智能的两大领域:
- 构建功能以增强客户体验
- 加速软件工程生命周期
构建功能以增强客户体验
生成式 AI 是实现全自动驾驶汽车(AV)的关键,它可以增强基于 AI 的算法,从而做出更好的决策。它可以生成和合成各种可能性的数据集,从有限的实时数据到训练和测试数据。这种技术对于实现车辆个性化和用户体验至关重要。它包括一系列功能,例如高级搜索功能、语言翻译、车载个人助理以及直观的视频和音频娱乐推荐。
加速软件工程生命周期
软件定义车辆(Software-Defined Vehicle,SDV)的目标是提供更高的灵活性和丰富的用户体验,使客户能够根据自己的便利性升级和更新车辆功能。这增加了车辆的复杂性,导致产生数百万行代码。对于支持功能即服务模型的需求很高,需要在几周内开发和部署汽车功能。
当前的流程和工具使这一时间表几乎不可能实现。在这方面,生成式 AI 有可能成为工程师的伴侣,加速软件工程生命周期,包括需求分析、设计、开发和验证。
在这些重点领域,TCS 利用 TCS 专利算法和 NVIDIA 技术构建了 Automotive Gen-AI Suite。图 1 显示了非板载环境中基于文本的用例的架构。 大语言模型 (LLMs) 使用 NVIDIA NeMo 框架进行训练,并使用 NVIDIA NIM 微服务( NVIDIA AI Enterprise 软件平台的一部分)使用汽车领域特定数据集进行微调。
本文将探讨一个用例,即单元级测试用例生成,包括用于衡量成功率的方法和关键性能指标(KPI)。
根据非结构化需求生成测试用例
根据非结构化系统需求创建测试用例是软件工程生命周期中最耗时的步骤之一。
目前,为各种汽车领域创建测试用例库主要是手动完成的,这既耗时又昂贵。这些测试用例的训练和开发可能需要数周时间。
为了解决这一行业范围内的问题,TCS 正在使用 NVIDIA 技术根据非结构化文本需求自动生成测试用例。
LLMs 可以在验证过程中尽可能减少干预,从而加快流程并降低成本。它可以生成场景和相应的测试用例,然后由专家验证其准确性和覆盖率。为了生成根据特定要求定制的测试用例,TCS 使用迭代过程仔细整理数据集,其中 TCS 分析预训练模型的输出,并选择数据(例如准确性较低或覆盖率较低的案例)进行进一步细化。TCS 使用 NVIDIA NeMo 框架,使用 Parameter Efficient Fine-Tuning(PEFT)技术,如 Low-Rank Adaptation(LoRA),基于汽车特定数据微调模型。提示选择也是一个关键步骤,其中包含用于优化 KPI 的提示调整。
TCS 在 NVIDIA DGX H100 系统上使用 NVIDIA NIM 微服务进行部署。将预处理的输入提示输入到基于 NeMo 的模型中,该模型已使用汽车知识进行训练。用于微调的基本模型是 Llama 3 8B Instruct 模型。在后处理完成后,输出将包含帮助客户增强能力的测试用例,并将其用作配套工具。
图 3 展示了从输入要求到输出测试用例的整体方法。输入使用 few-shot 学习和 prompt chaining 等技术进行预处理。在预处理步骤中,我们采用 retrieval-augmented generation (RAG) 技术,使用客户提供的参考文档来实现每个用例的上下文感知。
训练管线包括特定于领域和任务的精选数据块,这些数据块在清理后被输入到微调块中。此块利用具有 LoRA 的 PEFT,rank 32,以及具有融合 Adam 优化器的 NVIDIA NeMo 框架(NeMo:24.05 容器)。该模型经过 1 到 100 步长的训练,以防止过拟合。TCS 使用 NVIDIA NIM(Meta/Llama3-8b-instruct:1.0.0)容器部署微调模型。然后,对生成的输出进行后处理并与 LangChain 集成,以生成所需的输出测试用例。
利用 NVIDIA AI Enterprise 软件平台进行优化
TCS 利用 NVIDIA NeMo 构建了这些最先进的模型。我们使用 LoRA 技术,使用特定于汽车的精选数据集对基础 LLM 进行了微调。在 NeMo 框架训练容器中执行微调,以提高 GPU 利用率。
通过使用基于 NVIDIA NIM 的优化,TCS 在 NVIDIA DGX 系统 上实现了低延迟(接近实时)和高吞吐量。使用 NIM 微服务(包括 NVIDIA TensorRT-LLM )进行后训练量化,有助于降低 GPU 利用率和延迟。NIM 还提供推理 API,可直接从应用服务调用。
用于识别最佳模型的基准测试
我们对不同 LLM 上 TCS 测试用例生成器流程的 GPU 利用率、训练参数和输出精度进行了比较研究,以选择最合适的 LLM。
使用 NeMo 的 TCS 测试用例生成流程从输入开始,输入可以是客户的规格文档,也可以是基于这些规格的提示。
- 这些输入被输入到使用自动特定数据微调的 LLM NIM 微服务中。
- 我们会验证生成的输出是否存在错误和重复的测试用例。如有需要,系统会使用新提示来纠正或生成更多测试用例,并重复此过程。
- 使用准确性和覆盖率进行比较。
- 在延迟方面,与其他精度相似的基于开源的直接推理场景相比,基于 NIM 的推理平均要快 2.5 到 3 倍 。
图 4 显示了预训练模型的比较,这些模型可帮助用户针对给定用例确定最佳模型,并根据需求选择最合适的基础模型。该比较不仅包括准确性和测试用例数量,还包括决策覆盖率、条件覆盖率和 Modified Condition Decision Coverage (MCDC)。
仅考虑测试用例场景的要求。
决策范围
决策覆盖率通过计算测试期间经过的模拟路径的百分比来评估模型中的决策点,例如 switch blocks 或 flow states。当通过这些决策点的所有可能路径至少执行一次时,即可实现全覆盖。
条件覆盖
条件覆盖检查输入和状态流过渡的逻辑组合。在模拟期间,当模型中的每个输入和过渡条件至少测试一次真和假时,即可获得全覆盖。
MCDC
MCDC 评估模型中逻辑输入和过渡条件的独立性。当一个输入或条件的变化独立于其他输入或条件,直接导致模型输出的变化或触发过渡时,即可实现全覆盖。
表 1 提供了选择在本例中使用 NVIDIA NIM 微调的 Llama 3 8B Instruct 模型的原因,该模型在准确性、决策和 MCDC 标准方面表现出色。请注意,在线模型推理和微调不在这项工作的范围内,因为客户数据很敏感,并且 TCS 执行的所有训练和推理仅在离线模式下使用 TCS 本地的 NVIDIA DGX H100 系统。
比较以 Llama 3 8B Instruct (预训练与微调) 为基准 | ||||
模型 | 准确率 | 决策 | 条件 | MCDC |
Llama 3 8B Instruct 预训练的 NVIDIA NIM | 87% | 84.5% | 88.56% | 71.22% |
Llama 3 8B Instruct NVIDIA NIM 微调 | 91% | 85.1% | 87.89% | 73.11% |
仅考虑测试用例场景的要求。
使用大型语言模型(LLMs)可以减少训练和开发汽车软件的成本和时间。在尽可能减少人工干预的情况下,LLMs 帮助理解关键要求并编写自动化测试用例。它们还可以生成场景和测试用例,然后专家可以验证这些场景和测试用例的准确性和覆盖率。
结束语
凭借生成式 AI 和汽车领域的专业知识,TCS 使用 NVIDIA DGX H100 系统和软件(包括 NVIDIA NIM 和 NVIDIA NeMo )开发了高效的汽车测试用例生成流程。该模型通过 NVIDIA NeMo 框架进行微调,再加上 NIM 可加快推理速度,因此其准确性和覆盖率高于现有低延迟模型。TCS 在其整个测试用例生成流程中观察到了约 2 倍的加速。
TCS 还使用 NeMo 和 NIM 来改进对话式语言模型(LLMs),用于上下文理解的可视化 LLM,以及基于图像的生成式对抗网络模型。TCS 还将使用 NVIDIA Blueprints 来探索多模态功能,并进一步优化软件工程生命周期。