ChatGLM-6B地址:https://github.com/THUDM/ChatGLM-6B
ChatGLM-6B 是⼀个开源的、⽀持中英双语的
对话语⾔模型,基于 General Language
Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
更新 v1.1 版本 checkpoint, 训练数据增加英⽂
指令微调数据以平衡中英⽂数据⽐例,解决英
⽂回答中夹杂中⽂词语的现象。
大语言模型通常基于通识知识进行训练的,而在
⾯向某些领域的具体场景时,常常需要借助模型微调或提示
词⼯程提升语言模型应用效果:
常见的场景如:
模型微调与提示词工程的区别:
模型微调:针对预训练好的语言模型,在特定任务的数据集上进行进一步的微调训练,需要有标记好的特定任务的数据。
提示工程:核心是设计自然语言提示或指定,引导模型完成特定任务,适合需要明确输出的任务。
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 3个能力:
Langchain的核心模块如下:
基于Langchain思想实现基于本地知识库的问答应用。实现过程如下:
1、加载文件
2、读取文本
3、文本分割
4、文本向量化
5、问句向量化
6、在文本向量中匹配出与问句向量最相似的top k个
7、匹配出的文本作为上下文和问题一起添加到prompt中
8、提交给LLM生成回答。
还有另一个版本(本质是一样的)
https://github.com/imClumsyPanda/langchain-ChatGLM
由于之前已经对ChatGLM进行过部署,所以考虑可以直接在原有环境中安装新的所需的包即可,同样也可以使用之前下载好的模型文件:ChatGLM部署
但看了下requirements.txt文件后还有不少需要安装的包,索性直接新建一个python3.8.13的环境(模型文件还是可以用的)
conda create -n langchain python==3.8.13
拉取项目
git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git
进入目录
cd langchain-ChatGLM
安装requirements.txt
conda activate langchain
pip install -r requirements.txt
当前环境支持装langchain的最高版本是0.0.166,无法安装0.0.174,就先装下0.0.166试下。
修改配置文件路径:
vi configs/model_config.py
将chatglm-6b的路径设置成自己的。
“chatglm-6b”: {
“name”: “chatglm-6b”,
“pretrained_model_name”: “/data/sim_chatgpt/chatglm-6b”,
“local_model_path”: None,
“provides”: “ChatGLM”
修改要运行的代码文件:webui.py,
vi webui.py
将最后launch函数中的share设置为True,inbrowser设置为True。
执行webui.py文件
python webui.py
可能是网络问题,无法创建一个公用链接。可以进行云服务器和本地端口的映射,参考:https://www.cnblogs.com/monologuesmw/p/14465117.html
对应输出:
占用显存情况:大约15个G
项目地址:https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui
HUggingFace社区在线体验:https://huggingface.co/spaces/thomas-yanxin/LangChain-ChatLLM
另外也支持ModelScope魔搭社区、飞桨AIStudio社区等在线体验。
下载项目
git clone https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui.git
进入目录
cd LangChain-ChatGLM-Webui
安装所需的包
pip install -r requirements.txt
pip install gradio==3.10
修改config.py
init_llm = "ChatGLM-6B"
llm_model_dict = {
"chatglm": {
"ChatGLM-6B": "/data/sim_chatgpt/chatglm-6b",
修改app.py文件,将launch函数中的share设置为True,inbrowser设置为True。
执行webui.py文件
python webui.py
参考
https://github.com/imClumsyPanda/langchain-ChatGLM
https://liaokong.gitbook.io/llm-kai-fa-jiao-cheng/
https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui