제퍼넷 로고

Amazon Bedrock | 고급 라우팅 기술로 대화형 AI 향상 아마존 웹 서비스

시간

대화형 인공 지능(AI) 도우미는 가장 적합한 AI 기능에 대한 지능적인 쿼리 라우팅을 통해 정확한 실시간 응답을 제공하도록 설계되었습니다. 다음과 같은 AWS 생성 AI 서비스를 통해 아마존 기반암을 통해 개발자는 사용자 요청을 전문적으로 관리하고 응답하는 시스템을 만들 수 있습니다. Amazon Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Stability AI 및 Amazon과 같은 주요 AI 회사의 고성능 기반 모델(FM)을 단일 API를 사용하여 다양한 옵션 세트와 함께 선택할 수 있는 완전관리형 서비스입니다. 보안, 개인정보 보호, 책임 있는 AI를 갖춘 생성적 AI 애플리케이션을 구축하는 데 필요한 기능입니다.

이 게시물에서는 AI 도우미 개발을 위한 두 가지 주요 접근 방식을 평가합니다. Amazon Bedrock용 에이전트, 다음과 같은 오픈 소스 기술을 사용합니다. 랭체인. 우리는 각각의 장점과 과제를 탐색하여 귀하의 요구 사항에 가장 적합한 경로를 선택할 수 있습니다.

AI 비서란?

AI 도우미는 자연어 쿼리를 이해하고 다양한 도구, 데이터 소스 및 API와 상호 작용하여 사용자를 대신하여 작업을 수행하거나 정보를 검색하는 지능형 시스템입니다. 효과적인 AI 도우미는 다음과 같은 주요 기능을 보유하고 있습니다.

  • 자연어 처리(NLP) 및 대화 흐름
  • 대화 맥락의 뉘앙스를 기반으로 관련 정보를 이해하고 검색하기 위한 지식 기반 통합 및 의미론적 검색
  • 데이터베이스 쿼리 및 사용자 정의와 같은 작업 실행 AWS 람다 기능
  • 전문적인 대화 및 사용자 요청 처리

사물 인터넷(IoT) 장치 관리를 예로 들어 AI 비서의 이점을 보여줍니다. 이 사용 사례에서 AI는 기술자가 데이터를 가져오거나 작업을 자동화하는 명령을 통해 기계를 효율적으로 관리하고 제조 작업을 간소화하는 데 도움을 줄 수 있습니다.

Amazon Bedrock 접근 방식의 에이전트

Amazon Bedrock용 에이전트 회사의 시스템과 데이터 소스 전반에 걸쳐 다단계 작업을 실행할 수 있는 생성적 AI 애플리케이션을 구축할 수 있습니다. 다음과 같은 주요 기능을 제공합니다.

  • 지침, API 세부정보, 데이터 소스 정보에서 자동 프롬프트 생성을 통해 프롬프트 엔지니어링 작업에 소요되는 몇 주를 절약합니다.
  • 에이전트를 회사의 데이터 소스에 안전하게 연결하고 관련 응답을 제공하는 RAG(검색 증강 생성)
  • 요청을 논리적 순서로 나누고 필요한 API를 호출하여 다단계 작업을 조정하고 실행합니다.
  • CoT(사고 연쇄) 추적을 통해 에이전트의 추론에 대한 가시성을 확보하여 문제 해결 및 모델 동작 조정 가능
  • 에이전트에 대한 제어를 강화하기 위해 자동으로 생성된 프롬프트 템플릿을 수정하는 프롬프트 엔지니어링 기능

Amazon Bedrock용 에이전트를 사용할 수 있으며 Amazon Bedrock에 대한 기술 자료 복잡한 라우팅 사용 사례를 위한 AI 도우미를 구축하고 배포합니다. 인프라 관리를 단순화하고, 확장성을 강화하고, 보안을 개선하고, 획일적인 부담을 줄여 개발자와 조직에 전략적 이점을 제공합니다. 또한 라우팅 논리, 벡터화 및 메모리가 완벽하게 관리되므로 더 간단한 애플리케이션 계층 코드가 가능합니다.

솔루션 개요

이 솔루션은 Amazon Bedrock에서 Anthropic의 Claude v2.1을 사용할 때 IoT 장치 관리 및 운영에 맞춰진 대화형 AI 도우미를 도입합니다. AI 어시스턴트의 핵심 기능은 다음과 같은 포괄적인 지침 세트에 의해 관리됩니다. 시스템 프롬프트, 그 능력과 전문 분야를 설명합니다. 이 지침을 통해 AI 도우미는 장치 정보 관리부터 작동 명령 실행까지 광범위한 작업을 처리할 수 있습니다.

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

시스템 프롬프트에 자세히 설명된 대로 이러한 기능을 갖춘 AI 도우미는 구조화된 워크플로를 따라 사용자 질문을 해결합니다. 다음 그림은 초기 사용자 상호 작용부터 최종 응답까지 각 단계를 설명하는 이 워크플로를 시각적으로 보여줍니다.

초기 사용자 상호 작용부터 최종 응답까지 각 단계를 보여주는 이 워크플로의 시각적 표현입니다.

워크플로는 다음 단계로 구성됩니다.

  1. 사용자가 보조자에게 작업 수행을 요청하면 프로세스가 시작됩니다. 예를 들어 특정 IoT 장치에 대한 최대 데이터 포인트를 요청합니다. device_xxx. 이 텍스트 입력은 캡처되어 AI 보조자에게 전송됩니다.
  2. AI 도우미는 사용자가 입력한 텍스트를 해석합니다. 제공된 대화 기록, 작업 그룹 및 지식 기반을 사용하여 컨텍스트를 이해하고 필요한 작업을 결정합니다.
  3. 사용자의 의도를 파싱하고 이해한 후 AI 도우미가 작업을 정의합니다. 이는 시스템 프롬프트 및 사용자 입력에 따라 보조자가 해석하는 지침을 기반으로 합니다.
  4. 그런 다음 일련의 API 호출을 통해 작업이 실행됩니다. 이는 다음을 사용하여 수행됩니다. 반응 프롬프트는 작업을 순차적으로 처리되는 일련의 단계로 분류합니다.
    1. 장치 지표 확인을 위해 우리는 check-device-metrics 쿼리하는 Lambda 함수에 대한 API 호출이 포함된 작업 그룹 아마존 아테나 요청한 데이터에 대해.
    2. 시작, 중지, 재부팅과 같은 직접적인 장치 작업에는 다음을 사용합니다. action-on-device Lambda 함수를 호출하는 작업 그룹. 이 함수는 IoT 장치에 명령을 보내는 프로세스를 시작합니다. 이 게시물의 경우 Lambda 함수는 다음을 사용하여 알림을 보냅니다. 아마존 심플 이메일 서비스 (아마존 SES).
    3. 우리는 Amazon Bedrock에 대한 지식 베이스를 사용하여 아마존 오픈서치 서비스 벡터 데이터베이스입니다.
  5. 작업이 완료되면 Amazon Bedrock FM에서 최종 응답이 생성되어 사용자에게 다시 전달됩니다.
  6. Amazon Bedrock용 에이전트는 동일한 대화를 유지하기 위해 상태 저장 세션을 사용하여 자동으로 정보를 저장합니다. 구성 가능한 유휴 시간 초과가 경과되면 상태가 삭제됩니다.

기술 개요

다음 다이어그램은 Agents for Amazon Bedrock을 사용하여 AI 도우미를 배포하는 아키텍처를 보여줍니다.

Amazon Bedrock용 에이전트를 사용하여 AI 도우미를 배포하기 위한 아키텍처 다이어그램.

이는 다음과 같은 주요 구성 요소로 구성됩니다.

  • 대화형 인터페이스 – 대화형 인터페이스는 기계 학습(ML) 및 데이터 과학을 위한 시각적으로 매력적인 맞춤형 웹 앱 생성을 단순화하는 오픈 소스 Python 라이브러리인 Streamlit을 사용합니다. 다음에서 호스팅됩니다. Amazon 탄력적 컨테이너 서비스 (아마존 ECS) AWS 파게이트, Application Load Balancer를 사용하여 액세스됩니다. Amazon ECS와 함께 Fargate를 사용하여 다음을 실행할 수 있습니다. 용기 서버, 클러스터 또는 가상 머신을 관리할 필요가 없습니다.
  • Amazon Bedrock용 에이전트 – Amazon Bedrock용 에이전트는 다음을 기반으로 일련의 추론 단계와 해당 작업을 통해 사용자 쿼리를 완료합니다. 반응 프롬프트:
    • Amazon Bedrock에 대한 기술 자료 – Amazon Bedrock에 대한 기술 자료는 완전관리형을 제공합니다. RAG AI 도우미에게 귀하의 데이터에 대한 액세스 권한을 제공합니다. 사용 사례에서는 장치 사양을 아마존 단순 스토리지 서비스 (Amazon S3) 버킷. 이는 지식 기반의 데이터 소스 역할을 합니다.
    • 활동 그룹 – 이는 IoT 장치 및 기타 AWS 서비스와 상호 작용하기 위해 특정 Lambda 함수를 호출하는 정의된 API 스키마입니다.
    • Amazon Bedrock의 Anthropic Claude v2.1 – 이 모델은 사용자 쿼리를 해석하고 작업 흐름을 조정합니다.
    • Amazon Titan 임베딩 – 이 모델은 단일 단어에서 복잡한 문서에 이르기까지 자연어 텍스트를 숫자 벡터로 변환하는 텍스트 임베딩 모델 역할을 합니다. 이를 통해 벡터 검색 기능이 활성화되어 시스템이 효과적인 검색을 위해 사용자 쿼리를 가장 관련성이 높은 지식 기반 항목과 의미론적으로 일치시킬 수 있습니다.

이 솔루션은 API 호출에 대한 응답으로 코드를 실행하는 Lambda, 데이터 세트 쿼리를 위한 Athena, 지식 기반 검색을 위한 OpenSearch Service, 스토리지를 위한 Amazon S3와 같은 AWS 서비스와 통합됩니다. 이러한 서비스는 함께 작동하여 자연어 명령을 통해 IoT 장치 운영 관리를 위한 원활한 환경을 제공합니다.

장점

이 솔루션은 다음과 같은 이점을 제공합니다.

  • 구현 복잡성:
    • Agents for Amazon Bedrock은 기본 복잡성을 상당 부분 추상화하여 개발 노력을 줄여주기 때문에 필요한 코드 줄이 줄어듭니다.
    • Amazon Bedrock의 Knowledge Base가 벡터화 및 저장을 처리하므로 OpenSearch Service와 같은 벡터 데이터베이스 관리가 단순화됩니다.
    • 사전 정의된 작업 그룹을 통해 다양한 AWS 서비스와의 통합이 더욱 간소화됩니다.
  • 개발자 경험:
    • Amazon Bedrock 콘솔은 신속한 개발, 테스트 및 근본 원인 분석(RCA)을 위한 사용자 친화적인 인터페이스를 제공하여 전반적인 개발자 경험을 향상시킵니다.
  • 민첩성과 유연성:
    • Amazon Bedrock용 에이전트를 사용하면 최신 FM(예: Claude 3.0)이 출시되면 해당 FM으로 원활하게 업그레이드할 수 있으므로 솔루션이 최신 발전 사항으로 최신 상태를 유지합니다.
    • 서비스 할당량 및 제한 사항은 AWS에서 관리되므로 인프라 모니터링 및 확장에 따른 오버헤드가 줄어듭니다.
  • 보안 :
    • Amazon Bedrock은 AWS의 엄격한 보안 및 규정 준수 표준을 준수하여 잠재적으로 조직의 보안 검토를 단순화하는 완전 관리형 서비스입니다.

Agents for Amazon Bedrock은 대화형 AI 애플리케이션 구축을 위한 간소화되고 관리되는 솔루션을 제공하지만 일부 조직에서는 오픈 소스 접근 방식을 선호할 수 있습니다. 이러한 경우에는 다음 섹션에서 논의할 LangChain과 같은 프레임워크를 사용할 수 있습니다.

LangChain 동적 라우팅 접근 방식

LangChain은 LLM(대형 언어 모델)과 동적 라우팅 기능을 통합하여 대화형 AI 구축을 단순화하는 오픈 소스 프레임워크입니다. LCEL(LangChain Expression Language)을 사용하여 개발자는 다음을 정의할 수 있습니다. 라우팅, 이전 단계의 출력이 다음 단계를 정의하는 비결정적 체인을 생성할 수 있습니다. 라우팅은 LLM과의 상호 작용에 구조와 일관성을 제공하는 데 도움이 됩니다.

이 게시물에서는 IoT 장치 관리를 위한 AI 도우미와 동일한 예를 사용합니다. 그러나 주요 차이점은 시스템 프롬프트를 별도로 처리하고 각 체인을 별도의 엔터티로 처리해야 한다는 것입니다. 라우팅 체인은 사용자의 입력을 기반으로 대상 체인을 결정합니다. 시스템 프롬프트, 채팅 기록 및 사용자 질문을 전달하여 LLM의 지원을 받아 결정이 내려집니다.

솔루션 개요

다음 다이어그램은 동적 라우팅 솔루션 워크플로를 보여줍니다.

LangChain을 사용한 동적 라우팅 솔루션 워크플로

워크플로는 다음 단계로 구성됩니다.

  1. 사용자는 AI 비서에게 질문을 던집니다. 예를 들어 "장치 1009의 최대 측정항목은 무엇입니까?"입니다.
  2. LLM은 동일한 세션의 채팅 기록과 함께 각 질문을 평가하여 질문의 성격과 해당 주제 영역(예: SQL, 작업, 검색 또는 SME)을 결정합니다. LLM은 입력을 분류하고 LCEL 라우팅 체인은 해당 입력을 가져옵니다.
  3. 라우터 체인은 입력을 기반으로 대상 체인을 선택하고 LLM에는 다음 시스템 프롬프트가 제공됩니다.
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

LLM은 채팅 기록과 함께 사용자의 질문을 평가하여 쿼리의 성격과 해당 쿼리가 속하는 주제 영역을 결정합니다. 그런 다음 LLM은 입력을 분류하고 다음 형식으로 JSON 응답을 출력합니다.

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

라우터 체인은 이 JSON 응답을 사용하여 해당 대상 체인을 호출합니다. 네 가지 주제별 대상 체인이 있으며 각각 고유한 시스템 프롬프트가 있습니다.

  1. SQL 관련 쿼리는 데이터베이스 상호 작용을 위해 SQL 대상 체인으로 전송됩니다. LCEL을 사용하여 SQL 체인.
  2. 작업 지향 질문은 작업 실행을 위해 사용자 지정 Lambda 대상 체인을 호출합니다. LCEL을 사용하면 자신만의 것을 정의할 수 있습니다. 맞춤 기능; 우리의 경우에는 사전 정의된 Lambda 함수를 실행하여 파싱된 장치 ID가 포함된 이메일을 보내는 함수입니다. 사용자 입력의 예는 "장치 1009 종료"일 수 있습니다.
  3. 검색 중심 문의는 다음으로 진행됩니다. RAG 정보 검색을 위한 대상 체인.
  4. SME 관련 질문은 SME/전문가 대상 체인으로 이동하여 전문적인 통찰력을 얻습니다.
  5. 각 대상 체인은 입력을 받아 필요한 모델이나 기능을 실행합니다.
    1. SQL 체인은 쿼리 실행을 위해 Athena를 사용합니다.
    2. RAG 체인은 의미 검색을 위해 OpenSearch 서비스를 사용합니다.
    3. 사용자 지정 Lambda 체인은 작업을 위해 Lambda 함수를 실행합니다.
    4. SME/전문가 체인은 Amazon Bedrock 모델을 사용하여 통찰력을 제공합니다.
  6. 각 대상 체인의 응답은 LLM에 의해 일관된 통찰력으로 공식화됩니다. 그런 다음 이러한 통찰력이 사용자에게 전달되어 쿼리 주기가 완료됩니다.
  7. 사용자 입력 및 응답은 다음 위치에 저장됩니다. 아마존 DynamoDB 현재 세션과 과거 상호 작용에 대해 LLM에 컨텍스트를 제공합니다. DynamoDB의 정보 지속 기간은 애플리케이션에 의해 제어됩니다.

기술 개요

다음 다이어그램은 LangChain 동적 라우팅 솔루션의 아키텍처를 보여줍니다.

LangChain 동적 라우팅 솔루션의 아키텍처 다이어그램

웹 애플리케이션은 Fargate를 사용하여 Amazon ECS에서 호스팅되는 Streamlit을 기반으로 구축되었으며 Application Load Balancer를 사용하여 액세스됩니다. 우리는 Amazon Bedrock에서 Anthropic의 Claude v2.1을 LLM으로 사용합니다. 웹 애플리케이션은 LangChain 라이브러리를 사용하여 모델과 상호 작용합니다. 또한 OpenSearch Service, Athena 및 DynamoDB와 같은 다양한 다른 AWS 서비스와 상호 작용하여 최종 사용자의 요구 사항을 충족합니다.

장점

이 솔루션은 다음과 같은 이점을 제공합니다.

  • 구현 복잡성:
    • 더 많은 코드와 사용자 정의 개발이 필요하지만 LangChain은 라우팅 논리와 다양한 구성 요소와의 통합에 대해 더 큰 유연성과 제어 기능을 제공합니다.
    • OpenSearch Service와 같은 벡터 데이터베이스를 관리하려면 추가 설정 및 구성 노력이 필요합니다. 벡터화 프로세스는 코드로 구현됩니다.
    • AWS 서비스와 통합하려면 더 많은 사용자 지정 코드와 구성이 필요할 수 있습니다.
  • 개발자 경험:
    • LangChain의 Python 기반 접근 방식과 광범위한 문서는 Python 및 오픈 소스 도구에 이미 익숙한 개발자에게 매력적일 수 있습니다.
    • 신속한 개발 및 디버깅에는 Amazon Bedrock 콘솔을 사용할 때보다 더 많은 수동 작업이 필요할 수 있습니다.
  • 민첩성과 유연성:
    • LangChain은 다양한 LLM을 지원하므로 다양한 모델이나 공급자 간에 전환하여 유연성을 높일 수 있습니다.
    • LangChain의 오픈 소스 특성은 커뮤니티 중심의 개선 및 사용자 정의를 가능하게 합니다.
  • 보안 :
    • 오픈 소스 프레임워크인 LangChain은 조직 내에서 보다 엄격한 보안 검토 및 조사를 요구할 수 있으며 잠재적으로 오버헤드를 추가할 수 있습니다.

결론

대화형 AI 도우미는 운영을 간소화하고 사용자 경험을 향상시키는 혁신적인 도구입니다. 이 게시물에서는 AWS 서비스를 사용하는 두 가지 강력한 접근 방식인 Amazon Bedrock용 관리형 에이전트와 유연한 오픈 소스 LangChain 동적 라우팅을 살펴보았습니다. 이러한 접근 방식 중 선택은 조직의 요구 사항, 개발 기본 설정 및 원하는 사용자 정의 수준에 따라 달라집니다. 어떤 경로를 선택하든 AWS는 비즈니스 및 고객 상호 작용을 혁신하는 지능형 AI 도우미를 만들 수 있도록 지원합니다.

다음에서 솔루션 코드와 배포 자산을 찾아보세요. GitHub 저장소에서 각 대화형 AI 접근 방식에 대한 자세한 단계를 수행할 수 있습니다.


저자에 관하여

아미르 하크메 펜실베니아에 거주하는 AWS 솔루션스 아키텍트입니다. 그는 북동부 지역의 ISV(독립 소프트웨어 공급업체)와 협력하여 AWS 클라우드에서 확장 가능하고 현대적인 플랫폼을 설계하고 구축하도록 지원합니다. AI/ML 및 생성 AI 전문가인 Ameer는 고객이 이러한 최첨단 기술의 잠재력을 발휘할 수 있도록 지원합니다. 여가 시간에는 오토바이를 타고 가족과 함께 즐거운 시간을 보냅니다.

샤론 리 보스턴에 본사를 둔 Amazon Web Services의 AI/ML 솔루션 아키텍트이며 AWS에서 Generative AI 애플리케이션을 설계하고 구축하는 데 열정을 갖고 있습니다. 그녀는 고객과 협력하여 혁신적인 솔루션을 위해 AWS AI/ML 서비스를 활용합니다.

카우사르 카말 인프라 자동화 및 보안 분야에서 15년 이상의 경험을 보유한 Amazon Web Services의 수석 솔루션 설계자입니다. 그는 고객이 클라우드에서 확장 가능한 DevSecOps 및 AI/ML 솔루션을 설계하고 구축하도록 돕습니다.

spot_img

최신 인텔리전스

spot_img