# TensorRT-LLM

[TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) otimiza a inferência de LLMs em GPUs NVIDIA. Ele compila os modelos em um engine TensorRT com in-flight batching, paged KV caching e tensor parallelism. O [AutoDeploy](https://nvidia.github.io/TensorRT-LLM/torch/auto_deploy/auto-deploy.html) aceita modelos do Transformers sem exigir nenhuma alteração. Ele converte automaticamente o modelo para um runtime otimizado.

Passe um id de modelo do Hub para [build_and_run_ad.py](https://github.com/NVIDIA/TensorRT-LLM/blob/main/examples/auto_deploy/build_and_run_ad.py) para executar um modelo do Transformers.

```bash
cd examples/auto_deploy
python build_and_run_ad.py --model meta-llama/Llama-3.2-1B
```

Por baixo dos panos, o AutoDeploy cria uma classe [LLM](https://nvidia.github.io/TensorRT-LLM/llm-api/reference.html#tensorrt_llm.llmapi.LLM). Ele carrega a configuração do modelo com [AutoConfig.from_pretrained()](/docs/transformers/main/pt/model_doc/auto#transformers.AutoConfig.from_pretrained) e extrai quaisquer metadados de paralelismo armazenados em `tp_plan`. [AutoModelForCausalLM.from_pretrained()](/docs/transformers/main/pt/model_doc/auto#transformers.AutoModel.from_pretrained) carrega o modelo com a configuração e habilita o paralelismo de tensor embutido nos Transformers.

```py
from tensorrt_llm._torch.auto_deploy import LLM

llm = LLM(model="meta-llama/Llama-3.2-1B")
```

O TensorRT-LLM extrai o grafo do modelo com `torch.export` e aplica otimizações. Ele substitui a atenção dos Transformers pelos [kernel de atenção](https://github.com/NVIDIA/TensorRT-LLM/tree/main/tensorrt_llm/_torch/attention_backend) do TensorRT-LLM e compila o modelo em um backend de execução otimizado.

## Recursos

- [Documentação do TensorRT-LLM](https://nvidia.github.io/TensorRT-LLM/) para guias de uso mais detalhados.
- O [guia do AutoDeploy](https://nvidia.github.io/TensorRT-LLM/torch/auto_deploy/auto-deploy.html) explica como ele funciona, com exemplos avançados.

