Java基础、中级、高级、架构面试资料

如何在亚马逊科技上使用 Llama 2 和 API 来为你的 AI 应用程序提供支持

业余杂谈 herman 701浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

Meta 发布了一款名为 Llama 2 的新语言模型。

如果你和我们一样,你一定会迫不及待地想要亲自动手并用它来构建。

使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它。然后你的开发人员可以轻松地将其集成到你的应用程序中。

当我可以使用 Open AI API 时,为什么还要使用 Llama 2?

3件事:

  1. 安全性——让敏感数据远离第三方供应商
  2. 可靠性——确保你的应用程序有正常运行时间
  3. 一致性——每次提出问题都会得到相同的结果

本指南将涵盖哪些内容

  1. 第一部分 — 在 AWS sagemaker 上托管 Llama 2 模型
  2. 第二部分 — 通过 AWS Lambda 和 AWS API Gateway 通过 API 使用模型
在 AWS sagemaker 上托管 Llama 2 模型

步骤0:登录或注册亚马逊科技账户

  1. 前往 https://aws.amazon.com/ 并登录或注册帐户
  2. 如果你注册新帐户,你将自动获得免费套餐访问权限,这确实提供了一些 Sagemaker 积分,但请留意它们,因为根据你的服务器选择,账单可能会高得离谱。

第一部分——托管模型

第 1 步:转到 AWS Sagemaker

进入亚马逊科技仪表板后,在搜索栏中搜索 AWS Sagemaker,然后单击它以转到 AWS Sagemaker

搜索 AWS Sagemaker

AWS Sagemaker 是 亚马逊科技 用于部署和托管机器学习模型的解决方案。

AWS Sagemaker

步骤 2:在 AWS Sagemaker 上设置域

  1. 单击  左侧边栏上的域名
在 AWS Sagemaker 上设置域

2. 单击 “创建域”

单击 “创建域”

3. 确保  选中“快速设置”框

选中“快速设置”框

4. 使用你选择的域名填写下面的表格,并填写其余选项,如屏幕截图中所示。

如果你对此不熟悉,请  在执行角色类别中选择创建新角色。否则,请选择你之前可能创建过的角色。

创建新角色

5. 单击 表单上的“提交” 以创建你的域

提交

6. 域创建完成后,你将看到下面截图

创建域完成

记下你在此处看到的用户名,因为下一步部署我们的模型需要它

如果你的域在创建时出现错误,可能是由于用户权限或 VPC 配置造成的。

第 3 步:开始 Sagemaker Studio 会话

  1.  域创建完成后,单击 左侧边栏中的Studio链接。
开始 Sagemaker Studio 会话

2. 选择你之前选择的 域名 和 用户配置文件,然后单击“打开工作室”。

打开工作室

这将带你进入 Jupyter 实验室工作室会话,如下所示。

步骤 4:选择 Llama-2–7b-chat 模型

我们将部署 llama 2 模型的聊天优化版和 70 亿参数版本。

有一个更强大的 70b 型号,它更加坚固,出于演示目的,它的成本太高,所以我们将使用较小的型号

  1. 单击 SageMaker Jumpstart 选项卡 下左侧边栏中的 模型、笔记本解决方案
选择 Llama-2–7b-chat 模型

 2.在搜索栏中搜索 Llama 2型号。我们正在寻找 7b 聊天模型。点击型号

Llama 2型号

如果你没有看到此模型,那么你可能需要关闭并重新启动工作室会话

3. 这将带你进入模型页面。你可以更改最适合你的用例的部署设置,但我们将继续使用默认的 Sagemaker 设置并按  原样部署模型。

部署模型

70B 版本需要强大的服务器,因此如果你的帐户无权访问它,你的部署可能会出错。在这种情况下,请向 AWS 服务配额提交请求。

4. 等待 5-10 分钟以完成部署并显示确认屏幕。

记下模型的 端点名称, 因为你需要它来通过 API 使用模型。

至此,你现在已经完成了  托管模型的第一部分。享用你选择的饮料或小吃来庆祝!


第二部分 — 通过 API 使用模型

步骤1:进入AWS Lambda创建Lambda函数

lambda 函数将用于调用 LLM 模型的端点。

  1. 亚马逊科技 控制台搜索栏中搜索 Lambda 服务 ,然后单击 Lambda 服务。
单击 Lambda 服务

2. 单击 创建函数

创建函数

3. 输入正确的函数名称(无论什么),选择 Python 3.10 作为运行时,选择x86_64架构。然后点击 创建函数

选择 Python 3.10 作为运行时

第 2 步:指定模型的端点

输入第 I部分最后一步中的 LLM 模型的端点名称  作为环境变量。

1. 单击  新创建的模型中的“配置”选项卡。

“配置”选项卡

2. 单击 环境变量 ,然后单击 编辑。

环境变量

3. 单击  下一个屏幕上的“添加环境变量” 。

添加环境变量

4. 输入 ENDPOINT_NAME 作为键,输入模型的端点名称作为值。单击 “保存”。

单击保存

实际上,你可以为你想要的键添加任何内容,但它需要与我们在代码中编写的内容相匹配,以便稍后调用该函数。

第 3 步:编写调用 Llama 模型的代码

1. 返回 “代码” 选项卡,然后复制并粘贴以下代码。

import os
import io
import boto3
import json

# grab environment variables
ENDPOINT_NAME = os.environ[''ENDPOINT_NAME'']
runtime= boto3.client(''runtime.sagemaker'')

def lambda_handler(event, context):
    response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
                                       ContentType=''application/json'',
                                       Body=event[''body''],
                                       CustomAttributes="accept_eula=true")
    
    result = json.loads(response[''Body''].read().decode())
    
    
    return {
        "statusCode": 200,
        "body": json.dumps(result)
    }

 2.代码插入成功后,单击 “部署” 。

部署

步骤 4:将新的 Lambda 函数连接到 AWS API Gateway

  1. 转到 Lambda 函数的主屏幕并单击 添加触发器。
Lambda添加触发器

 2.在“添加触发器”对话框中选择 “API 网关”菜单项。

选择 API 网关菜单项

3. 填写 API 网关对话框,如下所示,然后单击 “添加”。

填写 API 网关对话框

4. 成功创建 API 端点后,你可以在 “配置” 选项卡和 “触发器” 侧栏下查看 API URL。

查看 API

第 5 步:使用新的 LLM API 测试你的品牌

  1. 使用以下 JSON 正文向你的 API URL 发出 POST 或 GET 请求
{
 "inputs": [
  [
   {"role": "system", "content": "You are chat bot who writes songs"},
   {"role": "user", "content": "Write a rap about Barbie"}
  ]
 ],
 "parameters": {"max_new_tokens":256, "top_p":0.9, "temperature":0.6}
}

input 键存储一个数组,每个元素 是你和聊天机器人之间的 1 次对话。

对话由嵌套的 JSON 对象表示,其中包含  表示对话中“人”的 角色和 作为提示的内容

2. 检查  API 的响应 状态码和 响应JSON。状态代码应为 200,响应 JSON 将如下所示

[{"generation": {"role": "assistant", 
"content": " Yo, listen up, I got a story to tell 
''Bout a doll that''s fly, and she''s doin'' well
Barbie, Barbie, she''s the queen of the scene
From Malibu to Kenya, she''s always lookin'' supreme
She''s got the style, she''s got the grace
She''s got the swag, she''s got the pace
She''s got the cars, she''s got the cash
She''s livin'' large, she''s got the flash
She''s got the perfect body, she''s got the perfect face
She''s got the perfect hair, she''s got the perfect pace
She''s got the perfect life, she''s got the perfect vibe
She''s got it all, she''s got the perfect ride
She''s got Ken by her side, he''s her main man
He''s got the skills, he''s got the plan
They''re livin'' large, they''re got the fame
They''re the perfect couple, they''re got the game
So listen up,"}}]

你可以使用以下Python代码来测试API。将api_url的值替换  为你在上一步 4 中创建的 API Url

import requests

api_url = ''https://spip03jtgd.execute-api.us-east-1.amazonaws.com/default/call-bloom-llm''

json_body = {
 "inputs": [
  [
   {"role": "system", "content": "You are chat bot who writes songs"},
   {"role": "user", "content": "Write a rap about Barbie"}
  ]
 ],
 "parameters": {"max_new_tokens":256, "top_p":0.9, "temperature":0.6}
}

r = requests.post(api_url, json=json_body)

print(r.json())

潜在错误

在这种情况下你可能会收到一些错误:

  1. 权限: 如果你的角色无权使用 Sagemaker 调用端点策略,那么你将无法调用端点。
  2. 超时: 根据你的提示和变量,你可能会收到超时错误。与权限不同,这是一个简单的修复。单击 “配置”、“常规” 和 “编辑超时”  ,然后将超时值设置为更多秒数
AWS 上使用 Llama 2潜在错误

结论

这篇文章向你展示如何使用迄今为止最强大的语言模型。

你应该考虑使用自己托管的开源 LLM 作为 API 的原因有很多,例如:

  1. 安全
  2. 可靠性
  3. 一致性

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 如何在亚马逊科技上使用 Llama 2 和 API 来为你的 AI 应用程序提供支持