본문 바로가기

카테고리 없음

LangChain - 2.4 Text embedding models

참조 : https://python.langchain.com/docs/modules/data_connection/text_embedding/

 

Text embedding models | 🦜️🔗 Langchain

Head to Integrations for documentation on built-in integrations with text embedding model providers.

python.langchain.com

 

Text embedding models

Embedding class = text embedding models와 i/f를 위하여 design되었으며 다양한 embedding model 제공됨 (OpenAI, Hugging Face, Cohere 등)

 

Embedding은 Text 조각의 벡터 표현을 생성함 > 이를 통해서 가장 유사한 텍스트 조각을 찾을 수 있음

 

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings()

embeddings = embeddings_model.embed_documents(
    [
        "Hi there!",
        "Oh, hello!",
        "What's your name?",
        "My friends call me World",
        "Hello World!"
    ]
)
print('Output>', len(embeddings), len(embeddings[0]), embeddings[0][:5])

embedded_query = embeddings_model.embed_query("What was the name mentioned in the conversation?")
print('Output>', embedded_query[:5])

Output> 5 1536 [-0.020333572410984546, -0.007080554214029376, -0.02287368198875378, -0.02626472793048637, -0.037492009246741356]
Output> [0.0053848074247278025, -0.0005522561790177142, 0.038960665101309515, -0.0029398672940039064, -0.008987877434176594]

 

  • 첫번째 결과 = embedding 된 결과가 전체 5개, 첫번째 embedding 결과가 1536 차원의 vector 값이라는 얘기
  • 두번째 결과 = 쿼리 문장을 embedding 했을때 결과값이 vector 값으로 표시됨

 

 


Embedding 개요

Use Case

Case Desc Etc
Semantic Search 의미적으로 유사한 텍스트를 검색
사용자가 입력한 쿼리에 대한 가장 관련성 높은 문서/정보를 찾는데 사용
 
Document Classification 문서를 특정 카테고리나 주제에 할당하는 분류작업  
Text Similarity Calculation 텍스트 간의 유사성 정도를 정량적으로 평가  

 

 

Providor

Case Desc Etc
OpenAI GPT와 같은 언어모델을 통해 임베딩 벡터 생성하는 API 제공  
Document Classification Transformers 라이브러리를 통한 다양한 오픈소스 임베딩 모델 제공  
Text Similarity Calculation Gemini, Gemma 등 언어모델에 적용되는 임베딩 모델 제공  

 

Method

Case Desc Etc
embed_document 문서 객체의 집합을 입력으로 받아 각 문서를 벡터 공간에 임베딩함
주로 대량의 텍스트 데이터를 배치 단위로 처리할 때 사용
 
embed_query 단일 텍스트 쿼리를 입력받아 벡터 공간에 임베딩 함
주로 사용자의 검색 쿼리를 임베딩하여 문서 집합 내에서 유사한 내용을 찾는데 사용됨
 

 

 


OpenEmbeddings