Bug: starcoder2 fp16 engines give wrong output (bf16 and fp32 are correct); fp16 3B/7B fail to build on TensorRT 11.1

Đang mở
#2,049 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, pytorch
Lĩnh vực
backend, machine-learning

Hướng nghiên cứu

Start by tracing the StarCoder2 TensorRT engine build and attention compilation paths, then compare fp16 engine logits with the bf16 and fp32 results using the reproducer in the issue. Check the TensorRT 11.1 attention compile failure (Expected 3 live inputs, got 4) alongside the output drift. Done means fp16 matches Hugging Face or is refused with the manifest moved to bf16, and the TensorRT 11.1 build behavior is addressed.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Affected area: Inference output or task execution

TensorRT-Model-Connect version: main @ 5a2ce7ef59b2089490e99ec9e96209dd31e4fb41

Installation method: Development container

Model and revision: bigcode/starcoder2-3b @ 733247c55e3f73af49ce8e9c7949bf14af205928 (manifest model), bigcode/starcoder2-7b

Environment: Linux, NVIDIA B200, TensorRT 11.4.0.106 and 11.1.0.106; reference Transformers.

Description

Found during the FP8 work of #2006 (Known issue there); independent of FP8.

  1. fp16 engines are wrong. The unquantized fp16 engine does not match Hugging Face, while the bf16 engine of the same build does and an fp32 engine of the 3B matches exactly:

    Model Engine Held-out code KL / top-1 wikitext-2 KL / top-1 / perplexity (HF)
    7B fp16 0.23 / 85.5% 0.76 / 61% / 22.9 (10.3)
    3B fp16 0.34 / 81.7% - / - / 32.6 (15.0)
    3B, 7B bf16 KL 0.0004 to 0.0009 -
    3B fp32 KL 0.0000 / top-1 100% -

    Hugging Face run in fp16 is fine (perplexity 2.684 against 2.684 in fp32), so this is not an fp16 range problem of the model; the cause is in the fp16 TensorRT engine and was not isolated.

  2. fp16 build fails on TensorRT 11.1. The unquantized fp16 3B and 7B builds fail in the attention compile: Expected 3 live inputs, got 4.

The starcoder2-3b manifest builds fp16 and its E2E case passes on main, so CI does not catch this drift.

Minimal reproducer

  1. Build bigcode/starcoder2-3b (manifest revision) twice, fp16 and bf16, and compare teacher-forced next-token logits with Hugging Face on wikitext-2 test or held-out code: fp16 KL 0.3 or more, bf16 KL below 0.001.
  2. With TensorRT 11.1, build the same model at fp16: Expected 3 live inputs, got 4 during the attention compile.

Expected behavior

fp16 engines match Hugging Face as the bf16 engines do, and build on TensorRT 11.1; or fp16 is refused and the manifest moves to bf16.

Actual behavior

fp16 output drifts (top-1 61% to 86%, perplexity 2x HF); the fp16 build fails on 11.1.

Ngôn ngữ chính
Python
Star
288
Fork
73
Merge trung bình
1 ngày 3 giờ
Pull request đã merge (30 ngày)
273

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của NVIDIA/TensorRT-Model-Connect

Tất cả issue của NVIDIA/TensorRT-Model-Connect

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.