
- AWS 上的生成式 AI 教程
- AWS 上的生成式 AI - 首頁
- AWS 上的生成式 AI - 簡介
- AWS 上的生成式 AI - 環境設定
- AWS 上的生成式 AI - SageMaker
- AWS 上的生成式 AI - Lambda
- AWS 上的生成式 AI - EC2
- AWS 上的生成式 AI - 監控和最佳化
- AWS 上的生成式 AI 資源
- AWS 上的生成式 AI - 快速指南
- AWS 上的生成式 AI - 資源
- AWS 上的生成式 AI - 討論
AWS 上的生成式 AI - 快速指南
AWS 上的生成式 AI - 簡介
生成式 AI 指的是人工智慧系統,可以基於訓練資料生成新的內容,例如文字、影像或音訊。它廣泛地描述了機器學習 (ML) 模型或演算法。
機器學習模型使用神經網路來學習資料中的模式和結構。一旦學習完成,神經網路就可以建立類似於人類生成內容的輸出。生成式預訓練轉換器 (GPT) 和變分自動編碼器 (VAE) 是兩個引領這場 AI 革命的生成式 AI 模型。
AWS 提供了一個強大的平臺,可以有效地構建、訓練和部署這些複雜的模型。AWS 還提供基於雲的服務,即AWS SageMaker、AWS Lambda、Amazon EC2和Elastic Inference,使企業能夠將生成式 AI 整合到其運營中。這些服務旨在支援生成式 AI 模型的基礎設施和計算需求。
為什麼選擇 AWS 用於生成式 AI?
下面列出了使 AWS 成為生成式 AI 理想平臺的重要功能 -
- 可擴充套件性 - AWS 最有用的功能之一是其可擴充套件性。無論您是在訓練小型 AI 模型還是部署大型 AI 應用程式,AWS 都可以相應地進行擴充套件。
- 成本效益 - AWS 的 EC2 Spot 例項和 AWS Lambda 等服務允許企業僅為其使用的資源付費,從而降低計算成本。
- 整合 - AWS 可以輕鬆地與 TensorFlow、PyTorch 和 MXNet 等流行的 AI 框架整合,使開發人員能夠輕鬆地訓練和部署模型。
生成式 AI 的實際應用
生成式 AI 已成為各個行業的強大工具。藉助 AWS 全面的 AI 和機器學習服務,企業可以輕鬆地將生成式 AI 用於實際應用。
在本節中,我們重點介紹了生成式 AI 與 AWS 的一些用例(實際應用) -
自然語言處理 (NLP) 和聊天機器人
藉助生成式 AI,您可以建立高度互動且類似於人類的聊天機器人。公司正在使用 AWS 的 Amazon Lex 和 SageMaker 等服務來訓練、部署和擴充套件為客戶服務機器人、虛擬助手和自動化響應系統提供支援的 AI 模型。
影像和影片生成
諸如 GAN(生成對抗網路)之類的生成式 AI 模型用於生成逼真的影像和影片。公司正在使用 AWS 的可擴充套件基礎設施來訓練這些複雜的模型,用於內容創作、營銷和電影製作等應用。
程式碼生成和軟體開發
生成式 AI 可以生成程式碼片段,自動化重複的程式設計任務,甚至建議改進程式碼庫。這有助於開發人員更快地編寫程式碼,減少錯誤。
個性化內容和推薦系統
生成式 AI 用於為使用者建立自定義內容,例如個性化產品建議、營銷電子郵件和網站文字。AWS 的機器學習使企業能夠輕鬆地為客戶提供獨特的體驗。
創意藝術與設計
生成式 AI 透過使藝術家和設計師能夠創作音樂、藝術和圖案,從而改變了創意藝術。
生成式 AI 可以根據特定風格生成數字藝術,或創作特定型別的音樂。它為藝術家提供了表達創造力的新方式。
合成數據生成
現實世界中的資料有限或使用成本過高,無法用於您的機器學習專案。因此,生成合成資料是一項重要的 AI 應用。生成式 AI 可以建立大型資料集來訓練機器學習模型。
AWS 上的生成式 AI - 環境設定
讓我們瞭解一下如何設定 AWS 賬戶併為生成式 AI 配置我們的環境。
設定 AWS 賬戶
要將 AWS 用於生成式 AI,我們首先需要建立和設定 AWS 賬戶。在本節中,我們將逐步說明如何設定您的 AWS 賬戶 -
步驟 1:註冊 AWS
首先,導航到 AWS 網站並點選“建立 AWS 賬戶”。接下來,輸入您的電子郵件地址、建立強密碼並選擇唯一的 AWS 賬戶名稱。
步驟 2:完成賬戶設定
要完成賬戶設定,首先輸入您的聯絡資訊,包括您的電話號碼和地址。接下來,您需要選擇賬戶型別。這取決於您的需求,可以是個人或專業賬戶。
對於賬單,您需要提供有效的信用卡。
步驟 3:驗證您的身份
AWS 將透過簡訊或語音電話傳送驗證碼以確認您的電話號碼。您需要輸入此程式碼才能繼續。
步驟 4:選擇支援計劃
AWS 有多個支援計劃,包括基本計劃(免費)、開發者計劃、企業計劃和企業級計劃。您可以根據需要選擇任何一個。您的賬戶現已設定完成。
步驟 5:登入 AWS 管理控制檯
現在,您可以登入AWS 管理控制檯,從中可以啟動EC2和SageMaker等服務,用於生成式 AI。
配置您的 AWS 環境
擁有 AWS 賬戶後,下一步是配置您的環境以開發和部署生成式 AI 模型。
我們在此提供了有關如何配置 AWS 環境的分步過程 -
步驟 1:設定 IAM 使用者和角色
首先,為您自己建立一個IAM(身份和訪問管理)使用者,而不是使用根賬戶進行日常操作。
透過建立策略來分配必要的許可權,這些策略提供對 EC2、AWS SageMaker 和 Amazon S3 等服務的訪問許可權。
最後,為 IAM 使用者啟用多因素身份驗證 (MFA)。這可以增強安全性。
步驟 2:為生成式 AI 選擇 AWS 服務
AWS 提供了各種服務,例如Amazon SageMaker、AWS Lambda、Amazon EC2和Amazon S3,您可以將這些服務用於生成式 AI 任務。
步驟 3:啟動用於訓練的 EC2 例項
為了進行訓練,我們需要啟動 EC2 例項。EC2 為訓練大型模型提供了可擴充套件的計算資源。
首先,您可以啟動支援 GPU 的 EC2 例項(例如p3.2xlarge或g4dn.xlarge)。您還可以使用Spot 例項來節省成本。
接下來,使用預裝了 TensorFlow、PyTorch 和 MXNet 等框架的深度學習 AMI。
步驟 4:配置網路和安全
要安全地執行您的例項,首先設定VPC(虛擬私有云),然後配置安全組以限制對您的例項的訪問。
步驟 5:安裝必要的庫和框架
如果您未使用深度學習 AMI,請在您的 EC2 例項或 SageMaker 筆記型電腦上安裝 PyTorch、TensorFlow 或 Hugging Face 等庫。
例如,您可以使用以下命令安裝 PyTorch -
pip install torch torchvision
步驟 6:設定 S3 儲存桶以進行資料儲存
安裝必要的庫後,您需要建立一個S3 儲存桶來儲存您的訓練資料、模型檢查點和日誌。
步驟 7:連線和配置 AWS CLI
接下來,在您的本地計算機上安裝AWS CLI以透過程式設計方式與 AWS 服務進行互動。
安裝完成後,使用您的訪問金鑰 ID和秘密訪問金鑰配置 AWS CLI。
使用以下命令 -
aws configure
步驟 8:監控和最佳化資源
您可以使用Amazon CloudWatch來監控 EC2 例項的效能,跟蹤 CPU、記憶體和 GPU 的利用率。
為了控制成本,您還可以透過AWS 賬單和成本探查器設定預算和警報以跟蹤您在 AI 資源上的支出。
AWS 上的生成式 AI - SageMaker
SageMaker 是一種完全託管的機器學習 (ML)服務,專門設計用於簡化構建、訓練和部署機器學習模型的過程。它還包括生成式 AI (Gen AI)模型。
諸如 GPT(生成式預訓練轉換器)和 GAN(生成對抗網路)之類的生成式 AI 模型需要大量的計算資源才能有效地進行訓練。AWS SageMaker 提供了一個整合的環境,簡化了從資料預處理到模型部署的過程。
SageMaker 如何支援生成式 AI?
SageMaker 提供了一組在生成式 AI 中非常有用的功能 -
預構建演算法
SageMaker 提供了用於 NLP、影像分類等任務的預構建演算法。它節省了使用者為生成式 AI 模型開發自定義程式碼的時間。
分散式訓練
SageMaker 支援分散式訓練,允許您跨多個 GPU 或例項訓練大型生成式 AI 模型。
SageMaker Studio
SageMaker Studio 是一個開發環境,您可以在其中準備資料、構建模型並試驗不同的超引數。
內建 AutoML
SageMaker 包括 AutoML 功能,藉助這些功能,您可以自動調整超引數並最佳化生成式 AI 模型的效能。
託管 Spot 訓練
AWS SageMaker 允許您使用EC2 Spot 例項進行訓練。這可以降低執行資源密集型生成式 AI 模型的成本。
使用 SageMaker 訓練生成式 AI 模型
我們需要強大的計算能力來訓練生成式 AI 模型,尤其是在處理 GPT 或 GAN 等大型模型時。AWS SageMaker 透過提供支援 GPU 的例項和分散式訓練功能來簡化這一過程。
使用 SageMaker 部署生成式 AI 模型
模型訓練完成後,您可以使用 AWS SageMaker 以可擴充套件且經濟高效的方式進行部署。
您可以使用SageMaker 端點部署您的模型,該端點根據流量提供自動擴充套件。此功能確保您的生成式 AI 模型能夠處理不斷增長的需求。
使用 SageMaker 訓練和部署生成式 AI 模型的 Python 程式
在這裡,我們重點介紹了一個 Python 示例,該示例展示瞭如何使用 AWS SageMaker 透過預構建演算法訓練和部署生成式 AI 模型。
在此示例中,我們將使用一個基本的Hugging Face預訓練轉換器模型,例如GPT 2,用於文字生成。
在執行此示例之前,您必須擁有 AWS 賬戶、必要的 AWS 憑據以及已安裝的sagemaker庫。
步驟 1:安裝必要的庫
使用以下命令安裝必要的 Python 包 -
pip install sagemaker transformers
步驟 2:設定 SageMaker 和 AWS 配置
匯入必要的庫並設定 AWS SageMaker 環境。
import sagemaker from sagemaker.huggingface import HuggingFace import boto3 # Create a SageMaker session sagemaker_session = sagemaker.Session() # Set your AWS region region = boto3.Session().region_name # Define the execution role (replace with your own role ARN) role = 'arn:aws:iam::YOUR_AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole' # Define the S3 bucket for storing model artifacts and data bucket = 'your-s3-bucket-name'
步驟 3:定義 Hugging Face 模型引數
在這裡,我們需要定義使用 SageMaker 訓練GPT-2 模型的模型引數。
# Specify the Hugging Face model and its version huggingface_model = HuggingFace( entry_point = 'train.py', # Your training script source_dir = './scripts', # Directory containing your script instance_type = 'ml.p3.2xlarge',# GPU instance instance_count=1, role = role, transformers_version = '4.6.1', # Hugging Face Transformers version pytorch_version = '1.7.1', py_version = 'py36', hyperparameters = { 'model_name': 'gpt2', # Pre-trained GPT-2 model 'epochs': 3, 'train_batch_size': 16 } )
步驟 4:準備訓練資料
在本例中,我們需要將預處理後的資料儲存在 Amazon S3 儲存桶中。資料可以是 CSV、JSON 或純文字格式。
# Define the S3 path to your training data training_data_s3_path = f's3://{bucket}/train-data/' # Launch the training job huggingface_model.fit(training_data_s3_path)
步驟 5:部署訓練好的模型以進行推理
模型訓練完成後,將其部署到 SageMaker 端點以進行即時推理。
# Deploy the model to a SageMaker endpoint predictor = huggingface_model.deploy( initial_instance_count=1, instance_type='ml.m5.large' )
步驟 6:使用已部署的模型生成文字
模型部署後,您可以透過向端點發送提示來進行預測,從而生成文字。
# Define a prompt for text generation prompt = "Once upon a time" # Use the predictor to generate text response = predictor.predict({ 'inputs': prompt }) # Print the generated text print(response)
步驟 7:清理資源
完成任務後,建議刪除已部署的端點,以避免產生不必要的費用。
predictor.delete_endpoint()
AWS 上的生成式 AI - Lambda
AWS Lambda 是 AWS 提供的一項無伺服器計算服務,允許您在無需管理伺服器的情況下執行程式碼。它會根據傳入請求自動擴充套件您的應用程式,並確保僅在需要時才使用資源。
在生成式 AI 的情況下,AWS 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 函式
下面是 AWS Lambda 函式的 Python 程式碼,該函式呼叫 SageMaker 端點以進行即時文字生成 -
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..." }
AWS 上的生成式 AI - EC2
Amazon EC2(彈性計算雲)是一種多功能計算服務,提供虛擬機器來執行各種型別的負載。AWS EC2 是訓練、部署和執行這些模型(尤其是需要高效能計算 (HPC) 資源的生成式 AI 模型)的重要組成部分。
AWS EC2 提供高計算能力、可擴充套件性、靈活性和成本效益。這些強大的功能可用於訓練和部署生成式 AI。
使用 AWS Elastic Inference 和 EC2 例項
AWS Elastic Inference 可用於生成式 AI 模型,以便在不處理專用 GPU 伺服器和其他例項的情況下擴充套件 GPU 推理。
AWS Elastic Inference 允許我們將所需的 GPU 能力附加到 EC2、AWS SageMaker 或 EC2 例項。
實施示例
在以下示例中,我們將使用 AWS Elastic Inference 和 EC2 例項以及預訓練的生成式 AI 模型(如 GPT 或 GAN)。
實施本示例的先決條件如下 -
- 一個 Elastic Inference 加速器(可附加到 EC2)。
- 一個您要用於推理的預訓練生成式 AI 模型(例如,GAN、GPT)。
- AWS CLI 和支援 Elastic Inference 的 EC2 例項的深度學習 AMI。
現在,請按照以下步驟操作 -
步驟 1:使用 EC2 設定 Elastic Inference
當您啟動用於推理任務的 EC2 例項時,您需要附加一個 Elastic Inference 加速器。讓我們看看如何做到這一點 -
要使用 Elastic Inference 啟動 EC2 例項 -
- 首先,轉到 EC2 控制檯並點選“啟動例項”。
- 選擇一個支援 Elastic Inference 的 AMI。例如 - 深度學習 AMI。
- 接下來,選擇一個例項型別(例如,t2.medium)。但請記住,不要選擇 GPU 例項,因為您將附加一個 Elastic Inference 加速器。
- 最後,在“Elastic Inference 加速器”下,選擇一個合適的加速器(例如,eia2.medium,它提供適度的 GPU 能力)。
啟動 EC2 例項後,在啟動 EC2 例項時附加 Elastic Inference 加速器,以提供推理所需的 GPU 能力。
步驟 2:安裝必要的庫
附加並運行了支援 Elastic Inference 的 EC2 例項後,請安裝以下 Python 庫 -
# Update and install pip sudo apt-get update sudo apt-get install -y python3-pip # Install torch, torchvision, and the AWS Elastic Inference Client pip3 install torch torchvision pip3 install awscli --upgrade pip3 install elastic-inference
步驟 3:載入預訓練的生成式 AI 模型(例如,GPT)
在本例中,我們將使用來自 Hugging Face 的預訓練 GPT-2 模型(生成式預訓練轉換器)。
import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel # Load pre-trained GPT-2 model and tokenizer from Hugging Face tokenizer = GPT2Tokenizer.from_pretrained("gpt2") model = GPT2LMHeadModel.from_pretrained("gpt2") # Move the model to the Elastic Inference accelerator (if available) if torch.cuda.is_available(): model.to('cuda') # Set the model to evaluation mode for inference model.eval()
模型現在已載入並準備使用 Elastic Inference 執行推理。
步驟 4:定義一個執行即時推理的函式
我們定義一個函式來使用 GPT-2 模型生成文字。
def generate_text(prompt, max_length=50): # Tokenize the input prompt inputs = tokenizer.encode(prompt, return_tensors="pt") # Move input to GPU if Elastic Inference is available if torch.cuda.is_available(): inputs = inputs.to('cuda') # Generate text using GPT-2 with torch.no_grad(): outputs = model.generate(inputs, max_length = max_length, num_return_sequences = 1) # Decode and return the generated text generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) return generated_text
步驟 5:測試模型
讓我們透過執行推理來測試模型。此函式將根據提示生成文字並返回生成的文字。
prompt = "In the future, artificial intelligence will" generated_text = generate_text(prompt) print("Generated Text:\n", generated_text)
AWS 上的生成式 AI - 監控和最佳化
AWS 提供了多種工具和服務來監控生成式 AI模型的執行狀況和效能 -
Amazon CloudWatch
CloudWatch 是AWS中的基本監控工具。它允許您跟蹤效能指標,如 CPU 使用率、GPU 利用率、延遲和記憶體消耗。
您可以建立CloudWatch 警報來為這些指標設定閾值。當模型的效能偏離預期值時,它會發送警報。
AWS X-Ray
要更深入地分析生成式 AI 模型,您可以使用 AWS X-Ray。它提供分散式跟蹤。此工具在生成式 AI 模型整合到更大的系統(例如,Web 應用程式、微服務)中時特別有用。
SageMaker 模型監控器
如果您正在使用Amazon SageMaker部署生成式 AI,則模型監控器可以自動跟蹤模型中的錯誤和偏差。它監控預測的質量,並確保在向模型輸入新資料時模型保持準確。
Elastic Inference 指標
您可以使用 Elastic Inference 指標來監控模型所需數量的 GPU 能力。您可以根據需要調整 GPU 容量。
最佳化 AWS 上的生成式 AI 模型
最佳化 AWS 上的生成式 AI 模型是一項重要的任務,可以實現更快的推理時間、降低成本並保持模型準確性。
在本節中,我們重點介紹了一組可用於最佳化 AWS 上的生成式 AI 模型的方法 -
自動擴充套件
始終為 EC2 例項或 Amazon SageMaker 端點啟用自動擴充套件。它允許 AWS 根據您當前的需求自動調整例項數量。此技術確保您始終擁有足夠的資源,而不會增加利用成本。
使用 Elastic Inference
為了最佳化,建議使用 Elastic Inference 將適量的 GPU 能力附加到 CPU 例項。此方法可降低成本,並確保在推理過程中實現高效能。
模型壓縮
您可以使用剪枝或量化等技術來減小生成式 AI 模型的大小。
批次推理
當不需要即時預測時,您可以使用批次推理,它允許您在一次執行中處理多個輸入。這減少了整體計算負載。
使用 Docker 容器
您可以將 Docker 容器與Amazon ECS或Fargate一起使用。它允許您最佳化部署並簡化資源管理。