NVIDIA Chat with RTX教程使用以及CUDA和CUDNN

基本环境安装:CUDA12.1+CUDNNcudnn-windows-x86_64-8.9.7.29_cuda12-archive

1、CUDA下载
CUDA官方安装教程: https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

CUDA Toolkit的下载: CUDA Toolkit 12.1 Downloads | NVIDIA Developer

 

下载完以后默认一路确认安装到C盘即可。

现在需要重启电脑,然后Win+R进入cmd界面,输入nvcc -V,出现如下界面,代码cuda已经安装成功了。
注:必须要重启电脑,否则运行nvcc -V 会找不到命令。 

2. cuDNN下载:

下载地址:cuDNN 存档 |NVIDIA 开发者

 

3. 安装cuDNN: 

对下载的cuDNN压缩包解压后出现如下三个文件夹子, 

然后找到cuda的安装路径,我的安装路径如下:

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1

分别将cuDNN三个文件夹的内容分别复制到cuda对应的文件夹里面。如下所示:

 为cuDNN添加环境变量:
找到环境变量-系统变量-path,分别将如下三个变量添加进去,完成安装。(但是我没设置)

2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite,找到如下两个.exe文件:

 

首先执行:deviceQuery.exe,查看是否出现如下界面

增加一个新的模型
当我们安装好后, Chat With RTX会默认有两个模型, 一个是LLama2, 一个是Mistral.

那么我们接下来试验下如何增加一个新的模型.

注意:到此处就需要一定的专业知识了.

2.3.1安装TensorRT-LLM
如果我们想增加一个模型, 那么我们就需要知道一个工具—TensorRT-LLM

TensorRT是专门为GPU设计的AI推理工具, TensorRT-LLM就是专门为大语言模型推理而设计的, 这也是能让那些大语言模型在我们这些游戏显卡上运行的一个重要原因. 这个工具能够加速AI模型的推理速度, 让我们的模型运行起来更快,更节省内存.

首先, 我们先来到TensorRT-LLM的官方Github页面:

https://github.com/NVIDIA/TensorRT-LLM/tree/rel

注意, 我们这里的分支选择的是rel.

接下来您需要手动安装git, 网上搜一下, 教程很多.

打开powershell, win10的话直接搜一下就有, 自带的工具.

通过下面三行命令, 下载TensorRT-LLm:

git clone --branch rel https://github.com/NVIDIA/TensorRT-LLM.git
cd TensorRT-LLM
git submodule update --init --recursive

进入Windows目录:

cd windows

输入如下命令开始安装, 注意此处我们应该已经安装了CUDA,所以跳过:

./setup_env.ps1 -skipCUDA

pip install tensorrt_llm --extra-index-url https://pypi.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121

安装好之后, 可以输入python -c "import tensorrt_llm; print(tensorrt_llm._utils.trt_version())"来验证是否安装完毕

正常的话会输出您安装的版本, 如下图所示:

 

我们接下来尝试把chatglm部署上

https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/chatglm

首先我们先去HF上下载, 我们这里选择6b-32k版本:

https://huggingface.co/THUDM/chatglm3-6b-32k

我们从页面就可以看到, 这个chatglm在中文表现上似乎更好.

当然, 我还是为没法访问HF的同学准备了百度云版本:

链接:https://pan.baidu.com/s/1ooAypr7tnrkiRPrflqrXEQ?pwd=0512
提取码:0512

接下来我们通过TensorRT-LLm来处理下下载下来的模型, 把它编程TensorRT的格式(这里用的通俗的讲法, 专业术语叫构建TensorRT推理引擎)

注意,–model_dir后面是chatglm存放的路径

注意2, 此处的chatglm3_6b_32k文件夹名字是我改过的, 下面我把32前面的-变成了_, 因为命令中回不识别减号,需要用下划线来代替,.我放到了E盘。

cd E:\TensorRT-LLM\examples\chatglm

python build.py -m chatglm3_6b_32k --model_dir D:\\chatglm3_6b_32k  --output_dir trt_engines/chatglm3_6b-32k/fp16/1-gpu
可能会遇到下面问题:

Failed to Build Llama-7b Engine Because of Insufficient Memory · Issue #352 · NVIDIA/TensorRT-LLM · GitHub

NVIDIA Chat with RTX报错,是哪里出了问题? - 知乎

 timeout=None

E:\TensorRT-LLM\examples\chatglm\trt_engines\chatglm3_6b-32k\fp16\1-gpu

接下来我们打开文件夹, 找到 E:\ChatWithRTX_Offline_2_15_mistral_Llama\RAG\trt-llm-rag-windows-main\model目录, 创建一个新的文件夹:chatglm

然后在chatglm里面分别创建chatglm_enginechatglm_hf文件夹:

 

这时候, 我们把上面生成好的引擎和配置文件复制到chatglm_engine文件夹中:

 

把我们下载的E:\chatglm3_6b_32k文件夹中的config.jsontokenization_chatglm.pytokenizer.modeltokenizer_config.json文件放到chatglm_hf文件夹中: 

打开 E:\ChatWithRTX_Offline_2_15_mistral_Llama\RAG\trt-llm-rag-windows-main\config文件夹中的config.json文件, 将我们新创建的chatglm模型的信息放在里面, 如下图所示:

{"models": {"supported": [{"name": "Mistral 7B int4","installed": true,"metadata": {"model_path": "model\\mistral\\mistral7b_int4_engine","engine": "llama_float16_tp1_rank0.engine","tokenizer_path": "model\\mistral\\mistral7b_hf","max_new_tokens": 1024,"max_input_token": 7168,"temperature": 0.1}},{"name": "Llama 2 13B int4","installed": true,"metadata": {"model_path": "model\\llama\\llama13_int4_engine","engine": "llama_float16_tp1_rank0.engine","tokenizer_path": "model\\llama\\llama13_hf","max_new_tokens": 1024,"max_input_token": 3900,"temperature": 0.1}},{"name": "chatglm3_6b-32k","installed": true,"metadata": {"model_path": "model\\chatglm\\chatglm_engine","engine": "chatglm3_6b_32k_float16_tp1_rank0.engine","tokenizer_path": "model\\chatglm\\chatglm_hf","max_new_tokens": 1024,"max_input_token": 3900,"temperature": 0.1}}],"selected": "Mistral 7B int4"},"sample_questions": [{"query": "How does NVIDIA ACE generate emotional responses?"},{"query": "What is Portal prelude RTX?"},{"query": "What is important about Half Life 2 RTX?"},{"query": "When is the launch date for Ratchet & Clank: Rift Apart on PC?"}],"dataset": {"sources": ["directory","youtube","nodataset"],"selected": "directory","path": "dataset","isRelative": true},"strings": {"directory": "Folder Path","youtube": "YouTube URL","nodataset": "AI model default"}
}

 复制出来方便复制张贴

 然后, 我们重新打开Chat With RTX, 就会出现chatglm的选项:

我们可以尝试用中文问他一些问题:

比如我在写这篇文章的时候是接近凌晨24点, 那么我想问问它

我总是失眠,如何让我快速入睡

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MR混合现实情景实训教学系统在商务外语课堂上的教学应用

商务外语课程通常注重实践性和情景化,要求学生能够在实际的商务环境中运用外语进行交流和沟通。MR混合现实情景实训教学系统可以提供一种全新的教学方式,使学生能够身临其境地体验商务场景,提高他们的外语应用能力和实际操作能力。 1. 模拟真…

vue3封装对话框el-dialog组件

实现逻辑: 1、引入对话框组件; 2、对话框组件中定义一个方法,通过defineExpose({})暴漏出去; 3、组件使用,并用ref绑定; 4、点新增和编辑的时候,通过ref调用对话框暴漏出来的方法,并…

【数据可视化】Echarts中的其它图表

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 绘制散点图2.1 绘制基本散点图2.2 绘制两个序列的散点图2.3 绘制带涟漪特效的散点图 3. 绘制气泡图3.1 绘制标准气泡图3.2 绘制各国人均寿命与GDP气泡图3.3 绘制城市A、城市B、城市C三个城市空气污染指数气…

塑料工厂5G智能制造数字孪生可视化平台,推进塑料行业数字化转型

塑料工厂5G智能制造数字孪生可视化平台,推进塑料行业数字化转型。塑料制造行业作为重要的工业领域,亟需借助这一平台实现产业升级与转型,以适应市场的变化和提高生产效率。传统的塑料制造过程往往存在生产效率低下、资源浪费、环境污染等问题…

二维数组_肿瘤面积

任务描述 在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)…

突发!OpenAI服务异常!!!

2024/3/20傍晚7点,笔者的朋友在使用OpenAI时,页面提示服务异常,由此引发了我的深思:人工智能的脆弱性与未来的挑战 2024年3月20日,傍晚7点,一个普通的周二,我的朋友在尝试使用OpenAI时&#xf…

人脸识别AI视觉算法---豌豆云

人脸识别AI算法是一种基于计算机视觉和深度学习技术的系统,用于自动识别和验证人脸。 这些算法在多种领域有着广泛的应用,包括安全认证、身份验证、监控、社交媒体、医疗保健和零售等。 以下是有关人脸识别AI算法的技术背景和应用场景的介绍&#xff1…

方案开发行业迎来新数字化转型新浪潮

着科技的不断发展和市场需求的日益增长,方案开发行业正迎来新一轮的创新浪潮。数字化转型已成为该行业的关键词,各大企业纷纷加大研发投入,以期在激烈的市场竞争中脱颖而出。 近年来,方案开发行业在范围内取得了显著的发展。根据…

从初学者到专家:Java枚举的完整指南

1.枚举的概念 在Java中,枚举是一种特殊的数据类型,用于定义一组有限的命名常量。枚举提供了一种更直观、更可读的方式来表示一组相关的常量,并且可以为这些常量绑定其他数据或行为。 背景:枚举是在JDK1.5以后引入的。 主要用途…

【JavaScript】JavaScript 程序流程控制 ② ( 循环流程控制 | 循环要素 - 循环体 / 循环终止条件 | for 循环语法结构 )

文章目录 一、JavaScript 程序流程控制 - 循环流程控制1、循环流程控制2、循环要素 - 循环体 / 循环终止条件3、for 循环语法结构 - 循环控制变量 / 循环终止条件 / 操作表达式4、for 循环 完整代码示例 一、JavaScript 程序流程控制 - 循环流程控制 1、循环流程控制 在 程序开…

杰发科技AC7801——Keil编译的Hex大小如何计算

编译结果是Keil里面前三个数据的总和: 即CodeRoDataRWData的总和。 通过ATCLinkTool工具查看内存,发现最后一个字节正好是5328 注意读内存数据时候需要强转成32位,加1000的 增加1024的地址只需要加256即可

关于paper中的一些硬件知识

一. OS中的event Information in event traces from software systems can help developers with performance analysis, debugging and troubleshooting 1.事件的概念 已知软件系统中的event能够帮助开发者对系统进行性能分析、调试以及定位,那我们应该仔细考虑…

Python教程:一文了解Python requests模块

Python 中的 requests 模块是一个简洁而强大的 HTTP 库,用于向 Web 服务器发送 HTTP 请求和处理响应。它让开发者能够更轻松地与网络资源进行交互,包括发送 GET、POST、PUT、DELETE 等类型的请求,并处理返回的数据。 以下是 Python requests…

突破图神经网络技术瓶颈!新阶段3大创新方向大幅提高模型性能

针对传统的图神经网络在处理非结构化数据、捕捉高阶关系等方面的局限性,研究者们提出了众多优化方案。 这其中,超图神经网络、几何图神经网络、动态图神经网络作为GNN发展的前沿方向,不仅提供了更加丰富和灵活的方法来处理各种复杂的图数据&…

什么是物联网嵌入式硬件?有哪些特点和优势?

【前言】本篇为物联网硬件系列学习笔记,分享学习,欢迎评论区交流~ 物联网嵌入式硬件是专为物联网应用而设计的硬件设备。这些设备通常小型化、低功耗,集成了处理器、存储器、传感器、通信模块等功能,使其能够连接并与其他设备进行…

2403d,d的com哪里错了

原文 感谢任意见解.细节: >dmd --version DMD64 D Compiler v2.107.0参考: ComObject类 IUnknown接口 我只使用了ComObject类和隐式继承了IUnknown接口,用用ImportC编译并包含以下内容的comheaders.c编写了一些COM测试代码. #define WINVER 0x0A00 #define _WIN32_WINNT…

【Linux】Linux安装软件---软件包管理器 yum

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.Linux中安装软件 1.1 源代码安装 1.2 rpm包安装 1.3 yum安装 1.3.1 举例 1.3.2 图示yum下载安装 2.Linux系统的生态 如何选…

第9关:请将(S2,J6,P4,200)插入供应情况关系表SPJ

任务描述 请将(S2,J6,P4,200)插入供应情况关系表SPJ 相关知识 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图&…

单片机--数电(2)

组合逻辑电路 根基题目要求设计逻辑电路 组合逻辑电路 由一些逻辑门电路搭建,为实现某些功能的电路 特点 在任意时刻输出只取决于该时刻的输入,与电路原来的状态无关 根据图分析组合逻辑的方法 可以使用multisim的逻辑转换仪 1组合逻辑电路图 2…

CCIE-06-EIGRP_TS

目录 实验条件网络拓朴 路由器基础配置开始排错, 要求R14访问R11的lo0时负载均衡1. K值不匹配2. R14和R13邻居关系没有起来,3. 继续排查邻居关系,R13和R11关系没有起来4. R13的R11邻居关系起来又关闭,关闭又起来(认证信…