Amazon Web Services 한국 블로그

Amazon Bedrock, Amazon Titan Text V2 검색 증강 생성(RAG) 최적화 모델 출시

Amazon Bedrock에서만 독점적으로 제공되는 Amazon Titan 모델 제품군은 25년간 축적된 Amazon의 인공 지능(AI) 및 기계 학습(ML) 전문 지식을 바탕으로 구축되었습니다. Amazon Titan 파운데이션 모델(FM)은 완전 관리형 API를 통해 액세스할 수 있는 사전 훈련된 이미지, 멀티모달 및 텍스트 모델의 포괄적인 제품군을 제공합니다. 광범위한 데이터세트를 훈련한 Amazon Titan 모델은 강력하고 다재다능하며, 책임감 있는 AI 관행을 준수하면서 다양한 애플리케이션에 맞게 설계되었습니다.

Amazon Titan 제품군에 가장 최근에 추가된 Amazon Titan Text Embedding V2는 현재 Amazon Bedrock에서 사용할 수 있는 Amazon의 2세대 텍스트 임베딩 모델입니다. 이 새로운 텍스트 임베딩 모델은 검색 증강 생성(RAG)에 최적화되어 있습니다. 100개 이상의 언어와 코드에 대해 사전 훈련되어 있습니다.

이제 Amazon Titan Text Embedding V2에서 출력 벡터의 크기(256, 512 또는 1024)를 선택할 수 있습니다. 벡터 크기가 클수록 더 자세한 응답을 생성하지만 계산 시간도 늘어납니다. 벡터 길이가 짧을수록 디테일은 떨어지지만 응답 시간이 향상됩니다. 더 작은 벡터를 사용하면 스토리지 비용과 벡터 데이터베이스에서 문서 추출을 검색하고 검색하는 대기 시간을 줄이는 데 도움이 됩니다. Amazon Titan Text Embedding V2에서 생성된 벡터의 정확도를 측정한 결과, 512차원의 벡터가 1024차원의 벡터가 제공하는 정확도의 약 99%를 유지하는 것으로 나타났습니다. 256차원의 벡터는 97%의 정확도를 유지합니다. 즉, 벡터 스토리지를 75%(1024에서 256 차원까지) 절약하고 더 큰 벡터가 제공하는 정확도의 약 97%를 유지할 수 있습니다.

또한 Amazon Titan Text Embedding V2는 벡터 유사성을 측정할 때 정확도를 향상시키는 데 도움이 되는 향상된 단위 벡터 정규화를 제안합니다. 사용 사례에 따라 정규화된 임베딩 버전과 정규화되지 않은 임베딩 버전 중에서 선택할 수 있습니다(RAG 사용 사례에는 정규화된 버전이 더 정확함). 벡터의 정규화는 벡터의 단위 길이 또는 크기가 1이 되도록 스케일링하는 과정입니다. 벡터 연산 중에 모든 벡터가 동일한 스케일을 가지며 동등하게 기여하도록 하여 일부 벡터의 크기가 더 커서 다른 벡터보다 우세하지 않도록 방지하는 것이 유용합니다.

이 새로운 텍스트 임베딩 모델은 다양한 사용 사례에 적합합니다. 예를 들어 문서에서 시맨틱 검색을 수행하여 표절을 감지하는 데 도움이 될 수 있습니다. 예를 들어 레이블을 데이터 기반 학습 표현으로 분류하여 영화를 장르로 분류할 수 있습니다. 또한 RAG를 사용하여 관심사에 따라 콘텐츠를 추천하는 등 검색 또는 생성된 검색 결과의 품질과 관련성을 개선할 수도 있습니다.

임베딩이 RAG의 정확도를 향상시키는 방법
대규모 언어 모델(LLM)을 위한 초능력 연구 조교가 되었다고 상상해 보세요. LLM은 다양한 창의적인 텍스트 형식을 작성할 수 있지만, 이러한 지식은 훈련받은 방대한 데이터세트에서 비롯된 것입니다. 이 훈련 데이터는 다소 오래되었거나 필요에 맞는 구체적인 세부 정보가 부족할 수 있습니다.

RAG가 필요한 이유가 바로 여기에 있습니다. RAG는 회사 지식창고와 같은 사용자 지정 소스에서 관련 정보를 가져오는 비서 같은 역할을 합니다. LLM이 질문에 대해 답변해야 할 경우, RAG는 최상의 답변을 생성할 수 있도록 최신 정보를 제공합니다.

최신 정보를 찾기 위해 RAG는 임베딩을 사용합니다. 이러한 임베딩(또는 벡터)을 텍스트의 핵심 아이디어를 포착하는 매우 압축된 요약이라고 상상해 보세요. Amazon Titan Text Embedding V2와 같은 고품질 임베딩 모델은 각 문서의 중요한 요점을 빠르게 파악할 수 있는 훌륭한 비서처럼 이러한 요약을 정확하게 생성할 수 있습니다. 이렇게 하면 RAG가 LLM에 가장 관련성이 높은 정보를 검색하여 보다 정확하고 핵심적인 답변을 얻을 수 있습니다.

도서관을 검색한다고 생각하시면 됩니다. 책의 각 페이지는 색인화되어 벡터로 표현됩니다. 검색 시스템이 좋지 않으면 필요 없는 책이 쌓여 있을 수 있습니다. 하지만 고품질 임베딩 모델과 같이 콘텐츠를 이해하는 훌륭한 검색 시스템을 사용하면 원하는 내용을 정확하게 얻을 수 있으므로 LLM의 답변 생성 작업이 훨씬 쉬워집니다.

Amazon Titan Text Embedding V2 개요
Amazon Titan Text Embedding V2는 더 작은 크기로 높은 정확도와 검색 성능을 제공하도록 최적화되어 스토리지와 지연 시간을 줄였습니다. 512차원의 벡터가 1024차원의 벡터가 제공하는 정확도의 약 99%를 유지하는 것으로 측정되었습니다. 256차원의 경우 97%의 정확도를 제공합니다.

최대 토큰 8,192
언어 사전 훈련 100+
미세 조정 지원 No
정규화 지원 Yes
벡터 크기 256, 512, 1,024(기본값)

Amazon Titan Text Embedding V2 사용 방법
Knowledge Bases for Amazon Bedrock을 통해 간접적으로 Amazon Titan Text Embedding V2와 상호 작용하게 될 가능성이 매우 높습니다. Knowledge Bases는 RAG 기반 애플리케이션을 만들기 위한 무거운 작업을 처리합니다. 하지만 Amazon Bedrock Runtime API를 사용하여 코드에서 직접 모델을 호출할 수도 있습니다. 다음은 Swift 프로그래밍 언어의 간단한 예제입니다(Python뿐만 아니라 모든 프로그래밍 언어를 사용할 수 있다는 것을 보여주기 위한 예제입니다).

import Foundation
import AWSBedrockRuntime 

let text = "This is the text to transform in a vector"

// API 클라이언트 생성
let client = try BedrockRuntimeClient(region: "us-east-1")

// 요청 생성 
let request = InvokeModelInput(
   accept: "application/json",
   body: """
   {
      "inputText": "\(text)",
      "dimensions": 256,
      "normalize": true
   }
   """.data(using: .utf8), 
   contentType: "application/json",
   modelId: "amazon.titan-embed-text-v2:0")

// 요청 전송 
let response = try await client.invokeModel(input: request)

// 응답 디코딩
let response = String(data: (response.body!), encoding: .utf8)

print(response ?? "")

이 모델은 페이로드에 세 가지 매개 변수를 사용합니다:

  • inputText – 임베딩으로 변환할 텍스트입니다.
  • normalize – 출력 임베딩을 정규화할지 여부를 나타내는 플래그입니다. 기본값은 true로, RAG 사용 사례에 가장 적합합니다.
  • 차원 – 출력 임베딩이 가져야 하는 차원 수입니다. 256, 512, 1024(기본값)의 세 가지 값을 사용할 수 있습니다.

Package.swiftAWS SDK for Swift에 대한 종속성을 추가했습니다. 이 코드를 빌드하고 실행하기 위해 swift run을 입력합니다. 다음 출력을 인쇄합니다(간결하게 하기 위해 잘라냄):

{"embedding":[-0.26757812,0.15332031,-0.015991211...-0.8203125,0.94921875],
"inputTextTokenCount":9}

평소와 마찬가지로 API를 사용하기 전에 Amazon Bedrock 콘솔에서 새 모델에 대한 액세스를 활성화하는 것을 잊지 마세요.

Amazon Titan Text Embeddings V2는 곧 Knowledge Bases for Amazon Bedrock에서 제안하는 기본 LLM이 될 것입니다. 기존 Amazon Titan Text Embedding 모델로 만든 기존 Knowledge Base는 변경 없이 계속 작동합니다.

Amazon Titan 모델 제품군에 대해 자세히 알아보려면 다음 비디오를 참조하세요.

 

새로운 Amazon Titan Text Embedding V2 모델은 오늘부터 미국 동부(버지니아 북부) 및 미국 서부(오레곤) AWS 리전의 Amazon Bedrock에서 사용할 수 있습니다. 향후 업데이트 여부는 전체 리전 목록을 확인하세요.

더 자세히 알아보려면 Amazon Bedrock의 Amazon Titan 제품 페이지요금 페이지를 확인하세요. 또한 Amazon Titan Text Embeddings 모델을 사용하는 방법에 대해 이야기하는 블로그 게시물도 꼭 확인해 보세요. 심층적인 기술 콘텐츠를 찾아보고 빌더 커뮤니티에서 각자의 솔루션에서 Amazon Bedrock을 어떻게 사용하고 있는지도 알아보시려면 community.aws 사이트를 방문해 보세요.

지금 바로 Amazon Bedrock 콘솔에서 Amazon Titan Text Embeddings V2를 사용해 보고, Amazon Bedrock용 AWS re:Post에 피드백을 보내거나 일반적인 AWS Support 문의를 통해 피드백을 보내 주세요.

— seb