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. Java中synchronized的优化

    本文介绍为了实现高效并发,虚拟机对 synchronized 做的一系列的锁优化措施 高效并发是从 JDK5 升级到 JDK6 后一项重要的改进项,HotSpot 虚拟机开发团队在 JDK6 这个版本 ...

  2. 【工作随手记】deaklock排查

    生产环境当中还没真正遇到过死锁的问题.有些疑似死锁的问题,后来经过排查也只是其它问题导致的.所以通过jstack到底怎样排查死锁问题有点疏忽了.这里作个记录. 模拟一个死锁 顺便复习一下. 死锁的产生 ...

  3. dnu

    背景 作为一个喜欢搬运 YouTube 视频的网友,我发现将视频下载下来再上传到 B 站十分繁琐,因此我决定开发一个小工具,能够方便快捷地将 YouTube 视频下载并上传至 B 站,以节省我的时间和 ...

  4. Kafka 杂谈

    开始之前 首先,此篇文章会有很多地方会和 RocketMQ 比较,不太熟悉 RocketMQ 可以去看看我之前写的RocketMQ基础概念剖析&源码解析,先有个大概的印象,可能会帮助你更好的理 ...

  5. C# decimal double 获取一组数字 小数点后最多有几位

    有一组数字,想判断一组数字中最多的有几位小数,乘以10的指定幂,转为整数,此处教大家一个高级的写法,拒接无脑for循环 decimal: decimal[] numbers = new decimal ...

  6. hvv蓝初面试常见漏洞问题(下)

    hvv蓝初面试常见漏洞问题(上) 6.ssrf 服务端伪造请求 原理 服务端提供了向其他服务器应用获取数据的功能,而没有对目标地址做任何过滤和限制.攻击者进而利用其对内部资源进行攻击.(通俗来说:就是 ...

  7. 在树莓派上使用numpy实现简单的神经网络推理,pytorch在服务器或PC上训练好模型保存成numpy格式的数据,推理在树莓派上加载模型

    这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是mlp识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: 1 import torch 2 ...

  8. 图解VirtualBox安装CentOS 7

    VirtualBox简介 VirtualBox是由德国InnoTek软件公司出品的虚拟机软件,现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部分. VirtualBox提供用户在32 ...

  9. 【技术积累】Python中的PyTorch库【一】

    PyTorch库介绍 PyTorch是一个基于Python的科学计算库,用于构建深度学习神经网络.它主要由两个部分组成:一个是PyTorch Tensor库,提供了类似于NumPy的数组操作,但是支持 ...

  10. PostgreSQL 新手入门指引

    自从MySQL被Oracle收购以后,PostgreSQL 逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作 ...