AIGC:在云上从0开始搭建ChatGLM2-6B LLM环境

本文涉及的产品
云服务器 ECS,u1 2核4GB 3个月
云服务器 ECS,u1 4核8GB 1个月
云服务器 ECS,每月免费额度200元 3个月
简介: 清华的chatGLM前段时间发布了第二代chatGLM2-6B,已经开放使用了。本文介绍在云上从0开始搭建ChatGLM-6B LLM环境,供大家参考。

在云上从0开始搭建LLM环境

以在Ubuntu 18.04 64系统搭建LLM环境,安装《ChatGLM2-6B》为例:

 

1、 创建GPU实例(显存8GB以上,磁盘至少40G),本文选择了带P100 GPU ecs.gn5-c4g1.xlarge实例,并在实例创建时选择安装cuda 11.4。设置用户名及登录密码。

image.png

2、 设置安全组配置,配置出方向端口22,并在源IP中加入本机IP

3、 Ssh到云ECS。系统会提示正在安装CUDA,待安装完毕,查看GPU详情(若命令无法正常运行,则说明CUDA没安装好):nvidia-smi

image.png

4、 ECS上安装相关软件包:

Asudo apt-get update

B安装gcc编译器(可选,系统中通常已有)sudo apt install build-essential

C、安装Python,以3.8为例:sudo apt install python3.8

D、安装miniconda

1)     下载安装包:注意miniconda包需选择对应python版本的包

wget https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-x86_64.sh

2)     运行安装脚本,并初始化:bash Miniconda3-py38_23.3.1-0-Linux-x86_64.sh

3)    (可在2中完成)初始化终端 Shell,以便运conda~/miniconda3/bin/conda init

4)     初始化完成后,运行bash命令,即可进入conda环境:bash

5)    创建个新的环境(可选):conda create --name aigc python=3.8 -y

6)    激活aigc环境(可选):conda activate aigc

5、安装gitsudo apt install git    

6git clone ChatGLM2-6B,并安装软件依赖:

git clone https://github.com/THUDM/ChatGLM2-6B

cd ChatGLM2-6B && pip install -r requirements.txt

pip install fastapi uvicorn

 

7将模型下载到本地,从本地加载:

安装git-lfsapt install git-lfs

切换到待下载模型的文件夹路径(确保有15G以上空间),然后执行:

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

注意:模型有数个bin文件,共十几G大小。下载后需要切换到chatglm2-6b目录下检查模型文件大小。如果没有成功下载,可以使用如下命令来更新模型文件:

cd chatglm2-6b && git lfs pull

 

8运行cli_demo代码中tokenizermodel变量中的"THUDM/chatglm2-6b"更换成模型本地路径。此外,如果希望固定使用的模型实现以保证兼容性,可在tokenizermodel from_pretrained 调用中增加 revision="v1.0" 参数。v1.0 是当前最新的版本号。示例:/home/fsnode/chatglm2-6b是本地模型路径。

tokenizer= AutoTokenizer.from_pretrained("/home/fsnode/chatglm2-6b", revision="v1.0", trust_remote_code=True)

model = AutoModel.from_pretrained("/home/fsnode/chatglm2-6b",revision="v1.0", trust_remote_code=True).half().cuda()

运行脚本:python cli_demo.py

image.png

 

9、(可选)运行web_demo:除了需要修改模型存放路径外(见上),Web如需要公网访问,还需要将web_demo.py中修改:share=True

A、安装gradio pip install gradio

B、在ECS上运行脚本:python web_demo.py

C、本地便携机上执行如下命令,将云ECS7860端口映射到本地(IP及用户名填实际的):

ssh -L7860:localhost:7860 root@120.79.15.98

D、在本地浏览器登录web界面:http://127.0.0.1:7860

image.png

 

10、运行基于Streamlit的网页版Demoweb_demo2.py):web_demo.py有个缺陷,生成的公网链接是临时的,仅72小时有效。可使用Streamlit网页版。

A、安装需要的模块:pip install streamlit     pip install streamlit-chat

B、修正web_demo2.py中的模型路径"THUDM/chatglm2-6b"为本地路径,并指定revision="v1.0"

C、添加安全组规则:在ECS实例安全组的入方向添加安全组规则,并放行8501端口(该端口是默认端口,也可以自定义)。

D、运行DEMOstreamlit run web_demo2.py &。如果要指定服务端口,则需要在安全组放行该端口,运行时带上端口参数,如:streamlit run web_demo2.py --server.port 6006 &

image.png

 

参考:

https://github.com/THUDM/ChatGLM2-6B

 

知识库+LLM羊毛推荐

阿里云近期推出了60元包月的知识库+LLM体验活动,可用于测试、开发、学习、工作助理等,入口https://common-buy.aliyun.com/?commodityCode=hitsdb_aigcsharepre_public_cn

详见:https://developer.aliyun.com/article/1322802

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)(一)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)
309 0
|
2月前
|
存储 人工智能 API
【AIGC】基于检索增强技术(RAG)构建大语言模型(LLM)应用程序
【5月更文挑战第7天】基于检索增强技术(RAG)构建大语言模型(LLM)应用程序实践
323 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)(二)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)
192 0
|
2月前
|
人工智能 自然语言处理 Kubernetes
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
161 0
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
24 LLM错误代码补全:机器学习顶会NeurIPS‘23 智能体评估:自行构建数据集Buggy-HumanEval、Buggy-FixEval+错误代码补全+修复模型【网安AIGC专题11.22】
24 LLM错误代码补全:机器学习顶会NeurIPS‘23 智能体评估:自行构建数据集Buggy-HumanEval、Buggy-FixEval+错误代码补全+修复模型【网安AIGC专题11.22】
173 0
|
2月前
|
机器学习/深度学习 自然语言处理 安全
18LLM4SE革命性技术揭秘:大型语言模型LLM在软件工程SE领域的全景解析与未来展望 - 探索LLM的多维应用、优化策略与软件管理新视角【网安AIGC专题11.15】作者汇报 综述
18LLM4SE革命性技术揭秘:大型语言模型LLM在软件工程SE领域的全景解析与未来展望 - 探索LLM的多维应用、优化策略与软件管理新视角【网安AIGC专题11.15】作者汇报 综述
422 0
|
8月前
|
自然语言处理 搜索推荐 Java
【网安AIGC专题10.25】9 LIBRO方法(ICSE2023顶会自动化测试生成):提示工程+查询LLM+选择、排序、后处理(测试用例函数放入对应测试类中,并解决执行该测试用例所需的依赖)
【网安AIGC专题10.25】9 LIBRO方法(ICSE2023顶会自动化测试生成):提示工程+查询LLM+选择、排序、后处理(测试用例函数放入对应测试类中,并解决执行该测试用例所需的依赖)
182 0
|
8月前
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题10.25】论文7:Chatgpt/CodeX引入会话式 APR 范例+利用验证反馈+LLM 长期上下文窗口:更智能的反馈机制、更有效的信息合并策略、更复杂的模型结构、鼓励生成多样性
【网安AIGC专题10.25】论文7:Chatgpt/CodeX引入会话式 APR 范例+利用验证反馈+LLM 长期上下文窗口:更智能的反馈机制、更有效的信息合并策略、更复杂的模型结构、鼓励生成多样性
114 0
|
2月前
|
物联网 测试技术 API
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
|
16天前
|
存储 人工智能 安全
使用‘消除’技术绕过LLM的安全机制,不用训练就可以创建自己的nsfw模型
本文探讨了一种名为“abliteration”的技术,该技术能够在不重新训练大型语言模型(LLM)的情况下移除其内置的安全审查机制。通常,LLM在接收到潜在有害输入时会拒绝执行,但这一安全特性牺牲了模型的灵活性。通过对模型残差流的分析,研究人员发现可以识别并消除导致拒绝行为的特定方向,从而允许模型响应所有类型的提示。
261 1