AWS 上的生成式 AI - Lambda



AWS Lambda 是 AWS 提供的一项无服务器计算服务,允许您在无需管理服务器的情况下运行代码。它会根据传入请求自动扩展您的应用程序,并确保仅在需要时才使用资源。

对于生成式 AIAWS Lambda 可用于执行诸如实时推理、数据预处理或协调 AI 模型工作流等任务。您还可以将其与其他 AWS 服务(如SageMaker 或 EC2)集成,以构建用于训练、部署和运行生成式 AI 模型的完整解决方案。

AWS Lambda 用于生成式 AI 的功能

以下是 AWS Lambda 的一些关键功能,这些功能可用于训练和部署生成式 AI:

  • 无服务器执行
  • 事件驱动架构
  • 自动缩放
  • 成本效益

在生成式 AI 中使用 AWS Lambda 进行实时推理

AWS Lambda 可与经过训练的生成式 AI 模型一起使用,以提供实时推理功能。

例如,一旦使用SageMaker部署了文本生成模型,就可以使用 Lambda 在收到新输入时实时触发预测。这对于聊天机器人和内容创建等应用程序非常有用。

实施示例

以下示例将展示如何使用 AWS Lambda 和 SageMaker 进行实时文本生成。

步骤 1:先决条件

实施此示例的先决条件:

  • 已部署为端点的 AWS SageMaker 模型。例如:GPT-2 模型
  • 已安装 boto3 库,您可以使用它从 Lambda 函数调用 AWS SageMaker 端点。

如果您尚未安装 boto3,可以使用以下命令安装:

pip install boto3

步骤 2:AWS Lambda 函数

以下是调用 SageMaker 端点以进行实时文本生成的 AWS Lambda 函数的 Python 代码:

import boto3
import json

# Initialize the SageMaker runtime client
sagemaker_runtime = boto3.client('sagemaker-runtime')

# Specify your SageMaker endpoint name 
# The model must already be deployed
SAGEMAKER_ENDPOINT_NAME = 'your-sagemaker-endpoint-name'

def lambda_handler(event, context):
   # Extract input text from the Lambda event 
   # For example, user input from a chatbot
   user_input = event.get('input_text', 'Hello!')

   # Create a payload for the SageMaker model
   # Prepare input for text generation
   payload = json.dumps({'inputs': user_input})

   # Call the SageMaker endpoint to generate text
   response = sagemaker_runtime.invoke_endpoint(
      EndpointName = SAGEMAKER_ENDPOINT_NAME,
      ContentType = 'application/json',      
      Body = payload                         
   )

   # Parse the response from SageMaker
   result = json.loads(response['Body'].read().decode())
	
   # Extract the generated text from the response
   generated_text = result.get('generated_text', 'No response generated.')

   # Return the generated text to the user (as Lambda output)
   return {
      'statusCode': 200,
      'body': json.dumps({
         'input_text': user_input,
         'generated_text': generated_text
      })
   }

步骤 3:部署 Lambda 函数

编写 Lambda 函数后,我们需要将其部署。请按照以下步骤操作:

创建 Lambda 函数

  • 首先,登录到您的AWS Lambda
  • 创建一个新的 Lambda 函数,并选择 Python 3.x 作为运行时。
  • 最后,将上面的代码添加到您的 Lambda 函数中。

设置 IAM 权限

Lambda 函数的执行角色应具有调用 SageMaker 端点的权限。为此,请附加AmazonSageMakerFullAccess或具有 SageMaker 访问权限的自定义角色。

步骤 4:测试 Lambda 函数

现在,您可以通过传递包含input_text字段的示例事件来手动测试 Lambda 函数,如下所示:

{
   "input_text": "Once upon a time"
}

输出将是一个 JSON 响应,其中包含用户的输入和模型生成的文本,如下所示:

{
   "input_text": "Once upon a time",
   "generated_text": "Once upon a time, there was a king who ruled a beautiful kingdom..."
}
广告