반응형
Sentence Transformers란?
Sentence Transformers(SBert)는 문장과 문서를 임베딩 벡터로 변환할 수 있는 라이브러리입니다. 이 라이브러리를 통해 문장 간의 의미적 유사성을 효과적으로 계산할 수 있습니다. SBert는 다양한 NLP 태스크에서 활용 가능하며, 사용자는 https://sbert.net/에서 자세한 정보를 확인할 수 있습니다.
주요 기능 및 활용
Sentence Transformers를 사용하면 다음과 같은 작업이 가능합니다:
- 문서 및 문장 임베딩 벡터로 변환
텍스트 데이터를 고차원의 벡터 표현으로 변환해 의미적 비교 및 검색에 활용할 수 있습니다. - 유사도 계산
변환된 벡터를 활용해 문장 간 의미적 유사도를 측정할 수 있습니다. - 온프레미스 환경에서 구현 가능
클라우드 연결 없이 로컬 환경에서도 쉽게 사용할 수 있습니다.
SBert 실습 예제
# https://sbert.net/
from sentence_transformers import SentenceTransformer
# 1. Load a pretrained Sentence Transformer model
model = SentenceTransformer("all-MiniLM-L6-v2")
# The sentences to encode
sentences = [
"The weather is lovely today.",
"It's so sunny outside!",
"He drove to the stadium.",
]
# 2. Calculate embeddings by calling model.encode()
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384], 문장 3개, 각각 문장이 숫자가 384개 있는 벡터로 변환
# 3. Calculate the embedding similarities
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6660, 0.1046],
# [0.6660, 1.0000, 0.1411],
# [0.1046, 0.1411, 1.0000]])
# 0번째 인덱스 값과 1번째 인덱스 값의 유사도는 0.666이라는 뜻
# "The weather is lovely today.", "It's so sunny outside!"의 유사도는 0.6660이라는 뜻
결론
Sentence Transformers(SBert)는 NLP 작업에서 효율적으로 문장을 임베딩하고 유사도를 계산하는 데 적합한 도구입니다. 특히, 온프레미스 환경에서 RAG 아키텍처를 구축하거나 텍스트 기반 애플리케이션을 개발하는 데 유용합니다.
반응형
'Investment-Assistant' 카테고리의 다른 글
Sentence Transformers를 활용한 문장 임베딩 및 FAISS 검색 시스템 구축 [16] (3) | 2024.12.17 |
---|---|
Sentence Transformers로 한국어 모델 사용해보기 [15] (4) | 2024.12.13 |
RAG 코드 구현하기: 효율적인 정보 검색 [13] (2) | 2024.11.27 |
문서 검색 성능 평가: BM25와 FAISS를 활용한 Hybrid Search 분석 [12] (0) | 2024.11.26 |
LangChain으로 BM25와 FAISS를 활용한 Ensemble Retriever 실습 [11] (1) | 2024.11.26 |