1# 가상환경 권장2python3 -m venv .venv
3source .venv/bin/activate # Windows: .venv\Scripts\activate45# 패키지 설치 (torch 포함, CPU 전용 가능)6pip install sentence-transformers
필요 패키지는 sentence-transformers만 설치하면 자동으로 torch, transformers, huggingface_hub 등 의존성이 따라옵니다.
디스크 절약을 원하면 CPU 전용 torch: pip install torch --index-url https://download.pytorch.org/whl/cpu
2단계: 모델 로드
python
1from sentence_transformers import SentenceTransformer
23model = SentenceTransformer("kekeappa/kor-static-embedding-512")4# 첫 실행 시 모델 자동 다운로드 (~68MB)5# 캐시 위치: ~/.cache/huggingface/hub/
3단계: 임베딩 추출
python
1sentences =[2"오늘 날씨가 정말 좋네요.",3"햇살이 따뜻하고 기분 좋은 하루입니다.",4"비가 와서 우산을 챙겨야 합니다.",5]6embeddings = model.encode(sentences, normalize_embeddings=True)7print(embeddings.shape)# (3, 512)89# 코사인 유사도 (정규화된 벡터의 내적 = 코사인)10similarity_matrix = embeddings @ embeddings.T
11print(similarity_matrix)
4단계: 활용 예시
A. 의미 검색 (Semantic Search)
python
1import numpy as np
23# 코퍼스 인덱싱 (한 번만)4corpus =[5"김치찌개 만드는 법",6"딥러닝 입문 강의",7"주말 등산 추천 코스",8"파이썬 데이터 분석",9"제주도 여행 일정",10]11corpus_emb = model.encode(corpus, normalize_embeddings=True, batch_size=64)1213# 쿼리 (반복 가능)14defsearch(query, top_k=3):15 q_emb = model.encode([query], normalize_embeddings=True)16 scores =(q_emb @ corpus_emb.T)[0]17 top_idx = np.argsort(-scores)[:top_k]18return[(corpus[i],float(scores[i]))for i in top_idx]1920print(search("인공지능 학습"))21# → [('딥러닝 입문 강의', 0.41), ('파이썬 데이터 분석', 0.18), ...]