Huggingface에서 사용할 수 있는 Optimum-NVIDIA는 매우 간단한 API를 통해 NVIDIA 플랫폼에서 LLM 추론을 획기적으로 가속화합니다. 단 한 줄의 코드만 변경하면 NVIDIA 플랫폼에서 최대 28배 빠른 추론과 초당 1,200개의 토큰을 처리할 수 있습니다.
옵티멈-NVIDIA는 엔비디아 에이다 러브레이스 및 호퍼 아키텍처에서 지원되는 새로운 플로트8 형식의 이점을 활용하는 최초의 허깅 페이스 추론 라이브러리입니다. FP8은 NVIDIA TensorRT-LLM 소프트웨어의 고급 컴파일 기능에 더해 LLM 추론을 획기적으로 가속화합니다.
About TensorRT
TensorRT는 NVIDIA GPU 연산에 적합한 최적화 기법들을 이용하여 모델을 최적화하는 Optimizer와 다양한 GPU에서 모델연산을 수행하는 Runtime Engine을 지원하는 소프트웨어 라이브러리이다.TensorRT는 대부분의 딥러닝 프레임워크 (TensorFlow, PyTorch 등)에서 학습된 모델을 지원하며 GPU 환경에서 동일한 방식으로 적용 가능하여, 최적의 딥러닝 모델 Inference 가속을 지원합니다.
Optimum-NVIDIA TensorRT-LLM 설치
CUDA와 TensorRT 기반으로 설치해야하기 때문에 가능하면 CLI에서 Docker build를 권장합니다.
Optium-NVIDIA TensorRT-LLM
git lfs install
git clone https://github.com/NVIDIA/TensorRT-LLM.git
cd TensorRT-LLM
git submodule update --init --recursive
make -C docker release_build
Pipeline 예시입니다. Docker Build로 인하여 실행 결과는 생략합니다.
from optimum.nvidia.pipelines import pipeline
pipe = pipeline(
'text-generation',
'mistralai/Mistral-7B-v0.3',
use_fp8=True
)
pipe("Describe a real-world application of AI in sustainable energy.")
from optimum.nvidia import AutoModelForCausalLM
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"mistralai/Mistral-7B-v0.3",
padding_side="left"
)
model = AutoModelForCausalLM.from_pretrained(
"mistralai/Mistral-7B-v0.3",
use_fp8=True,
max_prompt_length=1024,
ax_output_length=2048, # Must be at least size of max_prompt_length + max_new_tokens
max_batch_size=8,
)
model_inputs = tokenizer(
["How is autonomous vehicle technology transforming the future of transportation and urban planning?"],
return_tensors="pt"
).to("cuda")
generated_ids = model.generate(
**model_inputs,
top_k=40,
top_p=0.7,
repetition_penalty=10,
)