기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Neptune Analytics 그래프를 사용하여 Amazon Bedrock 지식 기반 생성
GraphRAG는 Amazon Bedrock 지식 기반에 완전히 통합되며 그래프 및 벡터 스토리지에 Amazon Neptune Analytics를 사용합니다. AWS Management Console, AWS CLI또는 AWS SDK를 사용하여 지식 기반에서 GraphRAG 사용을 시작할 수 있습니다.
GraphRAG 사용을 시작하는 데 기존 그래프 인프라가 필요하지 않습니다. Amazon Bedrock 지식 기반은 Amazon Neptune에서 그래프의 생성 및 유지 관리를 자동으로 관리합니다. 시스템은 Amazon S3 버킷에 업로드하는 문서에서 엔터티, 사실 및 관계를 추출하여 그래프를 자동으로 생성하고 업데이트합니다. 따라서 그래프 모델링에 대한 사전 지식 없이 최종 사용자에게 관련 응답을 제공할 수 있습니다. 그래프는 Amazon Neptune Analytics에 저장됩니다.
지식 기반을 생성할 때 다음을 설정하거나 지정합니다.
-
지식 기반을 정의하고 식별하는 일반 정보입니다.
-
지식 기반에 대한 권한이 있는 서비스 역할입니다.
-
데이터 소스에서 데이터를 변환할 때 사용할 임베딩 모델과 임베딩을 저장할 서비스의 스토리지 구성을 포함하여 지식 기반에 대한 구성입니다.
루트 사용자로는 지식 기반을 생성할 수 없습니다. 이 단계를 시작하기 전에 IAM 사용자로 로그인하세요.
다음은 콘솔에서 Neptune GraphRAG를 사용하고 CLI를 사용하기 위한 지식 기반을 생성하는 방법을 보여줍니다.
- Console
-
콘솔에서 Neptune Analytics에 대한 지식 기반을 생성하려면
-
Amazon Bedrock 콘솔을 사용할 권한이 있는 IAM 보안 주체 AWS Management Console 를 사용하여에 로그인합니다. 그런 다음 https://console.aws.amazon.com/bedrock/ Amazon Bedrock 콘솔을 엽니다.
-
왼쪽 탐색 창에서 지식 기반을 선택합니다.
-
지식 기반 섹션에서 생성을 선택한 다음 벡터 스토어가 있는 지식 기반을 선택합니다.
-
(선택 사항) 지식 기반 세부 정보에서 기본 이름을 변경하고 지식 기반에 대한 설명을 제공합니다.
-
IAM 권한에서 다른 필수에 액세스할 수 있는 Amazon Bedrock 권한을 제공하는 IAM 역할을 선택합니다 AWS 서비스. Amazon Bedrock에서 서비스 역할을 생성하도록 하거나 Neptune Analytics용으로 생성한 사용자 지정 역할을 사용하도록 선택할 수 있습니다. 예제는 Amazon Neptune Analytics에서 벡터 데이터베이스에 액세스할 수 있는 권한 섹션을 참조하세요.
-
Amazon S3를 데이터 소스로 선택하고 다음을 선택하여 데이터 소스를 구성해야 합니다.
-
지식 기반을에 연결하고 Amazon Neptune Analytics와 통합하기 위한 데이터 소스로 사용할 파일의 S3 URI를 제공합니다. 제공할 수 있는 추가 단계 및 선택적 정보는 섹션을 참조하세요데이터 소스를 지식 기반에 연결.
-
임베딩 모델 섹션에서 데이터를 벡터 임베딩으로 변환할 임베딩 모델을 선택합니다. 선택적으로 추가 구성 섹션을 사용하여 벡터 차원을 지정할 수 있습니다. 임베딩 유형의 경우 부동 소수점 벡터 임베딩을 사용하는 것이 좋습니다.
임베딩 모델의 벡터 차원은 Neptune Analytics 그래프를 생성할 때 지정한 벡터 차원과 일치해야 합니다.
-
벡터 데이터베이스 섹션에서 벡터 저장소를 생성하는 방법을 선택한 다음 Amazon Neptune Analytics(GraphRAG)를 벡터 저장소로 선택하여 쿼리에 사용할 임베딩을 저장합니다. 벡터 저장소를 생성하려면 다음 방법 중 하나를 사용할 수 있습니다.
-
빠른 새 벡터 저장소 생성 방법을 사용하여 벡터 저장소 생성을 빠르게 시작하는 것이 좋습니다. 벡터 스토어로 Amazon Neptune Analytics(GraphRAG)를 선택합니다. 이 옵션에는 기존 Neptune Analytics 리소스가 필요하지 않습니다. 지식 기반은 문서 코퍼스에서 파생된 개체 및 관계의 그래프 표현과 함께 Amazon Neptune에서 문서 임베딩을 자동으로 생성하고 저장합니다.
-
또는 Neptune Analytics 그래프 및 벡터 인덱스를 이미 생성한 경우 생성한 벡터 저장소 선택 옵션을 사용할 수 있습니다. Amazon Neptune Analytics(GraphRAG)를 벡터 스토어로 선택하고 벡터 인덱스에서 그래프 ARN, 벡터 필드 이름 및 메타데이터 필드 이름을 식별합니다. 자세한 내용은 지식 기반에 대해 생성한 벡터 스토어를 사용하기 위한 사전 조건 단원을 참조하십시오.
-
다음을 선택하고 지식 기반의 세부 정보를 검토합니다. 계속해서 지식 기반을 만들기 전에 모든 섹션을 편집할 수 있습니다.
지식 기반을 만드는 데 걸리는 시간은 구체적인 구성에 따라 달라집니다. 지식 기반 생성이 완료되면 지식 기반 상태가 준비 또는 사용 가능 상태로 변경됩니다.
지식 기반이 준비되고 사용 가능해지면 데이터 소스를 최초로 한 번 동기화하고, 이후에는 콘텐츠를 최신 상태로 유지하고 싶을 때마다 동기화하세요. 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 동기화를 선택하면 됩니다.
-
지식 기반 생성을 선택합니다. Amazon Bedrock이 지식 기반을 생성하는 동안 진행 중 상태가 표시됩니다. 데이터 소스를 동기화하려면 생성이 완료될 때까지 기다려야 합니다.
-
Amazon Bedrock이 지식 기반 생성을 완료한 후 데이터 소스를 구성하려면의 지침을 따릅니다데이터 소스를 지식 기반에 연결.
- API
-
를 사용하여 Neptune Analytics용 지식 기반을 생성하려면 AWS CLI
-
먼저 컨텍스트 보강 구성을 사용하여 데이터 소스를 생성합니다. 이 작업을 수행하려면 Agents for Amazon Bedrock 빌드 타임 엔드포인트를 사용하여 CreateDataSource
요청을 보냅니다. 다음은 CLI 명령의 예시입니다.
aws bedrock-agent create-data-source \
--name graph_rag_source \
--description data_source_for_graph_rag \
--knowledge-base-id LDBBY2K5AG \
--cli-input-json "file://input.json"
다음 코드는 input.json
파일의 내용을 보여줍니다.
{
"dataSourceConfiguration": {
"s3Configuration": {
"bucketArn": "arn:aws:s3:::<example-graphrag-datasets>
",
"bucketOwnerAccountId": "<ABCDEFGHIJ>"
,
"inclusionPrefixes": [ <"example-dataset">
]
},
"type": "S3",
},
"VectorIngestionConfiguration": {
"contextEnrichmentConfiguration":
"type": "BEDROCK_FOUNDATION_MODEL",
"bedrockFoundationModelConfiguration": {
"modelArn": "arn:aws:bedrock:<region>
::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
"enrichmentStrategyConfiguration": {
"method": "CHUNK_ENTITY_EXTRACTION"
}
}
}
}
-
지식 기반을 생성하려면 Agents for Amazon Bedrock 빌드 타임 엔드포인트를 사용하여 CreateKnowledgeBase
요청을 보냅니다. 다음은 CLI 명령의 예시입니다.
aws bi create-knowledge-base \
--name <"knowledge-base-graphrag">
\
--role-arn arn:aws:iam::<accountId>
:role/<BedrockExecutionRoleForKnowledgeBase>
\
--cli-input-json "file://input.json"
다음은 input.json
파일의 콘텐츠를 보여줍니다.
{
"storageConfiguration": {
"type": "NEPTUNE_ANALYTICS"
"neptuneAnalyticsConfiguration": {
"graphArn": "arn:aws:neptune-graph:<region>
:<>
:graph/<graphID>
",
"fieldMapping": {
"metadataField": "metadata",
"textField": "text"
},
}
},
"knowledgeBaseConfiguration": {
"type": "VECTOR",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "arn:aws:bedrock:<region>
::foundation-model/cohere.embed-english-v3"
}
}
}
-
GraphRAG 기반 애플리케이션을 실행할 때 지식 기반 API 작업을 계속 사용하여 최종 사용자에게 보다 포괄적이고 관련성이 높으며 설명 가능한 응답을 제공할 수 있습니다. 다음 섹션에서는 CLI 명령을 사용하여 수집을 시작하고 검색 쿼리를 수행하는 방법을 보여줍니다.
데이터 소스 동기화
지식 기반을 만든 후에는 데이터를 수집하거나 동기화하여 데이터를 쿼리할 수 있습니다. 수집은 그래픽 구조를 추출하고 지정한 벡터 임베딩 모델 및 구성을 기반으로 데이터 소스의 원시 데이터를 벡터 임베딩으로 변환합니다.
다음 명령은 CLI를 사용하여 수집 작업을 시작하는 방법의 예를 보여줍니다.
aws bedrock-agent start-ingestion-job \
--data-source-id <"ABCDEFGHIJ">
\
--knowledge-base-id <"EFGHIJKLMN">
콘솔 및 API를 사용하여 데이터 소스를 동기화하는 방법에 대한 자세한 내용은 섹션을 참조하세요Amazon Bedrock 지식 기반으로 데이터 동기화.
지식 기반에 변경 사항 수집
Amazon S3를 데이터 소스로 사용하는 경우 한 번에 데이터 소스를 수정하고 변경 사항을 동기화할 수 있습니다. 직접 수집을 사용하면 단일 작업으로 지식 기반에서 파일을 직접 추가, 업데이트 또는 삭제할 수 있으며 지식 기반은 동기화할 필요 없이 문서에 액세스할 수 있습니다. 직접 수집은 KnowledgeBaseDocuments
API 작업을 사용하여 지식 기반에 대해 설정된 벡터 저장소에 직접 제출하는 문서를 인덱싱합니다. 이러한 작업을 통해 연결된 데이터 소스로 이동하여 문서를 볼 필요 없이 지식 기반의 문서를 직접 볼 수도 있습니다. 자세한 내용은 변경 사항을 지식 기반에 직접 수집 단원을 참조하십시오.
지식 기반 테스트
이제 지식 기반을 설정했으므로 쿼리를 보내고 응답을 생성하여 테스트할 수 있습니다.
다음 코드는 CLI 명령의 예를 보여줍니다.
aws bedrock-agent-runtime retrieve \
--knowledge-base-id <"ABCDEFGHIJ">
\
--retrieval-query="{\"text\": \"What are the top three video games available now?\"}"
자세한 내용은 Amazon Neptune Analytics 그래프에 연결된 지식 기반 쿼리 단원을 참조하십시오.