[SEO 부제목]
이 지침은 게임 개발자가 게임 및 관련 인프라를 위한 NPC(논플레이어 캐릭터) 생성 프로세스를 자동화하는 데 도움이 됩니다. Unreal Engine MetaHuman과 함께 파운데이션 모델(FM)인 대규모 언어 모델(LLM), Claude 2, Llama 2 등을 사용하여 NPC의 대화 능력을 향상시킵니다. 이는 각 플레이어마다 고유한 NPC의 역동적인 반응으로 이어져 스크립트 방식의 대화에 추가됩니다. 이 지침은 대규모 언어 모델 운영(LLMOps) 방법론을 사용하여 LLM을 미세 조정하는 동시에 생성형 AI 애플리케이션을 지속적으로 통합 및 배포하여 프로토타이핑과 전달 시간을 단축합니다. 또한 NPC가 안전한 게임 지식 기반에 완전히 액세스할 수 있도록 지원합니다.
이 지침은 개요 아키텍처, LLMOps 파이프라인 아키텍처, 파운데이션 모델 운영(FMOps) 아키텍처, 데이터베이스 하이드레이션 아키텍처의 네 부분으로 구성됩니다.
참고: [고지 사항]
아키텍처 다이어그램
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
-
개요
-
LLMOps 파이프라인
-
FMOps 파이프라인
-
데이터베이스 하이드레이션
-
개요
-
이 아키텍처 다이어그램은 AWS에서 생성형 AI NPC를 호스팅하기 위한 개요 워크플로를 보여줍니다.
1단계
게임 클라이언트가 Unreal Engine Metahuman에서 실행되는 NPC와 상호 작용합니다.
2단계
NPC에서 생성된 텍스트 응답에 대한 요청이 Text API Amazon API Gateway 엔드포인트로 전송됩니다. NPC의 게임별 컨텍스트가 필요한 요청이 RAG(검색 증강 생성) API Gateway 엔드포인트로 전송됩니다.3단계
AWS Lambda가 NPC 텍스트 요청을 처리하여 Amazon Bedrock에 호스팅된 LLM으로 전송합니다.4단계
기본 LLM 및 미세 조정을 통해 사용자 지정된 LLM이 생성된 텍스트 응답을 제공합니다.5단계
생성된 텍스트 응답이 Amazon Polly로 전송되고, Amazon Polly가 해당 응답의 오디오 스트림을 반환합니다. 오디오 형식이 대화로 전달할 수 있도록 NPC로 반환됩니다.6단계
RAG NPC 요청의 경우에는 Lambda가 Amazon Bedrock에 요청을 제출하여 임베딩 모델에서 벡터화된 표현을 생성합니다. 그런 다음 Lamda가 Amazon OpenSearch Service 벡터 인덱스에서 관련 정보를 검색합니다.7단계
OpenSearch Service가 유사성 검색 기능을 통해 관련 컨텍스트를 제공합니다. 이를 통해 Amazon Bedrock의 요청을 벡터화한 표현을 기반으로 생성된 텍스트 요청을 보완합니다.
8단계
관련 컨텍스트 및 원본 텍스트 요청이 Amazon Bedrock에 호스팅된 LLM으로 전송되어 생성된 텍스트 응답을 제공합니다. 그러면 Amazon Polly가 대화를 위해 NPC에 응답을 전달합니다.9단계
게임 내러티브 작성자가 게임별 훈련 데이터를 추가하여 FMOps 프로세스를 통해 사용자 지정 모델을 만들거나 게임 지식 데이터를 추가하여 벡터 데이터베이스를 하이드레이트합니다.
10단계
인프라 및 DevOps 엔지니어가 AWS Cloud Development Kit(AWS CDK)를 사용하여 아키텍처를 코드로 관리하고 Amazon CloudWatch를 사용해 지침을 모니터링합니다. -
LLMOps 파이프라인
-
이 아키텍처 다이어그램은 AWS에 LLMOps 파이프라인을 배포하는 프로세스를 보여줍니다.
1단계
인프라 엔지니어가 AWS CDK를 사용해 코드화된 인프라를 구축하고 테스트합니다.
2단계
인프라 코드 업데이트가 AWS CodeCommit 리포지토리에 커밋되어 Toolchain AWS 계정 내에서 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 호출합니다.3단계
Doker 컨테이너 및 AWS CloudFormation 템플릿과 같은 인프라 자산이 Amazon Elastic Container Registry(Amazon ECR)와 Amazon Simple Storage Service(S3)에 컴파일되고 저장됩니다.4단계
통합 및 시스템 테스트를 위한 CloudFormation 스택으로 인프라가 품질 보증(QA) AWS 계정에 배포됩니다.5단계
AWS CodeBuild가 자동 테스트 스크립트를 시작하여 아키텍처가 제대로 작동하고 프로덕션 배포에 사용할 준비가 되었는지 확인합니다.6단계
모든 시스템 테스트를 성공적으로 완료하면 인프라가 프로덕션(PROD) AWS 계정에 CloudFormation 스택으로 자동 배포됩니다.
7단계
FMOps 파이프라인 리소스도 PROD AWS 계정에 CloudFormation 스택으로 배포됩니다.
-
FMOps 파이프라인
-
이 아키텍처 다이어그램은 FMOps를 사용해 생성형 AI 모델을 조정하는 프로세스를 보여줍니다.
1단계
게임 지식 텍스트 문서가 S3 버킷에 업로드됩니다.
2단계
문서 객체 업로드 이벤트가 Amazon SageMaker Pipelines를 호출합니다.3단계
전처리 단계에서는 모델 미세 조정 및 모델 평가를 위해 SageMaker 처리 작업을 실행하여 텍스트 문서를 사전 처리합니다.4단계
콜백 단계에서는 SageMaker Pipelines가 Amazon Simple Queue Service(Amazon SQS) 대기열에 메시지를 전송하여 다른 AWS 서비스와 통합할 수 있습니다. 메시지를 보낸 후 SageMaker Pipelines가 대기열의 응답을 기다립니다.5단계
Amazon SQS가 SageMaker Pipelines와 AWS Step Functions 워크플로 간의 작업을 조정하는 메시지 대기열을 관리합니다.6단계
Step Functions 워크플로가 LLM 미세 조정 프로세스를 조정합니다. 모델 미세 조정을 완료하면 Amazon SQS가 SageMaker Pipelines 콜백 단계로 성공 메시지를 다시 보냅니다.
7단계
모델 평가 단계에서는 SageMaker 처리 작업을 실행하여 미세 조정된 모델의 성능을 평가합니다. 조정된 모델이 Amazon SageMaker 모델 레지스트리에 저장됩니다.8단계
기계 학습(ML) 실무자가 조정된 모델을 검토하고 프로덕션 용도로 승인합니다.9단계
AWS CodePipeline 워크플로가 호출되어 승인된 모델을 프로덕션에 배포합니다. -
데이터베이스 하이드레이션
-
이 아키텍처 다이어그램은 RAG에 대한 게이머 지식을 벡터화하고 저장하여 데이터베이스 하이드레이션 프로세스를 보여줍니다.
1단계
데이터 과학자가 게임 지식 텍스트 문서를 S3 버킷에 업로드합니다.
2단계
객체 업로드가 Lambda 함수를 호출하여 SageMaker 처리 작업을 시작합니다.
3단계
SageMaker 처리 작업이 Amazon S3에서 텍스트 문서를 다운로드하고 텍스트를 여러 청크로 분할합니다.
4단계
그런 다음 SageMaker 처리 작업이 각 텍스트 청크를 Amazon Bedrock에 호스팅된 Amazon Titan 임베딩 모델에 제출하여 텍스트 청크의 벡터화된 표현을 생성합니다.5단계
그런 다음 SageMaker 처리 작업이 텍스트 청크와 벡터 표현을 모두 RAG용 OpenSearch Service로 수집합니다.
Well-Architected 원칙
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
AWS Well-Architected Framework는 클라우드에서 시스템을 구축하는 동안 사용자가 내리는 의사 결정의 장단점을 이해하는 데 도움이 됩니다. 이 프레임워크의 6가지 원칙을 통해 안정적이고 안전하며 효과적이고 비용 효율적이며 지속 가능한 시스템을 설계 및 운영하기 위한 아키텍처 모범 사례를 배울 수 있습니다. AWS Management Console에서 추가 요금 없이 사용할 수 있는 AWS Well-Architected Tool을 사용하면 각 원칙에 대한 여러 질문에 답하여 이러한 모범 사례와 비교하며 워크로드를 검토할 수 있습니다.
위의 아키텍처 다이어그램은 Well-Architected 모범 사례를 고려하여 생성된 솔루션의 예시입니다. Well-Architected를 완전히 충족하려면 가능한 많은 Well-Architected 모범 사례를 따라야 합니다.
-
운영 우수성
이 지침은 AWS X-Ray, Lambda, API Gateway, CloudWatch를 사용하여 Unreal Engine Metahuman 클라이언트와 Amazon Bedrock FM 사이에서 생성된 NPC 대화에 대한 모든 API 요청을 추적합니다. 이를 통해 이 지침의 상태를 종합적으로 파악하여 게임 클라이언트의 각 요청과 응답을 세부적으로 추적할 수 있으므로 문제를 신속하게 파악하고 그에 따라 대응할 수 있습니다. 또한 이 지침은 CodePipeline을 사용하는 CDK 애플리케이션으로 코드화되어 있으므로 운영팀과 개발자는 적절한 변경 제어 방법론을 통해 결함과 버그를 해결하고 CI/CD 파이프라인을 사용하여 이러한 업데이트 또는 수정 사항을 신속하게 배포할 수 있습니다.
-
보안
Amazon S3는 게임 지식 문서를 벡터로 수집하거나 Amazon Bedrock FM을 미세 조정하는 동시에 전송 중 데이터에 대한 암호화된 액세스 외에도 저장 중 게임 지식 문서를 저장할 수 있는 암호화된 보호 기능을 제공합니다. API Gateway는 NPC와 모델 간의 모든 데이터에 대해 TLS 기반 암호화를 제공하여 Unreal Engine Metahuman과 Amazon Bedrock FM 간에 보안 계층을 추가합니다. 마지막으로 Amazon Bedrock은 자동화된 남용 탐지 메커니즘을 구현하여 AWS 이용 정책 및 AWS 책임감 있는 AI 정책의 위반을 추가로 식별하고 완화합니다.
-
신뢰성
API Gateway는 NPC가 FM에 보내는 요청의 자동 크기 조정 및 제한을 관리합니다. 또한 CI/CD 파이프라인을 사용하여 전체 인프라를 코드화하기 때문에 여러 AWS 계정과 여러 AWS 리전에서 동시에 리소스를 프로비저닝할 수 있습니다. 따라서 여러 개의 동시 인프라 재배포 시나리오가 가능하므로 AWS 리전 수준의 장애를 극복하는 데 도움이 됩니다. 서버리스 인프라 리소스인 API Gateway와 Lambda를 사용하면 API 요청에 대한 리소스 할당과 사용 패턴을 수작업으로 관리하는 대신 게임 개발에 집중할 수 있습니다.
-
성능 효율성
Lambda 및 API Gateway와 같은 서버리스 리소스는 탄력성과 확장성을 모두 제공하여 이 지침의 성능 효율성에 기여합니다. 이를 통해 NPC 클라이언트의 API 호출 증가 또는 감소에 따라 지침이 동적으로 조정될 수 있습니다. 유연하고 확장 가능한 접근 방식을 사용하면 프로비저닝된 인프라 리소스를 수작업으로 관리하지 않고도 리소스의 크기를 적절하게 조정하여 성능을 최적화하고 API 요청의 예상치 못한 증가 또는 감소를 해결할 수 있습니다.
-
비용 최적화
이 지침을 CDK 애플리케이션으로 코드화하면 게임 개발자가 NPC 캐릭터의 프로토타입을 신속하게 제작하고 프로덕션에 배포할 수 있습니다. 개발자는 API Gateway REST API를 통해 Amazon Bedrock FM을 엔지니어링 및 빌드하고 사전 훈련시킬 필요 없이 빠르게 액세스할 수 있습니다. 프로토타입을 신속하게 처리하면 처음부터 FM을 빌드하는 데 드는 시간과 운영 비용을 줄일 수 있습니다.
-
지속 가능성
Lambda는 전용 컴퓨팅 리소스를 프로비저닝할 필요 없이 확장 가능한 서버리스 이벤트 기반 접근 방식을 제공합니다. Amazon S3는 이 지침에서 모든 데이터를 압축하고 데이터 수명 주기 정책을 구현하여 에너지 효율적인 스토리지를 제공합니다. Amazon Bedrock은 AWS 실리콘에서 FM을 호스팅하여 표준 컴퓨팅 리소스의 와트당 성능을 향상시킵니다.
구현 리소스
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
샘플 코드를 시작점으로 사용할 수 있습니다. 이 샘플 코드는 업계에서 검증되었고 권장되는 것이지만 최종적인 것은 아니며, 시작하는 데 도움을 줄 것입니다.
고지 사항
샘플 코드, 소프트웨어 라이브러리, 명령줄 도구, 개념 증명, 템플릿 또는 기타 관련 기술(AWS 직원을 통해 제공되는 상기 항목 포함)은 AWS 이용계약 또는 귀하와 AWS 간의 서면 계약(적용되는 것)에 따라 AWS 콘텐츠로 제공됩니다. 이 AWS 콘텐츠를 프로덕션 계정, 프로덕션 또는 기타 중요한 데이터에 사용해서는 안 됩니다. 귀하는 특정 품질 제어 방식 및 표준에 따라 프로덕션급 사용에 적절하게 샘플 코드와 같은 AWS 콘텐츠를 테스트, 보호 및 최적화할 책임이 있습니다. AWS 콘텐츠를 배포하면 Amazon EC2 인스턴스를 실행하거나 Amazon S3 스토리지를 사용할 때와 같이 요금이 부과되는 AWS 리소스를 생성하거나 사용하는 것에 대한 AWS 요금이 발생할 수 있습니다.
본 지침에 서드 파티 서비스 또는 조직이 언급되어 있다고 해서 Amazon 또는 AWS와 서드 파티 간의 보증, 후원 또는 제휴를 의미하지는 않습니다. AWS의 지침을 기술적 시작점으로 사용할 수 있으며 아키텍처를 배포할 때 서드 파티 서비스와의 통합을 사용자 지정할 수 있습니다.