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的更多相关文章

  1. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

  2. DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

    DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...

  3. 在modelarts上部署backend为TensorFlow的keras模型

    最近老山在研究在modelarts上部署mask-rcnn,源代码提供的是keras模型.我们可以将keras转化成savedModel模型,在TensorFlow Serving上部署,可参考老山的 ...

  4. 千亿参数开源大模型 BLOOM 背后的技术

    假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...

  5. [NewLife.XCode]分表分库(百亿级大数据存储)

    NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...

  6. 完整版的CAD技巧!3天轻松玩转CAD,零基础也能学会

    最近有很多小伙伴反应,CAD图纸学起来有点小困难,也许你还没能掌握技巧,CAD大神带你3天轻松玩转CAD,零基础也能快速学会. 一.看懂图纸是关键 CAD制图首先得让自己知道要绘制什么,如果心中对图纸 ...

  7. [转帖]70亿!以色列间谍产品公司NSO要被卖掉了

    70亿!以色列间谍产品公司NSO要被卖掉了 2017-06-14 11:11 https://www.sohu.com/a/148739327_257305 E安全6月14日讯以色列的网络能力处于世界 ...

  8. 2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

    去年.NET Conf China 技术大会上,我给大家分享了主题<轻松玩转.NET大规模版本升级>,今天把具体分享的内容整理成一篇博客,供大家研究参考学习. 一.先说一下技术挑战和业务背 ...

  9. 文心大模型api使用

    文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...

  10. AI大模型学习了解

    # 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...

随机推荐

  1. vue全家桶进阶之路37:Vue3 路由守卫

    在 Vue.js 3.x 中,我们可以使用路由守卫来拦截路由的跳转,从而实现一些功能,例如:登录验证.页面权限控制等. Vue.js 3.x 中的路由守卫和 Vue.js 2.x 中的基本相同,都包含 ...

  2. win10双系统Ubuntu的安装之旅(安装+美化+问题解决方案)

    一.前言 最近想用一下Ubuntu,于是乎开始了win10安装Ubuntu的旅程,安装的过程中是看到了很多前人已经写好的非常详细的教程,那这里我就不再重复造轮子啦,直接放上链接咯- 看看我的成果图- ...

  3. 将远程oracle数据库导入到本地

    一.切换用户 先从普通用户 切换到root (有些时候会因为无权限直接执行 su - oracle 会被拒绝) fssa@jzsql.sn.com:/home/fssa>su - 从当前用户切换 ...

  4. Kubernetes 证书详解

    K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 ...

  5. odoo开发教程四:onchange、唯一性约束

    一:onchange机制[onchange=前端js函数!可以实现前端实时更新以及修改验证] onchange机制:不需要保存数据到数据库就可以实时更新用户界面上的显示. @api.onchange( ...

  6. Galaxy Release (v 21.05),众多核心技术栈变更

    2021年6月初,Galaxy Project 正式发布了 release 21.05 版本:随后6月中旬,发布该版本的 announcement 文档.这里总结一下该版本一些主要的更新内容,为关注和 ...

  7. 看看Angular有啥新玩法!手把手教你在Angular15中集成报表插件

    摘要:本文由葡萄城技术团队于博客园原创并首发.葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. Angular15新特性 Angular框架(以下简称"Angular" ...

  8. JS基础语法(一)

    javascript简介 javascrpit是是一种轻量级的编程语言,常用于web前端开发.另外js还可以用来写node.js类型的服务和工具,在测试web项目的时候需要了解. 变量 js定义变量有 ...

  9. 分布式数据库 Join 查询设计与实现浅析

    相对于单例数据库的查询操作,分布式数据查询会有很多技术难题. 本文记录 Mysql 分库分表 和 Elasticsearch Join 查询的实现思路,了解分布式场景数据处理的设计方案. 文章从常用的 ...

  10. 深入解析React DnD拖拽原理,轻松掌握拖放技巧!

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值.. 本文作者:霁明 一.背景 1.业务背景 业务中会有一些需要实现拖拽 ...