首页 > 系统相关 >记Linux跑ChatGLM2的坑及低显存解决办法

记Linux跑ChatGLM2的坑及低显存解决办法

时间:2023-12-17 18:13:00浏览次数:24  
标签:显存 ln ChatGLM2 so https Linux com

记录一下踩过的

0. 环境配置:

全程国内网 Ubuntu 20.04 with Python 3.8 and CUDA 12.2

RTX3060 Laptop (6G)

1. ChatGLM的下载:

# clone 仓库
git clone https://gitclone.com/github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip3 install -r requirements.txt #pip加速自行百度
export HF_ENDPOINT=https://hf-mirror.com #模型下载镜像加速

2. CUDA安装自行百度,安装后需要手动软链接一些库,具体如下:

cd /usr/local/cuda/lib64
ln -s libcudart.so.12 libcudart.so
ln -s libcublasLt.so.12 libcublasLt.so
ln -s libcublas.so.12 libcublas.so
ln -s /usr/lib/x86_64-linux-gnu/libcuda.so .

3. 修改模型加载逻辑,因为3060的内存只有6G,不足以加载模型,将AutoModel一行修改如下:

model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4", trust_remote_code=True, max_memory={0: "6GiB",  "cpu": "10GiB"})

之后就可以很流畅的加载模型了,显存消耗在4G左右。

4. cli_demo.py里的退出是输入stop,不要再Ctrl+C了!

 

本文来自博客园,作者:星如雨yu,转载请注明原文链接:https://www.cnblogs.com/tianpanyu/p/17909478.html

标签:显存,ln,ChatGLM2,so,https,Linux,com
From: https://www.cnblogs.com/tianpanyu/p/17909478.html

相关文章

  • linux 进程间通信 --- 共享内存(POSIX 版本)
    POSIX进程间通信POSIX进程间通信(InterprocessCommunication,IPC)是SystemV进程间通信的变体。它是在Solaris7发行版中引入的。与SystemV对象类似,POSIXIPC对象的属主、属主的组以及其他用户具有读取和写入权限,但是没有执行权限。POSIXIPC对象的属主无法将对象......
  • linux查找文件
    linux查找文件常用的有find和whereis两种方式.find适用于复杂的查询,指定目录和文件名,通常可以找到你想要的文件.不要指定从根目录开始找,与其这样不如先推测一下这个文件可能在什么地方.whereis通常用来定位二进制文件,帮助文件,源码文件,默认情况下是在包管理......
  • linux网络调试
    网络调试一、网络调试命令ping:用于测试与另一个网络设备的连通性。traceroute(或tracert在Windows上):**显示数据包从你的计算机到目标地址的路径。netstat:显示网络状态,包括打开的端口和连接信息。nslookup(或dig):**查询域名服务器,获取特定域名的IP地址。ifconf......
  • 性能测试复习准备——linux环境下——常用命令简记
       firewalldfirewall-cmd常用命令网址:https://www.cnblogs.com/klvchen/p/10063875.html#开启防火墙systemctlstartfirewalld.service#防火墙开机启动systemctlenablefirewalld.service#关闭防火墙systemctlstopfirewalld.service#查看防火墙状态......
  • linux的账号和组
    1.1用户标识符:UID,GID虽然我们登陆Linux主机的时候输入的是账号,但其实Linux主机并不会直接认识你的账号名称,账号只是为了方便人。一个文件如何判断他的拥有者ID和拥有组ID呢?其实,就是利用UID和GID。每个文件都会有所谓的GID和UID。当我们需要显示文件实行的需求的时候,系统会根......
  • linux-用户账号和用户组
    1.1用户标识符:UID,GID虽然我们登陆Linux主机的时候输入的是账号,但其实Linux主机并不会直接认识你的账号名称,账号只是为了方便人。一个文件如何判断他的拥有者ID和拥有组ID呢?其实,就是利用UID和GID。每个文件都会有所谓的GID和UID。当我们需要显示文件实行的需求的时候,系统会根......
  • linux c 编程 --- 协程
    什么是协程协程(Coroutines)是一种比线程更加轻量级的存在,协程可以理解为一个特殊的函数,这个函数可以在某个地方挂起去执行别的函数,并且可以返回挂起处继续执行。一个线程内可以由多个协程来交互运行,但是多个协程的运行是绝对串行的,也就是说同一时刻只有一个协程在运行,当一个协程......
  • linux---ncdu
    linux---ncduncdu,NCursesDiskUsage,一个可交互的文件夹占用空间统计工具,NCurses版本的du。官网:https://dev.yorhel.nl/ncdugithub地址:https://github.com/rofl0r/ncduubuntu安装:sudoaptinstallncdu左右箭头可以切换上下级目录,q键退出。信息来源:https://www.......
  • Linux配置DHCP服务
    一、DHCP简介DHCP(动态主机配置协议,Dynamic Host Configuration Protocol)是一种网络管理协议,主要用于简化IP地址的分配和管理。它在局域网中广泛应用,旨在为内部网络主机自动分配IP地址,以及为网络管理员提供集中管理手段。DHCP的主要作用和优点:集中管理:DHCP允许网络管理员集中......
  • Kali Linux:从入门到掌握局域网攻击 (nmap)
    kaliLinux中使用nmap。使用nmap的之一步是登录KaliLinux,如果需要,就启动一个图形会话(本系列的之一篇文章安装了KaliLinux的Enlightenment桌面环境)。在烂毕安装过程中,安装程序将提示用户输入用来登录的“root”用户和密码。一旦登录到KaliLinux机器,使用慧历备命令s......