欢迎光临散文网 会员登陆 & 注册

LangChain + ChatGLM-6B / ChatGLM2-6B 新手踩坑指南!

2023-07-12 16:31 作者:复利火箭  | 我要投稿

LangChain-ChatGLM-6B基本简介:

  • 项目资源来源链接:

    基于本地知识库的 ChatGLM 问答https://github.com/imClumsyPanda/langchain-ChatGLM

  • 项目原理:

    加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

  • 硬件需求:

    1、ChatGLM-6B 模型硬件需求

         2、Embedding 模型硬件需求

        本项目中默认选用的 Embedding 模型 GanymedeNil/text2vec-large-chinese 约占用显存 3GB,也可修改为在 CPU 中运行。

    • 软件需求:

        本项目已在 Python 3.8.1 - 3.10,CUDA 11.7 环境下完成测试。已在 Windows、ARM 架构的 macOS、Linux 系统中完成测试。vue前端需要node18环境。

    • 详见“项目资源来源链接”。

    LangChain-ChatGLM-6B的开发部署:

    安装的资源链接:https://github.com/imClumsyPanda/langchain-ChatGLM/blob/master/docs/INSTALL.md

    • 第一步,配置安装环境。检查机器是否安装了 Python 3.8 及以上版本。(若版本低于3.8,可见“安装的资源链接”使用conda安装环境并激活)

    我的服务器python版本为3.8.10
    • 第二步,进行项目依赖包安装。具体步骤可见“安装的资源链接”。在其过程中我遇到的问题以及解决方法:

      问题1、No module named 'configs' 

      解决方法:同上一个问题,将configs.model_config全部改为configs2.model_config,并替换文档代码中所有的configs.model_config名称,即可成功安装。

      问题2、No module named 'configs.model_config'

      解决方法:经过试错,排除了“模型找不到该文件”或“该文件未下载到本地”的错误。最终发现该模型先读取了系统的configs,与本地的configs冲突。因此,将本地文件中所有的configs重命名为configs2并替换文档代码中所有的configs名称,即可成功安装。


    • 第三步,执行脚本体验Web UI或命令行交互。具体步骤可见“项目资源来源链接”。

    鉴于环境部署过程中可能遇到问题,建议命令行脚本测试可正常运行后再运行 Web UI

    1、在体验命令行交互遇到的问题及解决方法:

    问题:在执行cli_demo.py脚本体验命令行交互中,遇到了下载出错的问题(8个文件只能下载四个)。

    解决方法:找到了错误在我服务器/home/sre/python/chatGPT/里,在其中加了镜像即可下载后面的四个文件。镜像代码:

    tokenizer = AutoTokenizer.from_pretrained(new_dir, trust_remote_code=True, mirror="tuna") 

    model = AutoModel.from_pretrained(new_dir, trust_remote_code=True, mirror="tuna").half().cuda()

    2、在体验Web交互遇到的问题及解决方法:

    问题:配置好后不输出页面

    方法:直接将自己服务器的地址加上程序输出的URL结合,将结合后的网址输入进自己的浏览器即可访问使用。

    如我的服务器地址为192.168.5.65,加上程序输出的URL,结合后为:192.168.5.65:7860,访问结合后的地址即可使用。

    LangChain-ChatGLM2-6B的配置方法

    将langchain-ChatGLM目录下的configs2中LLM 名称:LLM_MODEL = "chatglm-6b"中的chatglm-6b改为chatglm2-6b,即可运行,其他运行或修正方法同langchain-ChatGLM。

    以上就是我在配置并使用LangChain-ChatGLM-6B中得到的报告,希望可以帮到大家。欢迎发私信与我共同讨论更多该领域的知识!

    LangChain + ChatGLM-6B / ChatGLM2-6B 新手踩坑指南!的评论 (共 条)

    分享到微博请遵守国家法律