『亚马逊云科技产品测评』活动征文|通过Lambda服务和AWS API Gateway链接大语言模型

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

前言

之前Meta开源了Llama 2 模型,一直想基于Meta的Llama 2 创建一个聊天机器人,而使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它,所以这次就使用AWS 的Lambda服务 和AWS API Gateway创建AP来I调用托管的Llama 2 模型

操作

一、托管 Llama 2 模型

在 SageMaker Studio 中可以搜索我们自己想要的模型, 点击就可以进入对应的模型页面。因为我之前已经创建了 Llama-2-7b-chat,所以这里不在展示创建过程。
这里的Endpoint name 需要记住,在创建函数时需要配置为环境变量。

在这里插入图片描述

二、Lambda服务
Lambda服务

AWS Lambda 是一项计算服务,我们无需预配置或管理服务器即可运行代码。
Lambda 在可用性高的计算基础设施上运行代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量调配和弹性伸缩和记录。使用 Lambda,只需在 Lambda 支持的一种语言运行时系统中提供代码。

创建Lambda函数

lambda 函数是用来调用 LLM 模型的端点
在AWS控制台搜索栏中搜索Lambda服务,然后单击Lambda服务
在这里插入图片描述

  • 创建函数
    选择Python 3.10作为运行时和x86_64架构。然后点击创建函数
    在这里插入图片描述
  • 配置环境变量
    单击新创建的模型中的“配置”选项卡,编辑环境变量
    在这里插入图片描述
    输入ENDPOINT_NAME作为键,输入之前模型的端点名称作为值。单击“保存”。这里的键值可以设置为其他名称,但是需要与我们在代码中编写的一致
    在这里插入图片描述
  • 编写调用代码在这里插入图片描述
  • 添加触发器
    在“添加触发器”对话框中选择“ API Gateway”菜单项
    在这里插入图片描述
    填写 API Gateway 对话框,如下所示,然后单击“添加”
    在这里插入图片描述
    成功创建 API 端点后,可以在“配置”选项卡和“触发器”侧栏下查看 API URL
    在这里插入图片描述
  • 调用 LLM Api
api_url = "https://dywbi9zx2l.execute-api.us-east-1.amazonaws.com/default/call-llm"

    json_body = {
        "inputs": [
            [
                {"role": "system", "content": "你现在是一个命理师"},
                {"role": "user", "content": "算一下今天运势怎么样"}
            ]
        ],
        "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}
    }

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

    print(r.json())

正常响应返回结果如下:
在这里插入图片描述

三、碰到的问题
  • 权限问题
    我们创建Lambda服务是默认创建了一个新的角色,这个新创建的角色是没有使用 Sagemaker 调用端点策略的权限的,所以我们需要在在IAM中给角色添加访问权限,服务的角色可以在新添加的函数的基本设置中查看
    1、添加访问SageMaker的策略
    在这里插入图片描述2、给角色分配权限
    在这里插入图片描述
  • 超时问题
    因为默认的配置中的超时时间只有3秒钟,所以有的时候会遇到超时错误。可以单击“配置”、“常规”和“编辑超时”,然后将超时值设置为更多秒数
    在这里插入图片描述

总结

这样我们就创建了一个基于Llama-2-7b-chat模型的API,总体上操作还是比较简单的,基本上没有很难操作的地方,如果调用出错的话,可以查看下日志进行排查。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在AWS上使用Java,您可以使用Lambda函数来运行Java代码。Lambda函数是一种无服务器计算服务,可以让您运行代码而无需管理服务器。您可以将Java代码打包成一个JAR文件,并将其上传到Lambda函数中。然后,您可以使用API Gateway来创建API端点,以便您的应用程序可以与Lambda函数通信。 以下是使用CloudFormation创建Lambda函数和API Gateway的步骤: 1. 编写Lambda函数代码,并将其打包成JAR文件。您可以使用Maven或Gradle等构建工具来构建和打包代码。 2. 使用CloudFormation模板定义Lambda函数和API Gateway。下面是一个简单的模板示例: ``` Resources: MyLambdaFunction: Type: AWS::Lambda::Function Properties: Code: S3Bucket: my-bucket S3Key: my-lambda-function.jar Handler: com.example.MyLambdaFunctionHandler::handleRequest Role: !GetAtt MyLambdaExecutionRole.Arn Runtime: java8 MyApiGateway: Type: AWS::ApiGateway::RestApi Properties: Name: my-api-gateway MyApiGatewayResource: Type: AWS::ApiGateway::Resource Properties: ParentId: !GetAtt MyApiGateway.RootResourceId PathPart: my-resource MyApiGatewayMethod: Type: AWS::ApiGateway::Method Properties: RestApiId: !Ref MyApiGateway ResourceId: !Ref MyApiGatewayResource HttpMethod: GET AuthorizationType: NONE Integration: Type: AWS_PROXY IntegrationHttpMethod: POST Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyLambdaFunction.Arn}/invocations MyLambdaExecutionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: MyLambdaExecutionPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - logs:CreateLogGroup - logs:CreateLogStream - logs:PutLogEvents Resource: arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/my-lambda-function:* ``` 该模板定义了一个Lambda函数,一个API Gateway,一个API Gateway资源和一个API Gateway方法。API Gateway方法使用AWS_PROXY集成类型,以便将请求传递给Lambda函数。 3. 使用CloudFormation部署模板。您可以使用AWS CLI或AWS管理控制台等工具来部署模板。 4. 测试API端点。使用API Gateway提供的URL测试API端点,并确保它可以正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值