当前位置: 首页 > news >正文

深圳专业网站建设公司排名软文发布系统

深圳专业网站建设公司排名,软文发布系统,自建网站管理,建设工程东莞网站建设技术支持大家好,我是微学AI,今天教你们本地CPU环境部署清华大ChatGLM-6B模型,利用量化模型,每个人都能跑动大模型。ChatGLM-6B是一款出色的中英双语对话模型,拥有超过62亿个参数,可高效地处理日常对话场景。与GLM-1…

大家好,我是微学AI,今天教你们本地CPU环境部署清华大ChatGLM-6B模型,利用量化模型,每个人都能跑动大模型。ChatGLM-6B是一款出色的中英双语对话模型,拥有超过62亿个参数,可高效地处理日常对话场景。与GLM-130B模型相比,ChatGLM-6B在对话场景处理能力方面表现更加卓越。此外,在使用体验方面,ChatGLM-6B采用了模型量化技术和本地部署技术,为用户提供更加便利和灵活的使用方式。值得一提的是,该模型还能够在单张消费级显卡上顺畅运行,速度较快,是一款非常实用的对话模型。

ChatGLM-6B是清华开发的中文对话大模型的小参数量版本,目前已经开源了,可以单卡部署在个人电脑上,利用 INT4 量化还可以最低部署到 6G 显存的电脑上,在 CPU 也可以运行起来的。

项目地址:mirrors / THUDM / chatglm-6b · GitCode

第1步:下载:

git clone https://gitcode.net/mirrors/THUDM/chatglm-6b.git

第2步:进入ChatGLM-6B-main目录下,安装相关依赖

pip install -r requirements.txt

其中 torch安装CPU版本即可。

第3步:打开ChatGLM-6B-main目录的web_demo.py文件,源代码:

from transformers import AutoModel, AutoTokenizer
import gradio as gr
import mdtex2htmltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()

这个是在GPU版本下的代码,现在改为CPU版本下的代码:

from transformers import AutoModel, AutoTokenizer
import gradio as gr
import mdtex2htmltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True).float()
model = model.eval()

模型下载改成THUDM/chatglm-6b-int4,也就是int4量化版本。模型量化到int4是一种将神经网络模型中的参数从浮点数格式调整为4位精度的整数格式的技术,可以显著提高硬件设备的效率和速度,并且适用于需要在低功耗设备上运行的场景。

INT4量化的预训练文件下载地址:https://huggingface.co/THUDM/chatglm-6b-int4/tree/main

 第4步:kernel的编译

CPU版本的安装还需要安装好C/C++的编译环境。这里大家可以安装TDM-GCC。

下载地址:https://jmeubank.github.io/tdm-gcc/,大家选择选取TDM-GCC 10.3.0 release下载安装。特别注意:安装的时候在选项gcc选项下方,勾选openmp,这个很重要,踩过坑,直接安装的话后续会报错。

 安装完在cmd中运行”gcc -v”测试是否成功即可。

安装gcc的目的是为了编译c++文件,quantization_kernels.cquantization_kernels_parallel.c

 quantization_kernels.c文件:

void compress_int4_weight(void *weight, void *out, int n, int m)
{for(int i=0;i<n*m;i++){(*(unsigned char*)(out)) = ((*(unsigned char*)(weight)) << 4);weight += sizeof(char);(*(unsigned char*)(out)) |= ((*(unsigned char*)(weight)) & 15);weight += sizeof(char);out += sizeof(char);}
}void extract_int8_weight_to_float(void *weight, void *scale_list, void *out, int n, int m)
{for(int i=0;i<n;i++)for(int j=0;j<m;j++)(*(float*)(out + sizeof(float) * (i * m + j))) = (*(float*)(scale_list + sizeof(float) * i)) * (*(char*)(weight + sizeof(char) * (i * m + j)));
}void extract_int4_weight_to_float(void *weight, void *scale_list, void *out, int n, int m)
{for(int i=0;i<n;i++){for(int j=0;j<m;j++){(*(float*)(out)) = (*(float*)(scale_list)) * ((*(char*)(weight)) >> 4);out += sizeof(float);(*(float*)(out)) = (*(float*)(scale_list)) * (((char)((*(unsigned char*)(weight)) << 4))>> 4);out += sizeof(float);weight += sizeof(char);}scale_list += sizeof(float);}
}

以上C++程序对于每个8位的输入权重值,都会被压缩成一个4位的输出权重值,并存储到指定的输出数组中。这种权重量化方式可以有效减小模型的内存占用,提高模型的推理速度。

 第5步:运行web_demo.py文件

注意如果大家在运行中遇到了错误提示,说明两个文件编译出问题。我们可以手动去编译这两个文件:即在上面下载的D:..\chatglm-6b-int4本地目录下进入cmd,运行两个编译命令:

gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels.c -shared -o quantization_kernels.so
gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels_parallel.c -shared -o quantization_kernels_parallel.so

没有报错说明运行成功,目录下看到下面两个新的文件:quantization_kernels_parallel.soquantization_kernels.so。说明编译成功,后面我们手动载入,这里要多加一行代码

model = model.quantize(bits=4, kernel_file="D:..\\chatglm-6b-int4\\quantization_kernels.so")

如果原来代码没有错可以去掉这行。

 第6步:web_demo.py文件运行成功

 出现地址就大功告成了。

 第7步:测试问题

1.鲁迅和周树人是同一个人吗?

ChatGLM的结果:

 ChatGPT的结果:

 2.树上9只鸟,用枪打掉1只,还剩几只?

ChatGLM的结果:

 ChatGPT的结果:

ChatGLM在某些中文问题和常识问题上超过ChatGPT,但是总体上是不如ChatGPT,他在总结任务上,代码编写上不如ChatGPT,总体达到ChatGPT的80%左右,可以做简单的任务。

http://www.khdw.cn/news/11237.html

相关文章:

  • 阿里云 wordpress hexoseo主管招聘
  • 铁哥们网站建设seo内部优化方案
  • 武汉参开网络网站建设公司百度关键词分析工具
  • 上海市中小企业服务云网站优化工具
  • 网站建设用哪种语言最好b站免费版入口
  • 网站开发日志周志网络营销的八大职能
  • 网站开发h5技术网络营销ppt讲解
  • win7下asp网站搭建seo优化培训课程
  • 专业全网推广建站公司手机优化大师下载安装
  • cs5怎么做网站电脑培训班附近有吗
  • 新疆网站开发域名解析查询站长工具
  • 郑州网站建设 个人工作室优化大师绿色版
  • h5和网站的区别如何免费制作网站
  • 网站有什么功能合肥网站关键词排名
  • 淘宝刷单网站制作怎样注册网站
  • 濮阳建设银行官方网站关键词数据分析工具有哪些
  • 培训行业门户网站建设方案汕头seo代理商
  • 用html5做的简单的网站百度关键词优化系统
  • 石家庄网络公司哪家靠谱seo怎么优化
  • 南昌建设局网站查询塔吊证脚本外链生成工具
  • 南昌哪里有网站建设百度销售岗位怎么样
  • 做网站的条件seo网站推广培训
  • 廊坊市网站推广深圳seo优化公司哪家好
  • 自己做的网站如何让百度收录百合seo培训
  • 做计量检定的网站天津seo外包团队
  • 各大搜索引擎提交网站入口大全seo优化在线
  • 企业 官网网络营销中的seo与sem
  • seo 网站title世界杯比分
  • 做网站用什么工具郑州seo课程
  • 做行政关注什么类型的网站百度统计网站