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

news2024/11/23 18:58:39

基本环境安装: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.coloradmin.cn/o/1531925.html

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

相关文章

目标检测---IOU计算详细解读(IoU、GIoU、DIoU、CIoU、EIOU、Focal-EIOU、SIOU、WIOU)

常见IoU解读与代码实现 一、✒️IoU(Intersection over Union)1.1 🔥IoU原理☀️ 优点⚡️缺点 1.2 🔥IoU计算1.3 📌IoU代码实现 二、✒️GIoU(Generalized IoU)2.1 GIoU原理☀️优点⚡️缺点 2…

WT32-ETH02 plus 串口转以太网开发,WT32-ETH01网关开发板升级款!

广受欢迎的WT32-ETH01网关开发板迎来了升级。 就是这款启明云端新推出的嵌入式串口转以太网开发板——WT32-ETH02 plus。应广大客户的需求,在WT32-ETH01的基础上增加了POE供电,可广泛应用于智能家居和网关等应用。开发板搭载2.4GHz Wi-Fi和蓝牙双模的SO…

plasmo开发浏览器插件MAIN模式的content脚本和普通模式content脚本通讯方案

plasmo是一个很棒的开发浏览器插件的框架,可以使用react和vue等语言开发,也是目前github上star数量最多的开发浏览器插件的框架。 github仓库地址:GitHub - PlasmoHQ/plasmo: 🧩 The Browser Extension Framework 官网地址&…

idea找不到或无法加载主类

前言 今天在运行项目的时候突然出了这样一个错误:IDEA 错误 找不到或无法加载主类,相信只要是用过IDEA的朋友都 遇到过它吧,但是每次遇到都是一顿焦头烂额、抓耳挠腮、急赤白咧!咋整呢?听我给你吹~ 瞧我这张嘴~ 问题报错 找不…

高精度电子秤资料教程分享

高精度电子秤资料教程分享 资料下载地址: 高精度电子秤资料教程: https://url83.ctfile.com/d/45573183-60459202-c325be?p7526 (访问密码: 7526)

小白学视觉 | 超详细!Python中 pip 常用命令

本文来源公众号“小白学视觉”,仅用于学术分享,侵权删,干货满满。 原文链接:超详细!Python中 pip 常用命令 相信对于大多数熟悉Python的人来说,一定都听说并且使用过pip这个工具,但是对它的了…

基于Springboot的在线装修管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的在线装修管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

python爬虫基础实验:通过DBLP数据库获取数据挖掘顶会KDD在2023年的论文收录和相关作者信息

Task1 读取网站主页整个页面的 html 内容并解码为文本串(可使用urllib.request的相应方法),将其以UTF-8编码格式写入page.txt文件。 Code1 import urllib.requestwith urllib.request.urlopen(https://dblp.dagstuhl.de/db/conf/kdd/kdd202…

数据结构从入门到精通——直接选择排序

直接选择排序 前言一、选择排序的基本思想:二、直接选择排序三、直接选择排序的特性总结:四、直接选择排序的动画展示五、直接选择排序的代码展示test.c 六、直接选择排序的优化test.c 前言 直接选择排序是一种简单的排序算法。它的工作原理是每一次从未…

kafka集群介绍及搭建

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统,特点在于实时处理数据。集群由多个成员节点broker组成,每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成,真正的消息是value,key是标识路…

Springboot+vue的船舶维保管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的船舶维保管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&#xff09…

第二证券|比特币重拾升势 新高背后风险涌动

近期价格连涨的比特币再度创出新高。金融出资报记者注意到,3月13日,在改写2021年11月69000美元纪录的基础上,比特币价格首次打破73000美元关口,创下73678.5美元的历史新高。 检查近日社交平台话题可见,“比特币站上73…

【明道云】如何自动将一笔记录拆分成多比并插入数据库

【背景】 用户录入包含开始日期和结束日期的交易数据,希望系统最终能够给出精确到日次的利润统计图表。 【分析】 颗粒度细化到日次,意味着需要在追加期间交易数据时能够自动拆分为日次颗粒度存储在用于统计的子表中。 这就涉及如何构建数据结构&…

JMeter 二次开发之环境准备

通过JMeter二次开发,可以充分发挥JMeter的潜力,定制化和扩展工具的能力以满足具体需求。无论是开发自定义插件、函数二次开发还是定制UI,深入学习和掌握JMeter的二次开发技术,将为接口功能测试/接口性能测试工作带来更多的便利和效…

win提权第二弹服务提权

阅读须知: 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或者间接的后果及损失,均由使用者 本人负责,作者不为此承担任何责任,如…

2352.相等行列对

题目:给一个下标从0开始、大小为n x n的整数矩阵grid,返回满足Ri 行和 Cj 列相等的行列对(Ri,Cj)的数目。 如果行和列以相同的顺序包含相同的元素(即相等的数组),则认为二者是相等的。 解题思路…

信息收集:端口扫描原理,端口扫描分类,端口扫描工具,手动判断操作系统,操作系统识别工具

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《网络安全自学教程》 端口&系统版本 一、端口扫描1、telnet2、Nmap3、Masscan4、端口扫描原…

【考研数学】《1800》如何衔接《660》/《880》?

基础题做完,不要急着强化 首先做一个复盘,1800基础的正确率如何,如果70%以下的话,从错题入手,把掌握不扎实的地方再进行巩固,否则接下来做题的话效率会很低。 接下来考虑习题衔接的问题。 关于线代复习的…

视频素材库排行榜前六名,推荐大家收藏

大家好!今天我要给大家带来的是视频素材库排行榜前十名,让你的视频创作更加别出心裁! 蛙学网在视频素材库排行榜中,蛙学网绝对是值得使用的。这里有大量的高质量视频素材,涵盖了各种风格和主题,特别是对于展…

一文读懂什么是序列 (sequence)

sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素。 我们之前所说的基本数据类型,都…