轻松玩转70亿参数大模型!借助Walrus在AWS上部署Llama2
阅读原文时间:2023年08月23日阅读:1

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 实例的开销。

  • 登入 Walrus,点击左侧导航中的为运维中心,在模板标签页中,点击新建模板按钮。

  • 填入模板名称,例如为llama-2

  • 在来源中填写https://github.com/walrus-tutorials/llama2-on-aws

  • 点击保存

  • 在左侧导航中点击应用管理,在default项目视图中,点击模连接器标签页。

  • 点击新建连接器按钮,选择云提供商类型。

  • 填入连接器名称,例如AWS

  • 在类型选项中选择AWS

  • 区域选项中选择东京(ap-northeast-1)

  • 点击保存

在配置环境和 AWS 凭证时,注意这里使用指定的区域,是因为后续使用了该区域下指定的 AMI。如果您想使用其它区域,可以将该 AMI 导出到您的区域。

  • 点击环境标签页,点击新建环境按钮。

  • 填入环境名称,例如dev

  • 点击添加连接器按钮,选择上一步创建的AWS连接器。

  • 点击保存

  • 环境标签页中点击dev环境的名称,进入环境视图。

  • 点击新建服务按钮。

  • 填入服务名称,例如my-llama-2

  • 在模板选项中选择llama-2

  • 点击保存

在创建 Llama-2 服务时请注意,默认的服务配置假定您的 AWS 账号在对应区域有一个默认的 VPC。如果您没有默认的VPC,请到 AWS 的 VPC 控制台创建一个新的 VPC,并关联一个子网和安全组到该 VPC。安全组需要开放7860 TCP 端口(用于访问 llama-2 web UI)。您可以在服务配置中设置您的 VPC 名字和安全组名字。

您可以在 Llama-2 服务的详情页中看到它的部署和运行状态。等待 Llama-2 服务完成部署后,可以通过 Walrus UI 点击该服务的访问链接来访问它的 web UI。

本教程中使用了打包好的 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!