使用trtllm部署流行的llama3模型

关于tensorrt-llm

TensorRT-LLM是由NVIDIA提供的一种优化工具,专门用于在NVIDIA GPU上进行大语言模型(LLM)的推理。它提供了一个易于使用的Python API,可以定义LLM并构建包含最先进优化技术的TensorRT引擎,以高效地执行推理任务 。

以下是TensorRT-LLM的一些关键特性:

高性能推理:利用最新的NVIDIA GPU架构(如Hopper和Ampere)来加速LLM的推理性能 。
量化支持:支持多种数值精度,包括INT4、INT8和FP16,以减少内存占用并提高执行速度 。
模块化设计:提供了类似于PyTorch API的功能模块,如einsum、softmax和matmul,以及用于构建LLM的层模块,例如Attention block和Transformer layer 。
集成与扩展:支持与NVIDIA Triton推理服务器的集成,并包含预定义的流行模型,易于修改和扩展以满足自定义需求 。
TensorRT-LLM旨在作为NVIDIA NeMo框架中的优化骨干,帮助开发、定制和部署生成式AI应用 。

关于使用

我目前觉得最简单的使用方法就是下载nvidia官方的容器,因为他需要很多的c,c++的底层依赖,如果自己安装当然也可以,但是遇到问题的话,linux的环境容易和官方的不一致,遇到很多的麻烦还需要自己去解决,自己去查询资料,这样对于我们这些小白来说不是很方便。所以为了简单起见,还不如直接下载官方的容器。官方的容器有有拥有一模一样的官方的安装的预装包。所以容易成功。增加自己的信心和对于这个工具的使用。

容器的下载

安装docker,需要按照nvidia的container toolkit安装

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

这样docker就可以使用显卡了。

docker run --rm --runtime=nvidia --gpus all --entrypoint /bin/bash -it nvidia/cuda:12.4.0-devel-ubuntu22.04
apt-get update && apt-get -y install python3.10 python3-pip openmpi-bin libopenmpi-dev git git-lfs
# Install the latest preview version (corresponding to the main branch) of TensorRT-LLM.
# If you want to install the stable version (corresponding to the release branch), please
# remove the `--pre` option.
pip3 install tensorrt_llm -U --pre --extra-index-url https://pypi.nvidia.com

# Check installation
python3 -c "import tensorrt_llm"

那么在这个容器里面已经完全变成了该工具能够正常运行的环境了。
需要注意的是容器的驱动cuda和宿主机上的cuda最好版本一致。以免发生不必要的麻烦。
接下来的操作都是在这个容器里面进行的,因为容器本身也是一个linux。

下载trtllm的github repo

git clone https://github.com/NVIDIA/TensorRT-LLM
cd TensorRT-LLM/examples/llama

要进到哪个目录,这要取决于你要运行哪个模型。因为我要运行的是这个模型llama系列,所以我进到这个目录llama。

下载hf模型

我去https://huggingface.co/shenzhi-wang/Llama3-8B-Chinese-Chat下载了llama3的模型,然后用trtllm的转换脚本转成下面的模型
下载模型的代码是

git lfs install
git clone https://huggingface.co/shenzhi-wang/Llama3-8B-Chinese-Chat

转换代码

python3 convert_checkpoint.py --model_dir  ./Llama3-8B-Chinese-Chat   --output_dir llama-3-8b-ckpt

再把下载的模型编译成tensorrt-llm的engine

trtllm-build --checkpoint_dir llama-3-8b-ckpt
–gemm_plugin float16
–output_dir ./llama-3-8b-engine

然后运行tensorrt-llm的engine

python3 …/run.py --engine_dir ./llama-3-8b-engine --max_output_len 100 --tokenizer_dir ./Llama3-8B-Chinese-Chat --input_text “鲁迅打了周树人”

得到了结果是

在这里插入图片描述

总结

我觉得模型的性能很满意,版本是0.11.0.dev2024062500
其实本身来说这个工具已经做的相当好了,因为不同的模型与不同的运行方法我建议应该该工具要佩戴一个网页的界面,然后让用户很容易很方便的操作。但是后来我觉得这个工作应该是我们这种小白的。使用者来使用的时候,为了自己的方便去开发一个这样子的网页。来增加它的应用性,根本不需要把这个次要的功能添加到本来的代码仓库。增加代码仓库对于这种次要功能的维护精力。所以我觉得以后我要是有时间的话,我会自己去开发一个这样的应用性的界面。来帮助大家更好的操作各种模型的转换以及运行。其实本身的这个仓库的Python代码已经做的非常好了。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值