Amazon Web Services 한국 블로그
Amazon Bedrock 신규 API 제공을 통한 RAG 애플리케이션 개선
Amazon Bedrock은 완전 관리형 서비스로, 단일 API를 통해 AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI, Amazon 등과 같은 선도적인 AI 회사의 고성능 파운데이션 모델(FM)에 대한 옵션을 제공하고 보안 및 개인 정보 보호 기능과 책임 있는 AI를 갖춘 생성형 AI 애플리케이션을 빌드하는 데 필요한 광범위한 기능도 제공합니다. Amazon Bedrock Knowledge Bases는 완전 관리형 서비스로, 개발자가 매우 정확하고 지연 시간이 짧으며 안전하고 사용자 지정이 가능한 생성형 AI 애플리케이션을 비용 효율적으로 생성할 수 있도록 지원합니다. Amazon Bedrock Knowledge Bases는 검색 증강 생성(RAG)을 사용하여 파운데이션 모델(FM)을 회사의 내부 데이터에 연결합니다. RAG는 FM이 보다 관련성 있고 정확하며 맞춤화된 응답을 제공할 수 있도록 도와줍니다.
이 게시물에서는 Amazon Bedrock Knowledge Bases와 관련된 두 가지 발표 내용을 자세히 설명합니다.
- 맞춤형 커넥터 및 스트리밍 데이터 수집 지원
- 순위 조정 모델 지원
맞춤형 커넥터 및 스트리밍 데이터 수집 지원
오늘은 Amazon Bedrock Knowledge Bases의 맞춤형 커넥터 및 스트리밍 데이터 통합 수집에 대한 지원을 발표했습니다. 이제 개발자는 주기적으로 또는 매번 변경한 후에 데이터 소스와 전체 동기화를 수행할 필요 없이 단일 API 직접 호출을 사용하여 바로 데이터를 효율적으로 그리고 비용 효율적으로 수집, 업데이트 또는 삭제할 수 있습니다. 챗봇 및 엔터프라이즈 검색과 같은 다양한 사용 사례를 위해 RAG 기반 생성형 AI 애플리케이션을 개발하는 고객이 점점 늘어나고 있습니다. 그러나 애플리케이션의 최종 사용자가 항상 최신 정보에 액세스할 수 있도록 지식 기반의 데이터를 최신 상태로 유지하는 데 어려움을 겪고 있습니다. 현재의 데이터 동기화 프로세스는 시간이 많이 걸리므로 새 데이터를 추가하거나 제거할 때마다 전체 동기화가 필요합니다. 또한 고객은 Google Drive 또는 Quip과 같이 지원되지 않는 소스의 데이터를 자신의 지식 기반으로 통합하는 데 어려움을 겪습니다. 일반적으로 Amazon Bedrock 지식 기반에서 이 데이터를 사용하려면 먼저 Amazon Simple Storage Service(Amazon S3)와 같은 지원되는 소스로 데이터를 이동한 후 수집 프로세스를 시작해야 합니다. 이러한 추가 단계는 추가 오버헤드를 발생시킬 뿐만 아니라 쿼리를 위해 데이터에 액세스하도록 하는 데에도 지연을 초래합니다. 또한 스트리밍 데이터(예: 뉴스 피드 또는 사물 인터넷(IoT) 센서 데이터)를 사용하려는 고객은 데이터를 수집하기 전에 지원되는 데이터 소스에 데이터를 저장해야 하기 때문에 실시간 데이터 가용성이 지연됩니다. 고객이 데이터를 스케일 업함에 따라 이러한 비효율성과 지연으로 인해 심각한 운영 병목 현상이 발생하고 비용이 증가할 수 있습니다. 이러한 모든 문제를 염두에 두고 지식 기반을 최신 상태로 유지하고 실시간으로 쿼리할 수 있도록 다양한 소스의 데이터를 수집하고 관리할 수 있는 보다 효율적이고 비용 효율적인 방법을 마련하는 것이 중요합니다. 맞춤형 커넥터 및 스트리밍 데이터 통합을 지원하므로 고객은 이제 전체 데이터세트를 나열하고 동기화할 필요 없이 직접 API를 사용하여 데이터를 효율적으로 추가하고, 데이터의 상태를 확인하고, 데이터를 삭제할 수 있습니다.
작동 방식
Amazon Bedrock 콘솔 또는 AWS SDK를 사용하여 맞춤형 커넥터 및 스트리밍 데이터 수집에 액세스할 수 있습니다.
- 문서 추가
Add Document API는 문서를 추가한 후 전체 동기화를 수행할 필요 없이 지식 기반에 새로운 파일을 추가하는 데 사용됩니다. 고객은 문서의 Amazon S3 경로나 소스에 문서로 추가할 텍스트 콘텐츠를 지정하거나 Base64로 인코딩된 문자열로 지정하여 콘텐츠를 추가할 수 있습니다.POST /knowledgebases/knowledgeBaseId/datasources/dataSourceId/documents HTTP/1.1 Content-type: application/json { "maxResults": number, "nextToken": "string" }
- 문서 삭제
Delete Document API는 문서를 삭제한 후 전체 동기화를 수행할 필요 없이 지식 기반에서 데이터를 삭제하는 데 사용됩니다.{ "clientToken": "string", "documentIdentifiers": [{ // Length 1-10 elements "dataSourceType": S3 | CUSTOM, “s3": { "uri": "string" }, "custom": { "id": "string" } }] }
- 문서 나열
List Document API는 요청 파라미터에 지정된 기준과 일치하는 레코드 목록을 반환합니다.{ "maxResults": number, "nextToken": "string" }
- 문서 가져오기
Get Document API는 요청 파라미터에 지정된 기준과 일치하는 문서에 대한 정보를 반환합니다.{ "documentIdentifiers": [{ // Length 1-10 elements "dataSourceType": S3 | CUSTOM, “s3": { "uri": "string" }, "custom": { "id": "string" } }] }
정식 출시
Amazon Bedrock Knowledge Bases를 사용할 수 있는 모든 AWS 리전에서 맞춤형 커넥터 및 Amazon Bedrock Knowledge Bases의 스트리밍 데이터 수집에 대한 지원을 현재 이용할 수 있습니다. 세부 정보 및 향후 업데이트는 리전 목록을 확인하세요. Amazon Bedrock Knowledge Bases에 대해 자세히 알아보려면 Amazon Bedrock 제품 페이지를 방문하세요. 요금 세부 정보는 Amazon Bedrock 요금 페이지를 참조하세요.
Amazon Bedrock용 AWS re:Post를 이용하거나 AWS 담당자를 통해 피드백을 보내고 community.aws의 생성형 AI 빌더 커뮤니티에 참여하세요.
순위 조정 모델 지원
오늘 Amazon Bedrock에서 새로운 Rerank API를 발표했습니다. 이 API를 통해 개발자는 순위 조정 모델을 사용하여 응답의 관련성과 정확성을 개선함으로써 RAG 기반 애플리케이션의 성능을 향상시킬 수 있습니다. 벡터 임베딩으로 지원되는 시맨틱 검색은 문서와 쿼리를 시멘틱의 고차원 벡터 공간에 임베딩합니다. 이 공간에서 관련된 의미를 가진 텍스트는 벡터 공간에서 가까이 있어 의미적으로 유사하므로 쿼리에 단어를 포함하지 않더라도 유사한 항목을 반환합니다. RAG 애플리케이션에서 시맨틱 검색을 사용하는 이유는 시맨틱 검색이 검색된 문서와 사용자 쿼리의 관련성이 정확한 응답을 제공하는 데 중요한 역할을 하며 RAG 애플리케이션은 벡터 저장소에서 다양한 관련 문서를 검색하기 때문입니다.
그러나 시맨틱 검색은 특히 사용자 쿼리가 복잡하거나 모호하거나 미묘한 컨텍스트를 포함하는 경우 사용자 기본 설정 또는 쿼리 컨텍스트를 기반으로 가장 적합한 문서의 우선 순위를 지정하는 데 한계가 있습니다. 이로 인해 사용자의 질문과 부분적으로만 관련이 있는 문서를 검색할 수 있습니다. 이는 소스의 적절한 인용 및 표시가 올바른 소스에 귀속되지 않는 또 다른 문제로 이어지고, 결국 RAG 기반 애플리케이션에 대한 신뢰와 투명성이 상실되는 결과를 초래합니다. 이러한 한계를 해결하기 위해 향후 RAG 시스템에서는 사용자 의도와 컨텍스트를 더 효과적으로 이해할 수 있는 강력한 순위 지정 알고리즘을 개발하는 데 우선 순위를 두어야 합니다. 또한 생성된 응답의 신뢰성과 투명성을 확인하기 위해 소스 신뢰성 평가 및 인용 관행을 개선하는 데 중점을 두는 것이 중요합니다.
고급 순위 조정 모델은 쿼리 및 추가 컨텍스트를 위해 지식 기반에서 가장 관련성이 높은 콘텐츠에 우선 순위를 지정하여 파운데이션 모델이 가장 관련성이 높은 콘텐츠를 수신하도록 함으로써 이러한 문제를 해결합니다. 이를 통해 보다 정확하고 상황에 맞는 응답이 도출됩니다. 순위 조정 모델은 생성 모델로 전송되는 정보의 우선 순위를 지정하여 응답 생성 비용을 줄일 수 있습니다.
작동 방식
출시 시점에 Amazon Rerank 1.0 및 Cohere Rerank 3.5 순위 조정 모델을 지원하고 있습니다. 연습을 위해 Amazon Rerrank 1.0 모델을 사용해보겠습니다. 먼저 이 모델에 대한 액세스를 요청하겠습니다.
액세스 권한이 부여되면 기존 Amazon Bedrock Knowledge Bases 콘솔 환경을 사용하여 지식 기반을 생성합니다(또는 API 프로세스도 사용 가능). 지식 기반에는 음악 재생 목록과 영화 목록이라는 두 가지 데이터 소스가 있습니다.
지식 기반이 생성되는 즉시 서비스 역할을 편집하여 Bedrock:Rrank
작업이 포함된 정책을 추가합니다. API는 순위를 조정해야 하는 문서 목록과 함께 사용자 쿼리를 입력으로 사용합니다. 우선 순위가 조정된 문서 목록이 출력됩니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:us-west-2::foundation-model/amazon.rerank-v1:0"
]
},
{
"Sid": "Statement2",
"Effect": "Allow",
"Action": [
"bedrock:Rerank"
],
"Resource": [
"*"
]
}
]
}
마지막 단계는 검색을 위해 데이터 소스를 동기화하여 콘텐츠를 인덱싱하는 것입니다. 동기화에는 몇 분에서 몇 시간이 걸릴 수 있습니다.
이제 지식 기반을 사용할 수 있습니다. RetrieveAndGenerate
API는 쿼리와의 관련성을 기반으로 벡터 데이터 저장소에서 검색한 결과의 순위를 조정합니다.
반대로 저는 Rrank API가 없는 별도의 계정에서 동일한 데이터에 대해 동일한 쿼리를 실행해봤습니다. 이때에는 검색어와의 관련성을 기준으로 결과 순위가 조정되지 않습니다. 이는 성능에 영향을 미치고 응답의 정확도를 떨어뜨릴 수 있습니다.
정식 출시
Amazon Bedrock의 Rerank API는 현재 미국 서부(오리건), 캐나다(중부), 유럽(프랑크푸르트) 및 아시아 태평양(도쿄) AWS 리전에서 사용할 수 있습니다. 세부 정보 및 향후 업데이트는 리전 목록을 확인하세요. Amazon Bedrock Knowledge Bases를 사용하지 않더라도 Rrank API를 독립적으로 사용하여 문서 순위를 조정할 수 있습니다. Amazon Bedrock Knowledge Bases에 대해 자세히 알아보려면 Amazon Bedrock 제품 페이지를 방문하세요. 요금 세부 정보는 Amazon Bedrock 요금 페이지를 참조하세요.
Amazon Bedrock용 AWS re:Post를 이용하거나 AWS 담당자를 통해 피드백을 보내고 community.aws의 생성형 AI 빌더 커뮤니티에 참여하세요.
– Veliswa