移动云以深度融合之服务,令“大”智慧贯穿云端
移动云助力大模型,开拓创新领未来。
云计算——AI模型的推动器。
当前人工智能技术发展的现状和趋势,以及中国在人工智能领域的发展策略和成就。确实,以 ChatGPT 为代表的大型语言模型在自然语言处理、文本生成、对话系统等领域取得了显著的成果,并且正在逐步改变我们的工作和生活方式。
由于政府部门的大力支持和企业的积极投资,人工智能产业得到了迅速发展。大型模型训练和部署需要巨大的计算资源和存储空间,以及相应的技术支持,这对许多企业来说是一个挑战。云计算平台提供了解决这一问题的方案,它允许企业通过按需购买服务的方式来使用计算资源,而无需自行建设和维护昂贵的硬件基础设施。
中国移动云和九天人工智能的合作,展示了中国在人工智能领域的创新和进步。通过构建智能计算基础设施,提供高效的智能化算力服务,中国正在推动从数字化到数智化的转变,这将有助于提升国家的竞争力。
此外,中国还在人工智能的关键技术领域进行突破,比如算网大脑的构建,这将进一步提升人工智能模型的性能和应用效率。通过这些努力,中国有望在未来的人工智能领域继续保持领先地位。
架构创新,改变云计算服务供给模式
移动云通过推出COCA(Compute on chip Architecture)软硬一体片上计算架构,正在重塑云计算服务供给模式,这一架构的发布标志着移动云在算力服务模式创新方面迈出了重要一步。COCA架构的三大核心单元——GPU、DPU、HPN,结合自研可编程DPU、多元异构智能算力、高性能RDMA网络、Diskless存储架构引擎等技术,旨在构建高效的大模型算力基础设施。这种基础设施能够实现高性能算力集群的横向融合和垂直抽象,统一提供计算、存储、网络、安全、管控能力的硬件卸载加速。
通过COCA架构,移动云计划加速算力基础设施的建设,并为目标用户提供一体化的算力服务,这些服务将具有“融合、智能、无感、极简”的特点。这种服务模式不仅提供了强大的计算能力,还通过硬件卸载加速减少了资源浪费,提高了效率,使得用户能够更加专注于自己的业务需求,而不是基础的计算资源管理。这一创新有望在云计算领域引发新的变革,为企业和开发者提供更加高效、智能的算力支持。
对此感兴趣的伙伴可以尝试体验一下,下面将介绍如何在移动云上简单部署大模型。
移动云上部署大模型ChatGLM3-6b
前言
通过移动云,大语言模型可以在移动设备上得到更好的应用和发展。在部署后可以完全本地运行,后面将介绍移动云部署大模型的实际应用,介绍怎么通过移动云上在 Linux 服务器上部署 ChatGLM3 服务,并通过多种方式使用本地部署地大模型。
服务器准备
移动云服务器(试用申请网址)
-
进入官网页面后,进行实名认证,选择一个合适的云服务器。
-
选择地区,以及服务器的型号与配置。
-
网络配置(如果自己将要将自己的网站放在公网中时,需要先进行ICP备案。)以下操作将自己的网络地址配置到自己的云主机中。
-
当前往支付完成后可以就得到一台Linux服务器。
-
进行密码修改
-
找到弹性公网IP,将系统默认给的公网IP分配给我们的云主机。
-
远程登陆需要开放ssh端口(22)
-
使用远程登陆软件,可以直接用vscode登陆,这里用xshell演示。
环境准备
- 安装 Python 环境
在Linux操作系统中,尽管通常会预装Python解释器,但其版本往往较低,可能不符合ChatGLM所需的最小Python版本要求(3.7及以上)。因此,在大多数情况下,用户需要部署一个符合要求的Python环境。然而,如果系统已经配备了满足条件的Python版本,则无需重复安装。
尽管可以选择从源代码下载并编译安装Python,但为了简化安装过程,确保PyTorch等库的顺利安装,并避免对系统稳定性造成影响,推荐使用Anaconda发行版来安装Python环境。
# 下载 conda 安装包
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
# 安装 conda 注意安装过程中指定安装路径
bash Anaconda3-2023.03-1-Linux-x86_64.sh
# 配置软连接
ln -s /[your-install-path]/anaconda3/condabin/conda /usr/bin/conda
- 安装 Git LFS
为了高效地从 Hugging Face Hub 上下载 ChatGLM 模型到本地,并提高加载模型的响应效率,推荐先安装 Git LFS(Large File Storage)。Git LFS 是一种适用于 Git 仓库的工具,它能够优化大文件的管理,使得文件传输更加高效。
sudo yum install git -y
git --version
sudo yum install git-lfs -y
模型安装
- 下载 ChatGLM3
首先,请从 Github 下载 ChatGLM3 仓库,并在仓库目录下使用 pip 安装所需的依赖。
根据官方推荐,为了获得最佳的推理性能,建议使用 transformers 库的 4.30.2 版本,以及 torch 2.0 或更高版本。
git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
# conda 创建虚拟环境
conda create -n torch python=3.10
# 激活环境 # 退出环境 conda deactivate
conda activate torch
# 下载依赖包
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
- 下载预训练模型
下面我们用 Git LFS 从 Hugging Face Hub 将模型下载到本地,从本地加载模型响应速度更快。
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
如果从你从 HuggingFace 下载比较慢,也可以从 ModelScope 中下载!
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
模型使用
首先,将你从 THUDM/ChatGLM3-6b 下载的预训练模型文件保存在 ChatGLM3 仓库的适当目录中。如果你是通过 ModelScope 获取的模型,请确保目录结构正确,因为加载模型时可能需要调整本地的路径设置。
ChatGLM3 支持三种使用方式:命令行界面、网页版界面和 API 接口。在运行模型之前,你需要找到对应使用方式的 Python 源代码文件,即 cli_demo.py、web_demo.py 和 openai_api.py。在这些文件中,你需要修改一行代码,使其指向你的模型文件。
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True).cuda()
修改两个地方:(1)本地模型的存放路径 THUDM/chatglm3-6b;(2)根据自己的硬件环境参考 DEPLOYMENT.md 选择模型加载方式,float() CPU 部署,cuda() GPU 部署。
- 命令行版 cli_demo.py
命令行启动方式,首先找到 ChatGLM3 目录下的 cli_demo.py 文件,修改代码如下:
修改完成之后,到 ChatGLM3 目录下运行 python cli_demo.py
启动服务
程序会在命令行中进行交互式的对话,在命令行中通过 用户: 进行输入指示,直接输入问题回车即可生成回复,输入 clear 可以清空对话历史,输入 stop 终止程序。
2. 网页版 web_demo.py
网页版和命令行相似,但是提供了更加友好交互页面,找到 ChatGLM3 目录下的 web_demo.py 文件,做出相同的代码修改,
然后,到 ChatGLM3 目录下运行 python web_demo.py
启动服务
程序会运行一个 Web Server,并输出一个访问地址,在浏览器中打开输出的地址即可使用。
3. API 部署 openai_api.py
这个部分将结合 ChatGPT-Next-Web为例,使得ChatGLM3 实现了 OpenAI 格式的流式 API 部署,这使得ChatGLM3可以作为任意基于 ChatGPT 的应用的后端。
首先,到 https://github.com/Yidadaa/ChatGPT-Next-Web/releases 下载 ChatGPT-Next-Web,这个交互页面很轻量级。
然后,到 ChatGLM3 目录下找到 openai_api.py 源码文件,和上面方式一样,修改本地模型路径和部署方式,还有根据自己需要修改最后一行代码中定义的 Host 和 Port,这是 ChatGPT 应用的访问 URL。
接着,在仓库目录下执行 python openai_api.py
启动模型服务
然后将日志打印出的接口地址 http://localhost:8000/ 写入 ChatGPT-Next-Web 的设置中,并添加自定义模型 chatglm3
完成设置之后,API部署就完成了。
结束语
了解更多移动云产品请移步官网移动云官网
相关文章:

移动云以深度融合之服务,令“大”智慧贯穿云端
移动云助力大模型,开拓创新领未来。 云计算——AI模型的推动器。 当前人工智能技术发展的现状和趋势,以及中国在人工智能领域的发展策略和成就。确实,以 ChatGPT 为代表的大型语言模型在自然语言处理、文本生成、对话系统等领域取得了显著的…...
簡述vue常用指令
Vue.js 提供了许多内置指令,这些指令用于在模板中添加特殊功能。以下是一些 Vue 的常用内置指令的简要说明: v-text: 更新元素的 textContent。示例:<span v-text"message"></span> v-html: 更…...

【建议收藏】用AI快速生成一个网页(名侦探柯南~灰原哀主题网页),适合大学生web期末大作业
下面是提供给AI的提示词和AI给出的代码以及成果展示 1、生成一个网页导航栏,宽度为1300px,高度为60px。导航区域在导航栏最右侧不超出导航栏,高60px,宽度500px,里面是5个导航菜单项横向排列,每个宽度100px&…...

用c++用4个凸函数(觉得啥好用用啥)去测试adam,rmsprop,adagrad算法的性能(谁先找到最优点)
为了测试 Adam、RMSProp 和 Adagrad 算法的性能,你可以使用四个凸函数进行实验。以下是一些常用的凸函数示例: Rosenbrock 函数: Booth 函数: Himmelblau 函数: Beale 函数: 你可以选择其中一个或多…...

AJAX初级
AJAX的概念: 使用浏览器的 XMLHttpRequest 对象 与服务器通信 浏览器网页中,使用 AJAX技术(XHR对象)发起获取省份列表数据的请求,服务器代码响应准备好的省份列表数据给前端,前端拿到数据数组以后…...
重载大于号运算符,比较复数大小
本题目要求编写代码的功能为: 输入两个复数(变量名自拟),比较复数模的大小,复数实部与虚部都是整数 要求输入时输入4个整数,分别代表复数1的实部、虚部,复数2的实部虚部 输入格式: 在同一行中输…...

go ast语义分析实现指标计算器
什么是AST 首先我们要知道AST是什么(Abstract Syntax Tree,AST),简称为语法树,是go语言源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。 …...
【Vue】组件间传参与方法调用
【前言】 … 【目标】 1 了解组件间传参 2 组件间自定义事件绑定与解绑 3 组件的事件总线 4 消息订阅与发布 一 组件间传参 1 props 引入并使用组件:传递参数 <template><div id="app"><HelloWorld :msg="msg" :name="name" …...
类和对象2
三、C对象模型和this指针 3.1 成员变量和成员函数分开存储 在C中,类内的成员变量和成员函数分开存储,只有非静态成员变量才属于类的对象上 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <string.h> using namespace …...

Linux系统命令traceroute详解(语法、选项、原理和实例)
目录 一、traceroute概述 二、语法 1、基本语法 2、命令选项 三、帮助信息 四、示例 1. 使用默认模式(ICMP Echo)追踪到目标主机 2. 使用UDP模式(需要root权限)追踪到目标主机 3. 不解析IP地址为主机名,直接显…...

中兴通讯助力中国移动,推动SPN AI节能技术于23省规模部署
SPN作为中国移动自主创新的新一代综合承载网络,相比PTN设备,SPN的单机容量及性能有大幅提升,整机功耗也相应变大。在当前国家双碳政策的目标下,SPN设备的节能降耗也日益成为中国移动关注的焦点。因此,中国移动选择与中…...
SQL Server--死锁
今天,客户反应打不开xxx页面了。好家伙肯定锁表了。。。。。 只能先吧死锁进程先kill掉,不能耽误客户生产环境运行。。。。。 一定要看看是那张表发生了死锁 1、查询死锁语句 select dbid,* from sys.sysprocesses where 11 and spid >50 and blo…...

中科蓝讯AB32VG1中文寄存器说明GPIO端口操作
1 GPIO管理 1.1 GPIO通用控制寄存器 寄存器 1- 1 GPIOA:端口 A 数据寄存器 位寄存器名模式缺省描述31:8---未使用7:0GPIOA写0x00PAx 数据。当 PAx 用作 GPIO 时有效 0:读取时PAx为输入低电平状态,写入时PAx为输出低电平; 1:PAx…...

如何查看热门GPT应用?
1、登陆chatgpt 2、访问 https://chatgpt.com/gpts 3、在该界面,可以搜索并使用image generator, Write For Me,Language Teature等热门应用。...
C++中的各种定义
文章目录 前言一、1、unsigned2、_countof、sizeof 总结 前言 一、 1、unsigned 在C语言中,"unsigned"是一个数据类型修饰符,用于修饰整数类型,表示该类型的变量只能存储非负整数,即无符号整数。它可以应用于char、s…...
Java面向对象-常用类(日期时间类)
常用类-日期时间类 Date(java.util.Date) – 日期类 SimpleDateFormat – 格式化日期类 Calendar – 日历类 1 Date类 java.util.Date类表示特定的瞬间,精确到毫秒。 package com.qf.datetime;import java.util.Date;public class Test01 {…...

Shell环境变量深入:自定义系统环境变量
Shell环境变量深入:自定义系统环境变量 目标 能够自定义系统级环境变量 全局配置文件/etc/profile应用场景 当前用户进入Shell环境初始化的时候会加载全局配置文件/etc/profile里面的环境变量, 供给所有Shell程序使用 以后只要是所有Shell程序或命令使用的变量…...

【C++课程学习】:命名空间的理解(图文详解)
🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 📷1.命名冲突 📷2.重定义 📷3.命名空间 🍺命名空间可…...

鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】
平台差异化 简介 跨平台使用场景是一套ArkTS代码运行在多个终端设备上,如Android、iOS、OpenHarmony(含基于OpenHarmony发行的商业版,如HarmonyOS Next)。当不同平台业务逻辑不同,或使用了不支持跨平台的API…...
蓝牙Mesh模块组网时无线回程影响速率吗?
随着科技的发展,智能家居、智能办公等场景越来越广泛地应用于我们的生活。其中,蓝牙Mesh组网技术作为一种新型的无线通信技术,受到了越来越多用户的关注。那么,蓝牙Mesh模块在组网时无线回程过程中是否会影响速率呢?本…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...