LLM - 基于 ChatGLM-6B 的工程配置搭建私有 ChatGPT 中文在线聊天

这篇具有很好参考价值的文章主要介绍了LLM - 基于 ChatGLM-6B 的工程配置搭建私有 ChatGPT 中文在线聊天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://blog.csdn.net/caroline_wendy/article/details/131104546

Paper:GLM: General Language Model Pretraining with Autoregressive Blank Infilling

ChatGLM是通用的预训练语言模型(General Language Pretraining Model),基于自回归空格填充(Autoregressive Blank Infilling)的方法,可以兼容三种主流的预训练框架:自回归模型(如GPT)、自编码模型(如BERT)和编码器-解码器模型(如T5)。GLM 通过添加二维位置编码和允许任意顺序预测文本片段,提高了空格填充预训练的效果。同时,GLM可以通过调整空格的数量和长度,来适应不同类型的任务,包括自然语言理解、有条件和无条件的文本生成。GLM在多个任务上都超越了BERT、T5和GPT,展示了其通用性和强大性。

LLM - 基于 ChatGLM-6B 的工程配置搭建私有 ChatGPT 中文在线聊天

ChatGLM 已经升级到2.0版本 ChatGLM2-6B,相关文章:

  • ChatGLM v1.0: ChatGLM-6B (General Language Model) 的工程配置
  • ChatGLM v2.0: 第2版 ChatGLM2-6B (General Language Model) 的工程配置

1. 配置工程

  • GitHub 工程:GitHub - THUDM/ChatGLM-6B
  • HuggingFace 网页:https://huggingface.co/THUDM/chatglm-6b

下载 HuggingFace 工程 chatglm-6b,其中 git-lfs 相关的大文件并未下载,命令如下:

git clone https://huggingface.co/THUDM/chatglm-6b

下载参数工程 THU-Cloud-Downloader,用于快速下载清华云的模型参数,命令如下:

git clone https://github.com/chenyifanthu/THU-Cloud-Downloader

模型参数地址:https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

将模型参数直接保存至 chatglm-6b 替换已有文件,命令如下:

cd THU-Cloud-Downloader
python main.py --link https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/ --save ../chatglm-6b/

等待11个文件,其中包括8个模型文件,下载完成,预计15分钟左右。

下载服务工程:

git clone git@github.com:THUDM/ChatGLM-6B.git ChatGLM-6B-official

建议使用 git 下载,预先设置 id_rsa ,如下载过慢,可直接下载zip文件,上传之后再解压。

配置 conda 环境,安装相关的 Python 包,命令如下:

conda create -n chatglm python=3.8
conda activate chatglm
cd ChatGLM-6B-official

pip install -r requirements.txt

验证 PyTorch 是否安装成功:

python

import torch
print(torch.__version__)  # 2.0.1+cu117
print(torch.cuda.is_available())  # True

2. 服务端测试

cli_demo.py 源码中的模型,修改为已下载的 chatglm-6b 路径:

...
tokenizer = AutoTokenizer.from_pretrained("../chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("../chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()
...

即可运行:

python3 cli_demo.py

测试对话,如下:

欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序

用户:蒙特卡洛方法是什么呢?

ChatGLM-6B:蒙特卡洛方法是一种随机模拟方法,常用于研究随机现象和不确定性原理。在蒙特卡洛方法中,研究者使用随机数生成器生成一组随机样本,然后根据这些样本计算出一些物理量或数学模型的结果。

具体来说,蒙特卡洛方法的基本思想是通过模拟随机过程来估计估计物理量或数学模型的参数。在模拟过程中,研究者随机选择一个物理量或数学模型的参数,然后计算出一组模拟结果。这些模拟结果可以用于估计真实的物理量或数学模型的结果,并给出相应的误差。

蒙特卡洛方法的优点在于可以处理不确定性原理,例如在研究量子物理、化学反应、金融市场等领域中,由于存在大量随机因素,不确定性原理会导致结果的不准确性。而蒙特卡洛方法可以通过模拟大量的随机样本来消除不确定性,提高结果的准确性。

用户:

3. 网页端调用

修改 web_demo.py 源码中的模型,修改为已下载的 chatglm-6b 路径:

...
tokenizer = AutoTokenizer.from_pretrained("../chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("../chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()
...

修改 Gradio 插件的服务器 IP 地址 (server_name) 和端口号 (server_port),进行端口透传:

...
demo.queue().launch(share=False, server_name='[Your Server IP]', server_port=[Your Server Port], inbrowser=True)
...

IP 可以设置为 0.0.0.0,端口设置为可用端口即可。

参考:基于Gradio可视化部署机器学习应用

即可运行:

CUDA_VISIBLE_DEVICES="1" nohup python3 web_demo.py > nohup.out &

访问地址如下:http://[Your Server IP]:[Your Server Port]

LLM - 基于 ChatGLM-6B 的工程配置搭建私有 ChatGPT 中文在线聊天

Bugfix

1. TCP connection reset by peer

当下载 HuggingFace 项目时,遇到错误:

fatal: unable to access 'https://huggingface.co/THUDM/chatglm-6b/': TCP connection reset by peer

可能是网络原因或Git版本较低,建议使用 ssh + git 路径下载,避免访问异常。

2. Permissions 0644 for id_rsa are too open

修改 .id_rsa 的权限,即可:

chmod 400 ~/.ssh/id_rsa

参考:Stackoverflow - SSH Key: “Permissions 0644 for ‘id_rsa.pub’ are too open.” on mac

3. 修改 Docker 环境的 pip 安装源

默认 pip 源的优先级,如下:

# This file has been autogenerated or modified by NVIDIA PyIndex.
# In case you need to modify your PIP configuration, please be aware that
# some configuration files may have a priority order. Here are the following 
# files that may exists in your machine by order of priority:
#
# [Priority 1] Site level configuration files
#       1. `/opt/conda/pip.conf`
#
# [Priority 2] User level configuration files
#       1. `/root/.config/pip/pip.conf`
#       2. `/root/.pip/pip.conf`
#
# [Priority 3] Global level configuration files
#       1. `/etc/pip.conf`
#       2. `/etc/xdg/pip/pip.conf`

全部删除,仅保留 /root/.pip/pip.conf,即可:

rm /opt/conda/pip.conf
rm /root/.config/pip/pip.conf
rm /etc/pip.conf
rm /etc/xdg/pip/pip.conf

修改 pip.conf,添加清华的pip源,与Nvidia的pip源共用,即:文章来源地址https://www.toymoban.com/news/detail-494180.html

vim ~/.pop/pip.conf

[global]
no-cache-dir = true
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url = https://pypi.ngc.nvidia.com
trusted-host = pypi.tuna.tsinghua.edu.cn pypi.ngc.nvidia.com

到了这里,关于LLM - 基于 ChatGLM-6B 的工程配置搭建私有 ChatGPT 中文在线聊天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 全网最新版ChatGLM-6B开源模型环境详细部署及安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型

    ChatGPT的爆火让许多公司和个人都想要开发自己的大型语言模型,但是,由于算力和语言模型开发能力等诸多方面的限制,许多人最终都只能在开发的早期阶段止步不前。然而,近期清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) Data Mining at Tsinghua University)发布

    2024年02月05日
    浏览(69)
  • 【私有GPT】CHATGLM-6B部署教程

    ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) Data Mining at Tsinghua University)发布的一个开源的对话机器人。根据官方介绍,这是一个千亿参数规模的中英文语言模型。并且对中文做了优化。本次开源的版本是其60亿参数的小规模版本,约60亿参数,本地

    2024年02月12日
    浏览(38)
  • 【LLM】chatglm-6B模型训练和推理

    本篇文章记录下 chatglm-6B 训练和推理过程 环境:Ubuntu 20.04 + 1.13.0+cu116 chatglm-6B 源代码仓库:链接 chatglm-6B 模型权重:链接 这里使用的是 THUDM 在 hugging face 开源的模型。 因为模型比较大,仓库保存模式使用的是 git lfs 模式,再 clone 之后再使用 git lfs pull 去 download 大文件。 c

    2024年02月10日
    浏览(50)
  • 开源双语对话语言模型 ChatGLM-6B 本地私有化部署

    本文首发于:https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGL

    2024年02月10日
    浏览(65)
  • 从零实现Transformer、ChatGLM-6B、LangChain+LLM的本地知识库问答

    最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代码,发现微调LLM时一般都会用到Hugging face实现的Transformers库的Trainer类 从而发现

    2024年02月08日
    浏览(51)
  • ChatGLM-6B第二代模型开源,拿下LLM模型中文能力评估榜单第一名

    ChatGLM-6B 自3月14日发布以来,深受广大开发者喜爱。截至 6 月24日,来自 Huggingface 上的下载量已经超过 300w。 为了更进一步促进大模型开源社区的发展,我们再次升级 ChatGLM-6B,发布 ChatGLM2-6B 。在主要评估LLM模型中文能力的 C-Eval 榜单中,截至6月25日 ChatGLM2 模型以 71.1 的分数

    2024年02月11日
    浏览(46)
  • 解锁大语言模型LLM对话潜力:ChatGLM3-6B的多轮对话实践与深入探索

    随着人工智能技术的飞速发展,多轮对话系统已成为自然语言处理领域的研究热点。多轮对话要求模型不仅能理解用户的当前输入,还需结合对话历史进行连贯回复,这对模型的上下文理解和生成能力提出了更高要求。ChatGLM3-6B作为一种先进的大型语言模型,在多轮对话任务

    2024年02月22日
    浏览(56)
  • ChatGLM2-6B_ An Open Bilingual Chat LLM _ 开源双语对话语言模型

    更强大的性能 :基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 [GLM]的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BB

    2024年04月14日
    浏览(41)
  • LLM大语言模型(三):使用ChatGLM3-6B的函数调用功能前先学会Python的装饰器

    目录 ChatGLM3-6B的函数调用模式示例 本地启动ChatGLM3-6B工具模式 如何在ChatGLM3-6B里新增一个自定义函数呢? get_weather基于Python的装饰器实现 函数注解@register_tool 现在我们来自定义一个kuakuawo()函数 ChatGLM3-6B目前有三种使用模式: 对话模式 工具模式(也就是本文要介绍的函数调用

    2024年01月25日
    浏览(72)
  • 文言一心,ChatGLM-6B和ChatGPT等模型概述

    原文首发于 博客文章大语言模型概况 定义 (个人理解的)大语言模型(Large Language Model)是一种基于深度学习技术的自然语言处理通用模型,它可以通过学习大规模文本数据的模式和规律,从而实现对自然语言的理解和生成。 通用型 :在广泛的任务中表现出色,而不是针对

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包