英伟达发布DriveOS LLM SDK:车载大语言模型革新来了!

AI划重点 · 全文约2318字,阅读需7分钟

1.英伟达推出DriveOS LLM SDK,旨在推动自动驾驶行业迈向新阶段,提供语言智能支持。

2.该SDK基于高效、安全和可扩展的设计,实现LLM和VLM在DRIVE AGX平台上的高效部署。

3.其中,DriveOS LLM SDK包含插件库、分词器与解分词器、采样器和解码器等核心组件。

4.通过支持多模态部署,SDK扩展了自动驾驶的应用边界,推动自动驾驶迈向新阶段。

以上内容由腾讯混元大模型生成,仅供参考

自动驾驶技术正从辅助驾驶迈向全无人驾驶,人工智能在其中扮演关键角色。大语言模型(LLM)和视觉语言模型(VLM)能够处理翻译、对话和上下文分析任务,并在多模态数据融合中展现潜力。然而,在资源受限的汽车平台上部署这些模型面临显著挑战。近日,英伟达推出 DriveOS LLM SDK,基于高效、安全和可扩展的设计,为自动驾驶提供语言智能支持,推动行业迈向新阶段。


图片


技术突破:高效部署语言模型


自动驾驶场景要求语言模型实时处理多模态输入并生成可靠输出,对计算效率和系统稳定性提出严格要求。DriveOS LLM SDK 以 TensorRT 推理引擎为基础,通过定制注意力内核、量化技术和动态批处理支持,实现 LLM 和 VLM 在 DRIVE AGX 平台上的高效部署,满足资源受限环境的需求。


关键组件

DriveOS LLM SDK 包含以下核心组件,确保高效推理和部署:


  • 插件库针对LLM的特殊需求,SDK内置了定制插件和内核,支持旋转位置嵌入、多头注意力机制和KV缓存管理。AttentionPlugin支持动态批量大小和输入序列长度,确保系统适应多变场景。

  • 分词器与解分词器SDK可以提供分词模块,基于 Llama 风格字节对编码(BPE)和正则表达式匹配,将文本和图像输入转换为令牌流,支持多模态数据处理。

  • 采样器在文本生成、翻译和对话任务中,SDK采用基于CUDA的单束采样器,结合Top-K选项,用于文本生成、翻译和对话任务的令牌选择,优化推理效率和输出质量。

  • 解码器通过迭代生成令牌产出文本或序列,支持静态批量大小、填充输入序列,并生成批量中最长序列,提供灵活的解码循环。

这些组件共同实现 DRIVE 平台上轻量、高性能的 LLM 部署:

    图片


    部署体系:简化开发流程


    LLM 部署通常是一个复杂的过程,尤其在边缘设备上需要大量工程努力。DriveOS LLM SDK 为在 DRIVE 平台上部署 LLM 提供简化的解决方案,将工作流程简化为两步:导出 ONNX 模型和构建引擎(见图2)。这一过程与使用 TensorRT 部署深度学习模型的标准流程密切相关。


    图片


    部署过程分为以下关键步骤:


    1. 模型导出:通过Python脚本llm_export.py,将Hugging Face格式模型转换为ONNX格式,并选择FP16、FP8或INT4等量化精度:


    python3 llm_export.py --torch_dir $TORCH_DIR --dtype [fp16|fp8|int4] --output_dir $ONNX_DIR

    此命令只需一行即可调用,建议在 x86 数据中心 GPU 上执行,避免内存不足(OOM)问题。


    2. 引擎构建:利用llm_build工具在DRIVE平台上生成TensorRT引擎:


    ./build/examples/llm/llm_build --onnxPath=model.onnx --enginePath=model.engine --batchSize=B --maxInputLen=N --maxSeqLen=M

    构建过程与具体模型或精度无关,IO 接口在所有 ONNX 模型中保持标准化。SDK 包含交叉编译系统,支持在 x86 机器上编译 AArch64 目标,加速部署并简化边缘平台的功能验证。


    量化在优化 LLM 部署中起关键作用,尤其在资源受限平台上显著提升效率和可扩展性,SDK 通过上述量化选项满足这一需求。SDK 提供多种 C++ 示例代码,用于端到端 LLM 推理、性能基准测试和实时聊天实现,使开发者能够评估模型在 DRIVE 平台上的准确性和性能(使用静态批量大小和输入/输出序列长度),或定制应用。例如,启用聊天机器人:


    ./build/examples/llm/llm_chat --tokenizerPath=llama-v3-8b-instruct-hf/ --enginePath=llama3_fp16.engine --maxLength=64

    此命令的整体推理流程如图所示,其中与 DriveOS LLM SDK 相关的组件以蓝色块表示。


    图片


    技术基础:硬件与软件集成


    DriveOS LLM SDK 可依托 DRIVE AGX 系列硬件平台实现高效运行。


    支持的平台、模型与精度格式

    SDK兼容多个DRIVE平台,包括:


    • DRIVE AGX Orin提供254 TOPS的计算能力,支持L2+到L4级自动驾驶。

    • DRIVE AGX Thor集成Blackwell GPU架构,支持TensorRT 10.8以上的NVFP4精度,适用于L5完全自动驾驶。

    • x86系统作为预览功能,便于开发和测试。


    支持的模型涵盖了业界前部的LLM和VLM,包括:


    • Llama 3 8B Instruct

    • Llama 3.1 8B

    • Llama 3.2 3B

    • Qwen2.5 7B Instruct

    • Qwen2 7B Instruct

    • Qwen2 VL


    SDK支持多种精度格式以适配不同平台:


    • FP16标准精度。

    • FP8(W8A8)需TensorRT 10.4以上支持。

    • NVFP4需TensorRT 10.8以上,在DRIVE AGX Thor上优化。

    • INT4(W4A16)AWQ量化权重,计算保持FP16精度。


    权重和GEMM操作中采用低精度格式(如FP8或NVFP4),LayerNorm、KV缓存和注意力层保持FP16,确保性能与精度的平衡。


    多模态支持:扩展应用场景


    与传统LLM不同,自动驾驶中的语言模型需要处理摄像头图像、语音指令等多模态输入。DriveOS LLM SDK通过支持多模态部署,扩展了自动驾驶的应用边界。


    多模态LLM部署

    SDK 支持 Qwen2 VL 模型,提供基于官方 Qwen2 VL GitHub 仓库的 C++ 图像预处理器。该模块加载图像、调整大小、分割为小块(并合并)、标准化像素值,生成与语言模型对齐的时序令牌流。部署需分别导出视觉编码器和语言模型,并构建独立引擎。SDK 提供 Python 脚本和 C++ 工具,以标准化步骤完成 TensorRT 引擎构建。推理支持图像和文本联合处理,如道路标志解读和自然语言响应。


    结语


    英伟达 DriveOS LLM SDK 简化了在 DRIVE 平台上部署 LLM 和 VLM 的过程,利用 TensorRT 引擎和特定优化技术(如量化),实现高效部署。其关键组件提升推理性能,部署流程降低工程复杂度,多模态支持扩展应用范围,为生产环境中部署强大的 LLM 奠定基础,推动自动驾驶迈向新阶段。


    ref:

    图源:英伟达官网截图