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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: AIGC:在云上从0开始搭建ChatGLM-6B LLM环境

安装步骤

以在Ubuntu 18.04 64系统搭建LLM环境,安装《ChatGLM-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 ChatGLM-6B,并安装软件依赖:

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

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

pip install fastapi uvicorn

 

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

安装git-lfsapt install git-lfs

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

 

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

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

model = AutoModel.from_pretrained("/home/fsnode/chatglm-6b", revision="v1.1.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@ecs公网IP

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/chatglm-6b"为本地路径,并指定revision="v1.1.0"

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

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

 

附录:Python示例代码:

>>> from transformers import AutoTokenizer, AutoModel

>>> tokenizer = AutoTokenizer.from_pretrained("/home/fsnode/chatglm-6b", trust_remote_code=True)

>>> model = AutoModel.from_pretrained("/home/fsnode/chatglm-6b", trust_remote_code=True).half().cuda()

>>> model = model.eval()

>>> response, history = model.chat(tokenizer, "你好", history=[])

>>> print(response)

你好!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。

>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)

>>> print(response)

晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:

 


参考:

https://github.com/THUDM/ChatGLM-6B#readme

https://github.com/imClumsyPanda/langchain-ChatGLM


知识库+LLM羊毛推荐

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

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
人工智能 并行计算 算法
LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
70 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)(一)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)
408 0
|
4月前
|
人工智能 运维 Serverless
报名参课丨解锁 Serverless+AI 新模式,拥有专属 AIGC 环境
Serverless 和 AI 大模型都是当前云上最火的技术方向,本次活动期望通过 Severless+AI 技术的强强联合,期待为客户提供基于 Serverless 技术实现 AI 推理部署平台的技术思路,一键解锁 AI 潜力,无需繁琐运维,降低 GPU 的使用成本、减少企业或个人创业的试错成本,让人人都可以拥有自己“专属”的 AIGC 环境成为可能。
|
3月前
|
机器学习/深度学习 自然语言处理 索引
AIGC:LLM大型语言模型是怎么交流的? ———分词
AIGC:LLM大型语言模型是怎么交流的? ———分词
|
6月前
|
存储 人工智能 API
【AIGC】基于检索增强技术(RAG)构建大语言模型(LLM)应用程序
【5月更文挑战第7天】基于检索增强技术(RAG)构建大语言模型(LLM)应用程序实践
457 1
|
6月前
|
人工智能 搜索推荐 UED
如何评价AIGC技术的社会需求和市场环境?
【4月更文挑战第30天】如何评价AIGC技术的社会需求和市场环境?
196 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)(二)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)
308 0
|
6月前
|
人工智能 自然语言处理 Kubernetes
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
326 0
|
6月前
|
机器学习/深度学习 数据采集 自然语言处理
24 LLM错误代码补全:机器学习顶会NeurIPS‘23 智能体评估:自行构建数据集Buggy-HumanEval、Buggy-FixEval+错误代码补全+修复模型【网安AIGC专题11.22】
24 LLM错误代码补全:机器学习顶会NeurIPS‘23 智能体评估:自行构建数据集Buggy-HumanEval、Buggy-FixEval+错误代码补全+修复模型【网安AIGC专题11.22】
294 0
|
6月前
|
机器学习/深度学习 自然语言处理 安全
18LLM4SE革命性技术揭秘:大型语言模型LLM在软件工程SE领域的全景解析与未来展望 - 探索LLM的多维应用、优化策略与软件管理新视角【网安AIGC专题11.15】作者汇报 综述
18LLM4SE革命性技术揭秘:大型语言模型LLM在软件工程SE领域的全景解析与未来展望 - 探索LLM的多维应用、优化策略与软件管理新视角【网安AIGC专题11.15】作者汇报 综述
669 0
下一篇
无影云桌面