本地部署jittorLLMs实现chatglm-6b模型处理

最近一直在研究本地部署语言模型,试过wenda和jittorLLMs,最终因电脑配置过低选择jittorLLMs,以下是个人实用上的感觉体验。

电脑配置:惠普暗影精灵5,CPU(I5-9300H),内存32G,显卡RTX2060-6g显存

【wenda】

优点:部署容易,本地知识库可以一键添加txt等资料(提问时如果开启知识库功能,AI会优先从知识库中找相关内容拼接成流畅的语言回复,实际使用过程不太理想;一方面对资料的结构和资料的内容很挑,导入的资料最好具有结构性、系统性,最好不要导入逻辑判断、数学公式类资料,个人感觉本地知识库比较适合导入死记硬背类的资料,随便导入乱七八糟的资料会严重影响AI回答准确度及质量;另一方面个人感觉开启本地知识库后由于本地知识库毕竟比不上真正的“训练模型”,过杂的资料通过本地知识库导入后甚至还可能影响AI的认知及回答问题的质量;此外AI在回答问题时如果开启本地知识库很可能会出现答非所问的情况,同时AI对本地知识库内的资料并不会像理想中那样问什么都能索引找到,往往会出现问的一个问题AI能在资料内找到但回答的问题是胡乱回答且不具备参考意义的境况。故本地知识库使用了一段时间后决定自行停用掉)

缺点:chatglm不支持像jittorLLMs一样同时使用显存和内存进行运算,chatglm只能够使用gpu/cpu进行计算,由于我的电脑配置实在过低,往往几轮对话后显存爆掉,同时提复杂问题也会显存爆掉

【jittorLLMs】

优点:支持同时使用显存和内存进行运算,同时可以自行设置内存显存使用上限,当显存或内存快用完时,不会出现程序崩溃终止对话的情况,使用较稳定。

缺点:

1.回复速度慢,正因为jittorLLMs降低了机器使用门槛,显存内存用完了程序也不会崩溃终止,自然AI回复速度慢了很多,实测我的配置AI回复简单问题需要3-5分钟左右,回复复杂问题根据情况可能30分钟以上。

2.部署对我这种纯python萌新来说难度有些大,总共花了1天1夜时间进行部署,期间遇到无数bug,终于没有bug调试成功后也遇到了隐藏的彩蛋(webdemo输出的网址在项目内全部是0.0.0.0,打开网页失败,萌新的我花了半个多小时磕磕盼盼百度必应终于找到了解决办法)

再说一说CHATRWKV和CHATGLM的对比吧,这两个模型我都跑过,个人感觉RWKV不太擅长做数学、逻辑判断题,问过好几次RWKV回答都错了(但是还能头头是道的死鸭子嘴硬讲它是对的和为什么对),CHATGLM相比不那么呆板,在连续对话上失忆次数也会比RWKV少很多,RWKV相比GLM来说可以自定义CPU和GPU一起运算,性能方面也比GLM要好上一些 。

最后回归正题,以下是我在windows上本地部署jittorLLMs的步骤以及踩得坑,留下记录希望能帮到大家,让我们为共同提高互联网高质量回答一起努力吧,如果能帮到你请一定要评论告诉我0.0

【安装步骤】
1、更新显卡驱动

@注意:要安装的Cuda必须小于等于NVIDIA控制面板的cuda版本号(但不能小太多)
3、安装cuda。鼠标右键打开NVIDIA控制面板
4、左下角查看”系统信息“,”组件“中查看”NVCUDA64.DLL”版本号,前往英伟达官网下载NVIDIA GPU Computing Toolkit并安装
网址:https://developer.nvidia.com/cuda-toolkit-archive
5、 win+R,输入cmd,输入nvcc --version查看版本号,输入set cuda查看设置的环境变量

6、安装cuDnn。 
下载地址如下,下载之前需要注册一下
https://developer.nvidia.com/rdp/cudnn-download
7、根据cuda版本在官网选择核实的cudnn下载站安装
8、解压cuda压缩包,将压缩包内所有“文件夹”拷贝至cuda安装目录,默认安装目录如下:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1
9、添加环境变量如下:
# 添加系统变量

变量名
    CUDA_PATH_V12_1
变量值
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1

变量名
    CUDA_PATH
变量值
    %CUDA_PATH_V12_1%

变量名
    Path
变量值
    %CUDA_PATH%\bin
    %CUDA_PATH%\include
    %CUDA_PATH%\lib
    %CUDA_PATH%\libnvvp
10、验证:
win+R cmd进入安装目录下(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1),再进入到 extras\demo_suite下,执行.\bandwidthTest.exe和.\deviceQuery.exe
分别显示例如以下提示即为成功:
{
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: NVIDIA GeForce RTX 2060
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     6334.2

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     6436.3

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     243777.6

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
}
{
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.1, CUDA Runtime Version = 12.1, NumDevs = 1, Device0 = NVIDIA GeForce RTX 2060
Result = PASS
}

10、安装GPU版的torch
进入以下网址选择符合自己电脑cuda版本的选项Start Locally | PyTorch):https://pytorch.org/get-started/locally/#no-cuda-1
Package选择:pig
  a、复制选择后生成的网址(选择稳定版),例如:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
  b、复制在终端输入等待下载即可

验证,python执行以下指令如果输出true,则成功:
      import torch
      torch.cuda.is_available()


11、安装python 3.8.1,运行python安装包一键安装

12、安装开发环境PyCharm(非常好用)

13、解压源代码

14、打开项目

15、根据项目中的requirements.txt安装项目所需插件,“requirements.txt”内提供了项目运行所需要的所有插件
可执行指令一次性安装:pip install -r requirements.txt -i 

【python使用日常心得】
@尽量不要用ide自带的可视化进行操作,容易出问题

卸载软件包:pip uninstall <package_name>

查看已安装的软件包版本:pip list

安装软件包:pip install package_name

【BUG处理】
python编译器选择:python为了保护“源python”的文件纯净性,会为每个项目基于“源python”单独镜像一个“python”单独针对该项目进行编译,故导入每个项目后首先应选择python为该项目单独创建的“镜像python”

如运行项目时提示某组件依赖问题:1.先尝试更新该模组  2.卸载该模组后重新安装  3.重启电脑

如运行项目时提示找不到某文件,项目无法执行:1.先尝试更新该文件  2.卸载该文件后重新安装  3.重启电脑  4.找到该文件所在文件夹,如该文件存在,将该文件备份后删除(这个情况可能是因为”cuda、cudn“安装后文件存于”源python文件夹内,当项目运行时,“源python”会将项目所需的所有相关文件复制到项目内的“镜像python”目录中,这个复制过程中因为某些原因导致出现了错误)

项目运行后URL:http://0.0.0.0:51234,无法访问:直接全局搜索0.0.0.0,选择任意一个“0.0.0.0”进行编辑,,将其改替换为localhost(这可能是一个彩蛋)


【chatglm使用心得】
Maximum length 参数:
通常用于限制输入序列的最大长度,因为 ChatGLM-6B 是2048长度推理的,一般这个保持默认就行
太大可能会导致性能下降

Top P 参数:
Top P 参数是指在生成文本等任务中,选择可能性最高的前P个词的概率累加和。这个参数被称为Top P,也称为Nucleus Sampling。
例如,如果将Top P参数设置为0.7,那么模型会选择可能性排名超过70%的词进行采样。这样可以保证生成的文本准确性较高,但可能会缺乏多样性。相反,如果将Top P参数设置为0.3,则会选择可能性超过30%的词进行采样,这可能会导致生成文本的准确性下降,但能够更好地增加多样性

Temperature 参数:
Temperature参数通常用于调整softmax函数的输出,用于增加或减少模型对不同类别的置信度。
具体来说,softmax函数将模型对每个类别的预测转换为概率分布。Temperature参数可以看作是一个缩放因子,它可以增加或减少softmax函数输出中每个类别的置信度。
比如将 Temperature 设置为 0.05 和 0.95 的主要区别在于,T=0.05 会使得模型更加自信,更加倾向于选择概率最大的类别作为输出,而 T=0.95 会使得模型更加不确定,更加倾向于输出多个类别的概率值较大。
 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值