Mac搭建开源聊天模型

前言

聊天模型是一种能够与人类进行自然语言对话的人工智能系统。聊天模型的应用场景非常广泛,例如客服、娱乐、教育、医疗等。随着深度学习的发展,聊天模型的性能和效果也有了显著的提升,尤其是基于Transformer架构的大规模预训练语言模型,如GPT、BERT、T5等,它们能够利用海量的文本数据学习通用的语言知识,然后通过微调或生成的方式适应不同的聊天任务和领域。

然而,这些大规模的聊天模型也带来了一些挑战,例如模型的训练和部署需要高性能的计算资源,模型的输出可能存在一些不可靠或不合适的内容,模型的解释性和可控性较低等。因此,如何在有限的条件下搭建一个高质量的聊天模型,是一个值得探索的问题。

在本文中,我们将介绍如何在Mac上搭建一个开源的聊天模型,使用ChatGLM-6B这个支持中英双语问答和对话的模型,通过Xinference这个开源的Model as a service工具,实现本地部署和推理,与AI免费畅聊。我们将分为以下几个步骤:

  • 安装必要的软件和工具
  • 下载和加载聊天模型
  • 运行和测试聊天模型
  • 总结和展望

安装必要的软件和工具

首先,我们需要安装一些必要的软件和工具,以便于搭建聊天模型的环境。我们需要的软件和工具有:

  • Homebrew:一个MacOS的软件包管理工具,可以方便地安装和管理各种软件。
  • Git:一个分布式版本控制系统,可以用来下载和更新聊天模型的源码和权重。
  • Conda:一个依赖和环境管理工具,可以用来创建和管理Python的虚拟环境,以及安装和管理Python的依赖包。
  • Xinference:一个开源的Model as a service工具,可以用来部署和推理聊天模型,支持多种框架和格式的模型,如PyTorch、TensorFlow、ONNX等。

我们可以按照以下的命令来安装这些软件和工具:

# 安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装Git
brew install git

# 安装Git Large File Storage
brew install git-lfs

# 下载并安装MiniConda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
bash ./Miniconda3-latest-MacOSX-arm64.sh -b -p $HOME/miniconda
source ~/miniconda/bin/activate

# 安装Xinference
pip install xinference

下载和加载聊天模型

接下来,我们需要下载和加载我们要使用的聊天模型。我们选择的是ChatGLM-6B,这是一个开源的、支持中英双语问答和对话的模型,基于General Language Model(GLM)架构,具有62亿参数。这个模型经过了大量的数据训练和技术优化,能够生成相当符合人类偏好的回答。而且,这个模型还提供了一个量化后的版本,即ChatGLM-6B-INT4,这个版本将模型的参数从32位浮点数压缩到了4位整数,大大减少了模型的大小和内存占用,使得我们可以在普通的Mac上进行推理,而不需要高性能的GPU。

我们可以按照以下的命令来下载和加载聊天模型:

# 创建并激活一个Python虚拟环境
conda create --name chatglm python=3.9
conda activate chatglm

# 下载聊天模型的源码
git clone https://github.com/THUDM/ChatGLM-6B.git

# 安装聊天模型的依赖包
cd ChatGLM-6B
pip install -r requirements.txt

# 下载聊天模型的量化权重
cd ~/models
git lfs install
git clone https://huggingface.co/THUDM/chatglm-6b-int4.git

# 加载聊天模型
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("~/models/chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("~/models/chatglm-6b-int4", trust_remote_code=True).float()
model = model.eval()

运行和测试聊天模型

最后,我们可以运行和测试聊天模型,看看它的效果如何。我们可以使用Xinference提供的Web界面,或者直接在Python代码中调用聊天模型的方法,与AI进行对话。我们可以输入任意的中文或英文的问题或语句,看看AI会如何回答或回应。我们可以按照以下的命令来运行和测试聊天模型:

# 使用Xinference的Web界面
xinference serve --model chatglm-6b-int4 --framework transformers --port 8080

# 在浏览器中打开 http://localhost:8080 ,输入你想说的话,点击Send按钮,等待AI的回复

# 或者直接在Python代码中调用聊天模型的方法
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
response, history = model.chat(tokenizer, "如何读一本书", history=history)
print(response)

总结和展望

在本文中,我们介绍了如何在Mac上搭建一个开源的聊天模型,使用ChatGLM-6B这个支持中英双语问答和对话的模型,通过Xinference这个开源的Model as a service工具,实现本地部署和推理,与AI免费畅聊。我们发现,这个聊天模型的效果还是不错的,能够生成一些流畅和有意义的回答,也能够处理一些复杂和多轮的对话。当然,这个聊天模型也有一些局限性,例如推理速度较慢,输出内容可能存在一些错误或不合适的情况,模型的可控性和解释性较低等。这些问题也是目前聊天模型领域的研究热点和难点,需要进一步的探索和改进。

我们希望本文能够为您提供一些启发和帮助,让您能够在有限的条件下搭建一个高质量的聊天模型,体验一下目前AIGC的能力。如果您对本文有任何疑问或建议,欢迎在评论区留言,我们将尽快回复。谢谢您的阅读和支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1687F

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值