기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Bedrock 지식 기반 작동 방식
Amazon Bedrock 지식 기반은 데이터 스토어에서 정보를 끌어와 대규모 언어 모델(RAG)에서 생성된 응답을 보강하는 인기 있는 기법인 Retrieval Augmented Generation()을 활용하는 데 도움이 됩니다LLMs. 데이터 소스로 지식 기반을 설정할 때 애플리케이션은 지식 기반을 쿼리하여 정보를 반환하여 소스의 직접 인용 또는 쿼리 결과에서 생성된 자연 응답을 사용하여 쿼리에 응답할 수 있습니다.
Amazon Bedrock 지식 기반을 사용하면 지식 기반 쿼리에서 수신한 컨텍스트로 보강된 애플리케이션을 구축할 수 있습니다. 파이프라인 구축의 과중한 부담으로부터 추상화하고 애플리케이션의 빌드 시간을 단축할 수 있는 out-of-the-box RAG 솔루션을 제공하여 출시 시간을 단축할 수 있습니다. 지식 기반을 추가하면 프라이빗 데이터를 활용하기 위해 모델을 지속적으로 학습시킬 필요가 없으므로 비용 효율성도 향상됩니다.
다음 다이어그램은 RAG가 수행되는 방법을 개략적으로 보여줍니다. 지식 기반은이 프로세스의 여러 단계를 자동화RAG하여의 설정 및 구현을 간소화합니다.
비정형 데이터 사전 처리
(정형 데이터 스토어가 아닌) 비정형 데이터에서 효과적으로 검색할 수 있도록 하려면 데이터를 텍스트로 변환하고 관리 가능한 조각으로 분할하는 것이 일반적인 방법입니다. 그런 다음 청크는 원본 문서와의 매핑을 유지하면서 임베딩으로 변환되고 벡터 인덱스에 작성됩니다. 이러한 임베딩은 데이터 소스의 쿼리와 텍스트 간의 시맨틱 유사성을 결정하는 데 사용됩니다. 아래 이미지에서는 벡터 데이터베이스의 데이터 사전 처리 과정을 보여줍니다.
벡터 임베딩은 각 텍스트 청크를 나타내는 일련의 숫자입니다. 모델은 각 텍스트 청크를 벡터라고 하는 일련의 숫자로 변환하므로 텍스트를 수학적으로 비교할 수 있습니다. 이러한 벡터는 부동 소수점 번호(float32) 또는 바이너리 번호일 수 있습니다. Amazon Bedrock에서 지원하는 대부분의 임베딩 모델은 기본적으로 부동 소수점 벡터를 사용합니다. 그러나 바이너리 벡터를 지원하는 모델을 사용하고 바이너리를 임베딩 모델의 데이터 유형으로 지정하도록 선택할 수 있습니다. 바이너리 벡터를 사용하려면 바이너리 벡터를 지원하는 모델 및 벡터 스토어도 선택해야 합니다. 차원당 1비트만 사용하는 바이너리 벡터는 차원당 32비트를 사용하는 부동 소수점(float32) 벡터만큼 스토리지 비용이 많이 들지 않습니다. 그러나 이진 벡터는 텍스트의 벡터 표현에서 부동 소수점 벡터만큼 정확하지 않습니다.
다음은 텍스트 청크의 기존 부동 소수점 벡터 표현과 더 간단한 바이너리 벡터 등가를 사용하는 텍스트 조각의 예입니다.
텍스트: “Amazon Bedrock은 선도적인 AI 기업과 Amazon의 고성능 파운데이션 모델을 사용합니다.” |
부동 소수점 벡터: [0.041..., 0.056..., -0.018..., -0.012..., -0.020..., ...] |
바이너리 벡터: [1,1,0,0,0, ...] |
런타임 실행
런타임 시 임베딩 모델을 사용하여 사용자 쿼리를 벡터로 변환합니다. 그런 다음, 벡터 인덱스를 쿼리하여 문서 벡터와 사용자 쿼리 벡터를 비교하는 방식으로 사용자 쿼리와 의미상 유사한 문서를 찾습니다. 마지막 단계에서는 벡터 인덱스에서 검색된 청크의 추가 컨텍스트를 사용하여 사용자 프롬프트를 증강합니다. 그런 다음 추가 컨텍스트와 함께 프롬프트가 모델로 전송되어 사용자를 위한 응답을 생성합니다. 다음 이미지는 런타임에 RAG가 사용자 쿼리에 대한 응답을 보강하는 방법을 보여줍니다.
데이터를 지식 기반으로 전환하는 방법, 지식 기반을 설정한 후 쿼리하는 방법, 수집 중에 데이터 소스에 적용할 수 있는 사용자 지정에 대해 자세히 알아보려면 다음 주제를 참조하세요.