本地CPU部署运行ChatGLM2-6B模型

news2025/1/13 3:10:57

1、前期准备:
   需要下载模型文件

2、部署过程及碰到的问题
(1)编译安装python 3.8.13 (Asianux release 7.6.18 gcc 4.8.5)
按运行的要求需要安装torch的>=2.0,因此安装了torch的2.0.1,该版本的torch    依赖的glibc的版本至少是2.28,而当前操作系统的版本号是2.17。
通过strings libtorch_cpu.so|grep GLIBC_  可以看到该so文件到底依赖的glibc的版本。

(2)升级glibc
 编译glibc2.28,发现gcc4.8.5版本太老,需要先升级gcc的版本,就升级了gcc的版本到5.4.0:

升级gcc的方法:
https://blog.csdn.net/CN_Maxwell/article/details/99302888

重新编译了glibc2.28,但是发现libc-2.28.so
配入系统环境变量后,系统的各种命令用不了了,通过如下方式实现了libc库的恢复:
export LD_PRELOAD="/lib64/libc-2.17.so"
https://blog.csdn.net/zhangpeterx/article/details/96149932
https://blog.csdn.net/carefree2005/article/details/117559312

(3)通过patchelf工具对torch的libtorch_cpu.so文件的动态链接路径进行的修改
直接下载了编译好的patchelf-0.18.0不能用,修改后so文件变成了不是动态执行的文件,因此需要编译安装。
a、通过patchelf对so文件进行修改动态链接
https://blog.csdn.net/zdy0_2004/article/details/104574224
b、linux使用patchelf工具:
https://blog.csdn.net/juluwangriyue/article/details/108617283
c、编译安装patchelf过程,出现了"__strtof128_nan@GLIBC_PRIVATE" 未定义的引用:
原因:/usr/lib64目录下的libm.so和libc.so的版本不一致,让两者的版本一致就可以解决。
patchelf的相关说明手册:
https://blog.adafruit.com/2021/05/12/patchelf-a-simple-utility-for-modifying-existing-elf-executables-and-libraries/

d、编译安装patchelf之后,可以把/lib64/libc.so.6替换成编译安装的高版本的libc.so执行之后依然报错ld动态链接的“__dl_create_exception”@GLIBC_PRIVATE问题,patchelf 通过--set-interperter 试图修改链接器,发现动态连接器static linked,无法修改。
(4)问题追踪到此,发觉自己升级glibc和操作系统kernel有兼容性的问题,因此果断进行了操作系统的重装,从7.6.18升级到了8.5.0,glibc2.28,至此基础环境问题解决。

3、运行耗的资源
   (1)机器配置:96 cores的逻辑核(物理核8个,Intel(R) Xeon(R) CPU 2.1G),内存128G
   操作系统版本:Asianux Linux release 8.5.0   
kernel 4.18.0-372.13.2.axs8.x86_64
   模型总大小:7个模型文件共11G
   在cpu上执行:   
加载模型:耗用16s
加载模型耗用内存:26.5G
推理过程耗用CPU:50cores

4、运行的例子:
问题1:红楼梦讲述的是一个什么样的故事?

 

问题2:巴塞尔资本法涉及哪些内容?

 

问题3:帮我生成一段查询数据库的sql语句?

 


torch的安装有cpu版和gpu版两种情况,对于cpu运行的模型需要将推理的cuda函数继续调整。
https://www.tjsky.net/tutorial/701

总结:(1)在python3.8.13上,安装完了torch后,可以先将python的安装目录进行备份,相当于快照放在其他机器上使用,不用老是从源码编译安装
(2)gcc8.5.0编译安装python3.8.13会出现:a、fatal error: ffi.h: No such file or directory问题的解决;b、Linux安装python3.8时,编译过程中报错Could not build the ssl module!和zipimport.ZipImportError: can't decompress data; zlib not available,需要安装zlibc zlib1g-dev,配置yum源就可以安装。
https://blog.csdn.net/Aidam_Bo/article/details/112919330


 

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

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

相关文章

简析SCTP开发指南

目录 前言一、SCTP基本概念二、SCTP开发步骤1. **环境配置**:2. **建立Socket**:3. **绑定和监听**:4. **接收和发送数据**:5. **关闭连接**: 三、 C语言实现SCTP3.1SCTP客户端代码:3.2 SCTP服务器端代码&a…

关于伪装UserAgent知识总结

关于伪装UserAgent知识总结,可以根据自己实际应用环境去选择合适的节点,加入相应的代码即可: 1. 不缓存数据,不使用ssl 验证 from fake_useragent import UserAgentua UserAgent(verify_sslFalse,use_cache_serverFalse)2. 禁用…

C. Another Array Problem

思路:这个题没想到吧数先往0上搞,然后一直想不出来,为什么要先往0上搞呢,对于每个数来说,它最大只会变成这一堆数的最大值,所以我们考虑能不能变成最大值,那么只要是两个相等的数通过一次操作就…

智能安全帽_防抖视频定位智能安全帽头盔

智能安全帽具备出色的性能、超低功耗、广范围覆盖和简单的外围电路等优势,同时还拥有丰富的外部接口。它支持移动/联通/电信的4G5G网络,涵盖了LTE-TDD频段(B34/B38/B39/B40/B41)、LTE-FDD频段(B1/B3/B5/B8)、WCDMA频段(B1/B5/B8)、TD-SCDMA频段(B34/B39)…

【数据分析】客户分析行为分析

下面列举了几种客户行为分析模型。 1 5W2H (1)WHAT——是什么,目的是什么,做什么工作。 (2)WHY——为什么要做,可不可以不做,有没有替代方案。 (3)WHO——…

Android相机-架构

引言: 主要是针对CameraAPI v2 HAL3的架构对Android相机系统进行梳理。 相机架构 App和FrameWork packages/apps/Camer2 frameworks/ex/camera2 Camera API v2;Camera2 CameraDevice: CameraCaptureSession: CameraService AIDL…

Tan Junming 太帅,AK IOI!

tanjunming是一个非常帅气的人。他拥有一双明亮的眼睛,透露出聪明和热情的光芒。他的笑容温暖而迷人,总能让人感到快乐和舒适。他的面容线条清晰,轮廓深邃,展现出他的自信和坚定。他的皮肤光滑细腻,散发出健康和活力的…

Mybatis:xml配置和基本增删改查

目录 一、环境配置(environments) 1.事务管理器(transactionManager) 2.数据源(dataSource) 3.属性(property) 4.设置(settings) 5.类型别名&#xff0…

科研论文配图绘制指南——基于Python—第二章1.matplotlib

目录 第二章2.0 安装所需的环境2.1 Matplotlib2.1.1 图形元素2.1.2 图层顺序2.1.5 子图绘制2.1.7 结果保存 第二章 2.0 安装所需的环境 attrs23.1.0 certifi2023.7.22 click8.1.6 click-plugins1.1.1 cligj0.7.2 colorama0.4.6 cycler0.11.0 Fiona1.9.4.post1 geopandas0.13.…

算法随笔:强连通分量

概念和性质: 强连通:在有向图G中,如果两个点u和v是互相可达的,即从u出发可以到达v,从v出发也可以到达u,则成u和v是强连通的。 强连通分量:如果一个有向图G不是强连通图,那么可以把它…

适用于vue3中图片全屏展示

App中的代码片段 <style scoped> .container {background: url("./assets/back2.jpg");height: 100%;width: 100%;position: fixed;background-size: 100% 100%; } </style>

vue与vueComponent的关系

创建完组件之后 就会创建一个vueComponent构造函数 当注册成功这个组件并且在页面使用之后 就会创建一个vueComponent实例对象&#xff0c; 所以为了避免组件在使用过程中data对象中的值混乱 组件中的data要写成函数&#xff0c; 使得每次创建的组件实例对象都可以返回一…

【ESD专题】电池包打ESD时的电流走向分析及防护指南

一个典型的电池包,包含了电芯、保护芯片(或电量计)、及周边的元件(如检测电阻、MOS管)、连接器等。 如下所示为高侧MOS电量计方案:在电量计(BMU)周边,有电芯、 保护 MOSFET、 电流检测电阻、 连接器等。在电量计左边的 RC 滤波电路是代表多个 RC 滤波电路,用于监控多…

Java项目-苍穹外卖-Day05

主要是写代码 完成套餐功能 和之前那个菜品类似 这里我懒得贴我的代码了 写一下改的几个bug 1.修改菜品关联套餐的时候&#xff0c;对应的菜品关联数据要setSetmealId一下&#xff0c;因为接收数据是赋不到那个关联的ID值的&#xff0c;如果不设置新增的话对应的setmealID就会为…

node安装node-sass依赖失败(版本不一致)

1.官网对应node版本 https://www.npmjs.com/package/node-sass2.node-sass版本对应表

Redis数据结构之List

Redis 中列表&#xff08;List&#xff09;类型是用来存储多个有序的字符串&#xff0c;列表中的每个字符串成为元素 Eelement&#xff09;&#xff0c;一个列表最多可以存储 2^32-1 个元素。 在 Redis 中&#xff0c;可以对列表两端插入&#xff08;push&#xff09;和弹出&am…

Matlab绘制灰度直方图

直方图是根据灰图像绘制的&#xff0c;而不是彩色图像通。查看图像直方图时候&#xff0c;需要先确定图片是否为灰度图&#xff0c;使用MATLAB2019查看图片是否是灰度图片&#xff0c;在读取图片后在MATLAB界面的工作区会显示读取的图像矩阵&#xff0c;如果是&#xff0c;那么…

DBO优化TCN的电力负荷预测,附MATLAB代码

今天为大家带来一期基于DBO-TCN的电力负荷预测。不得不说&#xff0c;TCN在时序数据中的预测效果在一定程度上要优于LSTM。 原理详解 文章对TCN网络的五个参数进行优化&#xff0c;分别是&#xff1a; 正则化参数&#xff0c;学习率&#xff0c;滤波器个数&#xff0c;滤波器大…

(二)k8s实战-深入Pod详解

一、配置文件详解 创建Pod nginx样例 apiVersion: v1 # api文档版本 kind: Pod # 资源对象类型&#xff0c;Pod, Deployment,StatefulSet metadata: # Pod相关的元数据&#xff0c;用于描述Pod的数据name: nginx-demo # Pod的名称labels: # 定义Pod的标签type: app # 自定义l…

SpringBoot 跨域问题和解决方法

Spring Boot 是一种用于构建独立的、生产级别的Java应用程序的框架。在开发Web应用程序时&#xff0c;经常会遇到跨域资源共享&#xff08;CORS&#xff09;问题。本文将详细介绍Spring Boot中的跨域问题以及相应的解决方法。 目录 什么是跨域&#xff1f;1. 使用Spring Boot…