如何真正“不花一分钱”部署一个属于你的大模型

前言

看了那么多chatGPT的文章,作为一名不精通算法的开发,也对大模型心痒痒。但想要部署自己的大模型,且不说没有算法相关的经验了,光是大模型占用的算力资源,手头的个人电脑其实也很难独立部署。就算使用算法压缩后的大模型,部署在个人电脑上,还要忍受极端缓慢的计算速度以及与chatGPT相差甚远的模型效果。

有什么办法能够部署属于我们自己的大模型呢?其实很简单,我们将目标拆解一下:

  • 有编程基础:作为一个合格的程序员,这应该是必备素质。
  • 有足够的算力资源:专业GPU自己买不起怎么办,阿里云最近推出了”飞天“免费试用计划,AI模型训练,GPU资源免费用!
  • 要懂大模型:真的要精通大模型吗?不需要。如果只是简单的模型部署和使用,现在的开源模型部署已经非常简单化,只需要掌握基础的Python知识就可以。

随着chatGPT的火爆,许多开源爱好者涌入AI领域,将许多与大型模型相关的工具进行进一步封装,使得我们这些AI初学者也能够用很少的工作量搭建一个私有大型语言模型。而且,有许多成熟的工具可供我们使用,可以帮助我们进一步使用和微调大型模型。

因此,本文是为AI初学者们(包括我自己)编写的保姆级大型模型部署和使用指南。现在正值阿里云免费试用计划,我们可以不花一分钱就可以体验部署自己的大型模型的乐趣。

下图便是我通过阿里云免费申请的PAI平台资源(显卡是Nvidia V100),部署的清华大学chatGLM对话大模型,在网页端和手机端都能直接体验:

电脑端

手机端

下文围绕如何手把手搭建一个大模型Demo展开,文章主要目录:

  • 领取阿里云免费使用资源
  • 创建并使用PAI平台实例
  • 部署清华ChatGLM大模型
  • 加餐:免费额度用量查询
  • 总结和展望

领取阿里云免费使用资源

免费试用活动页

https://free.aliyun.com/

只要没有申请过PAI-DSW资源的新老用户皆可申请5000CU的免费额度,3个月内使用。

至于5000CU能用多久,和实际申请实例的性能相关,在下面会讲解。

创建并使用PAI平台实例

官方有PAI-DSW使用教程,教你如何用领取的免费资源搭建一个Stable Diffusion来做AI画图,如果对SD感兴趣,可以按照官方教程实践。

https://help.aliyun.com/document_detail/615220.html

我们领取额度后,秒到账。之后在阿里云页面内搜索PAI平台,点击立即开通,开通PAI控制台。

开通时的页面没有截图,其中有一些可选的开通项,比如NAS,比如网关等,可以按照自己需求选取,比如希望保存自己的模型,那可以关联NAS资源。我当时没有选其他资源,仅开通了PAI,这样没有额外的收费。

随后进入控制台,创建DSW实例。

这里选取资源,注意选择GPU资源,并选择支持资源包抵扣的资源。比如下图的ecs.gn6v-c8g1.2xlarg。可以看到他们的价格里,写明了每小时消耗的CU,你可以大致计算一下,5000CU可以用多久,ecs.gn6v-c8g1.2xlarg这个型号可以跑333小时,大概连续13天。

系统可以任意选择,本文为了部署chatGLM,选择pytorch1.12

当然,中间你可以随时停止机器,就不会继续扣费。注意,这里的机器,是只有系统盘的,如果停止了机器,挂载的系统盘会被回收,你在上面下载的各种文件,模型,都会回收掉。你重新启动,是新的系统盘,文件需要重新下载。(别问我怎么知道的- -!)

创建完成后,点击打开,就进入了交互式的Web页面,可以开始你的模型开发之旅。

部署清华ChatGLM大模型

上面已经讲完了资源的申请和实例的创建、使用,之后小伙伴们可以自行发挥,部署自己的大模型(或者任何AI相关资源)。本文后半部分介绍一下我自己折腾部署ChatGLM对话大模型的过程,给完全不了解大模型的小伙伴打个样。

ChatGLM代码仓库:

GitHub - THUDM/ChatGLM-6B: ChatGL M-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

大家完全可以按照官方文档自行部署,忽略我下面的教程。也可以按照我下方的流程来操作,避免再把我踩得坑再踩一遍。

下载模型

由于模型较大(13G左右),我们最好先把模型拉到本地,再运行。

当然,如果你也可以不下载离线模型,直接在运行时拉取模型文件。

模型文件仓库:

THUDM/chatglm-6b · Hugging Face

下载模型仓库,需要安装Git LFS(Large File Storage),它用来拉去Git仓库中的大型文件,比如这次用到的模型bin文件。

由于我们申请的系统正好是Ubuntu,在Ubuntu下安装Git LFS,可以使用如下命令:

sudo apt-get update

sudo apt-get install git-lfs

完成后,克隆模型仓库:

git clone  THUDM/chatglm-6b · Hugging Face

有可能网络波动,会导致拉取卡住,可以手动停止掉,然后进入文件夹内:

git lfs pull

这样会拉取到上图红框中LFS文件。

部署模型

完成模型下载后,我们下载模型运行代码:

git clone  GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

进入文件夹,创建python的虚拟环境:

virtualenv -p /usr/bin/python3.8 venv

激活Python虚拟环境:

source venv/bin/activate

如果遇到如下的报错,需要额外安装一下python3-dev:

Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects

error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

sudo apt-get install python3-dev

由于我们本地提前下载好了模型,我们修改一下代码,使用本地模型的路径。

将使用到的代码中,路径都从THUDM/chatglm-6b改为你的路径,比如我们的模型下载在/mnt/workspace/chatglm-6b,我们将两种部署模型的主代码文件都修改一下,都修改为如下图所示的路径:

  • cli_demo.py: 命令行交互界面
  • web_demo.py:Web图形交互界面

我们直接用官方提供的网页版Demo来跑模型,启动web_demo.py,开始模型部署,首先会将模型读入内存,占用约13个G。

完成后,内存会被释放,开始占用GPU显存13g。

最终,部署完成会得到服务公网和本地网址。

对话效果展示

回答还是比较快的,在我们V100显卡的机器上,提问后1-2秒内就会开始回答问题。

以下是一个完整的对话:

我:写一个Java单例模式代码

ChatGLM:以下是一个简单的Java单例模式代码示例:

public class Singleton {
    private static final Singleton INSTANCE = new Singleton();
    private Singleton() {}
    public static Singleton getInstance() {
        return INSTANCE;
    }
}

在这个示例中,Singleton 类是一个静态类,它有一个静态成员变量 INSTANCE,它初始化为一个单例对象。getInstance 方法返回这个单例对象的实例,可以像任何其他方法一样使用。
单例对象通常被用于确保一个类只有一个实例,并提供全局访问点。使用 getInstance 方法可以方便地获取单例对象,而无需担心多个线程同时访问同一个对象。
需要注意的是,在实际应用中,单例对象应该尽量避免被频繁创建和销毁,因为这样会增加内存开销和维护成本。因此,可以考虑使用懒加载(lazy loading)的方式来避免频繁创建单例对象。

我:可以换一个方式实现吗,比如懒汉式?

ChatGLM:当然可以,懒汉式单例模式的具体实现方式如下:

  1. 将 Singleton 类做成一个接口。
  2. 实现 Singleton 接口的类可以是多个,但它们都应该使用 getInstance 方法来获取单例对象,并返回一个指向该对象的引用。
  3. 实现 Singleton 接口的类中,可以有一个内部类来负责创建单例对象。
  4. 内部类应该实现 static 关键字,并使用 synchronized 关键字实现线程安全。
  5. 内部类应该覆盖 getInstance 方法,以实现懒加载。例如,可以创建一个静态变量来存储单例对象,并在需要时才创建该变量。
  6. 在需要使用单例对象的地方,可以调用内部类的方法,来获取单例对象。
    以下是一个懒汉式单例模式的示例代码:
public interface Singleton {
    static Singleton INSTANCE;
}
public class ConcreteSingleton implements Singleton {
    private static Singleton INSTANCE = new ConcreteSingleton();
    @Override
    public Singleton getInstance() {
        return INSTANCE;
    }
}
public class LazySingleton implements Singleton {
    private static Singleton INSTANCE;
    private Singleton() {}
    public static Singleton getInstance() {
        synchronized (LazySingleton.class) {
            return INSTANCE;
        }
    }
}

在这个示例中,ConcreteSingleton 类使用 getInstance 方法来创建单例对象,并使用 synchronized 关键字实现线程安全。LazySingleton 类使用 synchronized 关键字实现懒加载,只有在需要时才创建单例对象。
需要注意的是,懒汉式单例模式仍然需要保证线程安全,因此在使用懒加载时,需要考虑线程安全问题。此外,懒汉式单例模式可能无法充分利用类的空间,因为它需要使用共享对象来实现懒加载,因此需要考虑如何提高类的性能和空间利用率。

查看免费额度使用量

免费的5000CU额度是有三个月时效的,超过三个月会直接过期。想要做到心中有数,防止超过免费额度导致扣费。我们可以查看免费额度的用量。在页面右上角有“费用”标签,选择“资源实例管理”,点击“资源包”,能看到你的免费资源包的用量。

点击每行中的统计,可以看到是哪个实例在消耗CU。

总结

整个部署流程,我自己折腾下来也只花了半天时间,就能够搭建好一个完整、可用的Demo。

不得不说,当AI逐渐破圈,成为一个风口时,真的是猪都会飞,普通程序员上手AI的难度瞬间被拉低了一个数量级。开源开发者的不断贡献让各种工具和文档变得更容易上手。每天数以万计的大模型相关issue和pr,让Github遇到了久违的繁荣。

在AI席卷全球的这一刻,作为一名程序员,我们无疑是对这个时代更有体感的那群人。此时此刻,非我莫属。要充分关注AI技术的应用场景和发展趋势,积极探索AI与其他领域的结合,为自己的职业发展和未来规划提供更多的可能性。

qw_6918966011
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyTorch模型安卓部署流程(NCNN)
AIGC Studio:分享AIGC前沿知识和好玩应用,公众号同名。
07-16 9798
如果我们想在手机端运行我们的深度学习模型需要怎么做呢?本文介绍了端侧深度学习模型部署流程(NCNN),在了解基本概念之后可以尝试运行NCNN官方demo实例,并根据自己需求进行改进,这样就可以在自己的手机部署深度学习模型啦~
智谱AI CEO张鹏:ChatGLM全球超过百万下载,为行业智能化降本增效|中国AIGC产业峰会...
量子位
05-02 270
丰色 整理自 凹非寺量子位 | 公众号 QbitAI眼下,“预训练大模型是AIGC时代的基座”这一观点已成业界共识。但训练一个千亿参数规模的大模型,还面临很多挑战。在中国AIGC产业峰会现场,智谱AI CEO张鹏就指出,在这方面我们至少面临三大挑战:一是成本,如一个1750亿参数的GPT-3就烧掉了1200万美元(约合人民币8300万元);二是人力,一个谷歌PaLM-530B的作者列表就有近70人...
汇总!7种大模型部署方法!
python12345_的博客
07-15 828
选择部署框架的关键在于任务需求。只有根据实际需求来确定合适的框架,才能确保项目的顺利推进和成功实现。因此,在选择部署框架时,我们应该深入了解框架的特性、优缺点以及适用场景,综合考虑项目规模、技术栈、资源等因素,从而选择最适合的框架来支撑项目的实施。这样不仅可以提高开发效率,还能降低项目风险,确保项目的顺利推进和最终成功。
只需三步,手把手带你在本地部署运行大模型
AAI666666的博客
03-04 7994
在当前的技术环境下,大型语言模型(LLMs)已经成为人工智能领域的一个重要里程碑。
模型报告专题:清华大学2023从千亿模型到ChatGPT的一点思考
weixin_54883418的博客
12-07 997
今天分享的深度研究报告:《(报告出品方:ChatGLM)报告共计:67页。
一分钱不花!本地部署Google最强开源AI大模型Gemma教程
python1222_的博客
06-17 3695
谷歌发布了轻量级开源系列模型Gemma,其性能强大,可与主流开源模型竞争。通过Ollama可轻松部署Gemma模型,并使用JANAI美化UI界面。显卡在AIGC应用中至关重要,推荐选择性能强、显存大的NVIDIA系列显卡。半个月前,谷歌搞了一波突然袭击,毫无预兆地发布了新一代AI模型Gemma,并宣称这是全球性能最强大的轻量级开源系列模型。根据Google介绍,开源模型Gemma使用了和Gemini同源的技术,总共有20亿参数和70亿参数两种规模,每个规模又分预训练和指令微调两个版本。
一分钱不花!手把手教你部署Google最强开源AI大模型Gemma教程
weixin_74041379的博客
03-24 3164
一分钱不花!本地部署Google最强开源AI大模型Gemma教程 半个多月前,谷歌搞了一波突然袭击,毫无预兆地发布了新一代AI模型Gemma,并宣称这是全球性能最强大的轻量级开源系列模型
零基础,零成本,部署一个属于你的大模型
蛮三刀酱
04-22 7652
因此,本文是为AI初学者们(包括我自己)编写的保姆级大型模型部署和使用指南。现在正值阿里云免费试用计划,我们可以不花一分钱就可以体验部署自己的大型模型的乐趣。
免费下载!不花一分钱!数据库学习资料包,独家分享!
11-01
10. **云数据库服务**:了解各大云服务商提供的数据库服务,如Amazon RDS、Google Cloud SQL或阿里云RDS,以及如何在云端部署和管理数据库。 这个免费的数据库学习资料包很可能包含了以上各个知识点的详细讲解,...
新技术前沿-2024-大型语言模型LLM的本地化部署
qq_20466211的博客
04-23 1314
语言模型的本地化部署
本地快速部署谷歌开放模型Gemma教程(基于WasmEdge)
特立独行的博客
02-29 1912
谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。
深度学习算法训练和部署流程介绍--让初学者一篇文章理解算法训练和部署流程
cumtchw
03-05 3335
深度学习算法训练和部署流程介绍--让初学者一篇文章理解算法训练和部署流程
【深度】工程师必备—AI模型训练+推理优化+嵌入部署
热门推荐
cv君的博客
09-04 4万+
文章目录一 项目展示二 依赖环境与导读2.1依赖环境2.2 本文导读三 模型训练3.1 新手也能做对的教学3.2 高手也爱的黑科技:无损的半精度模型模型优化4.1 Openvino 介绍 可以参见这篇博客4.2 Openvino安装4.3 Openvino 模型转换与推理五 模型部署5.1 模型转换 部署自己训练好的算法模型,经过openvino推理后应用于2085模组六 模组使用6.1运行cnn目标检测demo6.2 部署自己训练好的算法模型,经过openvino推理后应用于2085模组七 实际对比八
数据结构之存储位置
qq_53841892的博客
09-18 371
内存泄漏:如果没有适时释放被动态分配的内存,会导致内存泄露问题。未释放的内存一直占用系统资源,使得系统变慢并最终导致崩溃。内存释放,合理设计算法,避免算法问题导致的内存无线增长,合理设置作用域。这个数组在函数返回后会失效,因此返回的指针指向的是一个未定义的值。//static变量。频繁的使用堆会产生大量的碎片,而栈则不会。int a = 0;Test 函数会有什么样的结果?函数会有什么样的结果?函数会有什么样的结果?函数会有什么样的结果?
Python中的数据结构
MagicFromMe的博客
09-18 302
可以将列表理解为一个购物清单,这个清单里面的的每个元素可以是,并且(这里区别了列表与数组)。列表用“[]”表示。
数据结构-栈
m0_69032433的博客
09-15 1707
/指针实现 : data = (ElemType *)malloc( sizeof(ElemType) * MAX_LEN );//数组实现 : ElemType data[MAX_LEN];//data指向一块地址连续的空间,来存储栈的每一个元素。//指针域 --> 保存逻辑上的下一个。//top == -1 表示栈中没有元素, 空栈。就是我们平时所用的标准四则运算表达式, 比如 9+3-2*(1+4)-4/2。#define MAX_LEN 20 //栈的最大的容量。
【初阶数据结构】一文讲清楚 “堆” 和 “堆排序” -- 树和二叉树(二)(内含TOP-K问题)
最新发布
tianxiawushanu的博客
09-19 803
本文主要介绍了堆以及堆排序的定义和代码实现,以及TOP-K问题
写文章

热门文章

  • 2023年VSCode插件最新推荐(54款) 39707
  • 初始化一个ArrayList的多种方式 7757
  • node使用node-xlsx实现excel的下载与导入,保证你看的明明白白 6667
  • 基于kubeasz部署高可用k8s集群 3967
  • 自学C#,要懂得善用MSDN 3369

最新评论

  • node使用node-xlsx实现excel的下载与导入,保证你看的明明白白

    FlyingBooks: 请问导出excel的时候,弹出的window对话框的标题可以自定义吗?

  • Cesium加载ArcGIS Server4490且orgin -400 400的切片服务

    7ethe: 大佬,能分享源码不? 我这边测试,请求只发送了一次,放大缩小不会发起新的请求了。

  • node使用node-xlsx实现excel的下载与导入,保证你看的明明白白

    wwwwwwwwfox: 能插入图片吗?需要插入图片怎么搞?

  • LoadRunner——分析图详解

    CSDN-Ada助手: MySQL入门 技能树或许可以帮到你:https://edu.csdn.net/skill/mysql?utm_source=AI_act_mysql

  • node使用node-xlsx实现excel的下载与导入,保证你看的明明白白

    K_jong: 这插件能展示excel吗

大家在看

  • JAVA集合——Collection接口 877
  • Flutter中的事件流
  • 9.21学习 582
  • MyBatis Plus 3.5.7 代码生成器入门
  • 深度学习:神经网络--手写数字识别

最新文章

  • ChatGPT在工业领域的研究与应用探索-数据与工况认知
  • 聊聊开关和CPU之间故事
  • 聊聊开关和CPU之间故事
2023年117篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qw_6918966011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢小品雕塑定做腾冲市玻璃钢雕塑费用多少泸县玻璃钢花盆花器彭州玻璃钢马雕塑官渡区玻璃钢雕塑设计制作多少钱玻璃钢浮雕喷泉不锈钢雕塑公司大型玻璃钢雕塑工厂江苏正规玻璃钢雕塑承诺守信纤维玻璃钢花盆能种植植物吗呼和浩特小区玻璃钢雕塑公司浙江秋季商场美陈销售厂家天水景区玻璃钢雕塑设计河南景观玻璃钢卡通雕塑公司商洛玻璃钢雕塑厂家电话遵义玻璃钢雕塑订做玻璃钢雕塑可以喷漆吗山西玻璃钢卡通雕塑小鸟图片漯河铸造校园玻璃钢景观雕塑郑州广场玻璃钢雕塑公司珠海玻璃钢奶牛雕塑嘉定玻璃钢雕塑价格玻璃钢运动雕塑质量怎么样焦作人物玻璃钢雕塑玻璃钢雕塑兔子榆林人物玻璃钢雕塑制作水景玻璃钢彩绘雕塑制造南昌玻璃钢小品雕塑批发甘肃楼盘玻璃钢人物雕塑艺术摆件玻璃钢雕塑成本多少钱玻璃钢雕塑照片香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化