TensorRT-LLM 1.0.0 업데이트 설치하지 마세요

안상훈·2025년 9월 27일
0

WSL설정

목록 보기
18/20
post-thumbnail

https://github.com/NVIDIA/TensorRT-LLM/releases/tag/v1.0.0

그동안 TensorRT-LLM이 0.21.0 릴리즈 버전에서 1.0.0으로 수많은 베타버전 이후 업데이트가 되어서 재 설치를 진행하고자 한다.

주요 업데이트 내용을 살펴보자면

  1. sm121에 대한 지원 추가 -> RTX 5000시리즈 아키텍쳐의 GPU가 재대로 정식지원된다 이렇게 보면 된다.

  2. PyTorch에서 MXFP8xMXFP4에 대한 지원 추가 -> GPT-OSS 계열의 LLM이 TensorRT-LLM으로도 구동이 가능해지는거라 볼 수 있겠다.

  3. 변경 사항 PyTorch를 기본 LLM 백엔드로 승격 -> vLLM처럼 기본 백앤드 엔진이 pytorch으로 변경되어 더 많은 모델 구동이 편리해졌다.

이것 말고도 여러가지 업데이트가 되었는데 설치부터 다시 진행을 해보고자 한다.

1. 완전 새로설치할 시

이전 포스트 WSL 우분투에 TensorRT-LLM 설치하기
에서 수행한

  1. cuda toolkit 12.8.1설치
  2. Pytorch 2.7.1 설치
  3. tensorrt llm 설치
  4. 자잘한 라이브러리 의존성 오류 수정을 위한 추가 라이브러리 재설치

과정을 그대로 진행하면 된다

cuda 12.9 여전히 지원안되고 / Pytorch 작성기준 최신버전인 2.8.0 지원안된다...

2. 기존 버전이 설치되었을 시

pip3 uninstall tensorrt_llm
pip3 install tensorrt_llm

이러면 끝난다...

기존 0.21.0 -> 1.0.0 에서 뭔가 큰 라이브러리 업데이트도 된줄 알았지만.. 음..

3. 변경부분

가장 많이 변경된 부분은

https://nvidia.github.io/TensorRT-LLM/1.0.0/llm-api/reference.html

API 레퍼런스 문서 설명이 많이 바뀌었는데
이것도 다 따지고 보면 LLM 메서드의 내부 인자값이 몇 종 변경된 부분으로 좀 정리가 된다.

현재로써 필자에게 주요한 변경점을 하나 꼽으라면

0.21.0 버전에서는 백앤드 엔진을 조정할 때는 위 인자값을 사용해야 하지만

1.0.0 버전에서는 좀 더 설명이 명확한 attn_backend로 변경된 것이 주요 변경사항이라 볼 수 있다.

모델 지원은 더 많이 늘었으니 차근차근 씹뜯맛즐 해봐야 겠다.



2025-10-11 업데이트 사항

위 tensorrt_llm을 v1.0.0에서 업데이트하고 이것저것 사용해 본 결과
필자는 v0.21.0으로 롤백을 결정했다.

이유는

첫번째로 API의 Default 옵션이 trtllm에서 Pytorch로 변경된 것인데 변경되면서 문제점이

v0.21.0에서는 가능했던 기능인 TLLM_USE_TRT_ENGINE옵션이 완전히 먹통이 되버린 것이다.

해당 옵션에 대해 설명을 하자면

import os
os.environ['TLLM_USE_TRT_ENGINE'] = '1' # -> Tensorrt 기본 백앤드 엔진을 Pytorch로
os.environ['TLLM_USE_TRT_ENGINE'] = '0' # -> Tensorrt 기본 백앤드 엔진을 trtllm으로

이렇게 백앤드 엔진 변경 옵션을 제공하는데
이게 v1.0.0에서는 완전히 먹통이 되버렷다

이것이 야기하는 문제점은 trtllm-build을 통해서 trt_engine 형식으로 컨버트한 모델은
아에 기동불가가 되버렷다.

첨부한 사진처럼 tensorrt_llm의 버전이 v1.0.0환경에서

# 모델 로드 코드
llm = LLM(
    model=MODEL_PATH,			# trt_engine으로 변환한 모델 경로
    tokenizer=TOKENIZER_PATH,	# 토크나이저는 원본 허깅페이스 모델 경로로
    )

이렇게 모델 로드 시

[10/11/2025-18:10:34] [TRT-LLM] [W] Logger level already set from environment. Discard new verbosity: info
[10/11/2025-18:10:34] [TRT-LLM] [I] Using LLM with PyTorch backend
[10/11/2025-18:10:34] [TRT-LLM] [W] Using default gpus_per_node: 1
[10/11/2025-18:10:34] [TRT-LLM] [I] Set nccl_plugin to None.
[10/11/2025-18:10:34] [TRT-LLM] [I] neither checkpoint_format nor checkpoint_loader were provided, checkpoint_format will be set to HF.
[10/11/2025-18:10:34] [TRT-LLM] [W] Logger level already set from environment. Discard new verbosity

[10/11/2025-18:10:40] [TRT-LLM] [E] Failed to initialize executor on rank 0: Unrecognized model in /home/ash24/trt_model/trt_engine/EXAONE-3.0-7.8B-Instruct. Should have a `model_type` key in its config.json, or contain one of the following strings in its name: albert, align, altclip, arcee, aria, aria_text, audio-spectrogram-transformer, autoformer, aya_vision, bamba, bark, bart, beit, bert, bert-generation, big_bird, bigbird_pegasus, biogpt, bit, bitnet, blenderbot, blenderbot-small, blip, blip-2, blip_2_qformer, bloom, bridgetower, bros, camembert, canine, chameleon, chinese_clip, chinese_clip_vision_model, clap, clip, clip_text_model, clip_vision_model, clipseg, clvp, code_llama, codegen, cohere, cohere2, colpali, colqwen2, conditional_detr, convbert, convnext, convnextv2, cpmant, csm, ctrl, cvt, d_fine, dab-detr, dac, data2vec-audio, data2vec-text, data2vec-vision, dbrx, deberta, deberta-v2, decision_transformer, deepseek_v3, deformable_detr, deit, depth_anything, depth_pro, deta, detr, dia, diffllama, dinat, dinov2, dinov2_with_registers, distilbert, donut-swin, dots1, dpr, dpt, efficientformer, efficientnet, electra, emu3, encodec, encoder-decoder, ernie, ernie_m, esm, falcon, falcon_h1, falcon_mamba, fastspeech2_conformer, flaubert, flava, fnet, focalnet, fsmt, funnel, fuyu, gemma, gemma2, gemma3, gemma3_text, gemma3n, gemma3n_audio, gemma3n_text, gemma3n_vision, git, glm, glm4, glm4v, glm4v_text, glpn, got_ocr2, gpt-sw3, gpt2, gpt_bigcode, gpt_neo, gpt_neox, gpt_neox_japanese, gptj, gptsan-japanese, granite, granite_speech, granitemoe, granitemoehybrid, granitemoeshared, granitevision, graphormer, grounding-dino, groupvit, helium, hgnet_v2, hiera, hubert, ibert, idefics, idefics2, idefics3, idefics3_vision, ijepa, imagegpt, informer, instructblip, instructblipvideo, internvl, internvl_vision, jamba, janus, jetmoe, jukebox, kosmos-2, kyutai_speech_to_text, layoutlm, layoutlmv2, layoutlmv3, led, levit, lightglue, lilt, llama, llama4, llama4_text, llava, llava_next, llava_next_video, llava_onevision, longformer, longt5, luke, lxmert, m2m_100, mamba, mamba2, marian, markuplm, mask2former, maskformer, maskformer-swin, mbart, mctct, mega, megatron-bert, mgp-str, mimi, minimax, mistral, mistral3, mixtral, mlcd, mllama, mobilebert, mobilenet_v1, mobilenet_v2, mobilevit, mobilevitv2, modernbert, moonshine, moshi, mpnet, mpt, mra, mt5, musicgen, musicgen_melody, mvp, nat, nemotron, nezha, nllb-moe, nougat, nystromformer, olmo, olmo2, olmoe, omdet-turbo, oneformer, open-llama, openai-gpt, opt, owlv2, owlvit, paligemma, patchtsmixer, patchtst, pegasus, pegasus_x, perceiver, persimmon, phi, phi3, phi4_multimodal, phimoe, pix2struct, pixtral, plbart, poolformer, pop2piano, prompt_depth_anything, prophetnet, pvt, pvt_v2, qdqbert, qwen2, qwen2_5_omni, qwen2_5_vl, qwen2_5_vl_text, qwen2_audio, qwen2_audio_encoder, qwen2_moe, qwen2_vl, qwen2_vl_text, qwen3, qwen3_moe, rag, realm, recurrent_gemma, reformer, regnet, rembert, resnet, retribert, roberta, roberta-prelayernorm, roc_bert, roformer, rt_detr, rt_detr_resnet, rt_detr_v2, rwkv, sam, sam_hq, sam_hq_vision_model, sam_vision_model, seamless_m4t, seamless_m4t_v2, segformer, seggpt, sew, sew-d, shieldgemma2, siglip, siglip2, siglip_vision_model, smollm3, smolvlm, smolvlm_vision, speech-encoder-decoder, speech_to_text, speech_to_text_2, speecht5, splinter, squeezebert, stablelm, starcoder2, superglue, superpoint, swiftformer, swin, swin2sr, swinv2, switch_transformers, t5, t5gemma, table-transformer, tapas, textnet, time_series_transformer, timesfm, timesformer, timm_backbone, timm_wrapper, trajectory_transformer, transfo-xl, trocr, tvlt, tvp, udop, umt5, unispeech, unispeech-sat, univnet, upernet, van, video_llava, videomae, vilt, vipllava, vision-encoder-decoder, vision-text-dual-encoder, visual_bert, vit, vit_hybrid, vit_mae, vit_msn, vitdet, vitmatte, vitpose, vitpose_backbone, vits, vivit, vjepa2, wav2vec2, wav2vec2-bert, wav2vec2-conformer, wavlm, whisper, xclip, xglm, xlm, xlm-prophetnet, xlm-roberta, xlm-roberta-xl, xlnet, xmod, yolos, yoso, zamba, zamba2, zoedepth, exaone4, nemotron_h, llava_llama
[10/11/2025-18:10:40] [TRT-LLM] [E] Traceback (most recent call last):
  File "/home/ash24/.local/lib/python3.12/site-packages/tensorrt_llm/executor/worker.py", line 771, in worker_main
    worker: GenerationExecutorWorker = worker_cls(
                                       ^^^^^^^^^^^
  File "/home/ash24/.local/lib/python3.12/site-packages/tensorrt_llm/executor/worker.py", line 139, in __init__
    self.engine = _create_engine()
                  ^^^^^^^^^^^^^^^^
  File "/home/ash24/.local/lib/python3.12/site-packages/tensorrt_llm/executor/worker.py", line 137, in _create_engine
    return create_executor(**args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ash24/.local/lib/python3.12/site-packages/tensorrt_llm/_torch/pyexecutor/py_executor_creator.py", line 216, in create_py_executor
    model_engine = PyTorchModelEngine(
                   ^^^^^^^^^^^^^^^^^^^
  File "/home/ash24/.local/lib/python3.12/site-packages/tensorrt_llm/_torch/pyexecutor/model_engine.py", line 290, in __init__
    self.model = self._load_model(
...

이렇게 trt_engine모델인 경우에도 강제로 Pytorch 엔진으로 모델을 로드하려다 보니 모델 정보를 읽어드리지 못하는 참사가 발생한다.

동일한 내용을 tensorrt_llm v0.21.0으로 롤백한 뒤

# 모델 로드 코드
llm = LLM(
    model=MODEL_PATH,			# trt_engine으로 변환한 모델 경로
    tokenizer=TOKENIZER_PATH,	# 토크나이저는 원본 허깅페이스 모델 경로로
    )

수행하면 동기추론 비동기추론 문제없이 잘 진행된다.

TLLM_USE_TRT_ENGINE 옵션 자체가 제대로 잘 동작하는 기능도 아니긴 하지만

기본 엔진을 어떻게 바꿔야 하는지 정보가 없으니까 여간 불편한게 아니다

이곳저곳에서 자료를 찾아봣지만 trt_engine 형태로 변환한 모델을 온전하게 구동가능한 버전은 v0.21.0이고
신버전인 v1.0.0은 제대로 기능하지 않으니 업데이트를 권장하지 않는다.

롤백 명령어는 아래와 같다.

pip uninstall tensorrt_llm
pip install tensorrt_llm==0.21.0
profile
자율차 공부중

0개의 댓글