轻松玩转70亿参数大模型!借助Walrus在AWS上部署Llama2
Llama 2 是 Meta 的下一代开源大语言模型。它是一系列经过预训练和微调的模型,参数范围从 70 亿到 700 亿个。Meta Llama 2 可免费用于研究和商业用途并且提供了一系列具有不同大小和功能的模型,因此一经发布备受关注。在之前的文章中,我们详细地介绍了Llama 2 的使用和优势以及FAQ。本文将介绍如何借助应用管理平台 Walrus 在 AWS 上部署 Llama 2。
Walrus 已于本周正式开源,关于该项目的详细开源信息可点击此处查看。本文将手把手带您使用 Walrus 在 AWS 上用 CPU 部署 Llama-2,并通过用户友好的 web UI 来使用它。
前期准备
在开始部署之前,你需要准备以下:
AWS 账号以及关联的凭证,并且有足够的权限来创建 EC2 实例。
安装 Walrus(点击查看安装教程)。
提示
虽然使用 CPU 比 GPU 便宜,但依旧会产生对应 EC2 实例的开销。
添加 Llama-2 服务模板
登入 Walrus,点击左侧导航中的为
运维中心,在模板标签页中,点击新建模板按钮。填入模板名称,例如为
llama-2。在来源中填写
https://github.com/walrus-tutorials/llama2-on-aws。点击
保存。

配置环境和 AWS 凭证
在左侧导航中点击
应用管理,在default项目视图中,点击模连接器标签页。点击
新建连接器按钮,选择云提供商类型。填入连接器名称,例如
AWS。在类型选项中选择
AWS。在
区域选项中选择东京(ap-northeast-1)。点击
保存。
在配置环境和 AWS 凭证时,注意这里使用指定的区域,是因为后续使用了该区域下指定的 AMI。如果您想使用其它区域,可以将该 AMI 导出到您的区域。

点击
环境标签页,点击新建环境按钮。填入环境名称,例如
dev。点击
添加连接器按钮,选择上一步创建的AWS连接器。点击
保存。
创建 Llama-2 服务
在
环境标签页中点击dev环境的名称,进入环境视图。点击
新建服务按钮。填入服务名称,例如
my-llama-2。在模板选项中选择
llama-2。点击
保存。
在创建 Llama-2 服务时请注意,默认的服务配置假定您的 AWS 账号在对应区域有一个默认的 VPC。如果您没有默认的VPC,请到 AWS 的 VPC 控制台创建一个新的 VPC,并关联一个子网和安全组到该 VPC。安全组需要开放7860 TCP 端口(用于访问 llama-2 web UI)。您可以在服务配置中设置您的 VPC 名字和安全组名字。
访问 Llama-2 web UI
您可以在 Llama-2 服务的详情页中看到它的部署和运行状态。等待 Llama-2 服务完成部署后,可以通过 Walrus UI 点击该服务的访问链接来访问它的 web UI。

从零开始构建 Llama-2 镜像的关键步骤
本教程中使用了打包好的 Llama-2 镜像,这样在创建一个新的 Llama-2 实例时,您就不再需要花费时间下载大语言模型(通常有着可观的文件大小)以及构建推理服务。想要深入了解 Llama-2 如何构建,请参考下方链接查看。
完整构建过程:https://github.com/walrus-tutorials/llama2-on-aws/blob/build/main.tf。
在这里,我们列出构建过程中的关键步骤,内容如下:
# get text-generation-webui
git clone https://github.com/oobabooga/text-generation-webui && cd text-generation-webui
# configure text-generation-webui
ln -s docker/{Dockerfile,docker-compose.yml,.dockerignore} .
cp docker/.env.example .env
sed -i '/^CLI_ARGS=/s/.*/CLI_ARGS=--model llama-2-7b-chat.ggmlv3.q4_K_M.bin --wbits 4 --listen --auto-devices/' .env
sed -i '/^\s*deploy:/,$d' docker/docker-compose.yml
# get quantized llama-2
curl -L https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/resolve/main/llama-2-7b-chat.ggmlv3.q4_K_M.bin --output ./models/llama-2-7b-chat.ggmlv3.q4_K_M.bin
# build and run
docker compose up --build
简单来说,该过程下载了量化的 Llama-2-7b-chat 模型,然后构建并使用 text-generation-webui 来启动 Llama-2 服务。
到这里,你已经成功使用 Walrus 在 AWS 上用 CPU 部署 Llama-2!
轻松玩转70亿参数大模型!借助Walrus在AWS上部署Llama2的更多相关文章
- 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅
摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...
- DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍
DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...
- 在modelarts上部署backend为TensorFlow的keras模型
最近老山在研究在modelarts上部署mask-rcnn,源代码提供的是keras模型.我们可以将keras转化成savedModel模型,在TensorFlow Serving上部署,可参考老山的 ...
- 千亿参数开源大模型 BLOOM 背后的技术
假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...
- [NewLife.XCode]分表分库(百亿级大数据存储)
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...
- 完整版的CAD技巧!3天轻松玩转CAD,零基础也能学会
最近有很多小伙伴反应,CAD图纸学起来有点小困难,也许你还没能掌握技巧,CAD大神带你3天轻松玩转CAD,零基础也能快速学会. 一.看懂图纸是关键 CAD制图首先得让自己知道要绘制什么,如果心中对图纸 ...
- [转帖]70亿!以色列间谍产品公司NSO要被卖掉了
70亿!以色列间谍产品公司NSO要被卖掉了 2017-06-14 11:11 https://www.sohu.com/a/148739327_257305 E安全6月14日讯以色列的网络能力处于世界 ...
- 2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级
去年.NET Conf China 技术大会上,我给大家分享了主题<轻松玩转.NET大规模版本升级>,今天把具体分享的内容整理成一篇博客,供大家研究参考学习. 一.先说一下技术挑战和业务背 ...
- 文心大模型api使用
文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...
- AI大模型学习了解
# 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...
随机推荐
- 2021-11-10:O(1) 时间插入、删除和获取随机元素。实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象。bool insert(in
2021-11-10:O(1) 时间插入.删除和获取随机元素.实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象.bool insert(in ...
- 2021-10-29:除自身以外数组的乘积。给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之
2021-10-29:除自身以外数组的乘积.给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i ...
- 记一次 Visual Studio 2022 卡死分析
一:背景 1. 讲故事 最近不知道咋了,各种程序有问题都寻上我了,你说 .NET 程序有问题找我能理解,Windows 崩溃找我,我也可以试试看,毕竟对 Windows 内核也知道一丢丢,那 Visu ...
- CSharp初体验
入门 初来乍到了解一门新的语言,它可能和熟悉的c/c++有不小差别,整体上需要首先了解下语法文件的整体结构.例如,源文件整体结构如何. 乍看CSharp源文件(compile unit)的结构,官网主 ...
- 「学习笔记」模运算与 BSGS 算法
取模 取模符号:\(x \bmod y\),表示 \(x\) 除以 \(y\) 得到的余数. 例如, \[5 \bmod 3 = 2\\ 7 \bmod 4 = 3\\ 3 \bmod 3 = 0\\ ...
- 网站开发[1] - Spring Boot 快速建立项目
前言 学校的数据库课程要求做出前端页面对数据库进行交互, 可以使用 Python 或者 Java 语言作为后端, Python语言使用起来非常方便, 但出于对自己的挑战以及更加贴合实际企业开发, 我选 ...
- Java拓展-拆,装箱,线程,反射
导言: 在学习JavaSE的时候,我们会使用Java基础编程,并且了解了什么是面向对象的编程,会使用Java写一些基础算法程序, 接下来,我们需要了解Java的自动拆箱和自动装箱,单线程和多线程,反射 ...
- 对象存储?CRUD Boy实现对文件的增删改查
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教. 以下是正文! 对象存储是什么? 对象存储是一种数据 ...
- k8s kong部署
docker部署postgres docker run -d \ --name kong-postgres \ -e POSTGRES_PASSWORD=kong \ -e PGDATA=/var/l ...
- SpringMVC的执行原理
1.HandlerMapping为处理器映射,DispatcherServlet调用HandlerMapping,HandlerMapping根据请求的url查找Handler 2.HandlerEx ...