#5801·nni

NNI ModelSpeedupTensorRT是否支持编码器-Decoder模型?

作者: donjuanpond创建于 2024年8月2日更新于 2024年8月16日

**问题**:我有一个编码器解码器模型,使用 TensorRT 的包进行后训练量化。它采用 HuggingFace 保存模型格式。该模型是一个 TrOCR 模型,使用 HuggingFace VisionEncoderDecoder 类实现。使用 Transformers,编码器和解码器位于一个文件中,但保存为 ONNX 格式时,编码器和解码器变成两个不同的 ONNX 文件。 我正在尝试通过 ModelSpeedupTensorRT 运行此模型,使用此处的教程:https://nni.readthedocs.io/en/stable/tutorials/quantization_speedup.html。 当我尝试使用一个从数据加载器中生成的校准器来执行 `engine.compress_with_calibrator(calib)` 时,我遇到了一个错误,我的 CPU RAM 由于某种原因被转换为 ONNX 格式所占用。为了解决这个问题,我必须自己转换模型,使用 HuggingFace Optimum 接口来运行 ONNX。 当编辑源代码以适应此情况时,我发现 `build_engine_with_calib()` 方法的实现被 `compress_with_calibrator()` 调用: