Llama 2 云端部署与API调用【AWS SageMaker】
Meta 刚刚发布了 Llama 2 大模型。如果你和我们一样,你一定会迫不及待地想要亲自动手并用它来构建。

推荐:用 NSDT设计器 快速搭建可编程3D场景。
使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它。 然后你的开发人员可以轻松地将其集成到你的应用程序中。本指南将介绍如何在Amazon SageMaker 上托管 Llama 2 模型,以及如何利用 AWS Lambda 和 AWS API Gateway 通过 API 使用模型。
在开始之前,请前往amazon aws 登录或注册帐户。新帐户将自动获得免费套餐访问权限,这确实提供了一些 Sagemaker 积分,但请留意它们,因为根据你的服务器选择,账单可能会高得离谱。
1、为什么使用Llama2?
当我可以使用 Open AI API 时,为什么要使用 llama 2?
3个原因:
- 安全性——让敏感数据远离第三方供应商
- 可靠性——确保您的应用程序有正常运行时间
- 一致性——每次提出问题都会得到相同的结果
2、托管Llama2模型
进入 AWS 仪表板后,在搜索栏中搜索 AWS Sagemaker,然后单击它以转到 AWS Sagemaker

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

2.1 在 AWS Sagemaker 上设置域
单击左侧边栏上的域

单击“创建域”

确保选中“快速设置”框

使用你选择的域填写下面的表格,并填写其余选项,如屏幕截图中所示。
如果你对此不熟悉,请在执行角色类别中选择创建新角色。 否则,请选择之前可能创建过的角色。

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

域创建完成后,你将看到此屏幕

记下在此处看到的用户名,因为下一步部署我们的模型需要它
如果你的域创建时出现错误,可能是由于用户权限或 VPC 配置造成的。
2.2 启动 Sagemaker Studio 会话
域创建完成后,单击左侧边栏中的 Studio 链接

选择你之前创建的域和用户配置文件,然后单击“Open Studio”

这将带你进入 Jupyter 实验室工作室会话,如下所示:
2.3 选择 Llama-2–7b-chat 模型
我们将部署 llama 2 模型的聊天优化版和 7b版本。
有一个更强大的 70b 型号,它更加稳定,出于演示目的,它的成本太高,所以我们将使用较小的型号
单击 SageMaker Jumpstart 选项卡下左侧栏中的模型、笔记本、解决方案

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

如果没有看到此模型,那么可能需要关闭并重新启动工作室会话
这将带你进入模型页面。 你可以更改最适合你的用例的部署设置,但我们将继续使用默认的 Sagemaker 设置并按原样部署模型

70B 版本需要强大的服务器,因此如果你的帐户无权访问它,你的部署可能会出错。 在这种情况下,请向 AWS 服务配额提交请求。
等待 5-10 分钟以完成部署并确认屏幕显示

记下模型的端点名称,因为你需要它来通过 API 使用模型。
至此,你现在已经完成了托管模型的第一部分。
2、通过 API 使用Llama 2模型
首先进入AWS Lambda创建Lambda函数,lambda 函数将用于调用 LLM 模型的端点。
在AWS控制台搜索栏中搜索Lambda服务,然后单击Lambda服务

单击“Create Function”:

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

3.1 指定模型的端点
输入前面最后一步中的 LLM 模型的端点名称作为环境变量
单击新创建的模型中的“配置”选项卡

单击环境变量,然后单击编辑

单击下一个屏幕上的“Add environment variable”:

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

你可以为想要的键添加任何内容,但它需要与我们在代码中编写的内容相匹配以便稍后调用该函数
3.2 编写调用 Llama 模型的代码
返回“代码”选项卡,然后复制并粘贴以下代码
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)}
代码插入成功后点击"Deploy"进行部署:

4、将Lambda 函数接入 AWS API Gateway
转到 Lambda 函数的主屏幕并单击添加触发器

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

填写 API Gateway 对话框,如下所示,然后单击“添加”

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

5、测试Llama2 API
使用以下 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 对象表示,其中包含表示对话中“人”的角色和作为提示的内容
检查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 requestsapi_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())
6、可能的错误
在这种情况下你可能会收到一些错误:
- 权限:如果你的角色没有使用 Sagemaker 调用端点策略的权限,那么你将无法调用端点。
- 超时:根据你的提示和变量,可能会收到超时错误。 与权限不同,这是一个简单的修复。 单击“配置”、“常规”和“编辑超时”,然后将超时值设置为更多秒数

原文链接:Llama2云端部署及调用 — BimAnt
相关文章:
Llama 2 云端部署与API调用【AWS SageMaker】
Meta 刚刚发布了 Llama 2 大模型。如果你和我们一样,你一定会迫不及待地想要亲自动手并用它来构建。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它。 然后你的开发人员可以轻松地将…...
根文件系统制作
1.官网下载工具 制作工具:busybox https://busybox.net/downloads/ 2.制作根文件系统 2.1准备工作 a.把压缩包放在FSP1M目录下,并解压 2.2正式开始 2.2.1配置交叉编译工具链 1. 打开Makefile文件 2. 修改ARCH ?$(SUBARCH) …...
Linux ARM64架构 动态替换 altinstructions
文章目录 简介一、altinstructions节1.1 .altinstructions1.2 .rela.altinstructions 二、内核模块重定位源码分析参考资料 简介 在内核开发中,有时需要对内核代码进行修补,以解决bug、优化性能或引入新功能。替代指令(altinstructions&…...
Mac显示隐藏文件夹
1、设置隐藏文件可见 defaults write com.apple.finder AppleShowAllFiles TRUE 2、killall Finder killall Finder...
使用 Habana Gaudi2 加速视觉语言模型 BridgeTower
🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟! 在对最先进的视觉语言模型 BridgeTower 进行微调时,使用 Optimum Habana v1.6, Habana Gaudi2 可以达到 近 3 倍于 A100 的速度。硬件加速的数据加载以及 fast DDP 这两个新特…...
mysql查询语句之实践篇
基础查询语句 完整语法格式如下: select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定 -- 创建表 create table stu(id int,name varchar(20),chinese double,english double,math double ); --…...
Linux 和 MacOS 中的 profile 文件详解(二)
上篇文章讲解了 profile 文件的作用、login shell 和 non-login shell 的定义、不同 profile 被 bash shell 在不同情况下的加载顺序和作用,本文讲解一下 zsh shell 相关的知识。 zsh shell MacOS 从 Catalina 版本开始将 zsh 作为默认登录 shell 和交互式 shell。…...
Python之多重继承
一、多重继承 Python支持多重继承,一个子类可以有多个“直接父类”。这样,就具备了“多个父类”的特点。但是由于,这样会被“类的整体层次”搞的异常复杂,尽量避免使用。 class A:def aa(self):print("aa") class B…...
前端CSS文字阴影text-shadow记录
前端CSS文字阴影text-shadow记录 一、文字阴影 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Doc…...
maven 删除下载失败的包
本文介绍了当Maven包报红时,使用删除相关文件的方法来解决该问题。文章详细说明了_remote.repositories、.lastUpdated和_maven.repositories文件的作用,以及如何使用命令行删除这些文件。这些方法可以帮助开发者解决Maven包报红的问题,确保项…...
《吐血整理》高级系列教程-吃透Fiddler抓包教程(37)-掌握Fiddler中Fiddler Script用法你有多牛逼-下
1.简介 Fiddler是一款强大的HTTP抓包工具,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。Fiddler提供的功能基本上能…...
网络安全进阶学习第十二课——SQL手工注入3(Access数据库)
文章目录 注入流程:1、判断数据库类型2、判断表名3、判断列名4、判断列数1)判断显示位 5、判断数据长度6、爆破数据内容 注入流程: 判断数据库类型 ——> 判断表名 ——> 判断列名 ——> 判断列名长度 ——> 查出数据。 asp的网…...
Zookeeper集群+Kafka集群
目录 一丶Zookkeeper概述 二、Zookeeper 特点 2.1Zookeeper 应用场景 2.2Zookeeper 选举机制 2.2.1第一次启动选举机制 2.2.2非第一次启动选举机制 三、部署 Zookeeper 集群 3.1//安装 JDK 3.2安装 Zookeeper 3.2.1修改配置文件 3.2.2拷贝配置好的 Zookeeper 配置文件…...
管理类联考——逻辑——论证逻辑——汇总篇——目录+提炼
文章目录 一、削弱方法关系的削弱必要方法的削弱因果推理的削弱果因推理的削弱概念跳跃的削弱数量比例的削弱比例因果的削弱 二、支持方法关系的支持必要方法的支持因果推理的支持果因推理的支持概念跳跃的支持数量比例的支持比例因果的支持 三、假设方法关系的假设必要方法的假…...
用excel格式书写的接口用例执行脚本
创建测试用例和测试结果集文件夹: excel编写的接口测试用例如下: 1 encoding 响应的编码格式。所测项目大部分是utf-8,有一个特殊项目是utf-8-sig 2 params 对应requests的params 3 data,对应requests的data 有些参数是动态的&a…...
【flink】Chunk splitting has encountered exception
执行任务报错: Chunk splitting has encountered exception 错误信息截图: 完整的错误信息: 16:30:43,911 ERROR org.apache.flink.runtime.source.coordinator.SourceCoordinator [SourceCoordinator-Source: CDC Sourceorg.jobslink.flink…...
单元测试用例分组 demo
文章目录 目标1、使用 Category 进行用例分组(1)设置用例组(2)编写测试类,case设置对应的用例组(3)编写执行类(4)查看运行结果(5)联系项目 2、参数…...
观察者模式(Observer)
观察着模式是一种行为设计模式,可以用来定义对象间的一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。 观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图…...
20天学会rust(二)rust的基础语法篇
在第一节(20天学rust(一)和rust say hi)我们配置好了rust的环境,并且运行了一个简单的demo——practice-01,接下来我们将从示例入手,学习rust的基础语法。 首先来看下项目结构: 项目…...
Stephen Wolfram:嵌入的概念
The Concept of Embeddings 嵌入的概念 Neural nets—at least as they’re currently set up—are fundamentally based on numbers. So if we’re going to to use them to work on something like text we’ll need a way to represent our text with numbers. And certain…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
