여기서는 AWS Bedrock에 있는 LLM 모델의 모니터링 방법을 설명합니다. 주요 내용은 Deploying Amazon Bedrock Monitoring Dashboard Using AWS GenAI CDK Constructs을 참고하여 만들어졌습니다.
이후 lib의 llm-monitoring/cdk-monitoring/lib/cdk-monitoring-stack.ts을 visual studio code에서 열고 아래와 관련된 함수를 import합니다.
import { BedrockCwDashboard } from '@cdklabs/generative-ai-cdk-constructs';
import * as cw from 'aws-cdk-lib/aws-cloudwatch';
import { Duration } from 'aws-cdk-lib';
이후 아래와 같이 모니터링과 관련된 내용을 stack에 추가합니다. 상세한 코드는 cdk-monitoring-stack.ts을 참조합니다.
전체 모델 또는 특정 모델에 대한 dashboard는 아래와 같이 구성할 수 있습니다.
const bddashboard = new BedrockCwDashboard(this, 'BedrockDashboardConstruct', {});
// provides monitoring of all models
bddashboard.addAllModelsMonitoring({});
// provides monitoring for a specific model
bddashboard.addModelMonitoring('Anthropic Claude 3 Sonnet', 'anthropic.claude-3-sonnet-20240229-v1:0', {});
아래와 같이 필요한 metric을 추가하고 dashboard에 추가할 수 있습니다.
const invocationsServerErrorsAllModelsMetric = new cw.Metric({
namespace: 'AWS/Bedrock',
metricName: 'InvocationServerErrors',
statistic: cw.Stats.SAMPLE_COUNT,
period: Duration.hours(1),
});
bddashboard.dashboard.addWidgets(
new cw.SingleValueWidget({
title: 'Server Errors (All Models)',
metrics: [invocationsServerErrorsAllModelsMetric],
width: 12,
})
);
관련하여 dashboard에 대한 sample은 index.ts을 참조합니다.
Monitor the health and performance of Amazon Bedrock을 참조합니다.
CDK 설치후 아래와 같이 folder를 생성하고 cdk를 초기화를 수행합니다.
mkdir llm-monitoring
cd llm-monitoring
mkdir cdk-monitoring
cd cdk-monitoring
cdk init app --language typescript
cdk-monitoring에는 cdk가 설치되어 있으므로 아래와 같이 설치하려는 app의 루트로 이동합니다. 이후 아래와 같이 cdklibs를 설치합니다.
cd ..
npm install @cdklabs/generative-ai-cdk-constructs
CDK를 위해 bootstrapping을 수행합니다.
"account-id"는 상기 명령어로 확인한 12자리의 Account ID입니다. bootstrap 1회만 수행하면 되므로, 기존에 cdk를 사용하고 있었다면 bootstrap은 건너뛰어도 됩니다.
cdk bootstrap aws://account-id/us-west-2
이제 인프라를 설치합니다.
cd cdk-monitoring
cdk deploy --all
이후 CloudWatch Console에 접속합니다.
화면에서 dashboard를 선택하여 BedrockMetricsDashboard를 선택합니다.
BedrockMetricsDashboard에서 생성된 matric을 확인할 수 있습니다.
From Metrics to Dollars: Leveraging GenAI CDK Constructs for Cost Observability