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..."
}
廣告