생성 데이터 인텔리전스

Amazon Redshift 및 Amazon Bedrock의 프롬프트 엔지니어링을 사용하여 생성적 AI 챗봇 구축 | 아마존 웹 서비스

시간

생성적 AI 솔루션의 출현으로 조직은 경쟁사보다 우위를 확보하기 위해 이러한 기술을 적용하는 다양한 방법을 찾고 있습니다. 대규모 데이터 세트에 대해 훈련된 고급 기반 모델(FM)을 기반으로 하는 지능형 애플리케이션은 이제 자연어를 이해하고 의미와 의도를 해석하며 상황에 맞게 관련성이 있고 인간과 유사한 응답을 생성할 수 있습니다. 이는 다음을 포함하여 수많은 비즈니스 프로세스를 향상시킬 수 있는 엄청난 잠재력을 보여주는 생성적 AI를 통해 산업 전반에 걸쳐 혁신을 촉진하고 있습니다.

  • 자동화된 가설 생성 및 실험 설계를 통해 연구 개발 가속화
  • 데이터의 미묘한 추세와 패턴을 식별하여 숨겨진 통찰력을 찾아보세요
  • 시간이 많이 소요되는 문서화 프로세스 자동화
  • 개인화를 통해 더 나은 고객 경험 제공
  • 다양한 지식 소스의 데이터 요약
  • 소프트웨어 코드 권장 사항을 제공하여 직원 생산성 향상

아마존 기반암 생성적 AI 애플리케이션을 간단하게 구축하고 확장할 수 있게 해주는 완전관리형 서비스입니다. Amazon Bedrock은 단일 API를 통해 AI21 Labs, Anthropic, Cohere, Meta, Stability AI 및 Amazon을 포함한 주요 AI 회사의 고성능 기반 모델을 제공합니다. 미세 조정, 프롬프트 엔지니어링, RAG(검색 증강 생성) 등의 기술을 사용하여 데이터로 FM을 비공개로 사용자 정의하고 보안 및 개인 정보 보호 요구 사항을 준수하면서 엔터프라이즈 시스템 및 데이터 소스를 사용하여 작업을 실행하는 에이전트를 구축할 수 있습니다. .

이 게시물에서는 Amazon Bedrock의 포괄적인 기능을 사용하여 복잡한 비즈니스 작업을 수행하고 다음과 같은 데이터베이스에 저장된 데이터를 사용하여 개인화를 제공함으로써 고객 경험을 개선하는 방법에 대해 논의합니다. 아마존 레드 시프트. 기반 모델을 효율적으로 사용하기 위해 Redshift 데이터베이스에 저장된 데이터로 프롬프트를 개발하고 최적화하는 프롬프트 엔지니어링 기술을 사용합니다. 이 예의 일부로 개인화된 생성적 AI 여행 일정 플래너를 구축하고 Amazon Redshift에 저장된 예약 및 사용자 프로필 데이터를 기반으로 사용자의 여행 일정을 개인화할 수 있는 방법을 보여줍니다.

신속한 엔지니어링

프롬프트 엔지니어링은 생성 AI 솔루션이 원하는 출력을 생성하도록 안내할 수 있는 사용자 입력을 생성하고 설계할 수 있는 프로세스입니다. 기초 모델을 안내하는 가장 적절한 문구, 형식, 단어 및 기호를 선택하고 생성 AI 애플리케이션이 사용자와 보다 의미 있게 상호 작용할 수 있습니다. 창의성과 시행착오 방법을 사용하여 입력 프롬프트에 대한 컬렉션을 만들 수 있으므로 응용 프로그램이 예상대로 작동합니다. 신속한 엔지니어링은 생성적 AI 애플리케이션을 더욱 효율적이고 효과적으로 만듭니다. FM에 전달하기 전에 프롬프트 내에 개방형 사용자 입력을 캡슐화할 수 있습니다. 예를 들어 사용자는 "셔츠 구입처"와 같은 불완전한 문제 설명을 입력할 수 있습니다. 내부적으로 애플리케이션의 코드는 “당신은 의류 회사의 영업 보조원입니다. 미국 앨라배마에 거주하는 사용자가 셔츠를 어디서 구입할 수 있는지 묻고 있습니다. 현재 셔츠를 보유하고 있는 가장 가까운 매장 3곳에 연락하세요.” 그러면 기초 모델은 보다 관련성이 높고 정확한 정보를 생성합니다.

프롬프트 엔지니어링 분야는 지속적으로 발전하고 있으며 프롬프트를 조정하고 FM에서 원하는 결과를 얻으려면 창의적인 표현과 자연어 기술이 필요합니다. 프롬프트에는 다음 요소가 포함될 수 있습니다.

  • 교수 – 모델이 수행하기를 원하는 특정 작업이나 지침
  • 문맥 – 모델을 더 나은 대응으로 이끌 수 있는 외부 정보 또는 추가 컨텍스트
  • 입력 데이터 – 응답을 찾고 싶은 입력 또는 질문
  • 출력 표시기 – 출력의 유형 또는 형식

다음과 같이 다양한 산업 부문에 걸쳐 다양한 기업 사용 사례에 대해 프롬프트 엔지니어링을 사용할 수 있습니다.

  • 은행 업무 및 재원 – 프롬프트 엔지니어링은 언어 모델이 예측을 생성하고, 감정 분석을 수행하고, 위험을 평가하고, 투자 전략을 수립하고, 재무 보고서를 생성하고, 규정 준수를 보장할 수 있도록 지원합니다. 예를 들어, 데이터 및 시장 지표를 프롬프트로 제공하여 재무 예측에 LLM(대형 언어 모델)을 사용할 수 있습니다.
  • 의료 및 생명 과학 – 신속한 엔지니어링은 의료 전문가가 AI 시스템을 최적화하여 진단, 치료 선택 또는 위험 평가와 같은 의사 결정 프로세스를 지원하는 데 도움이 될 수 있습니다. 또한 환자 예약, 기록 보관, 청구 등의 관리 작업을 용이하게 하는 프롬프트를 설계하여 효율성을 높일 수 있습니다.
  • 소매 – 프롬프트 엔지니어링은 소매업체가 챗봇을 구현하여 주문 상태, 반품, 결제 등과 같은 일반적인 고객 요청을 자연어 상호 작용을 통해 처리하는 데 도움이 될 수 있습니다. 이를 통해 고객 만족도를 높일 수 있으며 인간 고객 서비스 팀이 복잡하고 민감한 고객 문제에 전문 지식을 전담할 수 있습니다.

다음 예에서는 여행 및 숙박 산업의 사용 사례를 구현하여 다가오는 여행 계획이 있는 고객을 위한 맞춤형 여행 일정 플래너를 구현합니다. Redshift 데이터베이스에 저장된 사용자 프로필 데이터의 프롬프트를 강화하여 사용자와 상호 작용하는 생성적 AI 챗봇을 구축할 수 있는 방법을 시연합니다. 그런 다음 이 강화된 프롬프트를 LLM, 특히 Amazon Bedrock의 Anthropic's Claude에게 보내 맞춤형 여행 계획을 얻습니다.

Amazon Redshift는 다음과 같은 기능을 발표했습니다. 아마존 레드시프트 ML 이를 통해 데이터 분석가와 데이터베이스 개발자는 Redshift 데이터 웨어하우스에서 친숙한 SQL 명령을 사용하여 기계 학습(ML) 모델을 쉽게 생성, 교육 및 적용할 수 있습니다. 그러나 이 게시물에서는 Amazon Bedrock에 호스팅된 LLM을 사용하여 일반적인 프롬프트 엔지니어링 기술과 그 이점을 보여줍니다.

솔루션 개요

우리 모두는 휴가 중이나 휴가를 떠나기 전에 특정 장소에서 할 일을 인터넷에서 검색해 본 적이 있습니다. 이 솔루션에서는 사용자가 참조할 수 있고 취미, 관심사, 좋아하는 음식 등을 기반으로 생성되는 맞춤형 맞춤형 여행 일정을 생성하는 방법을 보여줍니다. 이 솔루션은 예약 데이터를 사용하여 여행 날짜와 함께 여행할 도시를 조회하고 정확하고 개인화된 할 일 목록을 제시합니다. 이 솔루션은 여행 및 숙박 업계에서 여행 예약 포털에 개인화된 여행 일정 플래너를 내장하는 데 사용할 수 있습니다.

이 솔루션에는 두 가지 주요 구성 요소가 포함되어 있습니다. 먼저 이름, 위치, 취미, 관심사, 좋아하는 음식과 같은 사용자 정보와 향후 여행 예약 세부 정보를 추출합니다. 이 정보를 사용하여 사용자 프롬프트를 결합하고 이를 Amazon Bedrock의 Anthropic's Claude에게 전달하여 개인화된 여행 일정을 얻습니다. 다음 다이어그램은 이 아키텍처와 관련된 워크플로 및 구성 요소에 대한 높은 수준의 개요를 제공합니다.

먼저, 사용자는 Application Load Balancer 뒤에서 호스팅되고 다음을 사용하여 인증되는 챗봇 애플리케이션에 로그인합니다. 아마존 코 그니 토. 프롬프트 엔지니어링 모듈로 전송되는 챗봇 인터페이스를 사용하여 사용자로부터 사용자 ID를 얻습니다. 이름, 위치, 취미, 관심사 및 좋아하는 음식과 같은 사용자 정보는 여행 도시, 체크인 날짜 및 체크아웃 날짜와 같은 향후 여행 예약 세부 정보와 함께 Redshift 데이터베이스에서 추출됩니다.

사전 조건

이 솔루션을 배포하기 전에 다음 필수 구성 요소가 설정되어 있는지 확인하세요.

이 솔루션 배포

사용자 환경에 이 솔루션을 배포하려면 다음 단계를 따르세요. 이 솔루션에 사용된 코드는 다음에서 사용할 수 있습니다. GitHub 레포.

첫 번째 단계는 솔루션이 배포되는 계정과 AWS 리전이 Amazon Bedrock 기본 모델에 액세스할 수 있는지 확인하는 것입니다.

  1. Amazon Bedrock 콘솔에서 다음을 선택합니다. 모델 액세스 탐색 창에서
  2. 왼쪽 메뉴에서 모델 액세스 관리.
  3. Anthropic Claude 모델을 선택한 다음 변경 사항을 저장.

액세스 상태가 다음으로 변경되는 데 몇 분 정도 걸릴 수 있습니다. 액세스 권한 부여.

다음으로 우리는 다음을 사용합니다 AWS 클라우드 포메이션 배포할 템플릿 Amazon Redshift 서버리스 다음을 포함하여 모든 관련 구성 요소와 함께 클러스터됩니다. 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 인스턴스를 사용하여 웹앱을 호스팅합니다.

  1. 왼쪽 메뉴에서 발사 스택 CloudFormation 스택을 시작하려면:
  2. 스택 이름과 SSH 키 쌍을 제공한 후 스택을 생성합니다.
  3. 스택에서 출력 탭에서 Redshift 데이터베이스 작업 그룹 이름, 비밀 ARN, URL 및 Amazon Redshift 서비스 역할 ARN의 값을 저장합니다.

이제 SSH를 사용하여 EC2 인스턴스에 연결할 준비가 되었습니다.

  1. SSH 클라이언트를 엽니다.
  2. CloudFormation 스택을 시작하는 동안 입력된 프라이빗 키 파일을 찾으세요.
  3. 개인 키 파일의 권한을 400(chmod 400 id_rsa).
  4. 퍼블릭 DNS 또는 IP 주소를 사용하여 인스턴스에 연결합니다. 예를 들어:
    ssh -i “id_rsa” ec2-user@ ec2-54-xxx-xxx-187.compute-1.amazonaws.com

  5. 구성 파일 업데이트 personalized-travel-itinerary-planner/core/data_feed_config.ini 이전에 저장한 리전, 작업 그룹 이름 및 비밀 ARN을 사용합니다.
  6. 다음 명령을 실행하여 사용자 정보와 여행 예약 데이터가 포함된 데이터베이스 개체를 만듭니다.
    python3 ~/personalized-travel-itinerary-planner/core/redshift_ddl.py

이 명령은 다음과 같은 테이블과 함께 여행 스키마를 생성합니다. user_profilehotel_booking.

  1. 다음 명령을 실행하여 웹 서비스를 시작합니다.
    streamlit run ~/personalized-travel-itinerary-planner/core/chatbot_app.py --server.port=8080 &

다음 단계에서는 앱에 로그인하기 위한 사용자 계정을 만듭니다.

  1. Amazon Cognito 콘솔에서 다음을 선택합니다. 사용자 풀 탐색 창에서
  2. CloudFormation 스택(travelplanner-user-pool)의 일부로 생성된 사용자 풀을 선택합니다.
  3. 왼쪽 메뉴에서 사용자 만들기.
  4. 사용자 이름, 이메일, 비밀번호를 입력한 후 선택하세요. 사용자 만들기.

이제 Amazon Cognito에서 콜백 URL을 업데이트할 수 있습니다.

  1. travelplanner-user-pool 사용자 풀 세부 정보 페이지로 이동하여 앱 통합 탭.
  2. . 앱 클라이언트 목록 섹션에서 생성한 클라이언트를 선택합니다(travelplanner-client).
  3. . 호스팅된 UI 섹션 선택 편집.
  4. 럭셔리 URL, CloudFormation 스택 출력에서 ​​복사한 URL을 입력합니다(소문자를 사용해야 합니다).
  5. 왼쪽 메뉴에서 변경 사항을 저장.

솔루션 테스트

이제 질문을 통해 봇을 테스트할 수 있습니다.

  1. 새 브라우저 창에서 CloudFormation 스택 출력에서 ​​복사한 URL을 입력하고 생성한 사용자 이름과 비밀번호를 사용하여 로그인합니다. 메시지가 나타나면 비밀번호를 변경하세요.
  2. 정보를 사용하려는 사용자 ID를 입력하세요. (이 게시물에서는 사용자 ID 1028169를 사용합니다.)
  3. 봇에게 무엇이든 물어보세요.

다음은 몇 가지 예시 질문입니다.

  • 나의 7월 여행에 대한 자세한 일정을 계획해 주실 수 있나요?
  • 다가오는 여행을 위해 재킷을 가지고 다녀야 합니까?
  • 3월에 여행갈만한 곳 추천해주실 수 있나요?

제공한 사용자 ID를 사용하여 프롬프트 엔지니어링 모듈은 다음 스크린샷과 같이 사용자 세부 정보를 추출하고 사용자가 묻는 질문과 함께 프롬프트를 디자인합니다.

이전 스크린샷에서 강조 표시된 텍스트는 Redshift 데이터베이스에서 추출되어 몇 가지 추가 지침과 함께 결합된 사용자별 정보입니다. 지침, 컨텍스트, 입력 데이터 및 출력 표시기와 같은 좋은 프롬프트의 요소도 호출됩니다.

이 프롬프트를 LLM에 전달하면 다음과 같은 출력이 표시됩니다. 이 예에서 LLM은 사용자의 예정된 예약 날짜에 대한 맞춤형 여행 일정을 만들었습니다. 또한 여행 일정을 계획할 때 사용자의 취미, 관심사, 좋아하는 음식 등을 고려했습니다.

정리

지속적인 요금이 발생하지 않도록 하려면 인프라를 정리하세요.

  1. AWS CloudFormation 콘솔에서 스택 탐색 창에서
  2. 생성한 스택을 선택하고 ..

결론

이 게시물에서는 Amazon Redshift에 저장되어 있고 Amazon Bedrock으로 전달되어 최적화된 응답을 얻을 수 있는 데이터를 사용하여 프롬프트를 엔지니어링하는 방법을 시연했습니다. 이 솔루션은 자체 데이터베이스에 있는 독점 데이터를 사용하여 생성 AI 애플리케이션을 구축하기 위한 단순화된 접근 방식을 제공합니다. Amazon Redshift의 데이터를 기반으로 맞춤형 프롬프트를 엔지니어링하고 Amazon Bedrock이 응답을 생성하도록 하면 자체 데이터 세트를 사용하여 맞춤형 방식으로 생성 AI를 활용할 수 있습니다. 이를 통해 보다 일반화된 프롬프트에서 가능한 것보다 더 구체적이고 관련성이 높으며 최적화된 출력이 가능합니다. 이 게시물에서는 AWS 서비스를 통합하여 데이터로 이러한 기술의 잠재력을 최대한 활용하는 생성적 AI 솔루션을 만드는 방법을 보여줍니다.

최신 발전 사항을 최신 상태로 유지하세요. 생성 적 AI AWS에서 구축을 시작해 보세요. 시작하는 방법에 대한 도움이 필요한 경우 다음을 확인하세요. 제너레이티브 AI 혁신 센터.


저자에 관하여

라비키란 라오 AWS의 데이터 아키텍트이며 다양한 고객의 복잡한 데이터 문제를 해결하는 데 열정적입니다. 직장 밖에서는 연극 애호가이자 아마추어 테니스 선수입니다.

지냐 간디 광역 뉴욕시에 본사를 둔 Amazon Web Services의 수석 솔루션 설계자입니다. 그녀는 대규모 엔터프라이즈 애플리케이션을 위한 여러 복잡하고 강력하며 대규모 확장이 가능한 소프트웨어 솔루션을 주도하는 데 15년 이상의 강력한 경험을 갖고 있습니다.

제이슨 페드레자 페타바이트 규모의 데이터를 처리한 데이터 웨어하우징 경험을 갖춘 AWS의 선임 Redshift 전문가 솔루션 아키텍트입니다. AWS 이전에는 Amazon.com 및 Amazon Devices에서 데이터 웨어하우스 솔루션을 구축했습니다. 그는 Amazon Redshift 전문가이며 고객이 확장 가능한 분석 솔루션을 구축하도록 돕습니다.

루팔리 마하잔 그는 뉴욕에 본사를 둔 AWS의 수석 솔루션 아키텍트입니다. 그녀는 고객이 신뢰할 수 있는 조언자로서 고객이 클라우드 여정을 헤쳐나갈 수 있도록 돕습니다. 그녀는 AWS 서비스를 사용하여 효과적인 솔루션을 설계하여 복잡한 비즈니스 문제를 해결하는 데 하루를 보냅니다. 근무 외 시간에는 가족과 함께 시간을 보내고 여행하는 것을 좋아합니다.

spot_img

최신 인텔리전스

spot_img