一、准备工作
下载CHATGLM2大模型源码
git clone https://github.com/THUDM/ChatGLM2-6B
安装依赖
cd ChatGLM2-6B
# 其中 transformers 库版本推荐为 4.30.2,torch 推荐使用 2.0 及以上的版本,以获得最佳的推理性能
pip install -r requirements.txt
下载模型
# 这里我将下载的模型文件放到了本地的 chatglm-6b 目录下
git clone https://huggingface.co/THUDM/chatglm2-6b
调整模型运行代码
# 因为前面改了模型默认下载地址,所以这里需要改下路径参数
# 修改 open_api.py 文件
if __name__ == "__main__":
tokenizer = AutoTokenizer.from_pretrained("/home/XXX/glm_model/chatglm2-6b", trust_remote_code=True,device='cuda:2')
model = AutoModel.from_pretrained("/home/XXX/glm_model/chatglm2-6b", trust_remote_code=True,device='cuda:5')
# 多显卡支持,使用下面两行代替上面一行,将num_gpus改为你实际的显卡数量
# from utils import load_model_on_gpus
# model = load_model_on_gpus("THUDM/chatglm2-6b", num_gpus=2)
uvicorn.run(app, host='0.0.0.0', port=8008, workers=8)
open api模式启动模型服务
python open_api.py
安装Langchain及Milvus
#pytorch
等基础环境的安装这里不作过多说明
Pip install langchain
Pip install milvus
下载embeddings模型到本地
#
这里使用
text2vec-base-chines HuggingFace
魔搭社区等都能下载
https://modelscope.cn/models/thomas/text2vec-base-chinese/files
将向量数据导入Milvus
这里不作详细说明,开发者需要自行学习Milvus向量数据库的使用。笔者是从ES里加载了部分二级市场的舆情数据到Milvus。
二、编码-测试Mivus向量搜索功能
三、使用Langchain的LLMChain整合Chatglm2大模型功能
四、向大模型提问
Milvus新闻库中如果有的新闻内容大模型一般都能回复正确。