Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | 아마존 웹 서비스

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | 아마존 웹 서비스

임베딩은 자연어 처리(NLP) 및 기계 학습(ML)에서 핵심적인 역할을 합니다. 텍스트 삽입 텍스트를 고차원 벡터 공간에 있는 숫자 표현으로 변환하는 프로세스를 말합니다. 이 기술은 데이터의 의미와 맥락(의미론적 관계)을 이해하고 데이터 내의 복잡한 관계와 패턴(구문적 관계)을 학습할 수 있는 ML 알고리즘을 사용하여 달성됩니다. 정보 검색, 텍스트 분류, 자연어 처리 등 다양한 애플리케이션에 결과 벡터 표현을 사용할 수 있습니다.

Amazon Titan 텍스트 임베딩 단일 단어, 구 또는 큰 문서로 구성된 자연어 텍스트를 검색, 개인화, 의미론적 유사성을 기반으로 한 클러스터링과 같은 강력한 사용 사례에 사용할 수 있는 수치 표현으로 변환하는 텍스트 임베딩 모델입니다.

이 게시물에서는 Amazon Titan 텍스트 임베딩 모델, 해당 기능 및 사용 사례 예시에 대해 논의합니다.

몇 가지 주요 개념은 다음과 같습니다.

  • 텍스트(벡터)의 수치 표현은 단어 간의 의미와 관계를 포착합니다.
  • 풍부한 임베딩을 사용하여 텍스트 유사성을 비교할 수 있습니다.
  • 다국어 텍스트 임베딩은 다양한 언어의 의미를 식별할 수 있습니다.

텍스트 조각이 벡터로 어떻게 변환되나요?

문장을 벡터로 변환하는 방법에는 여러 가지가 있습니다. 널리 사용되는 방법 중 하나는 Word2Vec, GloVe 또는 FastText와 같은 단어 임베딩 알고리즘을 사용한 다음 단어 임베딩을 집계하여 문장 수준 벡터 표현을 형성하는 것입니다.

또 다른 일반적인 접근 방식은 전체 문장에 대해 상황화된 임베딩을 제공할 수 있는 BERT 또는 GPT와 같은 LLM(대형 언어 모델)을 사용하는 것입니다. 이러한 모델은 문장 내 단어 간 관계와 문맥 정보를 보다 효과적으로 캡처할 수 있는 Transformers와 같은 딥 러닝 아키텍처를 기반으로 합니다.

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

임베딩 모델이 필요한 이유는 무엇입니까?

벡터 임베딩은 LLM이 언어의 의미론적 수준을 이해하는 데 필수적이며 LLM이 감정 분석, 명명된 엔터티 인식 및 텍스트 분류와 같은 다운스트림 NLP 작업을 효과적으로 수행할 수 있도록 해줍니다.

의미 체계 검색 외에도 임베딩을 사용하여 RAG(Retrieval Augmented Generation)를 통해 보다 정확한 결과를 얻기 위해 프롬프트를 강화할 수 있습니다. 하지만 이를 사용하려면 벡터 기능이 있는 데이터베이스에 저장해야 합니다.

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Amazon Titan 텍스트 임베딩 모델은 RAG 사용 사례를 활성화하기 위해 텍스트 검색에 최적화되어 있습니다. 먼저 텍스트 데이터를 숫자 표현이나 벡터로 변환한 다음 해당 벡터를 사용하여 벡터 데이터베이스에서 관련 구절을 정확하게 검색할 수 있으므로 다른 기초 모델과 결합하여 독점 데이터를 최대한 활용할 수 있습니다.

Amazon Titan 텍스트 임베딩은 Amazon Titan의 관리형 모델이기 때문에 아마존 기반암, 이는 완전히 서버리스 환경으로 제공됩니다. Amazon Bedrock REST를 통해 사용할 수 있습니다. API 또는 AWS SDK. 필수 매개변수는 임베딩을 생성하려는 텍스트와 modelID Amazon Titan 텍스트 임베딩 모델의 이름을 나타내는 매개변수입니다. 다음 코드는 Python용 AWS SDK(Boto3)를 사용하는 예입니다.

import boto3
import json #Create the connection to Bedrock
bedrock = boto3.client( service_name='bedrock', region_name='us-west-2', ) bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-west-2', ) # Let's see all available Amazon Models
available_models = bedrock.list_foundation_models() for model in available_models['modelSummaries']: if 'amazon' in model['modelId']: print(model) # Define prompt and model parameters
prompt_data = """Write me a poem about apples""" body = json.dumps({ "inputText": prompt_data,
}) model_id = 'amazon.titan-embed-text-v1' #look for embeddings in the modelID
accept = 'application/json' content_type = 'application/json' # Invoke model response = bedrock_runtime.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type
) # Print response
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding') #Print the Embedding print(embedding)

출력은 다음과 같습니다.

[-0.057861328, -0.15039062, -0.4296875, 0.31054688, ..., -0.15625]

인용하다 Amazon Bedrock boto3 설정 필요한 패키지를 설치하고 Amazon Bedrock에 연결하고 모델을 호출하는 방법에 대한 자세한 내용을 확인하세요.

Amazon Titan 텍스트 임베딩의 기능

Amazon Titan 텍스트 임베딩을 사용하면 최대 8,000개의 토큰을 입력할 수 있으므로 사용 사례에 따라 단일 단어, 구문 또는 전체 문서 작업에 매우 적합합니다. 아마존 타이탄 1536차원의 출력 벡터를 반환하여 높은 정확도를 제공하는 동시에 대기 시간이 짧고 비용 효율적인 결과를 최적화합니다.

Amazon Titan 텍스트 임베딩은 25개 이상의 다양한 언어로 된 텍스트에 대한 임베딩 생성 및 쿼리를 지원합니다. 즉, 지원하려는 각 언어에 대해 별도의 모델을 만들고 유지 관리할 필요 없이 사용 사례에 모델을 적용할 수 있습니다.

여러 언어로 학습된 단일 임베딩 모델을 사용하면 다음과 같은 주요 이점을 얻을 수 있습니다.

  • 더 넓은 범위 – 기본적으로 25개 이상의 언어를 지원함으로써 많은 국제 시장의 사용자 및 콘텐츠에 대한 애플리케이션 범위를 확장할 수 있습니다.
  • 일관된 성능 – 여러 언어를 포괄하는 통합 모델을 사용하면 언어별로 개별적으로 최적화하는 대신 언어 전반에 걸쳐 일관된 결과를 얻을 수 있습니다. 모델은 전체적으로 훈련되므로 언어 ​​전반에 걸쳐 이점을 얻을 수 있습니다.
  • 다국어 쿼리 지원 – Amazon Titan 텍스트 임베딩을 사용하면 지원되는 모든 언어로 텍스트 임베딩을 쿼리할 수 있습니다. 이는 단일 언어로 제한되지 않고 여러 언어에서 의미상 유사한 콘텐츠를 검색할 수 있는 유연성을 제공합니다. 동일한 통합 임베딩 공간을 사용하여 다국어 데이터를 쿼리하고 분석하는 애플리케이션을 구축할 수 있습니다.

이 글을 쓰는 시점에서 지원되는 언어는 다음과 같습니다.

  • 아랍어
  • 중국어 (간체)
  • 중국 (번체)
  • 체코 사람
  • Dutch
  • 영어
  • 프랑스어
  • 독일 사람
  • 히브리어
  • 힌디 어
  • 이탈리아 사람
  • 일본제
  • 칸나다어
  • 한국어
  • 말라얄람어
  • 마라타어
  • 광택
  • 포르투갈어
  • 러시아인
  • 스페인어
  • 스웨덴어
  • 필리핀 타갈로그어
  • 타밀 사람
  • 텔루구어
  • 터키의

LangChain과 함께 Amazon Titan 텍스트 임베딩 사용

랭체인 작업에 널리 사용되는 오픈 소스 프레임워크입니다. 생성 적 AI 모델 및 지원 기술. 여기에는 다음이 포함됩니다. BedrockEmbeddings 클라이언트 Boto3 SDK를 추상화 계층으로 편리하게 래핑합니다. 그만큼 BedrockEmbeddings 클라이언트를 사용하면 JSON 요청 또는 응답 구조의 세부 정보를 알지 않고도 텍스트 및 임베딩 작업을 직접 수행할 수 있습니다. 다음은 간단한 예입니다.

from langchain.embeddings import BedrockEmbeddings #create an Amazon Titan Text Embeddings client
embeddings_client = BedrockEmbeddings() #Define the text from which to create embeddings
text = "Can you please tell me how to get to the bakery?" #Invoke the model
embedding = embeddings_client.embed_query(text) #Print response
print(embedding)

LangChain을 사용할 수도 있습니다. BedrockEmbeddings RAG, 의미 체계 검색 및 기타 임베딩 관련 패턴 구현을 단순화하기 위해 Amazon Bedrock LLM 클라이언트와 함께 클라이언트를 사용합니다.

임베딩 사용 사례

현재 RAG가 임베딩 작업에 가장 많이 사용되는 사용 사례이지만 임베딩을 적용할 수 있는 다른 사용 사례도 많이 있습니다. 다음은 임베딩을 사용하여 자체적으로 또는 LLM과 협력하여 특정 문제를 해결할 수 있는 몇 가지 추가 시나리오입니다.

  • 질문과 답변 – 임베딩은 RAG 패턴을 통해 질문 및 답변 인터페이스를 지원하는 데 도움이 될 수 있습니다. 벡터 데이터베이스와 결합된 임베딩 생성을 통해 지식 저장소의 질문과 콘텐츠 간에 밀접한 일치 항목을 찾을 수 있습니다.
  • 맞춤 추천 – 질문 및 답변과 유사하게 임베딩을 사용하여 사용자가 제공한 기준에 따라 휴가지, 대학, 차량 또는 기타 제품을 찾을 수 있습니다. 이는 간단한 일치 목록 형식을 취할 수도 있고 LLM을 사용하여 각 권장 사항을 처리하고 사용자 기준을 어떻게 충족하는지 설명할 수도 있습니다. 또한 이 접근 방식을 사용하여 사용자의 특정 요구 사항에 따라 사용자 정의 "최고 10개" 기사를 생성할 수도 있습니다.
  • 데이터 관리 – 서로 명확하게 매핑되지 않는 데이터 소스가 있지만 데이터 레코드를 설명하는 텍스트 콘텐츠가 있는 경우 임베딩을 사용하여 잠재적인 중복 레코드를 식별할 수 있습니다. 예를 들어 임베딩을 사용하면 다른 형식, 약어를 사용하거나 이름이 번역된 중복 후보를 식별할 수 있습니다.
  • 애플리케이션 포트폴리오 합리화 – 모회사와 인수 전체에 걸쳐 애플리케이션 포트폴리오를 조정하려고 할 때 잠재적인 중복을 어디서부터 찾아야 할지 항상 명확하지는 않습니다. 구성 관리 데이터의 품질은 제한 요소가 될 수 있으며 팀 간 조정을 통해 애플리케이션 환경을 이해하는 것이 어려울 수 있습니다. 임베딩과 의미론적 일치를 사용하면 애플리케이션 포트폴리오 전반에 걸쳐 빠른 분석을 수행하여 합리화를 위한 잠재력이 높은 후보 애플리케이션을 식별할 수 있습니다.
  • 콘텐츠 분류 – 임베딩을 사용하면 유사한 콘텐츠를 미리 알지 못할 수도 있는 카테고리로 쉽게 그룹화할 수 있습니다. 예를 들어 고객 이메일이나 온라인 제품 리뷰 모음이 있다고 가정해 보겠습니다. 각 항목에 대한 임베딩을 생성한 다음 해당 임베딩을 실행할 수 있습니다. k-평균 클러스터링 고객 우려 사항, 제품 칭찬이나 불만 사항, 기타 주제의 논리적 그룹화를 식별합니다. 그런 다음 LLM을 사용하여 해당 그룹의 콘텐츠에서 집중 요약을 생성할 수 있습니다.

의미 검색 예

우리의 GitHub의 예에서는 Amazon Titan Text Embeddings, LangChain 및 Streamlit을 사용한 간단한 임베딩 검색 애플리케이션을 시연합니다.

이 예에서는 사용자의 쿼리를 메모리 내 벡터 데이터베이스의 가장 가까운 항목과 일치시킵니다. 그런 다음 해당 일치 항목을 사용자 인터페이스에 직접 표시합니다. 이는 RAG 애플리케이션 문제를 해결하거나 임베딩 모델을 직접 평가하려는 경우 유용할 수 있습니다.

단순화를 위해 인메모리를 사용합니다. 파이스 임베딩 벡터를 저장하고 검색하는 데이터베이스입니다. 대규모의 실제 시나리오에서는 다음과 같은 영구 데이터 저장소를 사용하고 싶을 것입니다. Amazon OpenSearch Serverless용 벡터 엔진 또는 pg벡터 PostgreSQL용 확장입니다.

다음과 같이 웹 애플리케이션에서 다양한 언어로 몇 가지 프롬프트를 시도해 보세요.

  • 사용량을 어떻게 모니터링할 수 있나요?
  • 모델을 어떻게 맞춤설정할 수 있나요?
  • 어떤 프로그래밍 언어를 사용할 수 있나요?
  • 댓글 mes données sont-elles sécurisées ?
  • 정말 데이타는 정말 기분이 좋지 않나요?
  • Bedrock의 모델이 거부되는 이유는 무엇입니까?
  • Welchen Regionen에는 Amazon Bedrock verfügbar가 있습니까?
  • 어떤 것이 있나요?

원본 자료가 영어였음에도 불구하고 다른 언어로 된 쿼리는 관련 항목과 일치했습니다.

결론

기초 모델의 텍스트 생성 기능은 매우 흥미롭지만, 생성 AI의 전체 가치를 달성하려면 텍스트를 이해하고, 지식 체계에서 관련 콘텐츠를 찾고, 구절 간 연결을 만드는 것이 중요하다는 점을 기억하는 것이 중요합니다. 이러한 모델이 지속적으로 개선됨에 따라 향후 몇 년 동안 임베딩에 대한 새롭고 흥미로운 사용 사례가 계속해서 등장할 것입니다.

다음 단계

다음 워크숍에서 노트북 또는 데모 애플리케이션으로 임베딩하는 추가 예를 찾을 수 있습니다.


저자에 관하여

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.제이슨 스텔 뉴잉글랜드 지역에 본사를 둔 AWS의 수석 솔루션 아키텍트입니다. 그는 고객과 협력하여 AWS 기능을 고객의 가장 큰 비즈니스 과제에 맞게 조정합니다. 업무 외에 그는 가족과 함께 물건을 만들고 만화 영화를 보는 데 시간을 보냅니다.

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.니틴 유세비우스 소프트웨어 엔지니어링, 엔터프라이즈 아키텍처 및 AI/ML 분야의 경험이 있는 AWS의 수석 엔터프라이즈 솔루션 아키텍트입니다. 그는 생성 AI의 가능성을 탐구하는 데 깊은 열정을 갖고 있습니다. 그는 고객과 협력하여 고객이 AWS 플랫폼에서 잘 설계된 애플리케이션을 구축할 수 있도록 지원하고 기술 문제를 해결하고 클라우드 여정을 지원하는 데 전념하고 있습니다.

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.라지 파탁 캐나다와 미국 전역의 Fortune 50대 기업과 중소 금융 서비스 기관(FSI)의 수석 솔루션 설계자이자 기술 고문입니다. 그는 생성 AI, 자연어 처리, 지능형 문서 처리 및 MLOps와 같은 기계 학습 애플리케이션을 전문으로 합니다.

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.마니 카누 자 기술 리더이자 생성적 AI 전문가이고, Applied Machine Learning and High Performance Computing on AWS라는 책의 저자이며, 여성 제조업 교육 재단 이사회의 이사이기도 합니다. 그녀는 컴퓨터 비전, 자연어 처리, 생성 AI 등 다양한 영역에서 머신러닝(ML) 프로젝트를 이끌고 있습니다. 그녀는 고객이 대규모 기계 학습 모델을 대규모로 구축, 교육 및 배포할 수 있도록 지원합니다. 그녀는 re:Invent, Women in Manufacturing West, YouTube 웹 세미나, GHC 23 등의 내부 및 외부 컨퍼런스에서 연설합니다. 여가 시간에는 해변을 따라 장거리 달리기를 즐깁니다.

Amazon Bedrock에서 Amazon Titan 텍스트 임베딩 시작하기 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.마크 로이 AWS의 수석 기계 학습 설계자로서 고객이 AI/ML 솔루션을 설계하고 구축하도록 지원합니다. Mark의 작업은 컴퓨터 비전, 딥 러닝 및 기업 전체의 ML 확장에 주된 관심을 가지고 광범위한 ML 사용 사례를 다룹니다. 그는 보험, 금융 서비스, 미디어 및 엔터테인먼트, 의료, 유틸리티 및 제조를 포함한 많은 산업 분야의 회사를 도왔습니다. Mark는 ML 전문 인증을 포함하여 25개의 AWS 인증을 보유하고 있습니다. AWS에 합류하기 전에 Mark는 금융 서비스 분야에서 19년을 포함하여 XNUMX년 이상 아키텍트, 개발자 및 기술 리더였습니다.

타임 스탬프 :

더보기 AWS 기계 학습