如何使用ChatGLM2-6B模型进行大模型操作指南

释放双眼,带上耳机,听听看~!
本文介绍了如何选择和加载ChatGLM2-6B模型进行大模型操作,并提供了详细的指导和代码示例,适合深度学习爱好者和技术研究人员阅读。

写这篇文章是几个月前了,现在模型和框架已经更新了好几轮了,但不影响吧,后面会把这几个月的发展专门用一篇文章补上。

在上一篇中,硬件全都准备好了,软件也已经安装完成,相应的配置都已经做完,终于要开始使用大模型了,后面这些天,我们会从最最基础的开始,一步一步来玩转大模型,目前各种各样的傻瓜教程都已经很多了,不管是本地模型部署还是API形式调用openAI,都有很多教程,从大模型的部署,使用,langchain使用,微调模型等等方方面面,都有很多教程,也有以一个例子,比如如何做一个自己的私人知识库这种来讲解大模型的。

既然已经有了硬件和软件,那么我们也来整一个开胃菜吧,首先,不管怎么样,先得跑起来一个大模型吧,然后和他对对话之类的,也算对大模型的使用有个初步的了解吧,OK,啥也不说了,开始干。

选择模型

在模型的选择上,我们没有选llama这种最流行的,一是它比较大,难以下载,二是不是一般人的电脑都能跑起来的,三是原生的llama不支持中文,还需要找已经完成中文微调的模型。所以,为了简便,我们选择清华大学的ChatGLM2-6B这个模型,顾名思义,他有60亿个参数,用来玩已经足够了。

首先,找到模型所在的位置:

直接git clone 下来就好,没有必要安装git lfs,因为huggingface的速度实在是太慢了,使用git把这个十几GB的模型拖下来太慢了,有两种方式,一是找到模型地址使用迅雷下载,再覆盖掉。
如何使用ChatGLM2-6B模型进行大模型操作指南
另外,也可以到这里cloud.tsinghua.edu.cn/d/674208019… 来下载,这是清华的官网,速度会快很多,也可以使用迅雷。

全部下下来以后,我们的目录大概长这样子,红框部分是单独下下来的文件:
如何使用ChatGLM2-6B模型进行大模型操作指南
好了,代码已经准备好了,接下来就可以开始尝试加载模型了。

加载模型

准备工作

使用conda命令,新建一个python环境,来专门做chatGLM的加载和使用

conda create -c glm
conda activate glm

查看一下python版本,如果此环境中没有python,可以使用conda安装一个,默认会安装一个3.11.X的版本

conda install python

接下来,需要安装必要的包,在huggingface上已经写明了需要哪些包

pip3 install protobuf transformers==4.30.2 cpm_kernels torch>=2.0 gradio mdtex2html sentencepiece accelerate

实际上这些包中transformers和torch我们已经安装好了,只需要安装其他的对应包就可以了。

代码编写

代码编写相对比较简单,由于transformers非常好的封装性,我们只需要几行代码就可以完成模型的加载

from transformers import AutoTokenizer, AutoModel

# 加载分词器
tokenizer = AutoTokenizer.from_pretrained("/your/path/chatglm2-6b", trust_remote_code=True)
# 加载模型,注意最后调用的to()方法
# 如果你有显卡那么可以写.to("cuda")
# 如果只有CPU的话,写flaot()
# 如果是mac的m1/m2芯片的话,写to("mps"),我的就是这种情况
model = AutoModel.from_pretrained("/your/path/chatglm2-6b", trust_remote_code=True).half().to('mps')
# 执行模型
model = model.eval()

这里简单说一下第二行:
我这里是.to(‘mps’) 表示我使用的是mac的m芯片,如果你有nv显卡的话,这里可以改成.cuda(),如果你只有CPU的话,可以改成.float()
经过几秒钟的加载,完成了,完成以后就可以开始推理对话了
如何使用ChatGLM2-6B模型进行大模型操作指南

推理对话

推理对话也非常简单,两行的事:

response, history = model.chat(tokenizer, "你好", history=[])
print(response)

其中history是对话历史,每次对话都会返回一个history,可以放到下一次对话中变成整个对话的上下文,避免chatGLM自己跑题了。response就是chatGLM的回复了。
如何使用ChatGLM2-6B模型进行大模型操作指南
好了,至此大模型已经完成加载完了并且你也可以和他进行对话了,是不是非常简单,其实只要你机器资源够(如果有显卡的话最好,显存至少需要8GB,没有显卡也没关系,只要你的内存足够大,最好32GB以上),那么很轻松就可以加载出来,然后就可以愉快的和他玩耍了。

干点别的?

既然大模型已经加载上了并且可以进行对话了,那么接下来我们就可以根据已有的能力在上面添砖加瓦了,比如:

  • 建立一个web服务器,可以在网页上和他对话了
  • 对接到微信公众号或者钉钉机器人上,就可以在微信上和他聊天了
  • 按照LangChain框架,可以给他加上向量搜索和上下文提示,完成更为强大的功能,甚至通过插件方式让他具备联网能力,就可以回答一些实时的问题了

这里,我用他给我女儿写了一篇暑假作业。。。
如何使用ChatGLM2-6B模型进行大模型操作指南
总的来说,还行吧,自己再润色润色,修改修改也可以交了,你也可以试试别的,我觉得虽然说没有chatGPT3.5或者chatGPT4那么惊艳,但一般的废话文学也差不多够了,毕竟免费的,还要啥自行车。

尾声

今天通过简单的几行代码,就加载了一个大模型并且还用他为女儿写了个暑假作业,整体感觉非常简单,现在写代码已经完全不像之前了,很多东西前人都帮你搞好了,你只要像搭积木一样搭起来就可以了,这是程序员的幸福还是悲哀呢?

如果你觉得不错,欢迎转发给更多人看到,也欢迎关注我的公众号,主要聊聊搜索,推荐,广告技术,还有瞎扯。。文章会在这里首先发出来:)扫描或者搜索微信号XJJ267或者搜索西加加语言就行

如何使用ChatGLM2-6B模型进行大模型操作指南

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

扩散模型:图像生成新领域的关键技术

2024-6-19 14:23:00

AI教程

Spring AI框架集成的图片大模型使用介绍

2024-6-19 19:56:00

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索