반응형
Sentence Transformers란?
Sentence Transformers(SBert)는 문장과 문서를 고차원의 임베딩 벡터로 변환하여 NLP 작업에 활용할 수 있는 강력한 라이브러리입니다. 특히, 다국어를 지원하는 모델을 제공하므로 한국어 NLP 태스크에서도 유용하게 사용할 수 있습니다.
SBert 공식 웹사이트에서는 다양한 Pretrained Models를 제공합니다. 이번 글에서는 한국어 및 다국어 모델을 사용하는 방법을 다룹니다.
다국어 모델: distiluse-base-multilingual-cased-v1
distiluse-base-multilingual-cased-v1은 다국어를 지원하는 Sentence Transformers 모델 중 하나로, 50개 이상의 언어를 지원합니다. v1이 v2보다 성능이 더 우수하다고 평가되므로 이 모델을 추천합니다.
실습
# 라이브러리 임포트
from sentence_transformers import SentenceTransformer
# 1. 미리 학습된 다국어 모델 로드
model = SentenceTransformer("distiluse-base-multilingual-cased-v1")
# 2. 임베딩할 문장 정의
sentences = ["나는 학교에서 밥을 먹었다."]
# 3. 문장을 임베딩 벡터로 변환
embeddings = model.encode(sentences)
print("Embedding Shape:", embeddings.shape)
# 출력: (1, 512), 1개의 문장이 512차원의 벡터로 변환됨
위 코드에서는 입력된 문장이 512차원의 벡터로 변환되며, 이 벡터를 사용해 의미적 유사성을 계산하거나 검색 작업에 활용할 수 있습니다.
Hugging Face의 한국어 모델 활용하기
Sentence Transformers 외에도, Hugging Face는 다양한 한국어 모델을 제공합니다. Hugging Face의 모델은 문장 토크나이징, 한국어 전처리 및 다양한 NLP 태스크에 적합합니다.
- Hugging Face 웹사이트 방문: https://huggingface.co/
- 'KOBERT' 검색:
다양한 한국어 모델 중 kobert-base-v1을 선택합니다.
실습
from transformers import AutoTokenizer, AutoModel
# 1. KOBERT 모델 로드
tokenizer = AutoTokenizer.from_pretrained("skt/kobert-base-v1")
model = AutoModel.from_pretrained("skt/kobert-base-v1")
# 2. 입력 문장 토크나이징
sentence = "나는 학교에서 밥을 먹었다."
inputs = tokenizer(sentence, return_tensors="pt")
# 3. 모델 실행
outputs = model(**inputs)
print("Hidden States Shape:", outputs.last_hidden_state.shape)
# 출력: torch.Size([1, 토큰 수, 히든 레이어 크기])
주요 차이점: Sentence Transformers vs Hugging Face
특징Sentence TransformersHugging Face
주요 용도 | 문장 임베딩, 유사도 계산, 검색 | 토크나이징, 텍스트 생성, 번역 등 다양한 NLP |
모델 구조 | Pooling을 통해 문장을 하나의 벡터로 변환 | 각 토큰에 대한 임베딩 제공 |
다국어 모델 추천 | distiluse-base-multilingual-cased-v1 | skt/kobert-base-v1 |
한국어 지원 여부 | 지원 | 강력한 지원 |
결론
Sentence Transformers와 Hugging Face는 각각의 강점이 있으며, 프로젝트 요구사항에 따라 적합한 도구를 선택하는 것이 중요합니다.
- 문장 유사도 계산과 검색 작업에는 Sentence Transformers가 유리합니다.
- 세밀한 한국어 전처리 및 토큰 단위 작업에는 Hugging Face가 적합합니다.
더 많은 정보를 얻고 싶다면 아래 링크를 참고하세요:
반응형
'Investment-Assistant' 카테고리의 다른 글
HuggingFace를 활용한 한국어 sLLM 모델 사용법 [17] (2) | 2024.12.19 |
---|---|
Sentence Transformers를 활용한 문장 임베딩 및 FAISS 검색 시스템 구축 [16] (3) | 2024.12.17 |
Sentence Transformers 활용하기 [14] (0) | 2024.12.13 |
RAG 코드 구현하기: 효율적인 정보 검색 [13] (2) | 2024.11.27 |
문서 검색 성능 평가: BM25와 FAISS를 활용한 Hybrid Search 분석 [12] (0) | 2024.11.26 |