搜索
首页科技周边人工智能折腾ChatGLM的几个避坑小技巧

我昨天说从数据技术嘉年华回来后就部署了一套ChatGLM,准备研究利用大语言模型训练数据库运维知识库,很多朋友不大相信,说老白你都这把年纪了,还能自己去折腾这些东西?为了打消这些朋友的疑虑,我今天把这两天折腾ChatGLM的过程分享给大家,也为有兴趣折腾一下ChatGLM的朋友讲一下避坑的一些技巧。

ChatGLM-6B是基于清华大学 KEG 实验室与智谱 AI 于2023年联合训练的语言模型 GLM 开发而成,是一个大型的语言模型,其针对用户的问题和要求提供适当的答复和支持。上面的回答是ChatGLM自己回答的,GLM-6B是一个开源的62亿参数的预训练模型,其特点是可以在比较小的硬件环境下本地运行。这一特性可以让基于大语言模型的应用可以走进千家万户。KEG实验室的目的是要让更大的GLM-130B模型(1300亿参数,与GPT-3.5相当)能够在一个8路RTX 3090的低端环境中完成训练。

折腾ChatGLM的几个避坑小技巧

如果这个目标真的能实现,那么对想基于大语言模型做一些应用的人来说绝对是一个福音。目前的ChatGLP-6B的FP16模型大约13G多一点,INT-4量化模型不到4GB,完全可以在一块6GB显存的RTX 3060TI上运行。

折腾ChatGLM的几个避坑小技巧

在部署前我不太了解这些情况,因此买了一块不上不下的12GB的RTX 3060,于是完成安装部署后仍然无法运行FP16的模型。早知道在自己家里做测试验证,直接买块价格更便宜的3060TI就可以了。而如果要运行无损的FP16模型,就必须上24GB显存的3090了。

折腾ChatGLM的几个避坑小技巧

如果你仅仅是想在自己的机器上测试一下ChatGLP-6B的能力,那么你可能不需要直接去下载THUDM/ChatGLM-6B模型,在huggingface上有一些打包好的量化模型可以下载。模型下载速度很慢,你可以直接下载int4的量化模型。

我这次安装是在一台I7 8核的PC机上完成的,显卡为12G显存的RTX 3060,因为这台电脑是我的工作电脑,因此我把ChatGLM安装在了WSL子系统上。在WINDOWS WSL 子系统上安装ChatGLM比直接在LINUX环境中安装要复杂一些。其中最大的坑是显卡驱动的安装。直接在Linux上部署ChatGLM的时候,需要直接安装NVIDIA的驱动程序,通过modprobe来激活网卡驱动就可以了。而在WSL上安装则大有不同。

折腾ChatGLM的几个避坑小技巧

ChatGLM可以在github上下载,在网站上也有一些简单的文档,甚至包含一个在WINDOWS WSL上部署ChatGLM的文档。只不过如果你是这方面的小白,完全按照这个文档去部署,会遇到无数的坑。

折腾ChatGLM的几个避坑小技巧

Requriements.txt文档里列出了ChatGLM使用的主要开源组件的清单与版本号,其核心是transformers,需要版本4.27.1,实际上要求没有这么严格,略低一点也没太大问题,不过安全起见还是用相同的版本为好。Icetk是做Token处理的,cpm_kernels是中文处理模型与cuda的核心调用,protobuf是结构化数据存储的。Gradio是用于利用Python快速生成AI应用的框架。Torch就不用我多做介绍了。

ChatGLM可以在没有GPU的环境中使用,利用CPU和32GB的物理内存来运行,不过运行速度很慢,仅仅能够用来做个演示验证而已。要想玩ChatGLM最好还是配备一块GPU。

在WSL上安装ChatGLM最大的坑是显卡驱动,在Git上ChatGLM的文档十分不友好,对于不太了解这个项目或者没有做过此类部署的人来说,文档实在太坑。实际上软件部署并不麻烦,而显卡驱动就十分有技巧性。

因为是在WSL subsystem上部署,因此LINUX只是一个仿真系统,并不是完整的LINUX,因此英伟达的显卡驱动只需要在WINDOWS上安装,不需要在WSL里激活。不过在WSL的LINUX虚拟环境中还是需要安装CUDA TOOLS。WINDOWS上的英伟达驱动一定要安装官网上的最新驱动,而不能使用WIN10/11自带的兼容性驱动,因此从官网上下载最新驱动并安装一定不要省略。

折腾ChatGLM的几个避坑小技巧

安装完WIN的驱动后就可以直接在WSL里安装cuda tools了,安装完毕后,运行nvidia-smi如果能够看到上面的界面,那么恭喜你,你已经成功地避开了第一个坑。实际上在安装cuda tools时候还会遇到几个小坑。那就是你的系统中必须安装合适版本的gcc,gcc-dev和make等编译相关的工具,如果缺少这些组件,cuda tools的安装会失败。

折腾ChatGLM的几个避坑小技巧

上面就是坑人的前期准备,实际上避开英伟达驱动这个坑,后面的安装还是很顺利的。在系统的选择上,我还是建议选择Debian兼容的Ubuntu,新版的Ubuntu的aptitude十分智能,能够帮你解决大量软件的版本兼容问题,实现部分软件的自动降版本。

下面的安装过程完全按照安装指南就可以顺利完成了,要注意的是替换/etc/apt/sources.list里面的安装源的工作最好按照指南完成,一方面安装速度会快很多,另外一方面也避免出现软件版本兼容性的问题。当然不替换也不一定会影响后面的安装过程。

折腾ChatGLM的几个避坑小技巧

如果你顺利地通过了前面的各道关卡,那么你就进入到了最后一步,启动web_demo了。执行python3 web_demo.py可以启动一个WEB对话的例子。这时候如果你是个穷人,只有一张12GB显存的3060,那么你就一定会看到上面的报错了,哪怕你把PYTORCH_CUDA_ALLOC_CONF设置为最小的21,也无法避开这个报错。这时候你就不能偷懒了,必须简单地改写一下python脚本。

折腾ChatGLM的几个避坑小技巧

默认的web_demo.py是使用FP16的预训练模型的,13GB多的模型肯定无法装载到12GB现存里的,因此你需要对这个代码做一个小的调整。

折腾ChatGLM的几个避坑小技巧

你可以改为quantize(4)来装载INT4量化模型,或者改为quantize(8)来装载INT8量化模型。这样你的显卡内存就够用了,而且可以支持你做各种对话了。

要注意的是,web_demo.py启动后,模型的下载工作才真正开始,因此要下载13GB的模型,需要相当长的时间,你可以把这项工作放到半夜做,或者你直接用迅雷等下载工具预先从hugging face上下载模型。如果你对模型一无所知,不太会安装下载的模型,你也可以修改代码中的模型名称,THUDM/chatglm-6b-int4,直接从网上下载只有不到4GB的INT4量化模型,这样会快很多,反正你的破显卡也跑不起FP16的模型。

至此,你可以通过网页与ChatGLM对话了,不过这一切只是折腾的开始。只有你能够把你的微调模型训练出来了,那么你的ChatGLM的入坑之旅才会真正开始。玩这种东西还是需要大量的精力和金钱的,入坑要慎重。

最后我还是十分感谢清华大学KEG实验室的朋友,他们的工作让更多的人可以低成本地使用大语言模型。

以上是折腾ChatGLM的几个避坑小技巧的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
如何使用Huggingface Smollm建立个人AI助手如何使用Huggingface Smollm建立个人AI助手Apr 18, 2025 am 11:52 AM

利用“设备” AI的力量:建立个人聊天机器人CLI 在最近的过去,个人AI助手的概念似乎是科幻小说。 想象一下科技爱好者亚历克斯(Alex)梦见一个聪明的本地AI同伴 - 不依赖

通过斯坦福大学激动人心的新计划,精神健康的AI专心分析通过斯坦福大学激动人心的新计划,精神健康的AI专心分析Apr 18, 2025 am 11:49 AM

他们的首届AI4MH发射于2025年4月15日举行,著名的精神科医生兼神经科学家汤姆·因斯尔(Tom Insel)博士曾担任开幕式演讲者。 Insel博士因其在心理健康研究和技术方面的杰出工作而闻名

2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争Apr 18, 2025 am 11:44 AM

恩格伯特说:“我们要确保WNBA仍然是每个人,球员,粉丝和公司合作伙伴,感到安全,重视和授权的空间。” anno

Python内置数据结构的综合指南 - 分析VidhyaPython内置数据结构的综合指南 - 分析VidhyaApr 18, 2025 am 11:43 AM

介绍 Python擅长使用编程语言,尤其是在数据科学和生成AI中。 在处理大型数据集时,有效的数据操作(存储,管理和访问)至关重要。 我们以前涵盖了数字和ST

与替代方案相比,Openai新型号的第一印象与替代方案相比,Openai新型号的第一印象Apr 18, 2025 am 11:41 AM

潜水之前,一个重要的警告:AI性能是非确定性的,并且特定于高度用法。简而言之,您的里程可能会有所不同。不要将此文章(或任何其他)文章作为最后一句话 - 目的是在您自己的情况下测试这些模型

AI投资组合|如何为AI职业建立投资组合?AI投资组合|如何为AI职业建立投资组合?Apr 18, 2025 am 11:40 AM

建立杰出的AI/ML投资组合:初学者和专业人士指南 创建引人注目的投资组合对于确保在人工智能(AI)和机器学习(ML)中的角色至关重要。 本指南为建立投资组合提供了建议

代理AI对安全操作可能意味着什么代理AI对安全操作可能意味着什么Apr 18, 2025 am 11:36 AM

结果?倦怠,效率低下以及检测和作用之间的差距扩大。这一切都不应该令任何从事网络安全工作的人感到震惊。 不过,代理AI的承诺已成为一个潜在的转折点。这个新课

Google与Openai:AI为学生打架Google与Openai:AI为学生打架Apr 18, 2025 am 11:31 AM

直接影响与长期伙伴关系? 两周前,Openai提出了强大的短期优惠,在2025年5月底之前授予美国和加拿大大学生免费访问Chatgpt Plus。此工具包括GPT-4O,A A A A A

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器