使用NVIDIA/TensorRT-LLM 量化qwen/Qwen-1_8B-Chat

使用NVIDIA/TensorRT-LLM 量化qwen/Qwen-1_8B-Chat

地址 https://github.com/NVIDIA/TensorRT-LLM

1 先安装 native/container-toolkit/

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html

2 提前下载需要量化的模型

我这里使用 qwen/Qwen-1_8B-Chat
可以是 huggingface 下载
或者 https://www.modelscope.cn/ 下载
放在本地路径 ./Qwen-1_8B-Chat

3 再安装NVIDIA/TensorRT-LLM 的 docker镜像

我这里与官方有所不同:
docker run 去掉 --rm 参数,就是docker 容器出后,保存更改
添加 -v ./Qwen-1_8B-Chat:/home/qwen1_8b_chat 参数把模型路径挂载到 docker 容器 /home/qwen1_8b_chat 路径下

# Obtain and start the basic docker image environment.
docker run --runtime=nvidia --gpus all --entrypoint /bin/bash  -v ./Qwen-1_8B-Chat:/home/qwen1_8b_chat -it nvidia/cuda:12.1.0-devel-ubuntu22.04

在容器内安装依赖:

# Install dependencies, TensorRT-LLM requires Python 3.10
apt-get update && apt-get -y install python3.10 python3-pip openmpi-bin libopenmpi-dev

# 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"

clone代码

在容器内目录 /home 下执行:

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

到qwen目录安装依赖

cd /home/TensorRT-LLM/examples/qwen

pip install -r requirements.txt

构建qwen模型 使用单个 GPU 并且执行 INT8 weight-only 量化

1 命令行配置环境变量,根据自己的环境配置

MODEL_DIR=/home/qwen1_8b_chat
OUT_CHECK_POINT_DIR=/home/checkpoints/qwen_checkpoint_1gpu_fp16_wq
TRT_ENGINES_DIR=/home/trt_engines/qwen1_8b_chat/weight_only/1-gpu/

2 转换为checkpoint

python3 convert_checkpoint.py --model_dir $MODEL_DIR \
                              --output_dir $OUT_CHECK_POINT_DIR \
                              --dtype float16 \
                              --use_weight_only \
                              --weight_only_precision int8

3 构建 TRT-engine


trtllm-build --checkpoint_dir $OUT_CHECK_POINT_DIR \
            --output_dir $TRT_ENGINES_DIR \
            --gemm_plugin float16

4 运行量化模型推理

python3 ../run.py --input_text "你好,请问你叫什么?" \
                  --max_output_len=50 \
                  --tokenizer_dir $MODEL_DIR \
                  --engine_dir=$TRT_ENGINES_DIR

过程中遇到的问题

1 flash-attention 安装很久失败

  Building wheel for flash-attn (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [9 lines of output]
      fatal: not a git repository (or any of the parent directories): .git

解决方案

2 库的兼容性:
以下是经过自己多次尝试的结果推荐值:

accelerate==0.25.0   
auto-gptq==0.6.0 
tensorrt-llm==0.10.0.dev2024041600             
root@996e547c677a:/home/TensorRT-LLM/examples/qwen# pip list |grep accelerate
accelerate                    0.25.0
root@996e547c677a:/home/TensorRT-LLM/examples/qwen# pip list |grep auto      
auto-gptq                     0.6.0
root@996e547c677a:/home/TensorRT-LLM/examples/qwen# pip list |grep tensorrt-llm
tensorrt-llm                  0.10.0.dev2024041600
root@996e547c677a:/home/TensorRT-LLM/examples/qwen# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/559442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

插入排序与希尔排序

文章目录 插入排序配图详解核心思想核心代码 源代码运行结果 希尔排序实现逻辑源代码运行结果 插入排序 插入排序在少量数据中是一个高效的算法,你可以想象在打牌的时候,左手是已经整理好的牌,右手是正在抓取的牌。 配图详解 对一组数据 5&…

手机号码空号过滤API:有效验证和过滤无效电话号码

随着移动通信技术的发展,手机号码成为人们日常生活和工作中不可或缺的一部分。然而,随着时间的推移,一些手机号码可能会变成空号,这给企业在进行电话营销和数据分析时带来了一定的困扰。为了解决这个问题,挖数据平台提…

武汉星起航:引领跨境电商新潮流,一站式孵化助力卖家轻松出海

武汉星起航电子商务有限公司,作为跨境电商领域的领军者,始终秉持“走出去”的战略理念,依托自营店铺的丰富经验和对跨境电商资源的深度整合,成功打造了一站式卖家孵化体系。这一体系集开店策划、运营教学、资源服务于一体&#xf…

Linux:常用软件、工具和周边知识介绍

上次也是结束了权限相关的知识:Linux:权限相关知识详解 文章目录 1.yum-管理软件包的工具1.1基本介绍1.2yum的使用1.3yum的周边生态1.4软件包介绍 2.vim-多模式的文本编辑器2.1基本介绍2.2基本模式介绍2.2.1命令模式(Normal mode)…

SpringBoot项目如何实现邮件发送

文章目录 1. 开启邮箱SMTP服务2. 导入pom依赖3. 在配置文件中添加邮箱配置3. 封装EmailTask类4. 写测试类 1. 开启邮箱SMTP服务 这里以163邮箱为例,点击设置——更多设置——POP3/SMTP/IMAP——开启服务 根据提示开启服务之后会得到一个授权码,只显示一…

七牛云配置,图片上传、查看的使用(备忘)

修改配置文档 修改新创建的空间的地区名 访问设置为 公开,不然会有访问时间限制 检查 上传和查看的链接是否正确。

Llama3本地部署实现模型对话

1. 从github下载目录文件 https://github.com/meta-llama/llama3 使用git下载或者直接从github项目地址下载压缩包文件 git clone https://github.com/meta-llama/llama3.git2.申请模型下载链接 到Meta Llama website填写表格申请,国家貌似得填写外国,组织随便填写即可 3.…

STL容器搜索:当直接访问STL容器时,如何执行有效和正确的搜索?

掌握STL容器搜索技巧:在C中实现高效和准确的数据访问 一、简介二、std::vector, std::deque, std::list三、std::map, std::multimap, std::set, std::multiset四、std::string六、总结 一、简介 本文主要了解如何在直接访问c容器时高效地进行搜索。在STL容器中搜索&#xff0…

【PostgreSQL里insert on conflict do操作时的冲突报错分析】

最近在巡检PostgreSQL的数据库的时候,发现部分数据库里存在大量的如下报错 ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time HINT: Ensure that no rows proposed for insertion within the same command have duplicate constrained val…

如何在CentOS本地搭建DataEase数据分析服务并实现远程查看数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

信息系统项目管理师0056:数据管理(4信息系统管理—4.2管理要点—4.2.1数据管理)

点击查看专栏目录 文章目录 4.2管理要点4.2.1数据管理1.数据战略2.数据治理3.数据架构4.数据应用5.数据安全6.数据质量7.数据标准8.数据生存周期9.理论框架与成熟度4.2管理要点 信息系统管理涉及系统准备、设计、实施、运行等活动的众多方面,

基于SpringBoot的在线五子连珠的设计与实现,前端采用vue框架;后端采用SpringBoot,mybatis

介绍 基于SpringBoot的在线五子连珠的设计与实现,主要是设计一款五子棋游戏,涉及登录注册的功能,人机对战、联机对战和积分排行榜的功能。其中人机对战中,电脑采用的是采用了一种基于局面分析的评分算法来确定机器人的下一步落子…

java 红黑树

01.红黑树的定义: 每一个结点有五个属性:

书生浦语大模型实战训练营--第二期第六节--Lagent AgentLego 智能体应用搭建--homework

一、基础作业 1.完成 Lagent Web Demo 使用,并在作业中上传截图 根据以下命令启动成功! 2.完成 AgentLego 直接使用部分,并在作业中上传截图 这是原图 使用AgentLego进行自动目标检测后,很明显图中的物体已经被识别出来了 二、…

ElasticSearch可视化工具:kibana + elasticsearch-head

kibana 下载 地址:https://www.elastic.co/cn/downloads/kibana 下载别的版本:https://www.elastic.co/cn/downloads/past-releases#kibana 将Kibana安装包解压缩 进入config目录,在kibana.yml中添加es服务器地址。(如果之前没…

Latex使用algoritm2e出现的错误汇总(updating)

1. return 和 end在一行 解决办法是:\Return{}中必须使用latex公式,如:\Return{$S_b$}

uniapp全局监听分享朋友圈或朋友

把大象装进冰箱需要几步: 1、创建shart.js文件 export default{data(){return {//设置默认的分享参数//如果页面不设置share,就触发这个默认的分享share:{title:标题,path:/pages/index/index,imageUrl:图片,desc:描述,content:内容}}},onLoad(){let ro…

Android的一些总结

先打开自定义的app显示欢迎->消失 打开桌面应用程序->在桌面应用程序中也要能一键启动打开视频播放的app 桌面应用程序广播接收者进行监听,然后打开服务/activity是可行的。 ########################## 日志,调试: Usb 无线 串口…

机器学习预测汽车油耗效率 MPG

流程 数据获取导入需要的包引入文件,查看内容划分训练集和测试集调用模型查看准确率 数据获取 链接:https://pan.baidu.com/s/1KeIJykbcVpsfEk0xjhiICA?pwd30oe 提取码:30oe --来自百度网盘超级会员V1的分享导入需要的包 import pandas as pd imp…

华为认证实验配置(10): 实现VLAN间通信

传统交换二层组网中,默认所有网络都处于同一个广播域,这带了诸多问题。VLAN技术的提出,满足了二层组网隔离广播域需求,使得属于不同VLAN的网络无法互访,但不同VLAN之间又存在着相互访问的需求 重点:使用路…
最新文章