티스토리 뷰

카테고리 없음

별첨 #1 KoSimCSE란?

미니대왕님 2025. 12. 19. 15:48

별첨 #1 KoSimCSE란?

별첨 #2. Chunking 청킹이란...

별첨 #3. n8n 완전 정복 가이드

별첨 #4. Chroma DB 완전 가이드

별첨 #4-1. Milvus란? 

별첨 #5. RAG란? 

별첨 #6. LangChain이란?

별첨 #7. MCP 서버 탑재

별첨 #8. Embedding)이란?

별첨 #9. LLaMA란

별첨 #10. kiwipiepy(키위파이파이)

별첨 #11. Poetry란?

✅ 1. KoSimCSE란?

  • SimCSE 구조 + 한국어 사전학습 모델(RoBERTa 등) 조합
  • 한국어 문장 간 의미 유사도 계산, 임베딩, 벡터 DB 구축에 적합
  • 대표 개발자: BM-K 팀

📦 대표 모델:

  • BM-K/KoSimCSE-roberta
  • BM-K/KoSimCSE-bert
  • BM-K/KoSimCSE-klue-roberta-base

✅ 2. 설치 방법

# 기본 라이브러리 설치
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # GPU용
pip install transformers
pip install sentence-transformers

 

✅ GPU 없이 CPU에서도 가능하지만, GPU 권장 (RTX 3060 이상)
✅ PyTorch 설치 시 CUDA 버전 꼭 확인 (cu118 = CUDA 11.8)

✅ 3. 기본 사용법

# 파이썬

from sentence_transformers import SentenceTransformer


model = SentenceTransformer("BM-K/KoSimCSE-roberta")

sentences = ["오늘 날씨 어때?", "비가 올 것 같아."]
embeddings = model.encode(sentences)

print(embeddings[0])  # 첫 번째 문장의 임베딩 벡터

✅ 4. 최적화 구성 (성능 & 속도)

🔹 A. GPU 사용 설정

# 파이썬
import torch


device = "cuda" if torch.cuda.is_available() else "cpu"
model = SentenceTransformer("BM-K/KoSimCSE-roberta", device=device)

🔹 B. Batch 처리 (속도 향상 핵심)

# 파이썬
texts = ["문장1", "문장2", ...]  # 수백/수천 문장
embeds = model.encode(texts, batch_size=64, show_progress_bar=True)


  • 기본 batch_size는 32 ~ 64 추천
  • GPU 메모리에 따라 조정

🔹 C. ONNX 모델로 추론 속도 2배 향상 (선택 사항)

# Bash

pip install optimum onnxruntime
# 파이썬

from transformers import AutoTokenizer, AutoModel
from optimum.onnxruntime import ORTModelForFeatureExtraction

model_id = "BM-K/KoSimCSE-roberta"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = ORTModelForFeatureExtraction.from_pretrained(model_id, export=True)

 

✅ HuggingFace → ONNX 자동 변환 → onnxruntime으로 추론

🔹 D. FP16 (반정밀도 연산, GPU 최적화)

KoSimCSE는 HuggingFace 모델 기반이므로 accelerate, transformers에서 fp16 지원

# 파이썬

model = SentenceTransformer(model_id, device="cuda")
model.half()  # fp16 변환


단, 일부 연산 정확도 저하 있을 수 있음 (실제 테스트 필요)

✅ 5. 벡터 유사도 비교 (코사인 유사도)

# 파이썬

from sklearn.metrics.pairwise import cosine_similarity

sim_score = cosine_similarity([embeddings[0]], [embeddings[1]])
print(sim_score[0][0])  # 유사도: 1에 가까울수록 유사

 

✅ 6. 실무 적용 구조 (RAG 기반 예시)

✅ 7. 성능 팁 요약

항목 최적화 팁
속도 GPU 사용 (cuda), batch_size=64, FP16
경량화 BM-K/KoSimCSE-klue-roberta-small (작은 모델)
정확도 BM-K/KoSimCSE-roberta (성능 최고), bge-small-ko (검색 특화)
유사도 검색 cosine_similarity, FAISS
대량 문서 처리 multiprocessing, joblib, langchain.chunk 병렬 처리
 

📂 자주 쓰는 모델 요약

모델 ID설명 설        명
BM-K/KoSimCSE-roberta KoSimCSE 최고 성능
BM-K/KoSimCSE-klue-roberta-small 경량 버전, 빠름
snunlp/KR-SBERT-V40K-klueNLI-augSTS STS + NLI 기반 대용량 학습
bge-small-ko 검색 최적화, 빠르고 정확
 

📘 KoSimCSE 참고 문서

🎁 마무리 요약

항목내용 내                용
최적 모델 BM-K/KoSimCSE-roberta
설치 sentence-transformers로 간편 설치
속도 향상 GPU 사용 + batch 처리 + ONNX 변환
실무 사용 벡터 DB(FAISS 등)와 결합하여 문서 검색 + LLM 연결
추천 환경 RTX 3060 이상 + batch_size=64 이상

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함