LLM - ChatGLM-6B (General Language Model) 的工程配置

欢迎关注我的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,展示了其通用性和强大性。

Paper

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-officialpip install -r requirements.txt

验证 PyTorch 是否安装成功:

pythonimport 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]

ChatGLM

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源共用,即:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/11447.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cisco packet tracer 思科账号登录不上?

Cisco packet tracer 思科账号登录不上?,提示“无法找到NetAcad账户…”的问题,找到解决方案了 你有没有出现过提示“很抱歉,无法找到与此思科账户关联的 NetAcad 账户。请从下面选择您想要执行的操作…” 你是否有这样的困惑,之…

【回答问题】ChatGPT上线了!比较流行的无监督学习模型

无监督学习是机器学习的一种方法,其中算法没有被给予任何人为的目标或标签。相反,它使用数据本身来发现数据之间的关系,并尝试将数据分成不同的组。这种方法通常用于发现数据中隐藏的结构或模式。与监督学习不同,非监督学习不需要人为标记的正确答案来训练模型,因此它通常…

一些常用的数学符号,助你网聊数学准确一点

下面是一些常用数学符号,可以用于不支持LaTeX的使用环境,比如微信、QQ的聊天,微博发文等。大家可以存起来后,有需要的时候回来复制。 注意一些平台可能显示不正常,微信测试都正常显示的。 常量 ∅ ∞ ⦰ א ℶ ⅓ …

【指点江山】ChatGPT超精细指令,会提问题的你才能得到更好的回答

【指点江山】ChatGPT超精细指令,会提问题的你才能得到更好的回答 1,提问题的技巧1.1 确定要搜索的关键字1.2 使用正确的语法1.3 练习询问技巧 2,通用指令2.1 写作指令2.1.1 提问思路 2.2 资料整理2.2.1 提问思路2.2.2 指令举例 2.3 创意领域2…

数学上的问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 问题合集一、问题:为什么stats.norm.pdf计算出的概率分布值会大于11.代码2.分析 问题合集 例如:随着人工智能的不断发展,机器学…

最便捷的港股/A股/美股实时行情API【免费-免费-免费滴,已应用到策略中】

免费、申请就能用,在这个动辄就要掏钱购买接口使用权限的年头,居然有这种神仙行情接口? 博主申请使用过才推荐给大家d ! 总所周知,去年年底开始港股爆发式的南向资金流入后,大家都开始关注港股,才发现港股…

ChatGPT 最可能取代的 10 种工作

ChatGPT的横空出世,在业界掀起了惊涛骇浪。专家表示,ChatGPT和相关人工智能技术可能会威胁到一些工作岗位,尤其是白领工作。 自去年11月发布以来,新型聊天机器人模型ChatGPT已经被用于各种各样的工作:撰写求职信、编写…

《AI革命:聊天机器人的崛起与劳动力市场的未来》

最近看到很多人都在搞chatgpt, 各种什么chatgpt星球什么的, 有个比较有意思的是提问是:chatgpt不是你研究出来的, 凭啥收费比人家贵, 当时我看到这个说法确实有点那啥, 人家openai收费20美元(140左右RMB), 你一个星球就收费499, 影响这个的因…

什么是那 10% 不能被 AI 轻易取代的技能?

90% 和 10% 以 ChatGPT, CoPolit 为代表的大语言模型技术,正在颠覆很多领域,大家都在想 – 我的技能还有用么?我的行业还能保住么? 前两周,软件工程界的领军人物 Kent Beck 发了一个关于 ChatGPT 的感想&…

ChatGPT/GPT-4 或将从根本上改变软件工程

文章目录 一、前言二、主要内容 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 编程也可能是最容易被 AI 技术取代的工作之一,软件的构建方式将产生根本性的转变。 今年以来,相信大家都听说过 ChatGPT、New Bing 和…

程序员危!传OpenAI全球招外包大军,手把手训练ChatGPT取代码农

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 码农真的危了! 最近有消息称,OpenAI已经在悄悄地训练ChatGPT,让它学习人类的思考过程,从而真正掌握软件工程,彻底代替「初级码农」。 OpenAI招外包大军…

ChatGPT重量级对手产品:Claude对外发布

什么是Claude Claude是下一代人工智能助手,基于 Anthropic 对训练有用、诚实和无害的人工智能系统的研究。Claude 可通过我们的开发人员控制台中的聊天界面和 API 进行访问,能够执行各种对话和文本处理任务,同时保持高度的可靠性和可预测性。…

RabbitMQ硅谷笔记

文章目录 RabbitMQMQ的相关概念什么是MQ为什么用MQMQ的分类MQ的选择 RabbitMQRabbitMQ概念RabbitMQ四大核心概念生产者交换机队列消费者 RabbitMQ基本功能教程安装官网Docker安装Docker安装中出现的一些错误 入门案例搭建基础环境编写代码 Work Queues轮询分发消费消息应答概念…

硬核干货篇:关于腾讯程序员的9个生存法则

腾小云导读 本文作者在腾讯多年,主要从事的是腾讯云CDN、EdgeOne产品的后台研发工作。作者在云计算领域遇到了不少代码设计和程序设计的问题,他对于如何把项目中的代码标准化、提高开发维护的效率,做了总结梳理。本篇为各位分享作者总结的代…

windows布局go-cqhttp

视频教程 windows布局go-cqhttp_哔哩哔哩_bilibili 官网:https://docs.go-cqhttp.org/ go-cqhttp文件下载地址:https://github.com/Mrs4s/go-cqhttp/releases 使用软件pycharm:https://www.jetbrains.com/pycharm/ 安装依赖库: …

Glados使用教程详解【2023更新】

Glados的含义有很多,如果你是指的是Glados加器速的使用方法,可以具体看: https://waimao.pro/glados/ 如果是Glados人工智能角色的使用,可以看接下来的教程。 GLaDOS(Genetic Lifeform and Disk Operating System&am…

2021面试总结

优先级 一级优先级:js、框架(vue/react)、项目介绍 二级优先级:html/css、浏览器相关 三级优先级:webpack、ts、git js js中的this指向 1、默认绑定,严格模式下指向undefined,非严格模式下执…

Java进阶3 - 易错知识点整理(待更新)

Java进阶3 - 易错知识点整理(待更新) 该章节是Java进阶2- 易错知识点整理的续篇; 在前一章节中介绍了 ORM框架,中间件相关的面试题,而在该章节中主要记录关于项目部署中间件,监控与性能优化等常见面试题。…

鹅厂程序员的9个生存法则

👉腾小云导读 本文作者在腾讯多年,主要从事的是腾讯云CDN、EdgeOne产品的后台研发工作。作者在云计算领域遇到了不少代码设计和程序设计的问题,他对于如何把项目中的代码标准化、提高开发维护的效率,做了总结梳理。本篇为各位分享…

简单的用户登录,注册,与退出

文章目录 前言一、登录界面1.HTML部分2.CSS部分 二、javascript部分/Js/为存放路径登录按钮注册按钮退出按钮 三、后端部分SysUser实体类SysUser控制类SysUser服务层SysUser服务实现层SysUser访问层mybatis部分 四、ResponseCode部分五、maven部分总结 前言 HTML,让…