基本环境安装: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_engine
和chatglm_hf
文件夹:
这时候, 我们把上面生成好的引擎和配置文件复制到chatglm_engine
文件夹中:
把我们下载的E:\chatglm3_6b_32k
文件夹中的config.json
, tokenization_chatglm.py
, tokenizer.model
和tokenizer_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点, 那么我想问问它
我总是失眠,如何让我快速入睡