glm2大语言模型服务环境搭建

news2024/10/11 10:21:50

一、模型介绍

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练。对于更长的上下文,我们发布了 ChatGLM2-6B-32K 模型。LongBench 的测评结果表明,在等量级的开源模型中,ChatGLM2-6B-32K 有着较为明显的竞争优势。
更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
更开放的协议:ChatGLM2-6B 权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。

二、基本环境介绍

芯片:910a
操作系统:openEULER

三、环境搭建

1、下载与芯片型号版本相应的驱动

1)下载驱动,链接为:https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend HDK/Ascend HDK 23.0.RC3/Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run

加速卡的话是910的包:

2)修改权限:

chmod +x Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run

3)安装驱动:

./Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run --full --install-for-all
4) 重启:

Reboot

重启后可以查看驱动信息:npu-smi info
在这里插入图片描述

2、安装依赖库

# 安装gcc,make依赖软件等。
yum install -y gcc g++ make cmake  unzip pciutils net-tools  gfortran
sudo yum install openssl-devel
sudo yum install libffi-devel
sudo yum install zlib-devel
sudo yum install sqlite-devel
sudo yum install blas-devel
sudo yum install blas

3、安装python

使用python源码安装:
到python官网下载源码文件:Python Source Releases | Python.org
这里我们下载python3.8.10
https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz

https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz
下载成功后,安装:

tar -zxvf Python-3.9.4.tgz
cd Python-3.9.4
./configure --prefix=/usr/local/python3.8.10 --enable-optimizations --enable-shared --with-ssl
make&make install

如果因为环境问题安装失败需要重新安装的话,务必执行一下
make clean 删除一下缓存


ln -s /usr/local/python3.9.4/bin/python3.9 /usr/bin/python
ln -s /usr/local/python3.9.4/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3.9.4/bin/lib/libpython3.9m.so.1.0 /usr/lib64/

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/bin/python3 /usr/bin/python

export LD_LIBRARY_PATH=/usr/python3.9.4/lib:$LD_LIBRARY_PATH

4、安装依赖包

pip install attrs
pip install numpy
pip install decorator
pip install sympy
pip install cffi
pip install pyyaml
pip install pathlib2
pip install psutil
pip install protobuf
pip install scipy
pip install requests
pip install absl-py
pip install loguru

服务依赖
pip install fastapi
pip install "uvicorn[standard]"
Pip install requests

为uvicorn添加软链:
ln -s /usr/local/python3.8.10/bin/uvicorn /usr/bin/uvicorn


pip uninstall te topi hccl -y
pip install sympy
pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/te-*-py3-none-any.whl
pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/hccl-*-py3-none-any.whl

5、安装cann

cann不支持python 3.9.7以上版本

参考:安装步骤(openEuler 22.03)-安装依赖-安装开发环境-…-文档首页-昇腾社区 (hiascend.com)

  1. 安装cann:到资源下载中心下载相应的cann包:资源下载中心-昇腾社区 (hiascend.com)
  2. 基于arm架构的最新版cann:
    在这里插入图片描述
  3. 下载:

wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%207.0.RC1/Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run

  1. 下载到npu目录后,修改为可执行的权限:

chmod -R +x Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run

  1. 执行安装,指定安装目录到 /usr/local/Ascend

./Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run --install-path=/usr/local/Ascend —full

6、安装mindspore

参考 :MindSpore官网

安装gcc

sudo yum install gcc -y

卸载安装包

pip uninstall te topi hccl -y

安装:
pip install sympy
pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/te-*-py3-none-any.whl
pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/hccl-*-py3-none-any.whl

安装mindspore:

pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.2.0/MindSpore/unified/aarch64/mindspore-2.2.0-cp39-cp39-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple

配置环境变量:

# control log level. 0-DEBUG, 1-INFO, 2-WARNING, 3-ERROR, 4-CRITICAL, default level is WARNING.
export GLOG_v=2

# Conda environmental options
LOCAL_ASCEND=/usr/local/Ascend # the root directory of run package

# lib libraries that the run package depends on
export LD_LIBRARY_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/lib64:${LOCAL_ASCEND}/driver/lib64:${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH}

# Environment variables that must be configured
## TBE operator implementation tool path
export TBE_IMPL_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe
## OPP path
export ASCEND_OPP_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp
## AICPU path
export ASCEND_AICPU_PATH=${ASCEND_OPP_PATH}/..
## TBE operator compilation tool path
export PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/compiler/ccec_compiler/bin/:${PATH}
## Python library that TBE implementation depends on
export PYTHONPATH=${TBE_IMPL_PATH}:${PYTHONPATH}

7、验证安装

python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"

在这里插入图片描述
验证没问题

在python命令行中键入下列语句,输出正确,没问题

import numpy as np
import mindspore as ms
import mindspore.ops as ops

ms.set_context(device_target="Ascend")
x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))

在这里插入图片描述

8、下载项目源码和模型文件

scp -r -P 25322 ./models root@180.169.210.135:/var/lib/docker/models

9、安装mindpet

Cd /usr/local/mindpet_code

wget https://gitee.com/mindspore-lab/mindpet/repository/archive/master.zip

unzip master.zip
cd mindpet-master/
python set_up.py bdist_wheel
pip install dist/mindpet-1.0.2-py3-none-any.whl

安装完成

10、安装mindformers

Cd /usr/local/mindformers_code

wget https://gitee.com/mindspore/mindformers/repository/archive/dev.zip

Unzip dev.zip
Cd mindformers-dev
bash build.sh

11、环境准备完成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据实验三-HBase编程实践

目录 一.实验内容 二.实验目的 三.实验过程截图及说明 1、安装HBase 2、配置伪分布式模式: 3、使用hbase的shell命令来操作表: 4、使用hbase提供的javaAPI来编程实现类似操作: 5、实验总结及心得体会…

『VUE』10. 事件修饰符(详细图文注释)

目录 什么是事件修饰符?vuejs 不使用修饰符 原生js实现禁用事件对象的默认事件使用事件修饰符 .prevent使用事件修饰符 .stop使用事件修饰符 .self 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 什么是事件修饰符? vue 在 Vu…

『51单片机』蜂鸣器

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

【研发日记】白话解读UDS协议(一)——19 04读取快照服务

文章目录 前言 19服务 04子服务 19 04协议 快照存储设计 快照发送设计 功能验证 分析和应用 总结 前言 近期在一个嵌入式软件开发项目中,要按照UDS标准开发相关功能,期间在翻阅UDS标准时,周围同事都说很多地方晦涩难懂。所以利用晚上…

ObjectiveC-08-OOP面向对象程序设计-类的分离与组合

本节用一简短的文章来说下是ObjectiveC中的类。类其实是OOP中的一个概念,概念上简单来讲类是它是一组关系密切属性的集合,所谓的关系就是对现实事物的抽象。 上面提到的关系包括很多种,比如has a, is a,has some等&…

基于Java,SSM,html,Vue在线视频播放管理系统网站设计

摘要 基于Java, SSM, HTML, Vue的在线视频播放管理系统网站设计是一个利用Spring框架、SpringMVC、MyBatis(SSM)和前端技术HTML与Vue.js实现的多功能Web应用。这个系统旨在为用户提供一个便捷、高效的平台来上传、管理和观看视频内容,同时兼…

Spring与SpringBoot的区别

Spring是一个开源的Java应用程序框架,旨在简化企业级Java应用程序的开发。它提供了一个轻量级的容器,用于管理应用程序中的各个组件(如依赖注入、AOP等),并提供了丰富的功能和模块,用于处理数据库访问、事务…

enqueue:oracle锁机制

实现锁的方式就是排队咯,那么排队就是有enqueue这么个结构来管理 管理锁的结构叫队列,即enqueue 所有和enqueue相关的函数都叫KSQ-- kernal service enqueue lock是从应用层面看到的锁,enqueue是oracle内部管理锁的一个结构。 可以用v$lock_…

ajax教程

文章目录 一、原生ajax1、AJAX 简介2、特点1)优点2)缺点 二、http协议1、概念2、Cookie和Session机制1)Cookie2)Session3)报文 二、请求头1、概念2、常见请求头:3、Content-Type 三、AJAX使用1、详细操作2、…

vue快速入门(三)差值表达式

注释很详细&#xff0c;直接上代码 上一篇 新增内容 插值表达式基本用法插值表达式常用公式 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

显示器and拓展坞PD底层协商

简介&#xff1a; PD显示器或者PD拓展坞方案中&#xff0c;连接显示设备的Type-C端口主要运行在DRP模式&#xff0c;在此模式下可以兼容Source&#xff08;显卡&#xff09;、Sink&#xff08;信号器&#xff09;、DRP&#xff08;手机、电脑&#xff09;模式的显示设备。 Sou…

维基百科:8个提升维基百科推广效果的优化技巧-华媒舍

维基百科是全球最大的在线百科全书&#xff0c;致力于向用户提供高质量、可靠的知识内容。想要让自己的文章在维基百科中获得更多的曝光度和推广效果&#xff0c;并非易事。为此&#xff0c;我们整理了以下8个提升维基百科推广效果的优化技巧。 1. 确保内容符合要求 维基百科对…

Quiet-STaR:让语言模型在“说话”前思考

大型语言模型(llm)已经变得越来越复杂&#xff0c;能够根据各种提示和问题生成人类质量的文本。但是他们的推理能力让仍然是个问题&#xff0c;与人类不同LLM经常在推理中涉及的隐含步骤中挣扎&#xff0c;这回导致输出可能在事实上不正确或缺乏逻辑。 考虑以下场景:正在阅读一…

windows下安装iteliij Idea2023.3

首先从官网下载 下载 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 双击打开进行安装&#xff1a; 安装完成后&#xff0c;需要对Idea进行稍微处理下。使用我分享给大家的文件&#xff0c;操作以下步骤&#xff1a; 注意&#xff1a;不能打开IDEA软件。 进入到scripts中点击un…

Spring Cloud微服务入门(一)

微服务的演变过程 //controller 视图交互层 前端数据处理传给service //1.DAO RequestBody userDAO String id;String type; {"id":"lcs", "type":"lcs"} //2.GET请求 findUserById&#xff1f;id1&typelcsRequestParam String …

css3之3D转换transform

css3之3D转换 一.特点二.坐标系三.3D移动&#xff08;translate3d)1.概念2.透视&#xff08;perpective)(近大远小&#xff09;&#xff08;写在父盒子上&#xff09; 四.3D旋转&#xff08;rotate3d)1.概念2.左手准则3.呈现&#xff08;transfrom-style)&#xff08;写父级盒子…

Python脚本:给TXT文件中的地铁站名添加引号

Python脚本&#xff1a;给TXT文件中的地铁站名添加引号 在日常的数据处理工作中&#xff0c;我们经常需要对文本数据进行格式化和处理。今天&#xff0c;我们就来分享一个使用Python脚本对TXT文件中的地铁站名进行处理的小技巧&#xff1a;将每行的地铁站名字加上双引号。 需求…

创新指南|贝恩的产品经理RAPID框架:解决问题的分步指南,使决策过程既高效又民主

您是否曾发现自己陷入项目的阵痛之中&#xff0c;决策混乱、角色不明确、团队成员之间的冲突不断升级&#xff1f;作为产品经理&#xff0c;驾驭这艘船穿过如此汹涌的水域可能是令人畏惧的。应对这些挑战的关键在于采用清晰、结构化的决策方法。输入贝恩的 RAPID 框架&#xff…

基于8B10B的GT收发器PHY层设计(3)PHY层设计

文章目录 前言一、设计框图二、PHY层基本传输协议三、PHY_TX模块3.1、模块接口3.2、组帧状态机描述3.3、数据大小端问题3.4、字节对齐 四、PHY_RX模块4.1、模块接口4.2、大小端转换4.3、起始位4.4、结束位4.5、axis数据流恢复 五、LFSR伪随机码六、链路空闲时期处理 前言 上一…

宁盾入选“2023年度中国高科技高成长企业榜”多个榜单

4月1日&#xff0c;由【第一新声】联合【天眼查】启动“数字未来”系列之 2023 年度中国高科技高成长企业系列榜单正式发布。宁盾入选未来独角兽企业、网络安全领域高成长企业、信创产业最佳服务商、企业数字化标杆案例 4 个榜单。 该榜单旨在发现和挖掘被资本市场关注&#xf…