当前位置: 首页 > article >正文

基于Langchain-Chatchat + chatglm3部署一套属于自己的本地知识库

文章目录

    • 1. 参考
    • 2. ChatGLM3 介绍
    • 3. 本地运行
      • 3.1 硬件配置
      • 3.2 下载ChatGLM3代码
      • 3.3 下载需要加载的模型
      • 3.4 运行大模型
        • 3.4.1 ChatGLM3目录介绍
        • 3.4.2 安装依赖
        • 3.4.2 综合demo演示
        • 3.4.3 启动
          • 对话模式
          • 工具模式
          • 代码解释器
    • 4. 总结

1. 参考

  • Langchain-Chatchat代码地址
  • chatglm3-6b模型地址
  • ChatGLM3介绍
  • conda安装

2. ChatGLM3 介绍

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:

  • 更强大的基础模型。
  • 更完整的功能支持。
  • 更全面的开源序列。

详细介绍参考官方README介绍。

3. 本地运行

3.1 硬件配置

  • 芯片:Apple M1 Pro
  • 内存:32 GB

3.2 下载ChatGLM3代码

cd /Users/joseph.wang/llm
git clone https://github.com/THUDM/ChatGLM3.git

3.3 下载需要加载的模型

此步骤下载模型需要科学上网,同时需要耐心,因为下载的时间会比较长。
这里我使用的是 ChatGLM3-6B 的模型,模型文件会很大

cd /Users/joseph.wang/llm/ChatGLM-6B
mkdir model
cd model
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b

在这里插入图片描述

3.4 运行大模型

3.4.1 ChatGLM3目录介绍
  • basic_demo: 基础demo(cli_demo和web_demo)
  • composite_demo : 综合demo(聊天、工具和代码解释器)
  • finetune_demo:基础模型微调
  • langchain_demo:langchain demo
  • model:这个事自己创建的,将模型文件放在此目录下
  • openai_api_demo: openapi的api接口demo
  • resources: 用到的一些文件
  • tensorrt_llm_demo:tensorTR-llm demo
  • tools_using_demo:工具调用
    在这里插入图片描述
3.4.2 安装依赖
cd /Users/joseph.wang/llm/ChatGLM3
conda activate ChatGLM3 #切换python环境
pip install -r requirements.txt
  • 为了保证 torch 的版本正确,请严格按照 官方文档 的说明安装。

此外,使用 Code Interpreter 还需要安装 Jupyter 内核:

ipython kernel install --name chatglm3-demo --user
3.4.2 综合demo演示

详见:综合demo

cd /Users/joseph.wang/llm/ChatGLM3/
cd composite_demo

官方说直接运行main.py,但是这个main.py会调用demo_chat.py、demo_ci.py、demo_tool.py三个模块,而这三个模块调用的模型文件其实是通过client.py这个模块来实现的,里面是具体定义了模型的路径。

编辑 client.py文件,修改模型的

...
...
# 修改为通过本地加载大模型,这里改本地下载后大模型的路径即可。
MODEL_PATH = os.environ.get('MODEL_PATH', '/Users/joseph.wang/llm/ChatGLM3/model/chatglm3-6b')
...
...
3.4.3 启动
cd /Users/joseph.wang/llm/ChatGLM3/composite_demo
streamlit run main.py

内存消耗
在这里插入图片描述

对话模式

在这里插入图片描述

在这里插入图片描述

工具模式

查天气 - 失败
在这里插入图片描述

代码解释器

画三角形 - 失败
画爱心
画爱心 - 失败
在这里插入图片描述
画爱心 - 成功
在这里插入图片描述

4. 总结

整体用下来,感觉还是很震撼的,对话模式确实准确率要高不少;工具模式需要提交通过代码来实现;代码解释器的准确率一般般。但是这个也是仅限于我的mac的资源配置下的使用,相信在高配置的显卡加持线其综合表现会更强。


http://www.kler.cn/a/227490.html

相关文章:

  • linux远程执行命令后中断联系使远程机独立运行
  • h.264与h.263的区别
  • 字符串比较中==和equals的区别(Java)
  • Java 数据结构 二叉树(二)红黑树
  • 开源浏览器Firefox:使用Docker本地部署并远程访问进行测试
  • Linux的7个运行级别
  • SQL Server 函数参考手册(SQL Server 字符串函数)
  • 《Vue3 基础知识》 使用 GoGoCod 升级到Vue3+ElementPlus 适配处理
  • 线程和进程的区别及基础线程创建
  • 为什么说TiDB在线扩容对业务几乎没有影响
  • c语言:贪吃蛇的实现
  • 知识图谱推理方法综述
  • 适用于嵌入式单片机的压缩算法
  • 使用gcc/g++查看C语言预处理,编译,汇编,连接,以及动静态库的区分
  • Redis 哨兵(Sentinel)
  • Elastic Search 6.x 版本 rollover 配置
  • 探索前端开发框架:React、Angular 和 Vue 的对决(一)
  • 数据结构中的时间复杂度和空间复杂度基础
  • android tv开发-1,leanback
  • 稀疏场景高性能训练方案演变|京东广告算法架构体系最佳实践