[AWS] 생성형 AI : Bedrock
AWS Bedrock은 AWS가 제공하는 생성형 AI(Generative AI) 서비스로, 사용자가 사전 학습된 대규모 언어모델(LLM)을 쉽게 활용할 수 있도록 돕는 플랫폼이다.
AWS Bedrock을 사용하면 LLM을 직접 관리하거나 학습 시키는 복잡한 작업 없이, 다양한 생성형 AI 모델을 통합하여 애플리케이션에 도입할 수있다.
AWS Bedrock이란?
AWS Bedrock은 생성형 AI 애플리케이션 개발을 지원하는 관리형 서비스다.
사용자는 API를 통해 사전 학습된 여러 생성형 AI 모델을 활용할 수 있으며, AWS의 인프라와 통합되어 높은 확장성과 유연성을 제공한다.
AWS Bedrock의 주요 특징들은 다음과 같다.
1. 다양한 LLM 제공
: Bedrock은 AWS 자체 모델뿐 아니라 Anthropic, Stability AI, Cohere와 같은 외부 AI 모델 제공자의 모델을 지원한다.
- Anthropic : Claude 모델을 통해 안전하고 인간 친화적인 대화형 AI 제공
- Stability AI : 텍스트에서 이미지를 생성하는 Stable Diffusion 지원
- Cohere : 검색, 추천 시스템 등 텍스트 임베딩에 특화된 모델 제공
2. 제로 인프라 관리
: LLM을 직접 배포하거나 학습할 필요 없이 AWS API로 바로 사용할 수 있다.
3. 고급 커스터마이징
: 데이터 보안이 보장되는 AWS 환경에서 기업의 독자적인 데이터로 모델을 커스터마이징 할 수 있다.
4. 확장성
: AWS의 강력한 클라우드 인프라를 기반으로 하며, 워크로드의 크기에 따라 유연하게 확장 가능하다.
AWS Bedrock의 주요 구성 요소
1. LLM 액세스
Bedrock은 다양한 모델 제공자의 API를 통합하여 텍스트 생성, 이미지 생성, 임베딩 등의 작업을 지원한다.
2. Model Customization
Bedrock은 fine-tuning 기능을 통해 기업 데이터에 맞는 맞춤형 모델을 만들 수 있다.
3. 통합 관리 및 보안
- AWS IAM을 통해 세분화된 권한 관리 가능
- 데이터를 암호화하여 보안 요구 사항 충족
4. AWS 통합 서비스 사용 가능
- Amazon S3 : 데이터 저장 및 관리
- AWS Lambda : 서버리스 애플리케이션과 연동
- Amazon SageMaker : 데이터 준비 및 모델 학습과 통합
AWS Bedrock 사전 준비
1. AWS 계정 생성
AWS 콘솔에 로그인하고 Bedrock 서비스가 활성화 된 계정을 준비한다.
2. IAM 역할 생성
Bedrock에 액세스하기 위한 IAM 역할을 설정한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:ListModels"
],
"Resource": "*"
}
]
}
3. AWS CLI 또는 SDK 설치
AWS CLI 또는 AWS SDK(Python, JavaScript 등)를 통해 API를 호출할 수 있도록 환경을 설정한다.
모델 호출 예제 (Python)
아래는 AWS SDK for Python(Boto3)을 사용하여 Bedrock 모델을 호출하는 기본 예제이다.
import boto3
# AWS Bedrock 클라이언트 생성
client = boto3.client('bedrock')
# 모델 호출
response = client.invoke_model(
modelId='anthropic.claude-v1', # 사용하려는 모델 ID
inputText="What is the capital of France?", # 입력 텍스트
)
# 결과 출력
print("Response:", response['outputText'])
이미지 생성 예제 (Stable Diffusion)
Stable Diffusion 모델을 활용하여 텍스트에서 이미지를 생성하는 예제다.
response = client.invoke_model(
modelId='stabilityai.stable-diffusion-v1',
inputText="A futuristic cityscape at night with neon lights"
)
# 생성된 이미지 URL 출력
print("Generated Image URL:", response['outputUrl'])
모델 커스터마이징
Bedrock은 기업 데이터를 기반으로 모델을 맞춤화할 수 있다.
S3에 데이터를 업로드한 후 커스터마이징을 요청한다.
먼저 S3에 데이터 세트를 업로드한다.
aws s3 cp ./training_data.json s3://my-bucket/training_data.json
업로드 된 데이터세트를 기반으로 모델 맞춤화를 요청한다.
response = client.create_custom_model(
baseModelId='cohere.command-xlarge',
trainingDataS3Uri='s3://my-bucket/training_data.json',
outputModelName='custom-text-generator'
)
print("Custom Model Status:", response['status'])
참고
https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/getting-started.html
'💻 CSP > AWS' 카테고리의 다른 글
[AWS] S3 CLI로 객체 수 확인하기 (0) | 2025.01.15 |
---|---|
[AWS] IAM Role for SeviceAccount (IRSA) (2) | 2024.11.15 |
[AWS] S3의 ACL 구성 (0) | 2024.05.28 |
[AWS] S3 수명 주기 정책 (Life Cycle Rule) (0) | 2024.04.05 |
[AWS] ECR 로그인 & 빌드 및 푸쉬 (0) | 2024.03.11 |